Skip to content

Models: P

View as Markdown
  • suspended: bool
  • since: AwareDatetime

Change what it runs (the target fields, as at registration, which also needs execute on the new target), when, or its policies.

  • flow_id: str | None (flowId on the wire) (optional)
  • flow_version: str | None (flowVersion on the wire) (optional)
  • agent_id: str | None (agentId on the wire) (optional)
  • agent_version: str | None (agentVersion on the wire) (optional)
  • improve: kindgi.client.ImproveScheduleTarget | None (optional)
  • config: kindgi.client.Config7 | None (optional)
  • catch_up: Optional[Literal['latest', 'skip']] (catchUp on the wire) (optional)
  • overlap: Optional[Literal['skip', 'allow']] (optional)
  • starting_deadline_seconds: int | None (startingDeadlineSeconds on the wire) (optional)
  • label: str | None (optional)

Fields to change; absent fields are kept. filter is replaced as a whole.

  • url: AnyUrl | None (optional)
  • events: list[Literal['run.finished', 'improvement-pass.finished', 'approval.requested']] | None (optional)
  • filter: kindgi.client.WebhookEndpointFilter | None (optional)
  • secret_ref: kindgi.client.WebhookSecretRef | None (secretRef on the wire) (optional)
  • description: str | None (optional)
  • config: kindgi.client.Config8 | None (optional)
  • label: str | None (optional)
  • flow_version: str | None (flowVersion on the wire) (optional)
  • hmac_secret_name: str | None (hmacSecretName on the wire) (optional)
  • signature: kindgi.client.WebhookSignature1 | kindgi.client.WebhookSignature2 | None (optional)
  • delivery_id_header: str | None (deliveryIdHeader on the wire) (optional)
  • body_limit_bytes: int | None (bodyLimitBytes on the wire) (optional)
  • rate_limit_per_minute: int | None (rateLimitPerMinute on the wire) (optional)
  • domain: 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', '*']
  • purged: int
  • remaining: int
  • policy_id: str | None (policyId on the wire) (optional)
  • missing_adapter: Optional[Literal[True]] (missingAdapter on the wire) (optional)

The grant to give or take: tenant admin. A person's project and team roles have their own membership routes.

  • kind: Literal['tenant-admin']

What a person may do, as granted directly: tenant admin, a role on a project (its memberships), a role in a team, and the reviewer roster. What a team's or an org's grants imply is not expanded.

  • user_id: str (userId on the wire)
  • tenant_admin: bool | None (tenantAdmin on the wire) (optional)
  • tenant_member: bool | None (tenantMember on the wire) (optional)
  • projects: list[kindgi.client.PersonProjectRole]
  • teams: list[kindgi.client.PersonTeamRole]
  • reviewer: kindgi.client.PersonReviewerRole | None (optional)

A person's direct role on a project.

  • project_id: str (projectId on the wire)
  • role: Literal['viewer', 'editor', 'owner', 'admin', 'member']

A person's active entry on the reviewer roster.

  • role: Literal['standard', 'senior', 'admin']

A person's role in a team.

  • team_id: str (teamId on the wire)
  • role: Literal['member', 'admin']

