{"code":"var __defProp=Object.defineProperty;var __name=(target,value)=>__defProp(target,\"name\",{value,configurable:true});import http from\"node:http\";const DEFAULT_PORT=8787;const DEFAULT_API_BASE=\"https://api.ppq.ai\";const HEALTH_TIMEOUT_MS=15e3;const PRIVATE_MODEL_MAP={\"private/kimi-k2-5\":\"kimi-k2-5\",\"private/deepseek-r1-0528\":\"deepseek-r1-0528\",\"private/gpt-oss-120b\":\"gpt-oss-120b\",\"private/llama3-3-70b\":\"llama3-3-70b\",\"private/qwen3-vl-30b\":\"qwen3-vl-30b\"};const PRIVATE_MODELS=Object.keys(PRIVATE_MODEL_MAP);const MODEL_LIST_RESPONSE={object:\"list\",data:[{id:\"private/kimi-k2-5\",object:\"model\",created:0,owned_by:\"ppq-private\"},{id:\"private/deepseek-r1-0528\",object:\"model\",created:0,owned_by:\"ppq-private\"},{id:\"private/gpt-oss-120b\",object:\"model\",created:0,owned_by:\"ppq-private\"},{id:\"private/llama3-3-70b\",object:\"model\",created:0,owned_by:\"ppq-private\"},{id:\"private/qwen3-vl-30b\",object:\"model\",created:0,owned_by:\"ppq-private\"}]};async function startProxy(config,logger){const port=config.port||DEFAULT_PORT;const apiBase=config.apiBase||DEFAULT_API_BASE;const{SecureClient:SC}=await import(\"tinfoil\").then(s=>{const e=\"default\";return s[e]&&typeof s[e]==\"object\"&&\"__esModule\"in s[e]?s[e]:s});logger.info(\"Initializing encrypted connection to secure enclave...\");const client=new SC({baseURL:`${apiBase}/private/`,attestationBundleURL:`${apiBase}/private`,transport:\"ehbp\"});await client.ready();let verification=null;try{verification=client.getVerificationDocument();logger.info(`Attestation verified \\u2014 enclave: ${verification?.enclaveHost||\"unknown\"}, code fingerprint: ${verification?.codeFingerprint?.slice(0,16)||\"unknown\"}...`)}catch{logger.info(\"Attestation completed (verification document unavailable)\")}const encryptedFetch=client.fetch;const server=http.createServer(async(req,res)=>{res.setHeader(\"Access-Control-Allow-Origin\",\"*\");res.setHeader(\"Access-Control-Allow-Methods\",\"GET, POST, OPTIONS\");res.setHeader(\"Access-Control-Allow-Headers\",\"Content-Type, Authorization\");if(req.method===\"OPTIONS\"){res.writeHead(204);res.end();return}const url=new URL(req.url||\"/\",`http://127.0.0.1:${port}`);if(url.pathname===\"/health\"||url.pathname===\"/\"){res.writeHead(200,{\"Content-Type\":\"application/json\"});res.end(JSON.stringify({status:\"ok\",attestation:!!verification}));return}if(url.pathname===\"/v1/models\"&&req.method===\"GET\"){res.writeHead(200,{\"Content-Type\":\"application/json\"});res.end(JSON.stringify(MODEL_LIST_RESPONSE));return}if(url.pathname===\"/v1/chat/completions\"&&req.method===\"POST\"){try{const body=await readBody(req);const parsed=JSON.parse(body);let modelId=parsed.model||\"private/kimi-k2-5\";if(!PRIVATE_MODEL_MAP[modelId]){const prefixed=`private/${modelId}`;if(PRIVATE_MODEL_MAP[prefixed]){modelId=prefixed}else{res.writeHead(400,{\"Content-Type\":\"application/json\"});res.end(JSON.stringify({error:{message:`Unknown model: ${parsed.model}. Available: ${PRIVATE_MODELS.join(\", \")}`,type:\"invalid_request_error\"}}));return}}const enclaveModelId=PRIVATE_MODEL_MAP[modelId];parsed.model=enclaveModelId;if(config.debug){logger.debug?.(`\\u2192 ${modelId} (enclave: ${enclaveModelId}), stream: ${!!parsed.stream}`)}const endpoint=`${apiBase}/private/v1/chat/completions`;const response=await encryptedFetch(endpoint,{method:\"POST\",headers:{\"Content-Type\":\"application/json\",Authorization:`Bearer ${config.apiKey}`,\"X-Private-Model\":modelId,\"x-query-source\":\"api\"},body:JSON.stringify(parsed)});const responseHeaders={\"Content-Type\":response.headers.get(\"content-type\")||\"application/json\",\"Access-Control-Allow-Origin\":\"*\"};if(parsed.stream){responseHeaders[\"Cache-Control\"]=\"no-cache\";responseHeaders[\"Connection\"]=\"keep-alive\"}res.writeHead(response.status,responseHeaders);if(response.body){const reader=response.body.getReader();try{while(true){const{done,value}=await reader.read();if(done)break;res.write(value)}}catch(err){if(config.debug){logger.error(`Stream error: ${err.message}`)}}finally{res.end()}}else{const text=await response.text();res.end(text)}}catch(err){if(err?.name===\"ProtocolError\"){logger.error(`Protocol error (likely auth/balance issue): ${err.message}`);res.writeHead(401,{\"Content-Type\":\"application/json\"});res.end(JSON.stringify({error:{message:\"Authentication or balance error. Check your PPQ API key and account balance.\",type:\"authentication_error\"}}));return}logger.error(`Request error: ${err.message}`);res.writeHead(500,{\"Content-Type\":\"application/json\"});res.end(JSON.stringify({error:{message:err.message||\"Internal proxy error\",type:\"proxy_error\"}}))}return}res.writeHead(404,{\"Content-Type\":\"application/json\"});res.end(JSON.stringify({error:{message:`Unknown endpoint: ${req.method} ${url.pathname}`,type:\"invalid_request_error\"}}))});await new Promise((resolve,reject)=>{server.on(\"error\",reject);server.listen(port,\"127.0.0.1\",()=>{logger.info(`PPQ Private Mode proxy listening on http://127.0.0.1:${port}`);logger.info(`Endpoints: GET /v1/models, POST /v1/chat/completions`);resolve()})});return{port,server,verification,close:__name(()=>new Promise(resolve=>{server.close(()=>resolve())}),\"close\")}}__name(startProxy,\"startProxy\");function readBody(req){return new Promise((resolve,reject)=>{const chunks=[];req.on(\"data\",chunk=>chunks.push(chunk));req.on(\"end\",()=>resolve(Buffer.concat(chunks).toString(\"utf-8\")));req.on(\"error\",reject)})}__name(readBody,\"readBody\");export{startProxy};\n","warnings":[],"map":{"version":3,"mappings":"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","names":[],"ignoreList":[],"sources":["/usr/lib/node_modules/ppq-private-mode/lib/proxy.ts"],"sourcesContent":[null]}}