Files
agent-radar 2ed3415fb7
Publish Claude Code Binaries / Stage and publish binaries (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-arm64 (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build linux-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build windows-amd64 (push) Canceled after 0s
Sync Tutti Agent Skills / sync (push) Canceled after 0s
Windows Agent Adapters / Test Windows agent adapters (push) Canceled after 0s
Windows Daemon Adapters / Test Windows daemon adapters (push) Canceled after 0s
Publish Tutti App Runtime / Publish runtime catalog (push) Canceled after 0s
源码快照 @ 2026-09-01 (source-only, 剔除非源码素材)
2026-09-01 20:17:27 +08:00

121 lines
3.3 KiB
TypeScript

// AgentProbe DTOs — mirrors core/agentprobe Go types.
// Two independent call modes:
// includeUsage=false (default) → availability only, lightweight
// includeUsage=true → full usage probe, heavier
export type AgentAvailabilityStatus = "available" | "unavailable" | "unknown";
export type AgentQuotaType =
| "session"
| "weekly"
| "monthly"
| "daily"
| "model"
| "credits"
| "cost";
export interface AgentAvailabilityCheck {
name: string;
passed: boolean;
detail?: string;
}
export interface AgentAvailability {
status: AgentAvailabilityStatus;
detailsVisible: boolean;
checks?: AgentAvailabilityCheck[];
}
export interface AgentUsageQuota {
quotaType: AgentQuotaType;
percentRemaining?: number;
/** Exact provider-neutral balance when percent alone loses useful detail. */
amountRemaining?: number;
amountLimit?: number;
amountUnit?: "credits";
resetsAtUnixMs?: number;
resetText?: string;
dollarRemaining?: number;
modelName?: string;
}
export interface AgentCostUsage {
dollarUsed: number;
dollarLimit?: number;
}
export interface AgentUsageSnapshot {
quotas?: AgentUsageQuota[];
accountTier?: string;
/** Provider-neutral billing mode used when an account has no quota rows. */
billingMode?: "subscription" | "api" | "coding_plan" | "provider_account";
/** Whether quota rows are complete, unavailable, or not applicable. */
quotaState?: "complete" | "unavailable" | "not_applicable";
costUsage?: AgentCostUsage;
capturedAtUnixMs: number;
}
export interface AgentProbeAttempt {
strategy: string;
success: boolean;
errorCode?: string;
errorMessage?: string;
}
export interface AgentProbeError {
code: string;
message?: string;
}
export interface AgentProbeProvider {
/** Exact Agent Target identity that produced this result. */
agentTargetId?: string;
provider: string;
availability: AgentAvailability;
usage?: AgentUsageSnapshot;
attempts?: AgentProbeAttempt[];
lastError?: AgentProbeError;
}
export interface AgentProbeSnapshot {
workspaceId: string;
roomId?: string;
capturedAtUnixMs: number;
providers: AgentProbeProvider[];
}
// Probe error codes — match core/agentprobe/errors.go ProbeErrorCode values.
export const AGENT_PROBE_ERROR_CODES = {
cliNotFound: "cli_not_found",
authRequired: "auth_required",
sessionExpired: "session_expired",
parseFailed: "parse_failed",
timeout: "timeout",
noData: "no_data",
updateRequired: "update_required",
folderTrustRequired: "folder_trust_required",
subscriptionRequired: "subscription_required",
quotaExhausted: "quota_exhausted",
executionFailed: "execution_failed",
configInvalid: "config_invalid",
rateLimited: "rate_limited",
unsupported: "unsupported",
runtimeUnavailable: "runtime_unavailable"
} as const;
export type AgentProbeErrorCode =
(typeof AGENT_PROBE_ERROR_CODES)[keyof typeof AGENT_PROBE_ERROR_CODES];
export interface AgentHostListWorkspaceAgentProbesInput {
workspaceId: string;
/** Compatibility input while carried call sites finish migrating from TSH room naming. */
roomId?: string;
/** Preferred exact identity. Provider-only requests remain compatibility input. */
agentTargetIds?: string[];
providers?: string[];
includeUsage?: boolean;
refresh?: boolean;
}
export type AgentHostWorkspaceAgentProbesResult = AgentProbeSnapshot;