One pin that differs between two versions of an agent or a flow.

  • kind: Literal['tool', 'prompt', 'setting', 'agent']
  • id: str
  • from_: str | None (from on the wire) (optional)
  • to: str | None (optional)
  • id: str
  • tenant_id: uuid.UUID (tenantId on the wire)
  • version: str
  • kind: Literal['access-control', 'model-routing', 'adapter-allowlist', 'rate-limit', 'retention', 'compliance', 'tool-errors', 'hitl']
  • description: str | None (optional)
  • spec: dict[str, Any]
  • data: list[kindgi.client.Policy]
  • next_cursor: str | None (nextCursor on the wire) (optional)
  • has_more: bool (hasMore on the wire)
  • data: list[kindgi.client.PolicyVersionRow]
  • next_cursor: str | None (nextCursor on the wire) (optional)
  • has_more: bool (hasMore on the wire)
  • id: str
  • tenant_id: uuid.UUID (tenantId on the wire)
  • version: str
  • kind: Literal['access-control', 'model-routing', 'adapter-allowlist', 'rate-limit', 'retention', 'compliance', 'tool-errors', 'hitl']
  • description: str | None (optional)
  • spec: dict[str, Any]
  • unregistered_at: AwareDatetime | None (unregisteredAt on the wire) (optional)
  • root: str
  • allowed: bool
  • id: str
  • tenant_id: str (tenantId on the wire)
  • org_id: str | None (orgId on the wire) (optional)
  • name: str
  • slug: str
  • is_default: bool (isDefault on the wire)
  • description: str | None (optional)
  • production_since: AwareDatetime | None (productionSince on the wire) (optional)
  • created_at: str (createdAt on the wire)
  • updated_at: str (updatedAt on the wire)

Someone with access to the project, their effective role, and every way in.

  • principal: kindgi.client.AccessPrincipal
  • display_name: str | None (displayName on the wire) (optional)
  • primary_email: str | None (primaryEmail on the wire) (optional)
  • role: Literal['owner', 'admin', 'editor', 'viewer']
  • via: list[Annotated[kindgi.client.ProjectAccessDirect | kindgi.client.ProjectAccessTeam | kindgi.client.ProjectAccessOrgAdmin | kindgi.client.ProjectAccessTenantAdmin, FieldInfo(annotation=NoneType, required=True, discriminator='kind')]]

The principal's own role on the project. joinedAt when a membership stands behind it: only then do the membership routes change or remove it.

  • kind: Literal['direct']
  • role: Literal['viewer', 'editor', 'owner', 'admin', 'member']
  • joined_at: AwareDatetime | None (joinedAt on the wire) (optional)

An admin of the project's org (directly or through a team): admin on the project.

  • kind: Literal['org-admin']
  • org_id: str (orgId on the wire)
  • org_name: str | None (orgName on the wire) (optional)
  • data: list[kindgi.client.ProjectAccess]
  • has_more: bool (hasMore on the wire)
  • next_cursor: str | None (nextCursor on the wire) (optional)

A team's grant on the project, held by every member of the team.

  • kind: Literal['team']
  • team_id: str (teamId on the wire)
  • team_name: str | None (teamName on the wire) (optional)
  • role: Literal['viewer', 'editor', 'admin']

A tenant admin: admin on every project.

  • kind: Literal['tenant-admin']
  • data: list[kindgi.client.Project]
  • has_more: bool (hasMore on the wire)
  • next_cursor: str | None (nextCursor on the wire) (optional)
  • project_id: str (projectId on the wire)
  • user_id: str (userId on the wire)
  • role: Literal['viewer', 'editor', 'owner', 'admin', 'member']
  • joined_at: str (joinedAt on the wire)
  • data: list[kindgi.client.ProjectMembership]
  • has_more: bool (hasMore on the wire)
  • next_cursor: str | None (nextCursor on the wire) (optional)
  • name: str | None (optional)
  • slug: str | None (optional)
  • description: str | None (optional)
  • org_id: str | None (orgId on the wire) (optional)
  • project_id: str (projectId on the wire)
  • production_since: AwareDatetime | None (productionSince on the wire)
  • production: bool
  • name: str
  • slug: str
  • description: str | None (optional)
  • org_id: str | None (orgId on the wire) (optional)
  • is_default: bool | None (isDefault on the wire) (optional)
  • project_id: uuid.UUID (projectId on the wire)
  • suspended: bool
  • suspended_at: AwareDatetime | None (suspendedAt on the wire) (optional)
  • suspended_reason: str | None (suspendedReason on the wire) (optional)
  • version: str
  • scope: kindgi.client.LiveScopeTenant | kindgi.client.LiveScopeOrg | kindgi.client.LiveScopeProject | kindgi.client.LiveScopeSegment
  • reason: str | None (optional)
  • eval_run_id: str | None (evalRunId on the wire) (optional)

