Skip to content

Models: I

View as Markdown
  • data: list[Annotated[kindgi.client.OidcIdentityProviderConfig | kindgi.client.SamlIdentityProviderConfig, FieldInfo(annotation=NoneType, required=True, discriminator='kind')]]
  • has_more: bool | None (hasMore on the wire) (optional)
  • changes: Optional[Literal['tenant', 'operator']] (optional)

What to give the identity provider so it can send people back: set by the deployment on what it returns, ignored on registration. OIDC: redirectUri. SAML: spEntityId, acsUrl, spMetadataUrl.

  • redirect_uri: AnyUrl (redirectUri on the wire)

What to give the identity provider so it can send people back: set by the deployment on what it returns, ignored on registration. OIDC: redirectUri. SAML: spEntityId, acsUrl, spMetadataUrl.

  • sp_entity_id: str (spEntityId on the wire)
  • acs_url: AnyUrl (acsUrl on the wire)
  • sp_metadata_url: AnyUrl (spMetadataUrl on the wire)

What to give the identity provider so it can send people back, for a provider under this providerId: the same before it's registered, after, and after an unregister and a new registration, so the identity provider's side can be set up first. Not secrets: they're in every sign-in's browser redirects.

  • provider_id: str (providerId on the wire)
  • kind: Literal['oidc', 'saml']
  • sign_in: kindgi.client.IdentityProviderSignIn1 | kindgi.client.IdentityProviderSignIn2 (signIn on the wire)
  • registered: bool
  • data: list[kindgi.client.IdentitySessionSummary]
  • has_more: bool (hasMore on the wire)
  • next_cursor: str | None (nextCursor on the wire) (optional)

Wire-safe subset of a session. Excludes provider access-token / refresh-token — those never cross the wire, even to admins.

  • session_id: str (sessionId on the wire)
  • user_id: str (userId on the wire)
  • provider_id: str (providerId on the wire)
  • created_at: AwareDatetime (createdAt on the wire)
  • expires_at: AwareDatetime (expiresAt on the wire)
  • scopes: list[str]
  • revoked_at: AwareDatetime | None (revokedAt on the wire) (optional)
  • root: str

Start an improvement pass.

  • agent_id: str (agentId on the wire)
  • from_version: str | None (fromVersion on the wire) (optional)
  • scope: kindgi.client.LiveScopeTenant | kindgi.client.LiveScopeOrg | kindgi.client.LiveScopeProject | kindgi.client.LiveScopeSegment
  • suite_id: str (suiteId on the wire)
  • tiers: list[Literal['settings', 'prompt']] | None (optional)
  • model: kindgi.client.Model2 | None (optional)
  • candidates: int | None (optional)
  • class_weights: Optional[Literal['as-recorded', 'restricted-only']] (classWeights on the wire) (optional)
  • objective: Optional[Literal['weightedYesShare', 'weightedPrecisionAtK']] (optional)
  • budget: kindgi.client.Budget2 | None (optional)

An improve schedule's config.input. Each fire counts the trusted "no" judgments (recorded under a restricted judge class) on the agent's runs in the scope since its last pass. When there are enough, across enough runs and judges, it starts a pass on a fresh test set of those runs; otherwise the fire is skipped, saying which count was short. A pass that proposes asks for the review at once.

  • tiers: list[Literal['settings', 'prompt']] | None (optional)
  • objective: Optional[Literal['weightedYesShare', 'weightedPrecisionAtK']] (optional)
  • class_weights: Optional[Literal['as-recorded', 'restricted-only']] (classWeights on the wire) (optional)
  • model: kindgi.client.Model4 | None (optional)
  • candidates: int | None (optional)
  • budget: kindgi.client.Budget3 | None (optional)
  • threshold: kindgi.client.Threshold | None (optional)
  • monthly_cap_usd: float | None (monthlyCapUsd on the wire) (optional)

What an improve schedule works on: the agent, and the live scope its passes propose for and count judgments in.

  • agent_id: str (agentId on the wire)
  • scope: kindgi.client.LiveScopeTenant | kindgi.client.LiveScopeOrg | kindgi.client.LiveScopeProject | kindgi.client.LiveScopeSegment
  • max_cost_usd: float (maxCostUsd on the wire)
  • max_candidates: int (maxCandidates on the wire)

An improvement pass: the runtime looking for better values for an agent version's tunable settings (x-kindgi-tunable) on a test set, within a budget. Its best candidate becomes an improvement proposal.

  • id: uuid.UUID
  • agent_id: str (agentId on the wire)
  • from_version: str (fromVersion on the wire)
  • scope: kindgi.client.LiveScopeTenant | kindgi.client.LiveScopeOrg | kindgi.client.LiveScopeProject | kindgi.client.LiveScopeSegment
  • suite_id: str (suiteId on the wire)
  • tiers: list[Literal['settings', 'prompt']]
  • objective: Literal['weightedYesShare', 'weightedPrecisionAtK']
  • class_weights: Optional[Literal['as-recorded', 'restricted-only']] (classWeights on the wire) (optional)
  • model: kindgi.client.Model1 | None (optional)
  • candidates: int | None (optional)
  • budget: kindgi.client.ImprovementBudget
  • requested_by: str (requestedBy on the wire)
  • status: Literal['running', 'completed', 'failed', 'cancelled']
  • candidates_evaluated: int (candidatesEvaluated on the wire)
  • cost_usd: str (costUsd on the wire)
  • outcome: kindgi.client.ImprovementPassOutcome | None (optional)
  • comparisons: list[kindgi.client.Comparison1] | None (optional)
  • trigger: kindgi.client.Trigger | None (optional)
  • created_at: AwareDatetime (createdAt on the wire)
  • updated_at: AwareDatetime (updatedAt on the wire)
  • finished_at: AwareDatetime | None (finishedAt on the wire) (optional)
  • data: list[kindgi.client.ImprovementPass]
  • has_more: bool (hasMore on the wire)
  • next_cursor: str | None (nextCursor on the wire) (optional)

An improvement pass ended (completed, failed or cancelled): one a person started, or one an improve schedule did. Its outcome names the proposal it wrote, if it wrote one.

  • id: str
  • type: Literal['improvement-pass.finished']
  • created_at: AwareDatetime (createdAt on the wire)
  • data: kindgi.client.Data1

What a finished pass found. proposed: its best candidate beat the current values on the test set's hold-out part, so it wrote an improvement proposal (proposalId) for a reviewer to decide. nothing-found: no candidate beat them by more than the noise, or within the budget (reason; holdOut has the best candidate's numbers when one got that far). failed: message says why.

  • kind: Literal['proposed', 'nothing-found', 'failed']
  • proposal_id: uuid.UUID | None (proposalId on the wire) (optional)
  • reason: str | None (optional)
  • hold_out: kindgi.client.HoldOut | None (holdOut on the wire) (optional)
  • message: str | None (optional)
  • root: str
  • root: str