Architecture changes: - Extension connects directly to server (no local proxy/daemon) - Dual transport: WebSocket (real-time) + HTTP polling (fallback) - Server stores encrypted cookie blobs (E2E encrypted, server-blind) - Device registration with API token auth - Pairing records stored server-side for cross-device cookie access - Agent Skill API: AI agents get tokens to retrieve encrypted cookies with domain-level access control New modules: - src/relay/store.ts — encrypted cookie blob storage (LWW, per-device limits) - src/relay/tokens.ts — device registry, agent registry, pairing tracking - Protocol spec v2 with new types (EncryptedCookieBlob, AgentToken, etc.) 38 tests passing (crypto, pairing, conflict, full integration with HTTP polling, agent API, and WebSocket relay). Co-Authored-By: Paperclip <noreply@paperclip.ing>
48 lines
1.1 KiB
TypeScript
48 lines
1.1 KiB
TypeScript
export { RelayServer } from "./relay/index.js";
|
|
export type { RelayServerConfig } from "./relay/index.js";
|
|
export { CookieBlobStore } from "./relay/store.js";
|
|
export { DeviceRegistry, AgentRegistry } from "./relay/tokens.js";
|
|
|
|
export {
|
|
generateKeyPair,
|
|
deviceIdFromKeys,
|
|
serializeKeyPair,
|
|
deserializeKeyPair,
|
|
deriveSharedKey,
|
|
encrypt,
|
|
decrypt,
|
|
sign,
|
|
verify,
|
|
buildSignablePayload,
|
|
} from "./crypto/index.js";
|
|
export type { DeviceKeyPair, SerializedKeyPair } from "./crypto/index.js";
|
|
|
|
export { PairingStore, generatePairingCode } from "./pairing/index.js";
|
|
export type { PairingSession } from "./pairing/index.js";
|
|
|
|
export { buildEnvelope, openEnvelope, CookieStore } from "./sync/index.js";
|
|
|
|
export {
|
|
PROTOCOL_VERSION,
|
|
MESSAGE_TYPES,
|
|
MAX_OFFLINE_QUEUE,
|
|
MAX_STORED_COOKIES_PER_DEVICE,
|
|
PAIRING_CODE_LENGTH,
|
|
PAIRING_TTL_MS,
|
|
POLL_INTERVAL_MS,
|
|
} from "./protocol/spec.js";
|
|
export type {
|
|
Envelope,
|
|
MessageType,
|
|
CookieEntry,
|
|
CookieSyncPayload,
|
|
EncryptedCookieBlob,
|
|
DeviceRegisterRequest,
|
|
DeviceInfo,
|
|
PairingRequest,
|
|
PairingAccept,
|
|
PairingResult,
|
|
AgentTokenRequest,
|
|
AgentToken,
|
|
} from "./protocol/spec.js";
|