Kate Docs
Reference

SDK Data Models

Complete reference for all data models in the Kate Python SDK.

All SDK data models are Python dataclasses defined in projectkate.models.

Agent

@dataclass
class Agent:
    id: str
    name: str
    domain: str
    objective: str | None = None
    status: str | None = None
    owner_id: str | None = None
    created_at: str | None = None
    updated_at: str | None = None

Artifact

@dataclass
class Artifact:
    id: str
    title: str
    domain: str
    status: str                      # draft, pending_review, listed, suspended, deleted
    user_id: str | None = None
    agent_id: str | None = None
    description: str = ""
    creation_type: str | None = None # kh_agent, kh_upload
    visibility: str | None = None    # private, team, listed, paid
    price_tokens: int = 0
    per_query_tokens: int = 0
    version: str = "1.0.0"
    quality_score: float | None = None
    covers_generated: bool = False
    created_at: str | None = None
    updated_at: str | None = None

ArtifactAnalytics

@dataclass
class ArtifactAnalytics:
    subscriber_count: int = 0
    total_queries: int = 0
    tokens_earned: int = 0

EvalSummary

@dataclass
class EvalSummary:
    intelligence_summary: str
    updated_at: str
    overall_score: float | None = None
    recommendations: list[str] = field(default_factory=list)
    regression_detected: bool = False

DiscoveryConfig

@dataclass
class DiscoveryConfig:
    agent_id: str
    mode: str = "manual"                    # manual, scheduled
    interval_hours: int = 24
    max_tokens_per_action: int = 500
    daily_action_limit: int = 3
    min_compatibility_score: float = 0.5
    max_candidates_per_gap: int = 3
    last_run_at: str | None = None
    actions_today: int = 0

DiscoveryAction

@dataclass
class DiscoveryAction:
    id: str
    agent_id: str
    action_type: str                        # gap_analysis, artifact_match, subscribe
    status: str                             # pending, completed, failed
    summary: dict | None = None
    created_at: str | None = None

Brief

@dataclass
class Brief:
    agent_id: str
    version: str
    previous_version: str | None = None
    compiled_at: str | None = None
    brief: str = ""
    gap_summary: list[str] = field(default_factory=list)

BriefVersion

@dataclass
class BriefVersion:
    current_version: str
    latest_version: str
    has_update: bool = False
    latest_compiled_at: str | None = None

BriefDiff

@dataclass
class BriefDiff:
    from_version: str
    to_version: str
    summary: str = ""
    generated_at: str | None = None

WalletEntry

@dataclass
class WalletEntry:
    id: str
    user_id: str
    amount: int                             # Positive = credit, negative = debit
    balance_after: int
    entry_type: str                         # subscription, query, credit
    description: str | None = None
    created_at: str | None = None

RunSummary

@dataclass
class RunSummary:
    id: str
    agent_id: str
    status: str                             # running, completed, failed
    trigger: str | None = None              # manual, automatic, test
    overall_score: float | None = None
    created_at: str | None = None
    completed_at: str | None = None

Enums (Backend)

These string values appear in model fields:

Creation Type

  • kh_agent - extracted from agent
  • kh_upload - uploaded document

Artifact Status

  • draft - work in progress
  • pending_review - submitted for review
  • listed - active and discoverable
  • flagged - flagged for review
  • suspended - temporarily unavailable
  • deleted - soft-deleted

Artifact Visibility

  • private - only owner
  • team - team members
  • listed - public (free)
  • paid - public (paid)

Subscription Status

  • active - subscription is live
  • cancelled - buyer cancelled
  • expired - term ended

On this page