Models: C
run_id: str(runIdon the wire)node_id: str | None(nodeIdon the wire) (optional)scope: str | None(optional)tool_id: str(toolIdon the wire)arguments: Any | None(optional)result: Any | None(optional)from_event: Optional[Literal[True]](fromEventon the wire) (optional)
CallDifferenceCount
Section titled “CallDifferenceCount”One way a run's calls differed from a correction; it can quote argument values.
tool: strkind: Literal['count']expected: intactual: intrefused: int | None(optional)
CallDifferenceFieldValue
Section titled “CallDifferenceFieldValue”One way a run's calls differed from a correction; it can quote argument values.
tool: strkind: Literal['field-value']field: strexpected: Anyactual: Anyrefused: bool | None(optional)
CallDifferenceMissingField
Section titled “CallDifferenceMissingField”One way a run's calls differed from a correction; it can quote argument values.
tool: strkind: Literal['missing-field']field: strexpected: Anyrefused: bool | None(optional)
CallDifferenceMustNotCall
Section titled “CallDifferenceMustNotCall”One way a run's calls differed from a correction; it can quote argument values.
tool: strkind: Literal['must-not-call']actual: intrefused: int | None(optional)
CallUsage
Section titled “CallUsage”usage: kindgi.client.ModelCallTokenscost_usd: float | None(costUsdon the wire) (optional)duration_ms: int | None(durationMson the wire) (optional)served_model: str | None(servedModelon the wire) (optional)
CandidateItem
Section titled “CandidateItem”An output's score: Σ yesWeight and Σ totalWeight over its judged items, and over those among the first k ranked items.
yes_weight: float(yesWeighton the wire)total_weight: float(totalWeighton the wire)items: intjudged_items: int(judgedItemson the wire)top_k: kindgi.client.TopK(topKon the wire)fresh: kindgi.client.Fresh | None(optional)
Capability
Section titled “Capability”root: str
Capability4
Section titled “Capability4”Capability declaration — see @kindgi/capabilities. Additional properties are permitted so new capability kinds do not require a wire change.
Capability5
Section titled “Capability5”root: str
CapabilityCollectionPage
Section titled “CapabilityCollectionPage”data: list[kindgi.client.CapabilityDescriptor]next_cursor: str | None(nextCursoron the wire) (optional)has_more: bool(hasMoreon the wire)
CapabilityDescriptor
Section titled “CapabilityDescriptor”id: strfeature: Union[str, 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 0x10980e890>]]description: strkind: str | None(optional)params_schema: dict[str, Any] | None(paramsSchemaon the wire) (optional)providers: list[kindgi.client.CapabilityProvider] | None(optional)
CapabilityProvider
Section titled “CapabilityProvider”A provider of the tenant with a model that has the feature.
provider_id: str(providerIdon the wire)models: list[str]
Change
Section titled “Change”block_id: str(blockIdon the wire)content: kindgi.client.Content1
Changes
Section titled “Changes”The first repetition's items against the judged ones.
kept: list[kindgi.client.KeptItem]dropped: list[kindgi.client.DroppedItem]new: list[kindgi.client.NewItem]
ClaimMappingScopesSpec
Section titled “ClaimMappingScopesSpec”Claim path + optional delimiter for extracting Kindgi OAuth scopes from provider claims. When absent, scopes come from the token response scope field instead.
claim: strdelimiter: str | None(optional)
ClaimMappingSpec
Section titled “ClaimMappingSpec”Per-provider claim mapping. All fields optional; closer to OIDC defaults (sub/email/name) → fewer overrides needed.
user_id: str | None(userIdon the wire) (optional)email: str | None(optional)display_name: str | None(displayNameon the wire) (optional)scopes: kindgi.client.ClaimMappingScopesSpec | None(optional)metadata: list[kindgi.client.Metadatum] | None(optional)
CodeArtifactRefFilesystem
Section titled “CodeArtifactRefFilesystem”Handler-artifact pointer. Discriminated on kind: oci is the deploy-pipeline shape (image + module path + artifactVersion); filesystem is the local-development shape — absolute host path at the pack's on-disk handler file. Production servers SHOULD reject filesystem.
kind: Literal['filesystem']module_path: str(modulePathon the wire)
CodeArtifactRefOci
Section titled “CodeArtifactRefOci”Handler-artifact pointer. Discriminated on kind: oci is the deploy-pipeline shape (image + module path + artifactVersion); filesystem is the local-development shape — absolute host path at the pack's on-disk handler file. Production servers SHOULD reject filesystem.
kind: Literal['oci']image_ref: str(imageRefon the wire)module_path: str(modulePathon the wire)artifact_version: str(artifactVersionon the wire)
CodeArtifactRefUnrecognized
Section titled “CodeArtifactRefUnrecognized”A kind this client doesn't know yet, from a newer runtime: the object as it came, every field kept.
kind: str
Comparison
Section titled “Comparison”max_age_hours: float | None(maxAgeHourson the wire) (optional)suite: kindgi.client.Suite | None(optional)
Comparison1
Section titled “Comparison1”eval_run_id: uuid.UUID | None(evalRunIdon the wire) (optional)role: Union[Literal['reference', 'candidate', 'proof'], str]part: Union[Literal['search', 'hold-out'], str]block_id: str | None(blockIdon the wire) (optional)changed: dict[str, Any] | None(optional)score: float | None(optional)failed: str | None(optional)refused: list[kindgi.client.RefusedItem] | None(optional)hypothesis: str | None(optional)
ComparisonCandidateAgent
Section titled “ComparisonCandidateAgent”What ran on the cases: an agent version, or a flow version (with any versions it swapped in).
kind: Literal['agent']agent_id: str(agentIdon the wire)version: strpins_digest: str | None(pinsDigeston the wire) (optional)overrides: kindgi.client.Overrides | None(optional)
ComparisonCandidateFlow
Section titled “ComparisonCandidateFlow”What ran on the cases: an agent version, or a flow version (with any versions it swapped in).
kind: Literal['flow']flow_id: str(flowIdon the wire)version: strversions: kindgi.client.FlowVersionOverrides | None(optional)
ComparisonCaseResult
Section titled “ComparisonCaseResult”One case of a comparison: its replay runs, the scores, the items kept, dropped and new, the tool calls, and why it didn't run when it didn't.
case_id: str(caseIdon the wire)run_ids: list[str](runIdson the wire)baseline: kindgi.client.ComparisonCaseResultBaselinecandidate: list[kindgi.client.CandidateItem]changes: kindgi.client.Changes | None(optional)tools: list[kindgi.client.ComparisonCaseResultTool] | None(optional)corrections: list[kindgi.client.ComparisonCaseResultCorrection] | None(optional)correction_differences: list[kindgi.client.CorrectionDifference] | None(correctionDifferenceson the wire) (optional)cost_usd: list[kindgi.client.CostUsdItem] | None(costUsdon the wire) (optional)diverged: boolrefused_writes: int(refusedWriteson the wire)no_context: bool(noContexton the wire)approval_skipped: bool(approvalSkippedon the wire)error: str | None(optional)stopped: kindgi.client.Stopped | None(optional)rescored: Optional[Literal[False]](optional)
ComparisonCaseResultBaseline
Section titled “ComparisonCaseResultBaseline”An output's score: Σ yesWeight and Σ totalWeight over its judged items, and over those among the first k ranked items.
yes_weight: float(yesWeighton the wire)total_weight: float(totalWeighton the wire)items: intjudged_items: int(judgedItemson the wire)top_k: kindgi.client.TopK(topKon the wire)fresh: kindgi.client.Fresh | None(optional)
ComparisonCaseResultCorrection
Section titled “ComparisonCaseResultCorrection”judgment_id: str(judgmentIdon the wire)pass_: bool(passon the wire)repetitions_passed: int(repetitionsPassedon the wire)repetitions: int
ComparisonCaseResultTool
Section titled “ComparisonCaseResultTool”step: intcall_id: str(callIdon the wire)tool_id: str(toolIdon the wire)tool_version: str(toolVersionon the wire)arguments: Anysource: Literal['live', 'recorded', 'refused']recomputed: bool | None(optional)reason: str | None(optional)
ComparisonMetric
Section titled “ComparisonMetric”One metric, the recorded runs beside the candidate. null where a side had no judged evidence; n / weight are the candidate's evidence (cases with judged items, and the judgment weight behind them), baselineN / baselineWeight the recorded side's.
baseline: float | Nonecandidate: float | Nonedelta: float | Nonen: intweight: floatbaseline_n: int(baselineNon the wire)baseline_weight: float(baselineWeighton the wire)direction: Literal['higher']k: int | None(optional)spread: float | None(optional)fresh_weight: float | None(freshWeighton the wire) (optional)
CompleteApprovalBody
Section titled “CompleteApprovalBody”decision: Literal['approve', 'reject', 'escalate', 'withdraw']rationale: str | None(optional)value: Any | None(optional)
CompleteApprovalResult
Section titled “CompleteApprovalResult”A recorded decision, and what it did to the run waiting on the approval. runStatus is the run's status when the decision couldn't resolve its waitpoint because the run had already ended (e.g. cancelled after the decision was recorded); the decision stands.
kind: Union[Literal['terminal', 'escalated'], str]approval: kindgi.client.Approvaldecision: kindgi.client.ReviewDecisionnext_approval: kindgi.client.Approval | None(nextApprovalon the wire) (optional)waitpoint_resolved: bool(waitpointResolvedon the wire)run_status: Optional[Annotated[Union[Literal['pending', 'running', 'suspended', 'completed', 'failed', 'cancelled'], str], <kindgi.client._open.OpenEnum object at 0x10980e890>]](runStatuson the wire) (optional)resume: Optional[Annotated[kindgi.client.CompleteApprovalResultResumeOk | kindgi.client.CompleteApprovalResultResumeFailed | kindgi.client.CompleteApprovalResultResumeUnrecognized, <kindgi.client._open.OpenUnion object at 0x10a2bf690>]](optional)
CompleteApprovalResultResumeFailed
Section titled “CompleteApprovalResultResumeFailed”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
CompleteApprovalResultResumeOk
Section titled “CompleteApprovalResultResumeOk”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']
CompleteApprovalResultResumeUnrecognized
Section titled “CompleteApprovalResultResumeUnrecognized”A kind this client doesn't know yet, from a newer runtime: the object as it came, every field kept.
kind: str
ComplianceEvidence
Section titled “ComplianceEvidence”One evidence record — matches @kindgi/specs/compliance-evidence.schema.json (payload is a versioned document opaque to the wire schema).
id: strtenant_id: uuid.UUID(tenantIdon the wire)project_id: uuid.UUID | None(projectIdon the wire) (optional)kind: strtimestamp: AwareDatetimeactor: kindgi.client.Actor | None(optional)subject: kindgi.client.Subject1 | None(optional)outcome: Optional[Annotated[Union[Literal['allowed', 'denied', 'succeeded', 'failed', 'escalated'], str], <kindgi.client._open.OpenEnum object at 0x10980e890>]](optional)payload: dict[str, Any]provenance_ref: kindgi.client.ProvenanceRef2 | None(provenanceRefon the wire) (optional)signature: kindgi.client.Signature1 | None(optional)
ComplianceEvidenceCollectionPage
Section titled “ComplianceEvidenceCollectionPage”data: list[kindgi.client.ComplianceEvidence]has_more: bool(hasMoreon the wire)next_cursor: str | None(nextCursoron the wire) (optional)
ConnectFinish
Section titled “ConnectFinish”kind: Union[Literal['connected', 'declined', 'pick-installation'], str]request: kindgi.client.ConnectRequestconnection: kindgi.client.Connection | None(optional)reviewer_seat: bool | None(reviewerSeaton the wire) (optional)
ConnectRequest
Section titled “ConnectRequest”A connect: the owner goes to connectUrl, consents at the app, and comes back. A run that needs a connection it lacks waits on one.
request_id: uuid.UUID(requestIdon the wire)env_name: str(envNameon the wire)app_id: uuid.UUID(appIdon the wire)app: strowner: kindgi.client.ConnectionOwnerpermissions: list[str]says: list[str]reconnects: uuid.UUID | None(optional)run_id: str | None(runIdon the wire) (optional)name: str | None(optional)started_by: str | None(startedByon the wire) (optional)state: Union[Literal['pending', 'connected', 'declined', 'expired', 'failed'], str]failure: str | None(optional)missing: list[str] | None(optional)installations: list[kindgi.client.ConnectRequestInstallation] | None(optional)connection_id: uuid.UUID | None(connectionIdon the wire) (optional)connect_url: AnyUrl(connectUrlon the wire)expires_at: AwareDatetime(expiresAton the wire)created_at: AwareDatetime(createdAton the wire)created_by: str(createdByon the wire)
ConnectRequestInstallation
Section titled “ConnectRequestInstallation”A GitHub App installation the person can reach.
installation_id: str(installationIdon the wire)account: kindgi.client.ConnectionAccount
ConnectStart
Section titled “ConnectStart”authorize_url: AnyUrl(authorizeUrlon the wire)
Connection
Section titled “Connection”One owner's account at an app, through a registration, in one env. Never its token.
connection_id: uuid.UUID(connectionIdon the wire)env_name: str(envNameon the wire)app_id: uuid.UUID(appIdon the wire)app: strowner: kindgi.client.ConnectionOwneraccount: kindgi.client.ConnectionAccountpermissions: list[str]state: Union[Literal['working', 'needs-reconnecting', 'removing', 'removed'], str]state_reason: str | None(stateReasonon the wire) (optional)installation_id: str | None(installationIdon the wire) (optional)access_ends_at: AwareDatetime | None(accessEndsAton the wire) (optional)connected_at: AwareDatetime(connectedAton the wire)last_used_at: AwareDatetime | None(lastUsedAton the wire) (optional)created_at: AwareDatetime(createdAton the wire)created_by: str(createdByon the wire)updated_at: AwareDatetime(updatedAton the wire)removed_at: AwareDatetime | None(removedAton the wire) (optional)removed_by: str | None(removedByon the wire) (optional)removed_reason: Optional[Annotated[Union[Literal['disconnected', 'revoked-at-app', 'uninstalled', 'registration-removed', 'replaced'], str], <kindgi.client._open.OpenEnum object at 0x10980e890>]](removedReasonon the wire) (optional)withdrawn: Optional[Annotated[Union[Literal['at-app', 'app-failed', 'kept-for-other-connection', 'not-supported'], str], <kindgi.client._open.OpenEnum object at 0x10980e890>]](optional)
ConnectionAccount
Section titled “ConnectionAccount”Whose account a connection is at the app.
id: strlabel: str
ConnectionApp
Section titled “ConnectionApp”A tenant's registration of its own client at an app. Secrets are references, never values.
app_id: uuid.UUID(appIdon the wire)app: strlabel: str | None(optional)oauth2: kindgi.client.ConnectionOAuth2App | None(optional)github_app: kindgi.client.ConnectionGitHubApp | None(githubAppon the wire) (optional)projects: list[str] | None(optional)redirect_url: AnyUrl(redirectUrlon the wire)notices_url: AnyUrl(noticesUrlon the wire)created_at: AwareDatetime(createdAton the wire)updated_at: AwareDatetime(updatedAton the wire)removed_at: AwareDatetime | None(removedAton the wire) (optional)
ConnectionAppPage
Section titled “ConnectionAppPage”data: list[kindgi.client.ConnectionApp]next_cursor: str | None(nextCursoron the wire) (optional)has_more: bool(hasMoreon the wire)
ConnectionAppRemoved
Section titled “ConnectionAppRemoved”connections_removed: int(connectionsRemovedon the wire)
ConnectionEntry
Section titled “ConnectionEntry”An app this server can connect to.
id: strname: strowners: list[Annotated[Union[Literal['member', 'company'], str], <kindgi.client._open.OpenEnum object at 0x10980e890>]]sign_in: kindgi.client.SignIn(signInon the wire)permissions: dict[str, kindgi.client.ConnectionEntryPermission]removal: kindgi.client.Removal | None(optional)setup_guide: str(setupGuideon the wire)
ConnectionEntryList
Section titled “ConnectionEntryList”data: list[kindgi.client.ConnectionEntry]
ConnectionEntryPermission
Section titled “ConnectionEntryPermission”says: strchanges: bool
ConnectionEntrySignInTenant
Section titled “ConnectionEntrySignInTenant”Present when the sign-in happens in a directory of the app's own (Microsoft's tenant, not a Kindgi tenant). A registration's oauth2.tenant names it; without default, each registration must give its own.
default: str | None(optional)
ConnectionGitHubApp
Section titled “ConnectionGitHubApp”app_number: int(appNumberon the wire)slug: strclient_id: str(clientIdon the wire)client_secret: kindgi.client.ConnectionSecretRef(clientSecreton the wire)private_key: kindgi.client.ConnectionSecretRef(privateKeyon the wire)webhook_secret: kindgi.client.ConnectionSecretRef(webhookSecreton the wire)
ConnectionNeed
Section titled “ConnectionNeed”app: strpermissions: list[kindgi.client.Permission]as_: Union[Literal['person', 'company'], str](ason the wire)
ConnectionOAuth2App
Section titled “ConnectionOAuth2App”client_id: str(clientIdon the wire)client_secret: kindgi.client.ConnectionSecretRef(clientSecreton the wire)tenant: str | None(optional)
ConnectionOwner
Section titled “ConnectionOwner”Who owns a connection: one member (kind: member, with their userId), or the company (kind: company, the tenant's own account).
kind: Union[Literal['member', 'company'], str]user_id: str | None(userIdon the wire) (optional)
ConnectionPage
Section titled “ConnectionPage”data: list[kindgi.client.Connection]next_cursor: str | None(nextCursoron the wire) (optional)has_more: bool(hasMoreon the wire)
ConnectionSecretRef
Section titled “ConnectionSecretRef”A secret by name in the deployment's secrets store, resolved at tenant scope. The registration keeps only this reference, never the value.
env_name: str(envNameon the wire)name: str
ConsoleLink
Section titled “ConsoleLink”One of the deployment's own links, which the console shows on every page.
label: strurl: AnyUrl
Content
Section titled “Content”The new content: { values } for a settings block (its schema carries over), { template } for a prompt block (its parameters carry over).
values: dict[str, Any] | None(optional)template: str | None(optional)
Content1
Section titled “Content1”{ values } for a settings block (they must satisfy its schema), { template } for a prompt block.
values: dict[str, Any] | None(optional)template: str | None(optional)
Conversation
Section titled “Conversation”id: uuid.UUIDtenant_id: uuid.UUID(tenantIdon the wire)agent_id: str(agentIdon the wire)agent_version: str(agentVersionon the wire)title: strparticipant_id: str | None(participantIdon the wire) (optional)project_id: uuid.UUID | None(projectIdon the wire) (optional)opened_by: str | None(openedByon the wire) (optional)scope: dict[str, Any]status: Union[Literal['open', 'closed'], str]opened_at: AwareDatetime(openedAton the wire)closed_at: AwareDatetime | None(closedAton the wire) (optional)unregistered_at: AwareDatetime | None(unregisteredAton the wire) (optional)turn_count: int(turnCounton the wire)last_message_at: AwareDatetime | None(lastMessageAton the wire) (optional)metadata: dict[str, Any] | None(optional)
ConversationCollectionPage
Section titled “ConversationCollectionPage”data: list[kindgi.client.Conversation]next_cursor: str | None(nextCursoron the wire) (optional)has_more: bool(hasMoreon the wire)opened_by: Optional[Annotated[Union[Literal['me'], str], <kindgi.client._open.OpenEnum object at 0x10980e890>]](openedByon the wire) (optional)
ConversationMessage
Section titled “ConversationMessage”sequence: introle: Union[Literal['user', 'agent', 'tool', 'system'], str]content: Anytool_call: kindgi.client.ToolCall | None(toolCallon the wire) (optional)actor: str | None(optional)created_at: AwareDatetime(createdAton the wire)
ConversationMessageCollectionPage
Section titled “ConversationMessageCollectionPage”data: list[kindgi.client.ConversationMessage]next_cursor: str | None(nextCursoron the wire) (optional)has_more: bool(hasMoreon the wire)
ConversationPolicy
Section titled “ConversationPolicy”history_limit: int | None(historyLimiton the wire) (optional)hitl_after_turns: int | None(hitlAfterTurnson the wire) (optional)
ConversationStatus
Section titled “ConversationStatus”root: Literal['open', 'closed']
Correction
Section titled “Correction”An expert's correction of a run's decisions: the tool calls the agent should have made, and the tools it should not have called at all. Graded deterministically on a replay. A tool can't be in both calls and notCalled, and one of them must be non-empty (both empty is a 400).
calls: list[kindgi.client.ExpectedCall]not_called: list[kindgi.client.NotCalledItem](notCalledon the wire)
CorrectionDifference
Section titled “CorrectionDifference”judgment_id: str(judgmentIdon the wire)repetition: intdifferences: list[kindgi.client.CallDifferenceCount | kindgi.client.CallDifferenceMustNotCall | kindgi.client.CallDifferenceMissingField | kindgi.client.CallDifferenceFieldValue]
Corrections
Section titled “Corrections”Corrections graded across the cases: shown for a promotion gate, not enforced. Absent when the test set carries no corrections.
checked: intpassed: intjudgments: list[kindgi.client.JudgedComparisonSummaryCorrectionsJudgment] | None(optional)
CostAggregateGroup
Section titled “CostAggregateGroup”key: dict[str, str | None]count: inttotal_usd: float(totalUsdon the wire)tokens: kindgi.client.CostTokenTotals
CostAggregateResult
Section titled “CostAggregateResult”groups: list[kindgi.client.CostAggregateGroup]total_groups: int | None(totalGroupson the wire) (optional)truncated: bool | None(optional)total_usd: float(totalUsdon the wire)total_records: int(totalRecordson the wire)tokens: kindgi.client.CostTokenTotalstime_range: kindgi.client.TimeRange(timeRangeon the wire)group_by: list[Annotated[Union[Literal['agentId', 'runId', 'category', 'providerId', 'day', 'month', 'tenant', 'conversationId', 'model', 'servedModel', 'projectId', 'orgId', 'rootRunId', 'flowId'], str], <kindgi.client._open.OpenEnum object at 0x10980e890>]](groupByon the wire)
CostRecord
Section titled “CostRecord”id: strtenant_id: uuid.UUID(tenantIdon the wire)category: strprovider_id: str | None(providerIdon the wire) (optional)run_id: uuid.UUID | None(runIdon the wire) (optional)agent_id: str | None(agentIdon the wire) (optional)conversation_id: uuid.UUID | None(conversationIdon the wire) (optional)quantity: floatunit: strcost_usd: float | None(costUsdon the wire) (optional)occurred_at: AwareDatetime(occurredAton the wire)metrics: dict[str, Any] | None(optional)attributes: dict[str, Any] | None(optional)call_id: str | None(callIdon the wire) (optional)project_id: uuid.UUID | None(projectIdon the wire) (optional)root_run_id: uuid.UUID | None(rootRunIdon the wire) (optional)parent_run_id: uuid.UUID | None(parentRunIdon the wire) (optional)agent_version: str | None(agentVersionon the wire) (optional)flow_id: str | None(flowIdon the wire) (optional)node_id: str | None(nodeIdon the wire) (optional)step: int | None(optional)purpose: str | None(optional)model: str | None(optional)served_model: str | None(servedModelon the wire) (optional)fallback: bool | None(optional)status: Optional[Annotated[Union[Literal['ok', 'failed'], str], <kindgi.client._open.OpenEnum object at 0x10980e890>]](optional)usage: kindgi.client.ModelCallTokens | None(optional)thinking: kindgi.client.ModelCallThinking | None(optional)duration_ms: int | None(durationMson the wire) (optional)finish_reason: str | None(finishReasonon the wire) (optional)provider_request_id: str | None(providerRequestIdon the wire) (optional)attempts: int | None(optional)error: kindgi.client.ModelCallError | None(optional)raw_usage: kindgi.client.RawUsage | None(rawUsageon the wire) (optional)
CostRecordCollectionPage
Section titled “CostRecordCollectionPage”data: list[kindgi.client.CostRecord]next_cursor: str | None(nextCursoron the wire) (optional)has_more: bool(hasMoreon the wire)
CostTokenTotals
Section titled “CostTokenTotals”prompt: intcompletion: intcache_read: int(cacheReadon the wire)cache_write: int(cacheWriteon the wire)reasoning: int
CostUsdItem
Section titled “CostUsdItem”root: float
CreateConnectRequestBody
Section titled “CreateConnectRequestBody”app: strapp_id: uuid.UUID | None(appIdon the wire) (optional)project_id: str | None(projectIdon the wire) (optional)permissions: list[str]for_: Optional[Literal['me', 'company']](foron the wire) (optional)
CreateConnectionAppBody
Section titled “CreateConnectionAppBody”Give oauth2 for an app that signs in with OAuth, githubApp for a GitHub App.
app: strlabel: str | None(optional)oauth2: kindgi.client.ConnectionOAuth2App | None(optional)github_app: kindgi.client.ConnectionGitHubApp | None(githubAppon the wire) (optional)projects: list[str] | None(optional)
CreateJudgeClassBody
Section titled “CreateJudgeClassBody”scope: kindgi.client.JudgeClassScopeTenant | kindgi.client.JudgeClassScopeProject | kindgi.client.JudgeClassScopeAgent | kindgi.client.JudgeClassScopeUnrecognizedname: strweight: floatdescription: str | None(optional)assertable_by: kindgi.client.JudgeClassAssertableBy | None(assertableByon the wire) (optional)
CreateJudgmentBody
Section titled “CreateJudgmentBody”run_id: str(runIdon the wire)item: kindgi.client.JudgedItemverdict: Literal['yes', 'no']reason: str | None(optional)judge_class_id: str | None(judgeClassIdon the wire) (optional)participant_id: str | None(participantIdon the wire) (optional)correction: kindgi.client.Correction | None(optional)
CreateMemoryErasureBody
Section titled “CreateMemoryErasureBody”root: kindgi.client.MemoryErasureFactSelector | kindgi.client.MemoryErasureSubjectSelector | kindgi.client.MemoryErasureConversationSelector
CreateProposalBody
Section titled “CreateProposalBody”A hand-written proposal: new content for a data block that fromVersion pins, for a live scope. The same change from the same version for the same scope is one proposal (answered with X-Proposal-Deduped: true).
agent_id: str(agentIdon the wire)from_version: str(fromVersionon the wire)scope: kindgi.client.LiveScopeTenant | kindgi.client.LiveScopeOrg | kindgi.client.LiveScopeProject | kindgi.client.LiveScopeSegment | kindgi.client.LiveScopeUnrecognizedtier: Union[Literal['settings-block', 'prompt-block'], str]change: kindgi.client.Changehypothesis: strevidence: kindgi.client.Evidence1 | None(optional)
CreateResourceResult
Section titled “CreateResourceResult”Shared 201 response body for platform-hierarchy create endpoints — the freshly-assigned id of the created row.
id: str
CreateServiceAccountBody
Section titled “CreateServiceAccountBody”name: strdescription: str | None(optional)grants: list[Annotated[kindgi.client.ServiceAccountGrantTenantAdmin | kindgi.client.ServiceAccountGrantTenantMember | kindgi.client.ServiceAccountGrantProjectBody, FieldInfo(annotation=NoneType, required=True, discriminator='kind')]] | None(optional)
CreateSystemTenantBody
Section titled “CreateSystemTenantBody”name: strslug: str | None(optional)production_allowed: bool | None(productionAllowedon the wire) (optional)test: bool | None(optional)image_prefix: str | None(imagePrefixon the wire) (optional)first_admin: kindgi.client.FirstAdmin | None(firstAdminon the wire) (optional)
CreateSystemTenantResult
Section titled “CreateSystemTenantResult”tenant: kindgi.client.SystemTenantfirst_admin: kindgi.client.FirstAdmin1 | None(firstAdminon the wire) (optional)admin_key: kindgi.client.AdminKey | None(adminKeyon the wire) (optional)
CreateUserBody
Section titled “CreateUserBody”display_name: str(displayNameon the wire)primary_email: str | None(primaryEmailon the wire) (optional)send_invite: bool | None(sendInviteon the wire) (optional)
CreateWebhookEndpointBody
Section titled “CreateWebhookEndpointBody”url: AnyUrlevents: list[Annotated[Union[Literal['run.finished', 'improvement-pass.finished', 'approval.requested'], str], <kindgi.client._open.OpenEnum object at 0x10980e890>]]filter: kindgi.client.WebhookEndpointFilter | None(optional)secret_ref: kindgi.client.WebhookSecretRef(secretRefon the wire)description: str | None(optional)