Skip to content

Models: C

  • code: str
  • state: str
  • session_token: str (sessionToken on the wire)
  • session_id: str (sessionId on the wire)
  • expires_at: AwareDatetime (expiresAt on the wire)
  • root: str

Capability declaration — see @kindgi/capabilities. Additional properties are permitted so new capability kinds do not require a wire change.

  • root: str
  • data: list[kindgi.client.CapabilityDescriptor]
  • next_cursor: str | None (nextCursor on the wire) (optional)
  • has_more: bool (hasMore on the wire)
  • id: str
  • feature: Union[str, Literal['structured-output', 'vision', 'audio-input', 'audio-output', 'tool-use', 'parallel-tool-use', 'thinking', 'long-context', 'code-execution', 'web-search', 'file-search', 'streaming', 'batch']]
  • description: str
  • kind: str | None (optional)
  • params_schema: dict[str, Any] | None (paramsSchema on the wire) (optional)

Claim path + optional delimiter for extracting Kindgi OAuth scopes from provider claims. When absent, scopes come from the token response scope field instead.

  • claim: str
  • delimiter: str | None (optional)

Per-provider claim mapping. All fields optional; closer to OIDC defaults (sub/email/name) → fewer overrides needed.

  • user_id: str | None (userId on the wire) (optional)
  • email: str | None (optional)
  • display_name: str | None (displayName on the wire) (optional)
  • scopes: kindgi.client.ClaimMappingScopesSpec | None (optional)
  • metadata: list[kindgi.client.Metadatum] | None (optional)

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 (imageRef on the wire)
  • module_path: str (modulePath on the wire)
  • artifact_version: str (artifactVersion on the wire)

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 (modulePath on the wire)
  • decision: Literal['approve', 'reject', 'escalate', 'withdraw']
  • rationale: str | None (optional)
  • value: Any | None (optional)
  • kind: Literal['terminal', 'escalated']
  • approval: kindgi.client.Approval
  • decision: kindgi.client.ReviewDecision
  • next_approval: kindgi.client.Approval | None (nextApproval on the wire) (optional)
  • waitpoint_resolved: bool (waitpointResolved on the wire)

One evidence record — matches @kindgi/specs/compliance-evidence.schema.json (payload is a versioned document opaque to the wire schema).

  • id: str
  • tenant_id: uuid.UUID (tenantId on the wire)
  • project_id: uuid.UUID | None (projectId on the wire) (optional)
  • kind: str
  • timestamp: AwareDatetime
  • actor: kindgi.client.Actor | None (optional)
  • subject: kindgi.client.Subject | None (optional)
  • outcome: Optional[Literal['allowed', 'denied', 'succeeded', 'failed', 'escalated']] (optional)
  • payload: dict[str, Any]
  • provenance_ref: kindgi.client.ProvenanceRef2 | None (provenanceRef on the wire) (optional)
  • signature: kindgi.client.Signature1 | None (optional)
  • data: list[kindgi.client.ComplianceEvidence]
  • has_more: bool (hasMore on the wire)
  • next_cursor: str | None (nextCursor on the wire) (optional)

Transport-tagged config union. Server enforces config.transport === transport at registration.

  • transport: Literal['stdio']
  • command: str
  • args: list[str] | None (optional)
  • env: dict[str, str] | None (optional)

Transport-tagged config union. Server enforces config.transport === transport at registration.

  • transport: Literal['http-sse']
  • url: AnyUrl
  • sse_url: AnyUrl | None (sseUrl on the wire) (optional)
  • headers: dict[str, str] | None (optional)
  • input: Any | None (optional)

Transport-tagged config union. Server enforces config.transport === transport at registration.

  • transport: Literal['streamable-http']
  • url: AnyUrl
  • headers: dict[str, str] | None (optional)

Transport-tagged config union. Server enforces config.transport === transport at registration.

  • transport: Literal['stdio']
  • command: str
  • args: list[str] | None (optional)
  • env: dict[str, str] | None (optional)

Transport-tagged config union. Server enforces config.transport === transport at registration.

  • transport: Literal['http-sse']
  • url: AnyUrl
  • sse_url: AnyUrl | None (sseUrl on the wire) (optional)
  • headers: dict[str, str] | None (optional)

