export type CapabilityString = string; export type TaskRequestStatus = 'open' | 'claimed' | 'assigned' | 'closed' | 'expired'; export type TaskRequestPriority = 'low' | 'normal' | 'high' | 'critical'; export interface TaskRequest { id: string; requesterId: string; title: string; description: string; requiredCapabilities: CapabilityString[]; estimatedTokens?: number; deadline?: string; priority: TaskRequestPriority; status: TaskRequestStatus; claimWindowMs: number; createdAt: string; publicKey: string; signature: string; } export interface CapabilityAdvertisement { agentId: string; capabilities: CapabilityString[]; availability: boolean; maxTokenBudget?: number; currentLoad: number; lastAdvertised: string; advertisementTTL: number; environment?: AgentEnvironment; publicKey: string; signature: string; } export interface AgentEnvironment { runtime: 'sandbox' | 'local' | 'cloud'; tools: string[]; models?: string[]; } export interface ClaimResponse { taskRequestId: string; claimantId: string; proposedApproach: string; estimatedCompletion?: string; capabilitiesMatched: CapabilityString[]; claimedAt: string; publicKey: string; signature: string; } export interface TaskDecline { taskRequestId: string; declinerId: string; reason: string; suggestedAlternative?: string; declinedAt: string; publicKey: string; signature: string; } export interface RoutingDecision { taskRequestId: string; selectedAgentId: string | null; reason: string; fallbackAgents: string[]; matchScore: number; decidedAt: string; createdTaskBriefId?: string; publicKey: string; signature: string; } export interface RouterConfig { minCoverageThreshold: number; weights: MatchWeights; defaultClaimWindowMs: number; defaultAdvertisementTTL: number; priorityBoosts: Record; } export interface MatchWeights { coverage: number; availability: number; load: number; budget: number; } export interface CandidateScore { agentId: string; coverageScore: number; availabilityScore: number; loadScore: number; budgetScore: number; matchScore: number; capabilitiesMatched: CapabilityString[]; capabilitiesMissing: CapabilityString[]; scopeValid: boolean; advertisementFresh: boolean; reputationScore?: number; } export interface RoutingResult { decision: RoutingDecision; candidates: CandidateScore[]; rejectedClaims: { claimantId: string; reason: string; }[]; } //# sourceMappingURL=routing.d.ts.map