/** A single need or offer with structured metadata */ export interface IntentItem { category: string; description: string; priority: 'high' | 'medium' | 'low'; tags: string[]; budget?: { amount: number; currency: string; }; visibility: 'public' | 'on-match' | 'on-approval'; } /** The core representation object — what an agent carries on behalf of a human */ export interface IntentCard { cardId: string; agentId: string; principalAlias: string; publicKey: string; needs: IntentItem[]; offers: IntentItem[]; openTo: string[]; notOpenTo: string[]; approvalRequired: string[]; autonomy: 'discover-only' | 'propose-intros' | 'auto-intro'; ttlSeconds: number; createdAt: string; expiresAt: string; signature: string; } /** A match between a need from one card and an offer from another */ export interface NeedOfferMatch { needFrom: string; need: IntentItem; offerFrom: string; offer: IntentItem; relevanceScore: number; matchType: 'exact' | 'adjacent' | 'partial'; explanation: string; } /** Result of comparing two IntentCards */ export interface RelevanceMatch { matchId: string; cardA: string; cardB: string; agentA: string; agentB: string; score: number; needOfferMatches: NeedOfferMatch[]; mutual: boolean; explanation: string; matchedAt: string; } /** Introduction request — one agent proposes connecting two humans */ export interface IntroRequest { introId: string; requestedBy: string; targetAgentId: string; matchId: string; message: string; fieldsToDisclose: string[]; status: 'pending' | 'approved' | 'declined' | 'expired'; createdAt: string; expiresAt: string; signature: string; } /** Response to an introduction request */ export interface IntroResponse { introId: string; respondedBy: string; verdict: 'approve' | 'decline'; message?: string; disclosedFields?: Record; respondedAt: string; signature: string; } /** Digest — "what's relevant to me right now" */ export interface Digest { digestId: string; agentId: string; matches: RelevanceMatch[]; introsPending: IntroRequest[]; introsReceived: IntroRequest[]; summary: string; generatedAt: string; } /** In-memory network state */ export interface IntentNetwork { cards: Map; matches: Map; intros: Map; } /** Search options */ export interface SearchOptions { maxResults?: number; minScore?: number; categories?: string[]; excludeAgents?: string[]; } //# sourceMappingURL=intent-network.d.ts.map