export type DisclosureLevel = 'public' | 'verified-only' | 'minimal'; /** * A Principal is the human or organization that owns/operates agents. * They have their own Ed25519 keypair, separate from any agent's keys. */ export interface PrincipalIdentity { principalId: string; displayName: string; publicKey: string; domain?: string; jurisdiction?: string; contactChannel?: string; disclosureLevel: DisclosureLevel; createdAt: string; metadata: Record; /** Optional legal entity binding (e.g. Corpo Wyoming DAO LLC). * Root trust anchor: the entity establishes the maximum authority ceiling * that every downstream delegation narrows from. */ entityBinding?: EntityBinding; } /** Legal entity binding — links a principal to a registered legal entity. * The entity proves the agent ecosystem has a legal counterparty * for contracts, regulated payments, and dispute resolution. */ export interface EntityBinding { entityId: string; jurisdiction: string; entityType?: string; operatingAgreementHash?: string; verificationEndpoint?: string; boundAt: string; } /** * An Endorsement is the principal's cryptographic sign-off on an agent. * "I created/operate this agent and I'm accountable for it." * The principal signs the agent's public key + scope, creating a * verifiable chain from human to machine. */ export interface PrincipalEndorsement { endorsementId: string; principalId: string; principalPublicKey: string; agentId: string; agentPublicKey: string; scope: string[]; relationship: 'creator' | 'operator' | 'employer' | 'sponsor'; endorsedAt: string; expiresAt: string; revoked: boolean; revokedAt?: string; revokedReason?: string; signature: string; } /** * Selective disclosure: a principal can reveal different amounts * of identity information depending on context. */ export interface PrincipalDisclosure { disclosureId: string; principalId: string; level: DisclosureLevel; revealedFields: Record; proof: string; createdAt: string; } /** * Fleet: a principal's collection of endorsed agents. */ export interface FleetRecord { principalId: string; principalPublicKey: string; agents: FleetAgent[]; createdAt: string; updatedAt: string; } export interface FleetAgent { agentId: string; agentPublicKey: string; endorsementId: string; relationship: PrincipalEndorsement['relationship']; status: 'active' | 'revoked' | 'expired'; endorsedAt: string; } /** * Result of verifying an endorsement. */ export interface EndorsementVerification { valid: boolean; expired: boolean; revoked: boolean; principalId: string; agentId: string; errors: string[]; } //# sourceMappingURL=principal.d.ts.map