One change of a scope's live version, kept for good: what was live before, what is after, who asked and why.

  • id: uuid.UUID
  • agent_id: str (agentId on the wire)
  • scope: kindgi.client.LiveScopeTenant | kindgi.client.LiveScopeOrg | kindgi.client.LiveScopeProject | kindgi.client.LiveScopeSegment
  • action: Literal['promote', 'rollback', 'unpin']
  • from_version: str | None (fromVersion on the wire)
  • to_version: str | None (toVersion on the wire)
  • requested_by: kindgi.client.RequestedBy (requestedBy on the wire)
  • reason: str | None (optional)
  • eval_run_id: str | None (evalRunId on the wire) (optional)
  • created_at: AwareDatetime (createdAt on the wire)
  • status: Optional[Literal['promoted', 'pending-approval', 'refused', 'superseded', 'rejected', 'expired']] (optional)
  • policy: kindgi.client.GatePolicyRef | None (optional)
  • checks: list[kindgi.client.GateCheck] | None (optional)
  • approval_id: str | None (approvalId on the wire) (optional)
  • resolved_at: AwareDatetime | None (resolvedAt on the wire) (optional)

What the gate would say about a promotion. Nothing is recorded.

  • outcome: Literal['would-promote', 'needs-approval', 'gate-failed']
  • policy: kindgi.client.GatePolicyRef | None
  • checks: list[kindgi.client.GateCheck]
  • approval: kindgi.client.GateApproval | None (optional)
  • data: list[kindgi.client.Promotion]
  • has_more: bool (hasMore on the wire)
  • next_cursor: str | None (nextCursor on the wire) (optional)
  • template: str
  • parameters: list[kindgi.client.PromptParameter] | None (optional)
  • name: str
  • description: str | None (optional)
  • type: Literal['string', 'number', 'boolean', 'date']
  • required: bool | None (optional)
  • default: Any | None (optional)

A prompt block an agent's instructions come from, by id and semver range.

  • prompt: str
  • version: str
  • template: str

The versions evaluating the proposal published. They serve no scope until a promotion makes the agent version live.

  • agent_version: str (agentVersion on the wire)
  • block_version: str (blockVersion on the wire)
  • pins_digest: str (pinsDigest on the wire)
  • block_id: str (blockId on the wire)
  • from_version: str (fromVersion on the wire)
  • content: kindgi.client.Content

Who wrote the proposal: a person, or one of the runtime's drafters.

  • kind: Literal['person', 'settings-optimizer', 'prompt-drafter']
  • by: str | None (optional)
  • version: str | None (optional)
  • model: kindgi.client.Model | None (optional)
  • pass_id: str | None (passId on the wire) (optional)

