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 = NoneArtifact
@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 = NoneArtifactAnalytics
@dataclass
class ArtifactAnalytics:
subscriber_count: int = 0
total_queries: int = 0
tokens_earned: int = 0EvalSummary
@dataclass
class EvalSummary:
intelligence_summary: str
updated_at: str
overall_score: float | None = None
recommendations: list[str] = field(default_factory=list)
regression_detected: bool = FalseDiscoveryConfig
@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 = 0DiscoveryAction
@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 = NoneBrief
@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 = NoneBriefDiff
@dataclass
class BriefDiff:
from_version: str
to_version: str
summary: str = ""
generated_at: str | None = NoneWalletEntry
@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 = NoneRunSummary
@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 = NoneEnums (Backend)
These string values appear in model fields:
Creation Type
kh_agent- extracted from agentkh_upload- uploaded document
Artifact Status
draft- work in progresspending_review- submitted for reviewlisted- active and discoverableflagged- flagged for reviewsuspended- temporarily unavailabledeleted- soft-deleted
Artifact Visibility
private- only ownerteam- team memberslisted- public (free)paid- public (paid)
Subscription Status
active- subscription is livecancelled- buyer cancelledexpired- term ended