///|
const MOONGATE_DEFAULT_CLIENT_BASE_URL = "http://127.0.0.1:15721"
///|
pub struct MoonGateUsageQuery {
start_date : String?
end_date : String?
app_type : String?
provider_id : String?
provider_name : String?
model : String?
status_code : String?
page : Int?
page_size : Int?
}
///|
pub fn MoonGateUsageQuery::empty() -> MoonGateUsageQuery {
MoonGateUsageQuery::new(
start_date=None,
end_date=None,
app_type=None,
provider_id=None,
provider_name=None,
model=None,
status_code=None,
page=None,
page_size=None,
)
}
///|
pub fn MoonGateUsageQuery::new(
start_date~ : String?,
end_date~ : String?,
app_type~ : String?,
provider_id~ : String?,
provider_name~ : String?,
model~ : String?,
status_code~ : String?,
page~ : Int?,
page_size~ : Int?,
) -> MoonGateUsageQuery {
{
start_date,
end_date,
app_type,
provider_id,
provider_name,
model,
status_code,
page,
page_size,
}
}
///|
pub struct MoonGateSessionSyncQuery {
projects_dir : String?
codex_dir : String?
gemini_dir : String?
opencode_export_path : String?
opencode_db_path : String?
}
///|
pub fn MoonGateSessionSyncQuery::empty() -> MoonGateSessionSyncQuery {
MoonGateSessionSyncQuery::new(
projects_dir=None,
codex_dir=None,
gemini_dir=None,
opencode_export_path=None,
opencode_db_path=None,
)
}
///|
pub fn MoonGateSessionSyncQuery::new(
projects_dir~ : String?,
codex_dir~ : String?,
gemini_dir~ : String?,
opencode_export_path~ : String?,
opencode_db_path~ : String?,
) -> MoonGateSessionSyncQuery {
{
projects_dir,
codex_dir,
gemini_dir,
opencode_export_path,
opencode_db_path,
}
}
///|
pub struct MoonGateModel {
id : String
owner : String?
context_window : Int?
}
///|
pub struct MoonGateUsageSummary {
total_requests : Int
total_cost : String
total_input_tokens : Int64
total_output_tokens : Int64
total_cache_creation_tokens : Int64
total_cache_read_tokens : Int64
real_total_tokens : Int64
success_rate : Double
cache_hit_rate : Double
}
///|
pub struct MoonGateAgentClient {
id : String
app_type : String
protocol : String
base_url : String
primary_route : String
setup_command : String?
usage : String?
}
///|
pub struct MoonGateClient {
base_url : String
api_key : String?
control_token : String?
user_agent : String?
}
///|
pub fn MoonGateClient::new(
base_url? : String = MOONGATE_DEFAULT_CLIENT_BASE_URL,
api_key? : String? = None,
control_token? : String? = None,
user_agent? : String? = None,
) -> MoonGateClient {
{
base_url: moongate_client_normalize_base_url(base_url),
api_key,
control_token,
user_agent,
}
}
///|
pub fn MoonGateClient::from_host(
host? : String = @suite.default_host(),
port? : Int = @suite.default_port(),
api_key? : String? = None,
control_token? : String? = None,
user_agent? : String? = None,
) -> MoonGateClient {
MoonGateClient::new(
base_url=@suite.base_url(host, port),
api_key~,
control_token~,
user_agent~,
)
}