The comparison the proposal was evaluated with, and what it found on the objective metric (the full summary is the eval run's).

  • eval_run_id: uuid.UUID (evalRunId on the wire)
  • suite_id: str (suiteId on the wire)
  • objective: Literal['weightedYesShare', 'weightedPrecisionAtK']
  • started_at: AwareDatetime (startedAt on the wire)
  • run_status: Optional[Literal['pending', 'running', 'completed', 'failed', 'cancelled']] (runStatus on the wire) (optional)
  • baseline: float | None (optional)
  • candidate: float | None (optional)
  • delta: float | None (optional)
  • spread: float | None (optional)
  • cases: int | None (optional)
  • better: bool | None (optional)

The promotion the proposal's request made.

  • id: str
  • status: Literal['promoted', 'pending-approval', 'refused', 'superseded', 'rejected', 'expired']
  • approval_id: str | None (approvalId on the wire) (optional)
  • live_now: bool | None (liveNow on the wire) (optional)
  • reason: str | None (optional)
  • data: list[kindgi.client.ProvenanceRecordMetadata]
  • has_more: bool (hasMore on the wire)
  • next_cursor: str | None (nextCursor on the wire) (optional)
  • from_: str (from on the wire)
  • to: str
  • kind: Literal['caused-by', 'influenced-by', 'retrieved-from', 'invoked', 'produced', 'checked-against', 'waited-on', 'resumed-from']
  • root: Literal['caused-by', 'influenced-by', 'retrieved-from', 'invoked', 'produced', 'checked-against', 'waited-on', 'resumed-from']
  • id: str
  • version: str
  • id: str
  • kind: Literal['input', 'prompt', 'retrieval', 'tool-call', 'tool-result', 'model-call', 'model-output', 'artifact', 'guardrail-check', 'event', 'policy-decision', 'memory-read', 'memory-write', 'wait', 'resume']
  • timestamp: AwareDatetime
  • actor: str | None (optional)
  • content_hash: str | None (contentHash on the wire) (optional)
  • content_ref: str | None (contentRef on the wire) (optional)
  • model_version: str | None (modelVersion on the wire) (optional)
  • policy_decision_id: str | None (policyDecisionId on the wire) (optional)
  • attributes: dict[str, Any] | None (optional)
  • root: Literal['input', 'prompt', 'retrieval', 'tool-call', 'tool-result', 'model-call', 'model-output', 'artifact', 'guardrail-check', 'event', 'policy-decision', 'memory-read', 'memory-write', 'wait', 'resume']

Full provenance record including the DAG payload.

  • id: uuid.UUID
  • run_id: uuid.UUID (runId on the wire)
  • tenant_id: uuid.UUID (tenantId on the wire)
  • version: str
  • flow_ref: kindgi.client.FlowRef | None (flowRef on the wire) (optional)
  • dag: kindgi.client.Dag
  • signature: kindgi.client.Signature | None (optional)
  • created_at: AwareDatetime (createdAt on the wire)
  • call_usage: dict[str, kindgi.client.CallUsage] | None (callUsage on the wire) (optional)

Lightweight metadata row returned by list. Excludes the full DAG payload — clients fetch the DAG via GET /v1/provenance/{runId}.

  • id: uuid.UUID
  • run_id: uuid.UUID (runId on the wire)
  • tenant_id: uuid.UUID (tenantId on the wire)
  • version: str
  • flow_ref: kindgi.client.FlowRef | None (flowRef on the wire) (optional)
  • signed: bool
  • created_at: AwareDatetime (createdAt on the wire)
  • project_id: uuid.UUID | None (projectId on the wire) (optional)
  • run_id: uuid.UUID (runId on the wire)
  • provenance_id: uuid.UUID | None (provenanceId on the wire) (optional)
  • run_id: str | None (runId on the wire) (optional)
  • node_id: str | None (nodeId on the wire) (optional)
  • record_id: str | None (recordId on the wire) (optional)

Runtime-side signature attached at emission time (if the deployment signs on write). Independent of the export-time signature returned by the export route.

  • algorithm: Literal['ed25519']
  • key_id: str (keyId on the wire)
  • value: str
  • signed_at: AwareDatetime (signedAt on the wire)
  • id: str
  • model: str
  • data: list[kindgi.client.CapabilityDescriptor]
  • provider_id: str (providerId on the wire)
  • adapter_id: str (adapterId on the wire)
  • checked: bool
  • issues: list[kindgi.client.AdapterConfigProblem]
  • secret_ref: kindgi.client.SecretRef1 | None (secretRef on the wire) (optional)
  • data: list[kindgi.client.ProviderMetadata]
  • next_cursor: str | None (nextCursor on the wire) (optional)
  • has_more: bool (hasMore on the wire)

USD per 1K tokens. An adapter may take more rate fields (see the adapter's README).

  • prompt_usd_per1k_tokens: float (promptUsdPer1kTokens on the wire)
  • completion_usd_per1k_tokens: float (completionUsdPer1kTokens on the wire)
  • id: str
  • region: str
  • models: list[kindgi.client.ModelInfo]
  • default_model: str | None (defaultModel on the wire) (optional)
  • attributes: list[str] | None (optional)
  • description: str | None (optional)
  • capability_kind: str | None (capabilityKind on the wire) (optional)
  • fallback: bool | None (optional)
  • labels: dict[Annotated[str, StringConstraints(strip_whitespace=None, to_upper=None, to_lower=None, strict=None, min_length=None, max_length=None, pattern='^[a-z0-9]([a-z0-9._/-]{0,61}[a-z0-9])?$', ascii_only=None)], LabelsAdditionalProperty] | None (optional)

Full defineAgent spec. Validated server-side via @kindgi/agents.defineAgent — validation failures return 400 validation-failed with the issue list under details.issues.

  • id: str
  • version: str
  • name: str
  • description: str | None (optional)
  • project_id: uuid.UUID (projectId on the wire)
  • instructions: kindgi.client.Instructions | kindgi.client.PromptRef
  • parameters: list[kindgi.client.PromptParameter] | None (optional)
  • settings: list[kindgi.client.BlockRef] | None (optional)
  • model_settings: kindgi.client.BlockRef | None (modelSettings on the wire) (optional)
  • capabilities: list[kindgi.client.Capability4]
  • tools: list[kindgi.client.ToolRef]
  • retrieval: list[kindgi.client.RetrievalIntent]
  • memory: kindgi.client.AgentMemoryPolicy | None (optional)
  • guardrails: list[str]
  • preferred_provider: str | None (preferredProvider on the wire) (optional)
  • preferred_model: str | None (preferredModel on the wire) (optional)
  • conversation_policy: kindgi.client.ConversationPolicy | None (conversationPolicy on the wire) (optional)
  • budget: kindgi.client.TurnBudget | None (optional)
  • tags: list[str] | None (optional)
  • output: kindgi.client.AgentOutputSpec | None (optional)
  • tool_errors: kindgi.client.ToolErrorsSpec | None (toolErrors on the wire) (optional)
  • agent_id: str (agentId on the wire)
  • version: str
  • warnings: list[kindgi.client.Warning] | None (optional)
  • project_id: uuid.UUID (projectId on the wire)
  • id: str
  • version: str
  • kind: Literal['prompt', 'settings']
  • description: str | None (optional)
  • content: kindgi.client.PromptBlockContent | kindgi.client.SettingsBlockContent
  • block_id: str (blockId on the wire)
  • version: str
  • id: str
  • project_id: uuid.UUID (projectId on the wire)
  • tenant_id: uuid.UUID | None (tenantId on the wire) (optional)
  • version: str
  • kind: Literal['accuracy', 'pairwise', 'regression', 'human-review', 'benchmark', 'custom', 'judged']
  • description: str | None (optional)
  • spec: dict[str, Any]
  • suite_id: str (suiteId on the wire)
  • version: str

Full flow definition. Validated server-side via @kindgi/flow.loadFlow — validation failures return 400 validation-failed with the issue list under details.issues.

  • id: str
  • version: str
  • name: str | None (optional)
  • description: str | None (optional)
  • project_id: uuid.UUID (projectId on the wire)
  • nodes: list[kindgi.client.FlowNode]
  • edges: list[kindgi.client.FlowEdge]
  • max_parallelism: int | None (maxParallelism on the wire) (optional)
  • metadata: dict[str, Any] | None (optional)
  • flow_id: str (flowId on the wire)
  • version: str
  • id: str
  • version: str
  • agent_id: str (agentId on the wire)
  • scope: kindgi.client.LiveScopeTenant | kindgi.client.LiveScopeOrg | kindgi.client.LiveScopeProject | kindgi.client.LiveScopeSegment
  • spec: kindgi.client.GatePolicySpec
  • description: str | None (optional)
  • id: str
  • tenant_id: uuid.UUID | None (tenantId on the wire) (optional)
  • version: str
  • kind: Literal['access-control', 'model-routing', 'adapter-allowlist', 'rate-limit', 'retention', 'compliance', 'tool-errors', 'hitl']
  • description: str | None (optional)
  • spec: dict[str, Any]
  • policy_id: str (policyId on the wire)
  • version: str