export type ObligationStatus = 'pending' | 'fulfilled' | 'unfulfilled_no_evidence' | 'unfulfilled_tool_failure' | 'unfulfilled_blocked_by_policy' | 'terminated_by_revocation' | 'terminated_by_expiry' | 'waived_by_principal'; export type ObligationOutcome = ObligationStatus; export interface Obligation { obligationId: string; delegationId: string; obligorAgentId: string; obligorPublicKey: string; action: ObligationAction; deadline: string; evidence: EvidenceRequirement; penalty: PenaltySpec; status: ObligationStatus; survivesTermination: boolean; survivalWindow?: string; createdAt: string; createdBy: string; signature: string; } export interface ObligationAction { type: string; target?: string; scope: string; description: string; minCount?: number; recurring?: RecurrenceSpec; } export interface RecurrenceSpec { frequency: 'once' | 'hourly' | 'daily' | 'weekly' | 'monthly'; interval?: number; until?: string; timezone?: string; } export interface EvidenceRequirement { type: 'action_receipt' | 'deliverable' | 'agora_post'; matchCriteria: { toolMatch?: string; scopeMatch?: string; paramConstraints?: Record; }; } export type ParamConstraint = { equals: unknown; } | { min?: number; max?: number; currency?: string; } | { contains: string; } | { oneOf: unknown[]; }; export interface PenaltySpec { type: 'warning' | 'reputation_penalty' | 'revoke_delegation' | 'cascade_revoke' | 'escalate_to_principal'; severity: 'warning' | 'minor' | 'major' | 'critical'; reputationImpact?: number; escalationTarget?: string; gracePeriodMinutes: number; autoExecute: boolean; } export interface ObligationBundle { delegationId: string; obligations: Obligation[]; bundleSignature: string; principalPublicKey: string; } export interface FulfillmentReceipt { receiptId: string; obligationId: string; delegationId: string; agentId: string; fulfilledAt: string; evidence: { actionReceiptId?: string; deliverableId?: string; agoraMessageId?: string; }; gatewayId: string; gatewaySignature: string; } export interface ObligationResolution { resolutionId: string; obligationId: string; delegationId: string; agentId: string; outcome: ObligationOutcome; deadline: string; detectedAt: string; gatewayLatencyDelta?: number; escalationPending?: boolean; escalationId?: string; attemptEvidence?: { failedReceiptId: string; errorCode: string; attemptedAt: string; }; penaltyApplied?: PenaltySpec; penaltyExecuted: boolean; gatewayId: string; gatewaySignature: string; } //# sourceMappingURL=obligations.d.ts.map