Models: F
id: strrevision_id: str | None(revisionIdon the wire) (optional)type: strscope: kindgi.client.FactScopeversion: intcreated_at: AwareDatetime(createdAton the wire)updated_at: AwareDatetime | None(updatedAton the wire) (optional)content: Any | None(optional)content_ref: str | None(contentRefon the wire) (optional)content_hash: str | None(contentHashon the wire) (optional)size: int | None(optional)embedding_model: str | None(embeddingModelon the wire) (optional)retention: kindgi.client.Retention | None(optional)source: kindgi.client.FactSource | None(optional)caused_by_log_id: list[str] | None(causedByLogIdon the wire) (optional)supersedes: str | None(optional)trust: Optional[Annotated[Union[Literal['verified', 'asserted', 'unverified'], str], <kindgi.client._open.OpenEnum object at 0x10700bbd0>]](optional)verified_by: str | None(verifiedByon the wire) (optional)verified_at: AwareDatetime | None(verifiedAton the wire) (optional)attributed_to: kindgi.client.FactAttribution | None(attributedToon the wire) (optional)generated_by: kindgi.client.FactGeneratedBy | None(generatedByon the wire) (optional)subjects: list[kindgi.client.FactSubject] | None(optional)valid_from: AwareDatetime | None(validFromon the wire) (optional)valid_until: AwareDatetime | None(validUntilon the wire) (optional)observed_at: AwareDatetime | None(observedAton the wire) (optional)invalidated_at: AwareDatetime | None(invalidatedAton the wire) (optional)invalidated_by: str | None(invalidatedByon the wire) (optional)invalidation_reason: Optional[Annotated[Union[Literal['superseded', 'deleted', 'erased', 'expired'], str], <kindgi.client._open.OpenEnum object at 0x10700bbd0>]](invalidationReasonon the wire) (optional)review: Optional[Annotated[Union[Literal['pending'], str], <kindgi.client._open.OpenEnum object at 0x10700bbd0>]](optional)expires_at: AwareDatetime | None(expiresAton the wire) (optional)
FactAttribution
Section titled “FactAttribution”Who asserted a fact, set by the server from the writer.
kind: Union[Literal['user', 'service', 'agent'], str]id: stragent_version: str | None(agentVersionon the wire) (optional)
FactCollectionPage
Section titled “FactCollectionPage”data: list[kindgi.client.Fact]next_cursor: str | None(nextCursoron the wire) (optional)has_more: bool(hasMoreon the wire)
FactGeneratedBy
Section titled “FactGeneratedBy”The run step that wrote a fact, for one an agent wrote.
run_id: str(runIdon the wire)step_id: str | None(stepIdon the wire) (optional)tool_call_id: str | None(toolCallIdon the wire) (optional)
FactRevisionList
Section titled “FactRevisionList”data: list[kindgi.client.Fact]
FactScope
Section titled “FactScope”Fact scope object. tenantId is required; every optional key narrows the fact (userId, orgId, projectId, threadId, sessionId, participantId). A fact is readable by whoever has every container it names. Additional keys accepted for forward compatibility.
tenant_id: str(tenantIdon the wire)user_id: str | None(userIdon the wire) (optional)org_id: str | None(orgIdon the wire) (optional)project_id: str | None(projectIdon the wire) (optional)thread_id: str | None(threadIdon the wire) (optional)session_id: str | None(sessionIdon the wire) (optional)participant_id: str | None(participantIdon the wire) (optional)
FactSource
Section titled “FactSource”kind: Union[Literal['http-api', 'blob', 'mcp-tool', 'external-db', 'user-input'], str]uri: str | None(optional)freshness: kindgi.client.SourceFreshnessrefresh: kindgi.client.SourceRefresh
FactSubject
Section titled “FactSubject”Whom a fact is about: what access and erasure requests by person find.
kind: Union[Literal['participant', 'user', 'external'], str]id: str
FailureGroup
Section titled “FailureGroup”One group of failed runs: the same cause, subject and version.
code: str | None(optional)reason: str | None(optional)subject: kindgi.client.FailureSubjectversion: str | None(optional)count: intfirst_seen: AwareDatetime(firstSeenon the wire)last_seen: AwareDatetime(lastSeenon the wire)example_run_id: uuid.UUID(exampleRunIdon the wire)
FailureSubject
Section titled “FailureSubject”Whose runs a failure group counts: an agent's turns, or a flow's runs.
kind: Union[Literal['agent', 'flow'], str]id: str
Filter
Section titled “Filter”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)
FinishedRun
Section titled “FinishedRun”A finished top-level run: its identity and outcome, never its input or output. Field names match GET /v1/runs/{runId}.
id: uuid.UUIDproject_id: uuid.UUID(projectIdon the wire)flow_id: str(flowIdon the wire)flow_version: str(flowVersionon the wire)status: Union[Literal['completed', 'failed', 'cancelled'], str]dry_run: bool(dryRunon the wire)failure_message: str | None(failureMessageon the wire)failure: kindgi.client.RunFailure | None(optional)created_at: AwareDatetime(createdAton the wire)completed_at: AwareDatetime(completedAton the wire)usage: kindgi.client.RunTreeUsage | None(optional)agent: kindgi.client.RunAgent | None(optional)
FirstAdmin
Section titled “FirstAdmin”The person made the tenant's admin and member, by email: the runtime's own sign-in finds them. The runtime gives them every capability but secrets:reveal, to put on the keys they make. Absent: the answer carries an admin key instead, which takes the full system capability.
email: strname: str
FirstAdmin1
Section titled “FirstAdmin1”person_id: str(personIdon the wire)
FixProposal
Section titled “FixProposal”An improvement proposal: a change to one data block an agent version pins, for one live scope, taken through the same comparison, gate and promotion as any other version.
id: uuid.UUIDagent_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.ProposalChangehypothesis: strevidence: kindgi.client.Evidence1 | None(optional)drafter: kindgi.client.ProposalDrafterstatus: Union[Literal['draft', 'evaluating', 'evaluated', 'not-better', 'evaluation-failed', 'in-review', 'promoted', 'refused', 'rejected', 'expired', 'superseded', 'rolled-back', 'withdrawn'], str]candidate: kindgi.client.ProposalCandidate | None(optional)evaluation: kindgi.client.ProposalEvaluation | None(optional)promotion: kindgi.client.ProposalPromotion | None(optional)rolled_back: kindgi.client.RolledBack | None(rolledBackon the wire) (optional)withdrawn: kindgi.client.Withdrawn | None(optional)created_at: AwareDatetime(createdAton the wire)updated_at: AwareDatetime(updatedAton the wire)
FixProposalCollectionPage
Section titled “FixProposalCollectionPage”data: list[kindgi.client.FixProposal]has_more: bool(hasMoreon the wire)next_cursor: str | None(nextCursoron the wire) (optional)
id: strversion: strproject_id: uuid.UUID | None(projectIdon the wire) (optional)name: str | None(optional)description: str | None(optional)nodes: list[kindgi.client.FlowNode]edges: list[kindgi.client.FlowEdge]max_parallelism: int | None(maxParallelismon the wire) (optional)metadata: dict[str, Any] | None(optional)pins: kindgi.client.FlowPins | None(optional)pins_digest: str | None(pinsDigeston the wire) (optional)derived_from: kindgi.client.VersionDerivation | None(derivedFromon the wire) (optional)unregistered_at: AwareDatetime | None(unregisteredAton the wire) (optional)
FlowCollectionPage
Section titled “FlowCollectionPage”data: list[kindgi.client.Flow]next_cursor: str | None(nextCursoron the wire) (optional)has_more: bool(hasMoreon the wire)
FlowEdge
Section titled “FlowEdge”id: strfrom_: str(fromon the wire)to: strwhen: dict[str, Any] | None(optional)policy: dict[str, Any] | None(optional)
FlowId
Section titled “FlowId”root: str
FlowNode
Section titled “FlowNode”id: strkind: Union[Literal['tool', 'agent', 'loop', 'fanout', 'subgraph'], str]ref: str | None(optional)config: dict[str, Any] | None(optional)
FlowPins
Section titled “FlowPins”The exact tool and agent versions a flow version runs: its lockfile. Set by the runtime when the version is published, never in the publish body: each tool the flow runs, and each agent it runs at no named version, resolves once to its latest version then, which every run of that flow version uses. Absent on a version published before pins existed (it binds the latest versions per run).
tools: dict[str, str]agents: dict[str, str]
FlowRef
Section titled “FlowRef”id: strversion: str
FlowVersionOverrides
Section titled “FlowVersionOverrides”Agents and tools a flow runs at other exact versions than the flow version's pins ("this flow, with acme.scorer at 0.4.0"), without publishing a new flow version: a comparison's flow candidate (versions on the start body and the run's comparison), and the flow runs that replay it (a run's versions). Each id must be an agent or tool the flow uses.
tools: dict[str, str] | None(optional)agents: dict[str, str] | None(optional)
The part of these sums judged on this output itself (a replay judged after it ran). Absent when none was.
yes_weight: float(yesWeighton the wire)total_weight: float(totalWeighton the wire)items: int