Skip to content

Models: P

View as Markdown

The names the pack service reads from its process environment, as the image's index.json declares them (env), each list in name order. Names only, never a value. On a deployment: absent when it declares none, and from older servers.

  • required: list[str]
  • optional: list[str]

One name the deployment's pack declares: where it's set, and why it can't be given to the pack service, if it can't (secretScope, for ambiguous only, names the secret's scope). Each name is looked for at the deployment's project, then its org, then the tenant (most specific wins); a tenant-wide deployment's, at the tenant's Default project. Never a value.

  • name: str
  • required: bool
  • kind: Optional[Annotated[Union[Literal['env', 'secret'], str], <kindgi.client._open.OpenEnum object at 0x107c4bdd0>]]
  • scope: kindgi.client.PackEnvScope | None
  • missing: bool
  • problem: Optional[Annotated[Union[Literal['ambiguous', 'secret-not-yet', 'missing', 'unreadable'], str], <kindgi.client._open.OpenEnum object at 0x107c4bdd0>]] (optional)
  • secret_scope: kindgi.client.PackEnvScope | None (secretScope on the wire) (optional)

Where each name the deployment's pack declares is set, at the env the server serves. Never a value.

  • env_name: str (envName on the wire)
  • data: list[kindgi.client.PackEnvNameStatus]
  • problem: Optional[Annotated[Union[Literal['pack-env-ambiguous', 'pack-env-secret-not-yet', 'pack-env-missing', 'pack-env-secret-unreadable'], str], <kindgi.client._open.OpenEnum object at 0x107c4bdd0>]] (optional)

ready only: the pack service runs on the values it was last given, because the newest can't be given to it (a required one was removed, say, or a secret can't be given), or didn't start (pack-env-update-failed). Gone once they can, or do. For a name that can't be given, GET /v1/deployments/{deploymentId}/pack-env names it. Absent from older servers.

  • code: Union[Literal['pack-env-ambiguous', 'pack-env-secret-not-yet', 'pack-env-missing', 'pack-env-secret-unreadable', 'pack-env-update-failed', 'pack-env-secrets-unaudited', 'pack-env-secret-too-large', 'pack-env-secret-redeploy'], str]
  • since: AwareDatetime

Where a value is set: the deployment's project, the project's org, or the tenant.

  • kind: Union[Literal['project', 'org', 'tenant'], str]
  • id: str | None (optional)

A secret given to the deployment's pack service: its value, read at the version revision names, and audited before the answer.

  • value: str
  • revision: str
  • 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[Annotated[Union[Literal['run.finished', 'improvement-pass.finished', 'approval.requested'], str], <kindgi.client._open.OpenEnum object at 0x107c4bdd0>]] | 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: Optional[Annotated[kindgi.client.WebhookSignatureHmacSha256 | kindgi.client.WebhookSignatureStandardWebhooks | kindgi.client.WebhookSignatureUnrecognized, <kindgi.client._open.OpenUnion object at 0x108794950>]] (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: Union[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', '*'], str]
  • purged: int
  • remaining: int
  • policy_id: str | None (policyId on the wire) (optional)
  • limit_applied: Optional[Literal[True]] (limitApplied 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: Union[Literal['viewer', 'editor', 'owner', 'admin', 'member'], str]

A person's active entry on the reviewer roster.

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

A person's role in a team.

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

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

  • kind: Union[Literal['tool', 'prompt', 'setting', 'agent'], str]
  • 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: Union[Literal['access-control', 'model-routing', 'adapter-allowlist', 'rate-limit', 'retention', 'compliance', 'tool-errors', 'hitl'], str]
  • 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: Union[Literal['access-control', 'model-routing', 'adapter-allowlist', 'rate-limit', 'retention', 'compliance', 'tool-errors', 'hitl'], str]
  • 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: Union[Literal['owner', 'admin', 'editor', 'viewer'], str]
  • via: list[Annotated[kindgi.client.ProjectAccessDirect | kindgi.client.ProjectAccessTeam | kindgi.client.ProjectAccessOrgAdmin | kindgi.client.ProjectAccessTenantAdmin | kindgi.client.ProjectAccessPathUnrecognized, <kindgi.client._open.OpenUnion object at 0x108712cd0>]]

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: Union[Literal['viewer', 'editor', 'owner', 'admin', 'member'], str]
  • 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 kind this client doesn't know yet, from a newer runtime: the object as it came, every field kept.

  • kind: str

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: Union[Literal['viewer', 'editor', 'admin'], str]

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: Union[Literal['viewer', 'editor', 'owner', 'admin', 'member'], str]
  • 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 | kindgi.client.LiveScopeUnrecognized
  • 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 | kindgi.client.LiveScopeUnrecognized
  • action: Union[Literal['promote', 'rollback', 'unpin'], str]
  • 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[Annotated[Union[Literal['promoted', 'pending-approval', 'refused', 'superseded', 'rejected', 'expired'], str], <kindgi.client._open.OpenEnum object at 0x107c4bdd0>]] (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: Union[Literal['would-promote', 'needs-approval', 'gate-failed'], str]
  • policy: kindgi.client.GatePolicyRef | None
  • checks: list[kindgi.client.GateCheck]
  • approval: kindgi.client.GateApproval | None (optional)
  • id: str
  • version: str | None (optional)
  • carried: Optional[Literal[True]] (optional)
  • pack_id: str | None (packId on the wire) (optional)
  • image_digest: str (imageDigest on the wire)
  • agents: list[kindgi.client.PromotionMovedVersion]
  • flows: list[kindgi.client.PromotionMovedVersion]
  • tools: list[kindgi.client.PromotionMovesTool]
  • guardrails: list[kindgi.client.PromotionMovesGuardrail]
  • id: str
  • version: str | None (optional)
  • id: str
  • version: str | None (optional)
  • project_id: str (projectId on the wire)
  • position: int
  • 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: Union[Literal['string', 'number', 'boolean', 'date'], str]
  • 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: Union[Literal['person', 'settings-optimizer', 'prompt-drafter'], str]
  • 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: Union[Literal['weightedYesShare', 'weightedPrecisionAtK'], str]
  • started_at: AwareDatetime (startedAt on the wire)
  • run_status: Optional[Annotated[Union[Literal['pending', 'running', 'completed', 'failed', 'cancelled'], str], <kindgi.client._open.OpenEnum object at 0x107c4bdd0>]] (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: Union[Literal['promoted', 'pending-approval', 'refused', 'superseded', 'rejected', 'expired'], str]
  • 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: Union[Literal['prompt', 'settings'], str]
  • 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: Union[Literal['accuracy', 'pairwise', 'regression', 'human-review', 'benchmark', 'custom', 'judged'], str]
  • 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 | kindgi.client.LiveScopeUnrecognized
  • spec: kindgi.client.GatePolicySpec
  • description: str | None (optional)
  • id: str
  • tenant_id: uuid.UUID | None (tenantId on the wire) (optional)
  • version: str
  • kind: Union[Literal['access-control', 'model-routing', 'adapter-allowlist', 'rate-limit', 'retention', 'compliance', 'tool-errors', 'hitl'], str]
  • description: str | None (optional)
  • spec: dict[str, Any]
  • policy_id: str (policyId on the wire)
  • version: str