UNPKG

@phren/cli

Version:

Knowledge layer for AI agents - CLI, MCP server, and data layer

27 lines (26 loc) • 1.29 kB
/** Owner phone/desktop gateways and the owner's local CLI carry no agent or * peer origin. Peer keys are forced through the peer scope, which rebuilds * the request with its own origin header; MCP calls carry an agent origin. */ export function ownerRequest(request, data) { return request.headers?.["x-phren-origin"] === undefined && data.origin === undefined; } export function requestPeer(request) { if (request.headers?.["x-phren-origin"] !== "peer") return undefined; const encoded = request.headers?.["x-phren-peer"]; if (typeof encoded !== "string") return undefined; try { const value = JSON.parse(Buffer.from(encoded, "base64url").toString("utf8")); if (!/^[a-f0-9]{64}$/.test(value.fingerprint) || value.id !== undefined && !/^[a-f0-9-]{36}$/i.test(value.id)) return undefined; if (value.name !== undefined && (typeof value.name !== "string" || !/^[A-Za-z0-9_.-]{1,253}$/.test(value.name))) return undefined; if (value.name === undefined && value.id === undefined) return undefined; return { ...(value.name ? { name: value.name } : {}), ...(value.id ? { id: value.id } : {}), fingerprint: value.fingerprint }; } catch { return undefined; } }