/** * Society Protocol — JavaScript/TypeScript SDK * * SDK oficial para integração com Society Protocol. * Facilita a criação de agents e integração em aplicações existentes. */ import { EventEmitter } from 'events'; import { type ReputationScore } from '../reputation.js'; import { type PlannerProvider } from '../planner.js'; import { type FederationPeeringPolicy, type FederationPeeringStatus } from '../federation.js'; import { type MeshBridgeRules } from '../integration.js'; import { type Template } from '../templates.js'; import type { Artifact, AdapterCapabilities, AdapterHeartbeatBody } from '../swp.js'; import type { MissionInfo, ProactiveMissionSpec, ResearchWorkerConfig, SwarmStatus, SwarmWorkerAnnouncement, SwarmWorkerProfile } from '../proactive/types.js'; import { type AddMemoryInput, type CapabilityCaveats, type UpdateMemoryInput, type MemoryQueryInput, type GraphQueryInput, type UpdatePreferenceInput, type IssueCapabilityInput, type IssueClaimInput, type GenerateZkProofInput, type VerifyZkProofInput, type ZkProofBundle, type ExportSubgraphInput, type PersonaSyncDelta, type PersonaDomain } from '../persona/index.js'; export interface SDKConfig { identity?: { name: string; did?: string; privateKeyHex?: string; }; storage?: { path?: string; }; network?: { bootstrap?: string[]; port?: number; enableGossipsub?: boolean; enableDht?: boolean; enableMdns?: boolean; }; planner?: { provider?: PlannerProvider; apiKey?: string; enableCache?: boolean; }; proactive?: { enableLeadership?: boolean; autoRestoreMissions?: boolean; leaseTtlMs?: number; leaseRenewIntervalMs?: number; }; } export interface SummonOptions { goal: string; roomId: string; template?: string; priority?: 'low' | 'normal' | 'high' | 'critical'; onStep?: (step: StepInfo) => void; onComplete?: (chain: ChainInfo) => void; } export interface StepInfo { id: string; chainId: string; kind: string; title: string; status: string; assignee?: string; } export interface ChainInfo { id: string; goal: string; status: string; steps: StepInfo[]; } export interface PeerInfo { did: string; name: string; status: string; reputation?: number; specialties?: string[]; } export declare class SocietyClient extends EventEmitter { private identity; private storage; private p2p; private rooms; private coc; private reputation; private planner; private exporter; private federation; private knowledge; private skills; private security; private integration; private persona; private proactive; private researchWorker?; private config; private connected; constructor(config?: SDKConfig); connect(): Promise; disconnect(): Promise; private setupEventForwarding; joinRoom(roomId: string, displayName?: string): Promise; leaveRoom(roomId: string): Promise; getJoinedRooms(): string[]; sendMessage(roomId: string, message: string, replyTo?: string): Promise; summon(options: SummonOptions): Promise; private setupChainListeners; listChains(roomId: string): Promise; getChain(chainId: string): Promise; submitStep(stepId: string, result: { status: 'completed' | 'failed' | 'partial'; output: string; artifacts?: Artifact[]; }): Promise; reviewStep(stepId: string, decision: 'approved' | 'rejected' | 'needs_revision', notes: string): Promise; cancelChain(chainId: string, reason?: string): Promise; getPendingSteps(): Promise; startMission(spec: ProactiveMissionSpec): Promise; pauseMission(missionId: string): Promise; resumeMission(missionId: string): Promise; stopMission(missionId: string, reason?: string): Promise; listMissions(roomId?: string): Promise; getMission(missionId: string): Promise; getSwarmStatus(roomId?: string): Promise; startResearchWorker(config: ResearchWorkerConfig): Promise; getReputation(did?: string): Promise; listTemplates(category?: string): Template[]; exportCapsule(chainId: string, outputPath?: string): Promise; getPeers(roomId: string): Promise; announceWorker(roomId: string, profile: SwarmWorkerAnnouncement): Promise; heartbeatWorker(roomId: string, heartbeat: AdapterHeartbeatBody): Promise; updateWorkerCapabilities(roomId: string, capabilities: AdapterCapabilities & { worker_did?: string; }): Promise; sendWorkerPresence(roomId: string, options: { status: 'online' | 'busy' | 'running' | 'offline' | 'away'; load?: number; specialties?: string[]; capabilities?: string[]; }): Promise; getVisibleWorkers(roomId: string): Promise; createFederation(name: string, description: string, visibility?: 'public' | 'private' | 'invite-only'): Promise; listFederations(): any[]; getFederation(federationId: string): any; joinFederation(federationId: string): Promise; createKnowledgeSpace(name: string, description: string, type?: 'personal' | 'team' | 'federation' | 'public'): Promise; createKnowledgeCard(spaceId: string, type: string, title: string, content: string, options?: { summary?: string; tags?: string[]; domain?: string[]; confidence?: number; }): Promise; queryKnowledgeCards(options: { spaceId?: string; type?: string; tags?: string[]; query?: string; limit?: number; }): any[]; getKnowledgeGraph(spaceId: string): any; linkKnowledgeCards(sourceId: string, targetId: string, type: string, strength?: number): Promise; createPeering(sourceFederationId: string, targetFederationDid: string, policy?: Partial): Promise; acceptPeering(peeringId: string, reason?: string): Promise; rejectPeering(peeringId: string, reason?: string): Promise; revokePeering(peeringId: string, reason?: string): Promise; listPeerings(federationId: string, status?: FederationPeeringStatus): any[]; openBridge(peeringId: string, localRoomId: string, remoteRoomId: string, rules?: Partial): Promise; closeBridge(bridgeId: string): Promise; listBridges(federationId?: string): any[]; getMeshStats(federationId?: string): any; createPersonaVault(input: { name: string; ownerDid?: string; }): Promise; addMemory(input: AddMemoryInput & { capabilityToken?: string; zkpProofs?: ZkProofBundle[]; }): Promise; updateMemory(nodeId: string, patch: UpdateMemoryInput, options?: { capabilityToken?: string; domain?: PersonaDomain; zkpProofs?: ZkProofBundle[]; }): Promise; deleteMemory(nodeId: string, reason?: string, options?: { capabilityToken?: string; domain?: PersonaDomain; zkpProofs?: ZkProofBundle[]; }): Promise; queryMemories(input: MemoryQueryInput & { capabilityToken?: string; zkpProofs?: ZkProofBundle[]; }): Promise; queryGraph(input: GraphQueryInput & { capabilityToken?: string; zkpProofs?: ZkProofBundle[]; }): Promise; updatePreference(input: UpdatePreferenceInput & { capabilityToken?: string; zkpProofs?: ZkProofBundle[]; }): Promise; issueCapability(input: IssueCapabilityInput & { capabilityToken?: string; zkpProofs?: ZkProofBundle[]; }): Promise; attenuateCapability(tokenId: string, caveatsPatch: Partial, options?: { capabilityToken?: string; zkpProofs?: ZkProofBundle[]; }): Promise; revokeCapability(tokenId: string, reason: string, options?: { capabilityToken?: string; zkpProofs?: ZkProofBundle[]; }): Promise; shareSubgraph(input: ExportSubgraphInput & { capabilityToken?: string; zkpProofs?: ZkProofBundle[]; }): Promise; getPersonaProfile(vaultId?: string, options?: { capabilityToken?: string; zkpProofs?: ZkProofBundle[]; }): Promise; listPersonaCapabilities(vaultId?: string): Promise; getPersonaCapability(tokenId: string, vaultId?: string): Promise; issuePersonaClaim(input: IssueClaimInput & { capabilityToken?: string; zkpProofs?: ZkProofBundle[]; }): Promise; revokePersonaClaim(claimId: string, reason: string, options?: { capabilityToken?: string; zkpProofs?: ZkProofBundle[]; }): Promise; generatePersonaZkProof(input: GenerateZkProofInput & { capabilityToken?: string; }): Promise; verifyPersonaZkProof(input: VerifyZkProofInput & { capabilityToken?: string; }): Promise; listPersonaClaims(vaultId?: string, includeRevoked?: boolean): Promise; getPersonaClaim(claimId: string): Promise; listPersonaZkCircuits(): any[]; listPersonaZkProofs(vaultId?: string): any[]; getPersonaZkProof(proofId: string): any | undefined; verifyPersonaAccessLog(input: { logId: number; capabilityToken?: string; zkpProofs?: ZkProofBundle[]; }): Promise<{ logId: number; valid: boolean; reason?: string; }>; runPersonaRetentionSweep(input?: { vaultId?: string; domain?: PersonaDomain; dryRun?: boolean; capabilityToken?: string; zkpProofs?: ZkProofBundle[]; }): Promise<{ scanned: number; deleted: number; }>; applyPersonaSyncDelta(delta: PersonaSyncDelta, options?: { capabilityToken?: string; zkpProofs?: ZkProofBundle[]; }): Promise; getIdentity(): { did: string; name: string; }; getPeerId(): string; getMultiaddrs(): string[]; getCapabilities(): string[]; private ensureConnected; private authorizePersonaAccess; private auditPersonaAccess; } export declare function createClient(config?: SDKConfig): Promise; export interface SimpleConfig { /** Display name for your agent */ name?: string; /** Room to auto-join (default: 'lobby') */ room?: string; /** Invite code to join a friend's network */ join?: string; /** Bootstrap address to connect to a remote network */ connect?: string; /** Capabilities this agent offers */ capabilities?: string[]; } export declare function society(config?: SimpleConfig | string): Promise; export declare function useSociety(config?: SDKConfig): { client: SocietyClient | null; connected: boolean; chains: ChainInfo[]; connect: () => Promise; disconnect: () => Promise; }; //# sourceMappingURL=client.d.ts.map