Models: E
from_: str(fromon the wire)to: strkind: Union[Literal['caused-by', 'influenced-by', 'retrieved-from', 'invoked', 'produced', 'checked-against', 'waited-on', 'resumed-from'], str]
EgressAddresses
Section titled “EgressAddresses”The IP addresses this deployment's calls to other sites come from, for a site that admits only known addresses. They're the same for every tenant on the deployment, so admitting them admits every tenant's calls: a site still checks its own credentials. They say where calls come from, not where they go. Absent when the deployment publishes none. An empty list: none of that kind.
server: list[str]deployments: list[str]
EmailLink
Section titled “EmailLink”Present when the deployment emails sign-in links: a sign-in page offers "Email me a sign-in link". With captchaSiteKey, the request needs a Cloudflare Turnstile token (x-captcha-response).
captcha_site_key: str | None(captchaSiteKeyon the wire) (optional)
EnrollSiteBody
Section titled “EnrollSiteBody”code: strpublic_key: dict[str, Any](publicKeyon the wire)
EnrollSiteResult
Section titled “EnrollSiteResult”site_id: uuid.UUID(siteIdon the wire)audience: str
EnvCollectionPage
Section titled “EnvCollectionPage”data: list[kindgi.client.EnvRecord]has_more: bool | None(hasMoreon the wire) (optional)next_cursor: str | None(nextCursoron the wire) (optional)
EnvDeleteResult
Section titled “EnvDeleteResult”deleted: bool
EnvListPage
Section titled “EnvListPage”data: list[kindgi.client.EnvRecord]next_cursor: str | None(nextCursoron the wire) (optional)
EnvRecord
Section titled “EnvRecord”scope: kindgi.client.ScopeTenant | kindgi.client.ScopeOrg | kindgi.client.ScopeProject | kindgi.client.ScopeUnrecognizedenv_name: str(envNameon the wire)name: strvalue: strrevision: intcreated_at: AwareDatetime(createdAton the wire)updated_at: AwareDatetime(updatedAton the wire)tags: dict[str, str] | None(optional)
EnvSetInput
Section titled “EnvSetInput”scope: kindgi.client.ScopeTenant | kindgi.client.ScopeOrg | kindgi.client.ScopeProject | kindgi.client.ScopeUnrecognizedenv_name: str(envNameon the wire)name: strvalue: strtags: dict[str, str] | None(optional)if_revision: int | None(ifRevisionon the wire) (optional)
EnvSetOutcome
Section titled “EnvSetOutcome”root: kindgi.client.EnvSetOutcomeOk | kindgi.client.EnvSetOutcomeRevisionConflict | kindgi.client.EnvSetOutcomeError
EnvSetOutcomeError
Section titled “EnvSetOutcomeError”kind: Literal['error']code: strmessage: str
EnvSetOutcomeOk
Section titled “EnvSetOutcomeOk”kind: Literal['ok']record: kindgi.client.EnvRecord
EnvSetOutcomeRevisionConflict
Section titled “EnvSetOutcomeRevisionConflict”kind: Literal['revision-conflict']current_revision: int(currentRevisionon the wire)
EnvSetRequest
Section titled “EnvSetRequest”scope: Optional[Annotated[kindgi.client.ScopeTenant | kindgi.client.ScopeOrg | kindgi.client.ScopeProject | kindgi.client.ScopeUnrecognized, <kindgi.client._open.OpenUnion object at 0x107bd7f10>]](optional)env_name: str | None(envNameon the wire) (optional)name: str | None(optional)value: strtags: dict[str, str] | None(optional)if_revision: int | None(ifRevisionon the wire) (optional)
Environment
Section titled “Environment”env_name: str(envNameon the wire)
EnvironmentOrder
Section titled “EnvironmentOrder”parent: kindgi.client.EnvironmentOrderParentTenant | kindgi.client.EnvironmentOrderParentOrg | kindgi.client.EnvironmentOrderParentUnrecognizedentries: list[kindgi.client.EnvironmentOrderEntry]
EnvironmentOrderEntry
Section titled “EnvironmentOrderEntry”position: intproject_id: str | None(projectIdon the wire) (optional)
EnvironmentOrderPage
Section titled “EnvironmentOrderPage”data: list[kindgi.client.EnvironmentOrder]has_more: bool(hasMoreon the wire)next_cursor: str | None(nextCursoron the wire) (optional)
EnvironmentOrderParentOrg
Section titled “EnvironmentOrderParentOrg”kind: Literal['org']org_id: str(orgIdon the wire)
EnvironmentOrderParentTenant
Section titled “EnvironmentOrderParentTenant”kind: Literal['tenant']
EnvironmentOrderParentUnrecognized
Section titled “EnvironmentOrderParentUnrecognized”A kind this client doesn't know yet, from a newer runtime: the object as it came, every field kept.
kind: str
EnvironmentOrderSetRequest
Section titled “EnvironmentOrderSetRequest”project_ids: list[str](projectIdson the wire)
EnvironmentPage
Section titled “EnvironmentPage”data: list[kindgi.client.Environment]has_more: bool(hasMoreon the wire)next_cursor: str | None(nextCursoron the wire) (optional)
code: strmessage: strdetails: dict[str, Any] | None(optional)request_id: str(requestIdon the wire)
EvalBaseline1
Section titled “EvalBaseline1”What a comparison compares the candidate against: 'recorded' (each case's recorded output, what was judged), a version ({ agentId, version }, replayed under the same rules), or the version live in a scope ({ live: { projectId?, segments? } }, segments a path in the project, coarse to fine). Only 'recorded' runs today; the others are refused when the run starts.
agent_id: str(agentIdon the wire)version: str
EvalBaseline2
Section titled “EvalBaseline2”What a comparison compares the candidate against: 'recorded' (each case's recorded output, what was judged), a version ({ agentId, version }, replayed under the same rules), or the version live in a scope ({ live: { projectId?, segments? } }, segments a path in the project, coarse to fine). Only 'recorded' runs today; the others are refused when the run starts.
live: kindgi.client.Live
EvalComparison
Section titled “EvalComparison”A comparison eval run's settings (a judged suite).
baseline: Union[Annotated[Union[Literal['recorded'], str], <kindgi.client._open.OpenEnum object at 0x10700bbd0>], kindgi.client.EvalBaseline1, kindgi.client.EvalBaseline2]reads: Union[Literal['recorded', 'live'], str]repetitions: intk: intversions: kindgi.client.FlowVersionOverrides | None(optional)class_weights: Optional[Annotated[Union[Literal['as-recorded', 'restricted-only'], str], <kindgi.client._open.OpenEnum object at 0x10700bbd0>]](classWeightson the wire) (optional)overrides: kindgi.client.EvalOverrides | None(optional)sample: kindgi.client.EvalSample | None(optional)rescore_of: str | None(rescoreOfon the wire) (optional)
EvalOverrides
Section titled “EvalOverrides”For an agent candidate: block content its replays run instead of the version's pinned content (an improvement pass's search). settings: values by settings block id, each a block the version pins, satisfying its schema. prompts: a template for the prompt block the version pins, which reads and names only what the agent has (its parameters, the variables the current template reads, the settings blocks it pins, its tools' and blocks' ids) and is at most twice as long. Anything else is 400 validation-failed. A comparison with overrides can't gate a promotion.
settings: dict[str, dict[str, Any]] | None(optional)prompts: dict[str, kindgi.client.Prompts] | None(optional)
EvalRun
Section titled “EvalRun”run_id: uuid.UUID(runIdon the wire)tenant_id: uuid.UUID(tenantIdon the wire)project_id: uuid.UUID | None(projectIdon the wire) (optional)suite_id: str(suiteIdon the wire)suite_version: str(suiteVersionon the wire)kind: Union[Literal['accuracy', 'pairwise', 'regression', 'human-review', 'benchmark', 'custom', 'judged'], str]agent_ref: kindgi.client.EvalRunAgentRef | None(agentRefon the wire) (optional)flow_ref: kindgi.client.EvalRunFlowRef | None(flowRefon the wire) (optional)status: Union[Literal['pending', 'running', 'completed', 'failed', 'cancelled'], str]dry_run: bool(dryRunon the wire)started_at: AwareDatetime(startedAton the wire)completed_at: AwareDatetime | None(completedAton the wire) (optional)result: dict[str, Any] | None(optional)error: str | None(optional)cancel_reason: str | None(cancelReasonon the wire) (optional)correlation_id: str | None(correlationIdon the wire) (optional)comparison: kindgi.client.EvalComparison | None(optional)
EvalRunAgentRef
Section titled “EvalRunAgentRef”agent_id: str(agentIdon the wire)version: str | None(optional)
EvalRunCollectionPage
Section titled “EvalRunCollectionPage”data: list[kindgi.client.EvalRun]next_cursor: str | None(nextCursoron the wire) (optional)has_more: bool(hasMoreon the wire)
EvalRunFlowRef
Section titled “EvalRunFlowRef”flow_id: str(flowIdon the wire)version: str | None(optional)
EvalRunStatus
Section titled “EvalRunStatus”root: Literal['pending', 'running', 'completed', 'failed', 'cancelled']
EvalSample
Section titled “EvalSample”Only part of the test set's cases: split once into a hold-out part (about holdOutShare of them) and a search part (the rest), stratified by judgment (the cases with a "no" and the others are split on their own, a stratum of two or more giving each part at least one), in the order of a hash of each case id and seed. The same seed always splits the same test set the same way. A promotion gate refuses a comparison on the search part (comparison.sample).
part: Union[Literal['search', 'hold-out'], str]seed: strhold_out_share: float(holdOutShareon the wire)
EvalSuite
Section titled “EvalSuite”id: strtenant_id: uuid.UUID(tenantIdon the wire)project_id: uuid.UUID | None(projectIdon the wire) (optional)version: strkind: Union[Literal['accuracy', 'pairwise', 'regression', 'human-review', 'benchmark', 'custom', 'judged'], str]description: str | None(optional)spec: dict[str, Any]unregistered_at: AwareDatetime | None(unregisteredAton the wire) (optional)
EvalSuiteCollectionPage
Section titled “EvalSuiteCollectionPage”data: list[kindgi.client.EvalSuite]next_cursor: str | None(nextCursoron the wire) (optional)has_more: bool(hasMoreon the wire)
EvaluateProposalBody
Section titled “EvaluateProposalBody”Compare the proposal's candidate on a test set. The first evaluation publishes the block version and derives the agent version (both serve nowhere until promoted).
suite_id: str(suiteIdon the wire)objective: Optional[Literal['weightedYesShare', 'weightedPrecisionAtK']](optional)reads: Optional[Literal['recorded', 'live']](optional)repetitions: int | None(optional)k: int | None(optional)class_weights: Optional[Literal['as-recorded', 'restricted-only']](classWeightson the wire) (optional)sample: kindgi.client.EvalSample | None(optional)
Evidence
Section titled “Evidence”The judged evidence behind each gated metric; for a metric with maxDrop, the baseline's too.
min_cases: int | None(minCaseson the wire) (optional)min_weight: float | None(minWeighton the wire) (optional)
Evidence1
Section titled “Evidence1”judgment_ids: list[str] | None(judgmentIdson the wire) (optional)
EvidenceActor
Section titled “EvidenceActor”kind: Optional[Literal['user', 'agent', 'system', 'admin', 'external']](optional)id: str | None(optional)ip_address: str | None(ipAddresson the wire) (optional)user_agent: str | None(userAgenton the wire) (optional)
EvidenceKind
Section titled “EvidenceKind”root: str
EvidenceOutcome
Section titled “EvidenceOutcome”root: Literal['allowed', 'denied', 'succeeded', 'failed', 'escalated']
EvidenceProvenanceRef
Section titled “EvidenceProvenanceRef”run_id: str | None(runIdon the wire) (optional)node_id: str | None(nodeIdon the wire) (optional)record_id: str | None(recordIdon the wire) (optional)
EvidenceSignature
Section titled “EvidenceSignature”algorithm: Literal['ed25519']key_id: str(keyIdon the wire)value: strsigned_at: AwareDatetime(signedAton the wire)
EvidenceSubject
Section titled “EvidenceSubject”kind: str | None(optional)id: str | None(optional)
ExportAuditBundleBody
Section titled “ExportAuditBundleBody”Body for POST /v1/approvals/{approvalId}/audit-bundle, optional: no body signs with the active key. includeMessages adds the conversation messages of the approval's run.
signing_key_id: str | None(signingKeyIdon the wire) (optional)include_messages: bool | None(includeMessageson the wire) (optional)
ExportAuditBundleResult
Section titled “ExportAuditBundleResult”A decided approval's signed audit bundle. Body: { bundleSchemaVersion, approvalId, tenantId, subjectKind, subjectRef, requiredRole, status, createdAt, decidedAt?, decision, evidence: { guardrailResults?, messages? }, exportedAt }.
approval_id: uuid.UUID(approvalIdon the wire)kind: Optional[Literal['audit-bundle']](optional)bundle: strbundle_schema_version: str(bundleSchemaVersionon the wire)algorithm: Union[Literal['ed25519', 'ecdsa-p256-sha256'], str]signing_key_id: str(signingKeyIdon the wire)signature: strpublic_key: str(publicKeyon the wire)canonicalization: Literal['sorted-key-json']exported_at: AwareDatetime(exportedAton the wire)
ExportComplianceEvidenceBody
Section titled “ExportComplianceEvidenceBody”Optional: no body exports every exportable kind, signed with the active key.
signing_key_id: str | None(signingKeyIdon the wire) (optional)filter: kindgi.client.Filter | None(optional)
ExportComplianceEvidenceFilter
Section titled “ExportComplianceEvidenceFilter”Optional filter narrowing the export set. Composition is AND — every populated field must match. Absent / empty filter exports every record for the tenant.
run_id: str | None(runIdon the wire) (optional)agent_id: str | None(agentIdon the wire) (optional)flow_id: str | None(flowIdon the wire) (optional)kind: str | None(optional)from_: AwareDatetime | None(fromon the wire) (optional)to: AwareDatetime | None(optional)
ExportProvenanceBody
Section titled “ExportProvenanceBody”Optional: no body signs with the active key.
signing_key_id: str | None(signingKeyIdon the wire) (optional)include_messages: bool | None(includeMessageson the wire) (optional)
ExportProvenanceResult
Section titled “ExportProvenanceResult”A run's signed provenance. Body: { bundleSchemaVersion, provenanceId, runId, tenantId, version, createdAt, flowRef?, dag: { nodes, edges }, messages?, callUsage?, exportedAt }; callUsage is each model call's usage from the cost ledger, as it stood when signed.
run_id: uuid.UUID(runIdon the wire)kind: Optional[Literal['provenance']](optional)bundle: strbundle_schema_version: str(bundleSchemaVersionon the wire)algorithm: Union[Literal['ed25519', 'ecdsa-p256-sha256'], str]signing_key_id: str(signingKeyIdon the wire)signature: strpublic_key: str(publicKeyon the wire)canonicalization: Literal['sorted-key-json']exported_at: AwareDatetime(exportedAton the wire)
ExportSigningKey
Section titled “ExportSigningKey”A public key this deployment signs exports with.
key_id: str(keyIdon the wire)algorithm: Union[Literal['ed25519', 'ecdsa-p256-sha256'], str]public_key_pem: str(publicKeyPemon the wire)fingerprint: stractive: bool
ExportSigningKeyList
Section titled “ExportSigningKeyList”data: list[kindgi.client.ExportSigningKey]