Transport-tagged config union. Server enforces config.transport === transport at registration.

  • transport: Literal['streamable-http']
  • url: AnyUrl
  • headers: dict[str, str] | None (optional)
  • cron_expression: str (cronExpression on the wire)
  • timezone: str | None (optional)
  • input: Any | None (optional)
  • cron_expression: str | None (cronExpression on the wire) (optional)
  • timezone: str | None (optional)
  • input: Any | None (optional)
  • event_kind: str (eventKind on the wire)
  • input: Any | None (optional)
  • event_kind: str | None (eventKind on the wire) (optional)
  • input: Any | None (optional)
  • type: Literal['text']
  • text: str
  • type: Literal['image']
  • data: str
  • mime_type: str (mimeType on the wire)
  • id: uuid.UUID
  • tenant_id: uuid.UUID (tenantId on the wire)
  • agent_id: str (agentId on the wire)
  • agent_version: str (agentVersion on the wire)
  • title: str
  • participant_id: str | None (participantId on the wire) (optional)
  • scope: dict[str, Any]
  • status: Literal['open', 'closed']
  • opened_at: AwareDatetime (openedAt on the wire)
  • closed_at: AwareDatetime | None (closedAt on the wire) (optional)
  • turn_count: int (turnCount on the wire)
  • last_message_at: AwareDatetime | None (lastMessageAt on the wire) (optional)
  • metadata: dict[str, Any] | None (optional)
  • data: list[kindgi.client.Conversation]
  • next_cursor: str | None (nextCursor on the wire) (optional)
  • has_more: bool (hasMore on the wire)
  • sequence: int
  • role: Literal['user', 'agent', 'tool', 'system']
  • content: Any
  • tool_call: kindgi.client.ToolCall | None (toolCall on the wire) (optional)
  • actor: str | None (optional)
  • created_at: AwareDatetime (createdAt on the wire)
  • data: list[kindgi.client.ConversationMessage]
  • next_cursor: str | None (nextCursor on the wire) (optional)
  • has_more: bool (hasMore on the wire)
  • history_limit: int | None (historyLimit on the wire) (optional)
  • auto_close_after_inactive_seconds: int | None (autoCloseAfterInactiveSeconds on the wire) (optional)
  • hitl_after_turns: int | None (hitlAfterTurns on the wire) (optional)
  • root: Literal['open', 'closed']
  • key: dict[str, str | None]
  • count: int
  • total_usd: float (totalUsd on the wire)
  • groups: list[kindgi.client.CostAggregateGroup]
  • total_usd: float (totalUsd on the wire)
  • total_records: int (totalRecords on the wire)
  • time_range: kindgi.client.TimeRange (timeRange on the wire)
  • group_by: list[Literal['agentId', 'runId', 'category', 'providerId', 'day', 'month', 'tenant', 'conversationId']] (groupBy on the wire)
  • id: str
  • tenant_id: uuid.UUID (tenantId on the wire)
  • category: str
  • provider_id: str | None (providerId on the wire) (optional)
  • run_id: uuid.UUID | None (runId on the wire) (optional)
  • agent_id: str | None (agentId on the wire) (optional)
  • conversation_id: uuid.UUID | None (conversationId on the wire) (optional)
  • quantity: float
  • unit: str
  • cost_usd: float | None (costUsd on the wire) (optional)
  • occurred_at: AwareDatetime (occurredAt on the wire)
  • metrics: dict[str, Any] | None (optional)
  • attributes: dict[str, Any] | None (optional)
  • data: list[kindgi.client.CostRecord]
  • next_cursor: str | None (nextCursor on the wire) (optional)
  • has_more: bool (hasMore on the wire)

Shared 201 response body for platform-hierarchy create endpoints — the freshly-assigned id of the created row.

  • id: str
  • url: AnyUrl
  • events: list[Literal['run.finished']]
  • filter: kindgi.client.WebhookEndpointFilter | None (optional)
  • secret_ref: kindgi.client.WebhookSecretRef (secretRef on the wire)
  • description: str | None (optional)

How the dry-run judges whether the candidate is good enough to submit for review. Two kinds: min-pass-rate (candidate pass rate ≥ threshold) or strict-improvement (candidate pass rate exceeds baseline by ≥ delta).

  • kind: Literal['min-pass-rate']
  • min_pass_rate: float (minPassRate on the wire)

How the dry-run judges whether the candidate is good enough to submit for review. Two kinds: min-pass-rate (candidate pass rate ≥ threshold) or strict-improvement (candidate pass rate exceeds baseline by ≥ delta).

  • kind: Literal['strict-improvement']
  • baseline_pass_rate: float (baselinePassRate on the wire)
  • min_delta: float (minDelta on the wire)