omniroute 2.8.0 → 2.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/app/.next/BUILD_ID +1 -1
  2. package/app/.next/build-manifest.json +2 -2
  3. package/app/.next/prerender-manifest.json +3 -3
  4. package/app/.next/server/app/(dashboard)/dashboard/a2a/page_client-reference-manifest.js +1 -1
  5. package/app/.next/server/app/(dashboard)/dashboard/agents/page_client-reference-manifest.js +1 -1
  6. package/app/.next/server/app/(dashboard)/dashboard/analytics/page_client-reference-manifest.js +1 -1
  7. package/app/.next/server/app/(dashboard)/dashboard/api-manager/page_client-reference-manifest.js +1 -1
  8. package/app/.next/server/app/(dashboard)/dashboard/audit-log/page_client-reference-manifest.js +1 -1
  9. package/app/.next/server/app/(dashboard)/dashboard/auto-combo/page_client-reference-manifest.js +1 -1
  10. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  11. package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  12. package/app/.next/server/app/(dashboard)/dashboard/costs/page_client-reference-manifest.js +1 -1
  13. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  14. package/app/.next/server/app/(dashboard)/dashboard/health/page_client-reference-manifest.js +1 -1
  15. package/app/.next/server/app/(dashboard)/dashboard/limits/page_client-reference-manifest.js +1 -1
  16. package/app/.next/server/app/(dashboard)/dashboard/logs/page_client-reference-manifest.js +1 -1
  17. package/app/.next/server/app/(dashboard)/dashboard/mcp/page_client-reference-manifest.js +1 -1
  18. package/app/.next/server/app/(dashboard)/dashboard/media/page_client-reference-manifest.js +1 -1
  19. package/app/.next/server/app/(dashboard)/dashboard/onboarding/page_client-reference-manifest.js +1 -1
  20. package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  21. package/app/.next/server/app/(dashboard)/dashboard/playground/page_client-reference-manifest.js +1 -1
  22. package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  23. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  24. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  25. package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  26. package/app/.next/server/app/(dashboard)/dashboard/search-tools/page_client-reference-manifest.js +1 -1
  27. package/app/.next/server/app/(dashboard)/dashboard/settings/page_client-reference-manifest.js +1 -1
  28. package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  29. package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  30. package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  31. package/app/.next/server/app/400/page_client-reference-manifest.js +1 -1
  32. package/app/.next/server/app/401/page_client-reference-manifest.js +1 -1
  33. package/app/.next/server/app/403/page_client-reference-manifest.js +1 -1
  34. package/app/.next/server/app/408/page_client-reference-manifest.js +1 -1
  35. package/app/.next/server/app/429/page_client-reference-manifest.js +1 -1
  36. package/app/.next/server/app/500/page_client-reference-manifest.js +1 -1
  37. package/app/.next/server/app/502/page_client-reference-manifest.js +1 -1
  38. package/app/.next/server/app/503/page_client-reference-manifest.js +1 -1
  39. package/app/.next/server/app/_global-error.html +2 -2
  40. package/app/.next/server/app/_global-error.rsc +1 -1
  41. package/app/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  42. package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  43. package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  44. package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  45. package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  46. package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  47. package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  48. package/app/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  49. package/app/.next/server/app/forbidden/page_client-reference-manifest.js +1 -1
  50. package/app/.next/server/app/forgot-password/page_client-reference-manifest.js +1 -1
  51. package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  52. package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
  53. package/app/.next/server/app/maintenance/page_client-reference-manifest.js +1 -1
  54. package/app/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  55. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  56. package/app/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
  57. package/app/.next/server/app/status/page_client-reference-manifest.js +1 -1
  58. package/app/.next/server/app/terms/page_client-reference-manifest.js +1 -1
  59. package/app/.next/server/chunks/[root-of-the-server]__09c944b3._.js +1 -1
  60. package/app/.next/server/chunks/[root-of-the-server]__167585da._.js +1 -1
  61. package/app/.next/server/chunks/[root-of-the-server]__3972de72._.js +5 -5
  62. package/app/.next/server/chunks/[root-of-the-server]__64bd5d97._.js +1 -1
  63. package/app/.next/server/chunks/[root-of-the-server]__784fb7c5._.js +1 -1
  64. package/app/.next/server/chunks/[root-of-the-server]__7d9b23e7._.js +1 -1
  65. package/app/.next/server/chunks/[root-of-the-server]__80e3bfc3._.js +1 -1
  66. package/app/.next/server/chunks/[root-of-the-server]__84e445b2._.js +2 -2
  67. package/app/.next/server/chunks/[root-of-the-server]__92cb0def._.js +2 -2
  68. package/app/.next/server/chunks/[root-of-the-server]__a630d6ef._.js +5 -5
  69. package/app/.next/server/chunks/[root-of-the-server]__cb8a67d1._.js +1 -1
  70. package/app/.next/server/chunks/[root-of-the-server]__db2f9fe0._.js +1 -1
  71. package/app/.next/server/chunks/[root-of-the-server]__dc47ee64._.js +1 -1
  72. package/app/.next/server/chunks/[root-of-the-server]__f0f9eb3f._.js +2 -2
  73. package/app/.next/server/chunks/_05c48915._.js +1 -1
  74. package/app/.next/server/chunks/_1244636c._.js +5 -5
  75. package/app/.next/server/chunks/_2115d8de._.js +1 -1
  76. package/app/.next/server/chunks/_3ac953eb._.js +1 -1
  77. package/app/.next/server/chunks/_4b8fd853._.js +1 -1
  78. package/app/.next/server/chunks/_68683848._.js +1 -1
  79. package/app/.next/server/chunks/_ee9b677b._.js +1 -1
  80. package/app/.next/server/chunks/open-sse_translator_index_ts_f5fd0821._.js +9 -9
  81. package/app/.next/server/chunks/src_lib_a886ee1f._.js +1 -1
  82. package/app/.next/server/chunks/src_shared_validation_schemas_ts_4e63863a._.js +1 -1
  83. package/app/.next/server/chunks/ssr/[root-of-the-server]__9affb65e._.js +1 -1
  84. package/app/.next/server/chunks/ssr/[root-of-the-server]__a6942102._.js +1 -1
  85. package/app/.next/server/chunks/ssr/_5a9cd299._.js +1 -1
  86. package/app/.next/server/chunks/ssr/src_d3225e36._.js +1 -1
  87. package/app/.next/server/chunks/ssr/src_i18n_messages_zh-CN_json_f4112d90._.js +1 -1
  88. package/app/.next/server/pages/500.html +2 -2
  89. package/app/.next/server/server-reference-manifest.js +1 -1
  90. package/app/.next/server/server-reference-manifest.json +1 -1
  91. package/app/.next/static/chunks/02afac1b585d8219.css +1 -0
  92. package/app/.next/static/chunks/{d3cb88d181c61235.js → 4bed5b394f9dece9.js} +1 -1
  93. package/app/.next/static/chunks/{4f099d0f5b0f00d6.js → b5cc103e16794392.js} +1 -1
  94. package/app/.next/static/chunks/d19ab4efcaddd1db.js +1 -0
  95. package/app/CHANGELOG.md +20 -0
  96. package/app/docs/openapi.yaml +1 -1
  97. package/app/open-sse/executors/kiro.ts +5 -2
  98. package/app/open-sse/handlers/chatCore.ts +11 -3
  99. package/app/open-sse/translator/helpers/toolCallHelper.ts +58 -15
  100. package/app/open-sse/translator/index.ts +10 -3
  101. package/app/open-sse/utils/stream.ts +129 -19
  102. package/app/open-sse/utils/usageTracking.ts +3 -1
  103. package/app/package-lock.json +2 -2
  104. package/app/package.json +1 -1
  105. package/app/src/app/(dashboard)/dashboard/providers/[id]/page.tsx +22 -0
  106. package/app/src/app/api/keys/[id]/route.ts +26 -4
  107. package/app/src/app/api/provider-models/route.ts +3 -1
  108. package/app/src/i18n/messages/zh-CN.json +862 -787
  109. package/app/src/lib/db/models.ts +25 -0
  110. package/app/src/lib/usage/callLogs.ts +6 -2
  111. package/app/src/shared/components/RequestLoggerDetail.tsx +10 -10
  112. package/app/src/shared/validation/schemas.ts +1 -0
  113. package/app/src/sse/handlers/chat.ts +8 -3
  114. package/package.json +1 -1
  115. package/app/.next/static/chunks/194dbd564ba7150b.css +0 -1
  116. package/app/.next/static/chunks/3f3d822837a5ff5f.js +0 -1
  117. /package/app/.next/static/{Y1ARupD8_nbYoMt6WYrBO → JoLoKHY_9DVANe7Qs4D0K}/_buildManifest.js +0 -0
  118. /package/app/.next/static/{Y1ARupD8_nbYoMt6WYrBO → JoLoKHY_9DVANe7Qs4D0K}/_clientMiddlewareManifest.json +0 -0
  119. /package/app/.next/static/{Y1ARupD8_nbYoMt6WYrBO → JoLoKHY_9DVANe7Qs4D0K}/_ssgManifest.js +0 -0
@@ -6,16 +6,16 @@ data: ${JSON.stringify(e)}
6
6
 
7
7
  `:`data: ${JSON.stringify(e)}
8
8
 
9
- `}e.s(["fixInvalidId",()=>i,"formatSSE",()=>l,"hasValuableContent",()=>a,"parseSSELine",()=>s],692172);var c=e.i(16023),u=e.i(581631);function d(e){if(!e||"object"!=typeof e)return[];let t=e._openaiIntermediate;return Array.isArray(t)?t:[]}let p="translate",g="passthrough";function m(e={}){let{mode:f=p,targetFormat:h,sourceFormat:_,provider:y=null,reqLogger:A=null,toolNameMap:T=null,model:k=null,connectionId:S=null,apiKeyInfo:E=null,body:R=null,onComplete:v=null}=e,w="",b=null,C=f===p?{...(0,t.initState)(_),provider:y,toolNameMap:T}:null,O=0,I=!1,$=new TextDecoder,x=new TextEncoder,N=Date.now(),P=null,U=!1;return new TransformStream({start(e){c.STREAM_IDLE_TIMEOUT_MS>0&&(P=setInterval(()=>{if(!U&&Date.now()-N>c.STREAM_IDLE_TIMEOUT_MS){U=!0,clearInterval(P),P=null;let t=`[STREAM] Idle timeout: no data from ${y||"provider"} for ${c.STREAM_IDLE_TIMEOUT_MS}ms (model: ${k||"unknown"})`;console.warn(t),(0,o.trackPendingRequest)(k,y,S,!1),(0,o.appendRequestLog)({model:k,provider:y,connectionId:S,status:`FAILED ${c.HTTP_STATUS.GATEWAY_TIMEOUT}`}).catch(()=>{});let n=Error(t);n.name="StreamIdleTimeoutError",e.error(n)}},1e4))},transform(e,o){if(U)return;N=Date.now();let c=$.decode(e,{stream:!0});w+=c,A?.appendProviderChunk?.(c);let p=w.split("\n");for(let e of(w=p.pop()||"",p)){let c=e.trim();if(f===g){let t,s=!1;if(c.startsWith("data:")&&"[DONE]"!==c.slice(5).trim())try{let e=JSON.parse(c.slice(5).trim()),o=e.type&&"string"==typeof e.type&&e.type.startsWith("response."),l=e.type&&"string"==typeof e.type&&(e.type.startsWith("message")||e.type.startsWith("content_block")||"ping"===e.type||"error"===e.type);if(o){let t=(0,r.extractUsage)(e);t&&(b=t),e.delta&&"string"==typeof e.delta&&(O+=e.delta.length)}else if(l){let t=(0,r.extractUsage)(e);t&&(b||(b={}),t.prompt_tokens>0&&(b.prompt_tokens=t.prompt_tokens),t.completion_tokens>0&&(b.completion_tokens=t.completion_tokens),t.total_tokens>0&&(b.total_tokens=t.total_tokens),t.cache_read_input_tokens&&(b.cache_read_input_tokens=t.cache_read_input_tokens),t.cache_creation_input_tokens&&(b.cache_creation_input_tokens=t.cache_creation_input_tokens)),e.delta?.text&&(O+=e.delta.text.length),e.delta?.thinking&&(O+=e.delta.thinking.length)}else{e=(0,u.sanitizeStreamingChunk)(e);let o=i(e);if(!a(e,n.FORMATS.OPENAI))continue;let l=e.choices?.[0]?.delta;if(l?.content&&"string"==typeof l.content){let{content:e,thinking:t}=(0,u.extractThinkingFromContent)(l.content);l.content=e,t&&!l.reasoning_content&&(l.reasoning_content=t)}let c=l?.content||l?.reasoning_content;c&&"string"==typeof c&&(O+=c.length);let d=(0,r.extractUsage)(e);d&&(b=d);let p=e.choices?.[0]?.finish_reason;if(p&&!(0,r.hasValidUsage)(e.usage)){let o=(0,r.estimateUsage)(R,O,n.FORMATS.OPENAI);e.usage=(0,r.filterUsageForFormat)(o,n.FORMATS.OPENAI),t=`data: ${JSON.stringify(e)}
10
- `,b=o,s=!0}else if(p&&b){let o=(0,r.addBufferToUsage)(b);e.usage=(0,r.filterUsageForFormat)(o,n.FORMATS.OPENAI),t=`data: ${JSON.stringify(e)}
9
+ `}e.s(["fixInvalidId",()=>i,"formatSSE",()=>l,"hasValuableContent",()=>a,"parseSSELine",()=>s],692172);var c=e.i(16023),u=e.i(581631);function d(e){if(!e||"object"!=typeof e)return[];let t=e._openaiIntermediate;return Array.isArray(t)?t:[]}let p="translate",g="passthrough";function m(e={}){let{mode:f=p,targetFormat:h,sourceFormat:_,provider:y=null,reqLogger:A=null,toolNameMap:T=null,model:k=null,connectionId:S=null,apiKeyInfo:E=null,body:R=null,onComplete:v=null}=e,w="",C=null,b=f===p?{...(0,t.initState)(_),provider:y,toolNameMap:T,accumulatedContent:""}:null,I=0,O="",$=!1,x=new TextDecoder,N=new TextEncoder,P=Date.now(),U=null,D=!1;return new TransformStream({start(e){c.STREAM_IDLE_TIMEOUT_MS>0&&(U=setInterval(()=>{if(!D&&Date.now()-P>c.STREAM_IDLE_TIMEOUT_MS){D=!0,clearInterval(U),U=null;let t=`[STREAM] Idle timeout: no data from ${y||"provider"} for ${c.STREAM_IDLE_TIMEOUT_MS}ms (model: ${k||"unknown"})`;console.warn(t),(0,o.trackPendingRequest)(k,y,S,!1),(0,o.appendRequestLog)({model:k,provider:y,connectionId:S,status:`FAILED ${c.HTTP_STATUS.GATEWAY_TIMEOUT}`}).catch(()=>{});let n=Error(t);n.name="StreamIdleTimeoutError",e.error(n)}},1e4))},transform(e,o){if(D)return;P=Date.now();let c=x.decode(e,{stream:!0});w+=c,A?.appendProviderChunk?.(c);let p=w.split("\n");for(let e of(w=p.pop()||"",p)){let c=e.trim();if(f===g){let t,s=!1;if(c.startsWith("data:")&&"[DONE]"!==c.slice(5).trim())try{let e=JSON.parse(c.slice(5).trim()),o=e.type&&"string"==typeof e.type&&e.type.startsWith("response."),l=e.type&&"string"==typeof e.type&&(e.type.startsWith("message")||e.type.startsWith("content_block")||"ping"===e.type||"error"===e.type);if(o){let t=(0,r.extractUsage)(e);t&&(C=t),e.delta&&"string"==typeof e.delta&&(I+=e.delta.length,O+=e.delta)}else if(l){let t=(0,r.extractUsage)(e);t&&(C||(C={}),t.prompt_tokens>0&&(C.prompt_tokens=t.prompt_tokens),t.completion_tokens>0&&(C.completion_tokens=t.completion_tokens),t.total_tokens>0&&(C.total_tokens=t.total_tokens),t.cache_read_input_tokens&&(C.cache_read_input_tokens=t.cache_read_input_tokens),t.cache_creation_input_tokens&&(C.cache_creation_input_tokens=t.cache_creation_input_tokens)),e.delta?.text&&(I+=e.delta.text.length,O+=e.delta.text),e.delta?.thinking&&(I+=e.delta.thinking.length,O+=e.delta.thinking)}else{e=(0,u.sanitizeStreamingChunk)(e);let o=i(e);if(!a(e,n.FORMATS.OPENAI))continue;let l=e.choices?.[0]?.delta;if(l?.content&&"string"==typeof l.content){let{content:e,thinking:t}=(0,u.extractThinkingFromContent)(l.content);l.content=e,t&&!l.reasoning_content&&(l.reasoning_content=t)}let c=l?.content||l?.reasoning_content;c&&"string"==typeof c&&(I+=c.length),"string"==typeof l?.content&&(O+=l.content),"string"==typeof l?.reasoning_content&&(O+=l.reasoning_content);let d=(0,r.extractUsage)(e);d&&(C=d);let p=e.choices?.[0]?.finish_reason;if(p&&!(0,r.hasValidUsage)(e.usage)){let o=(0,r.estimateUsage)(R,I,n.FORMATS.OPENAI);e.usage=(0,r.filterUsageForFormat)(o,n.FORMATS.OPENAI),t=`data: ${JSON.stringify(e)}
10
+ `,C=o,s=!0}else if(p&&C){let o=(0,r.addBufferToUsage)(C);e.usage=(0,r.filterUsageForFormat)(o,n.FORMATS.OPENAI),t=`data: ${JSON.stringify(e)}
11
11
  `,s=!0}else o&&(t=`data: ${JSON.stringify(e)}
12
- `,s=!0)}}catch{}s||(t=e.startsWith("data:")&&!e.startsWith("data: ")?"data: "+e.slice(5)+"\n":e+"\n"),A?.appendConvertedChunk?.(t),o.enqueue(x.encode(t));continue}if(!c)continue;let p=s(c);if(!p)continue;if(p&&p.done){if(!I){I=!0;let e="data: [DONE]\n\n";A?.appendConvertedChunk?.(e),o.enqueue(x.encode(e))}continue}if(p.delta?.text&&(O+=p.delta.text.length),p.delta?.thinking&&(O+=p.delta.thinking.length),p.choices?.[0]?.delta?.content&&(O+=p.choices[0].delta.content.length),p.choices?.[0]?.delta?.reasoning_content&&(O+=p.choices[0].delta.reasoning_content.length),p.candidates?.[0]?.content?.parts)for(let e of p.candidates[0].content.parts)e.text&&"string"==typeof e.text&&(O+=e.text.length);let m=(0,r.extractUsage)(p);m&&(C.usage=m);let y=(0,t.translateResponse)(h,_,p,C);for(let e of d(y)){let t=l(e,n.FORMATS.OPENAI);A?.appendOpenAIChunk?.(t)}if(y?.length>0)for(let e of y){if(!a(e,_))continue;let t="message_delta"===e.type||e.choices?.[0]?.finish_reason;if(C.finishReason&&t&&!(0,r.hasValidUsage)(e.usage)&&O>0){let t=(0,r.estimateUsage)(R,O,_);e.usage=(0,r.filterUsageForFormat)(t,_),C.usage=t}else if(C.finishReason&&t&&C.usage){let t=(0,r.addBufferToUsage)(C.usage);e.usage=(0,r.filterUsageForFormat)(t,_)}let n=l(e,_);A?.appendConvertedChunk?.(n),o.enqueue(x.encode(n))}}},flush(e){if(P&&(clearInterval(P),P=null),!U){(0,o.trackPendingRequest)(k,y,S,!1);try{let a=$.decode();if(a&&(w+=a),f===g){if(w){let t=w;w.startsWith("data:")&&!w.startsWith("data: ")&&(t="data: "+w.slice(5)),A?.appendConvertedChunk?.(t),e.enqueue(x.encode(t))}if(!(0,r.hasValidUsage)(b)&&O>0&&(b=(0,r.estimateUsage)(R,O,_||n.FORMATS.OPENAI)),(0,r.hasValidUsage)(b)?(0,r.logUsage)(y,b,k,S,E):(0,o.appendRequestLog)({model:k,provider:y,connectionId:S,tokens:null,status:"200 OK"}).catch(()=>{}),v)try{v({status:200,usage:b})}catch{}return}if(w.trim()){let o=s(w.trim());if(o&&!o.done){let r=(0,t.translateResponse)(h,_,o,C);for(let e of d(r)){let t=l(e,n.FORMATS.OPENAI);A?.appendOpenAIChunk?.(t)}if(r?.length>0)for(let t of r){let n=l(t,_);A?.appendConvertedChunk?.(n),e.enqueue(x.encode(n))}}}let i=(0,t.translateResponse)(h,_,null,C);for(let e of d(i)){let t=l(e,n.FORMATS.OPENAI);A?.appendOpenAIChunk?.(t)}if(i?.length>0)for(let t of i){let n=l(t,_);A?.appendConvertedChunk?.(n),e.enqueue(x.encode(n))}if(!I){I=!0;let t="data: [DONE]\n\n";A?.appendConvertedChunk?.(t),e.enqueue(x.encode(t))}if(!(0,r.hasValidUsage)(C?.usage)&&O>0&&(C.usage=(0,r.estimateUsage)(R,O,_)),(0,r.hasValidUsage)(C?.usage)?(0,r.logUsage)(C.provider||h,C.usage,k,S,E):(0,o.appendRequestLog)({model:k,provider:y,connectionId:S,tokens:null,status:"200 OK"}).catch(()=>{}),v)try{v({status:200,usage:C?.usage})}catch{}}catch(e){console.log(`[STREAM] Error in flush (${k||"unknown"}):`,e.message||e)}}}},{highWaterMark:16},{highWaterMark:16})}function f(e,t,n=null,o=null,r=null,s=null,a=null,i=null,l=null,c=null){return m({mode:p,targetFormat:e,sourceFormat:t,provider:n,reqLogger:o,toolNameMap:r,model:s,connectionId:a,apiKeyInfo:c,body:i,onComplete:l})}function h(e=null,t=null,n=null,o=null,r=null,s=null,a=null){return m({mode:g,provider:e,reqLogger:t,model:n,connectionId:o,apiKeyInfo:a,body:r,onComplete:s})}e.s(["createPassthroughStreamWithLogger",()=>h,"createSSETransformStreamWithLogger",()=>f],949756)},719485,e=>{"use strict";function t({onDisconnect:e,log:n,provider:o,model:r}={}){let s=new AbortController,a=Date.now(),i=!1,l=null,c=e=>{let t=Date.now()-a,n=o?.toUpperCase()||"UNKNOWN";console.log(`[${new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})}] 🌊 [STREAM] ${n} | ${r||"unknown"} | ${t}ms | ${e}`)};return{signal:s.signal,startTime:a,isConnected:()=>!i,handleDisconnect:(t="client_closed")=>{i||(i=!0,c(`disconnect: ${t}`),l=setTimeout(()=>{s.abort()},500),e?.({reason:t,duration:Date.now()-a}))},handleComplete:()=>{!i&&(i=!0,c("complete"),l&&(clearTimeout(l),l=null))},handleError:e=>{(l&&(clearTimeout(l),l=null),e instanceof Error&&"AbortError"===e.name)?c("aborted"):e instanceof Error?c(`error: ${e.message}`):c("error: unknown")},abort:()=>s.abort()}}function n(e,t,n){var o;let r,s;return o={readable:e.body.pipeThrough(t),writable:{getWriter:()=>({abort:()=>{}})}},r=o.readable.getReader(),s=o.writable.getWriter(),new ReadableStream({async pull(e){if(!n.isConnected())return void e.close();try{let{done:t,value:o}=await r.read();if(t){n.handleComplete(),e.close();return}e.enqueue(o)}catch(t){n.handleError(t),e.error(t)}},cancel(e){n.handleDisconnect(e||"cancelled"),r.cancel(),s.abort()}})}e.s(["createStreamController",()=>t,"pipeWithDisconnect",()=>n])},54092,e=>{"use strict";let t="u">typeof process&&process.versions?.node&&!0,n="u">typeof process&&process.env?.ENABLE_REQUEST_LOGS==="true",o=null,r=null,s=null;async function a(){if(t&&n&&!o)try{o=await e.A(323970),s=(r=await e.A(589793)).join("u">typeof process&&process.cwd?process.cwd():".","logs")}catch{}}async function i(e,t,n){if(await a(),!o||!s)return null;try{await o.promises.mkdir(s,{recursive:!0});let a=function(e=new Date){let t=e=>String(e).padStart(2,"0"),n=e.getFullYear(),o=t(e.getMonth()+1),r=t(e.getDate()),s=t(e.getHours()),a=t(e.getMinutes()),i=t(e.getSeconds());return`${n}${o}${r}_${s}${a}${i}`}(),i=(n||"unknown").replace(/[/:]/g,"-"),l=`${e}_${t}_${i}_${a}`,c=r.join(s,l);return await o.promises.mkdir(c,{recursive:!0}),c}catch(e){return console.log("[LOG] Failed to create log session:",e.message),null}}function l(e,t,n){if(!o||!e)return;let s=r.join(e,t);o.promises.writeFile(s,JSON.stringify(n,null,2)).catch(e=>console.log(`[LOG] Failed to write ${t}:`,e.message))}function c(e){if(!e)return{};let t={...e},n=["authorization","x-api-key","cookie","token"];for(let e of Object.keys(t)){let o=e.toLowerCase();if(n.some(e=>o.includes(e))){let n=t[e];n&&n.length>20&&(t[e]=n.slice(0,10)+"..."+n.slice(-5))}}return t}async function u(e,t,s){if(!n)return{sessionPath:null,logClientRawRequest(){},logRawRequest(){},logOpenAIRequest(){},logTargetRequest(){},logProviderResponse(){},appendProviderChunk(){},appendOpenAIChunk(){},logConvertedResponse(){},appendConvertedChunk(){},logError(){}};let a=await i(e,t,s);return{get sessionPath(){return a},logClientRawRequest(e,t,n={}){l(a,"1_req_client.json",{timestamp:new Date().toISOString(),endpoint:e,headers:c(n),body:t})},logRawRequest(e,t={}){l(a,"2_req_source.json",{timestamp:new Date().toISOString(),headers:c(t),body:e})},logOpenAIRequest(e){l(a,"3_req_openai.json",{timestamp:new Date().toISOString(),body:e})},logTargetRequest(e,t,n){l(a,"4_req_target.json",{timestamp:new Date().toISOString(),url:e,headers:c(t),body:n})},logProviderResponse(e,t,n,o){l(a,"5_res_provider.json",{timestamp:new Date().toISOString(),status:e,statusText:t,headers:n?"function"==typeof n.entries?Object.fromEntries(n.entries()):n:{},body:o})},appendProviderChunk(e){if(!o||!a)return;let t=r.join(a,"5_res_provider.txt");o.promises.appendFile(t,e).catch(()=>{})},appendOpenAIChunk(e){if(!o||!a)return;let t=r.join(a,"6_res_openai.txt");o.promises.appendFile(t,e).catch(()=>{})},logConvertedResponse(e){l(a,"7_res_client.json",{timestamp:new Date().toISOString(),body:e})},appendConvertedChunk(e){if(!o||!a)return;let t=r.join(a,"7_res_client.txt");o.promises.appendFile(t,e).catch(()=>{})},logError(e,t=null){l(a,"6_error.json",{timestamp:new Date().toISOString(),error:e?.message||String(e),stack:e?.stack,requestBody:t})}}}e.s(["createRequestLogger",()=>u])},688828,e=>{"use strict";var t=e.i(731664),n=e.i(85713),o=e.i(352812),r=e.i(496727),s=e.i(16023);e.i(949756);var a=e.i(692172);function i(e,u,d=""){if(!d.includes("claude-cli")||!e.messages?.length)return null;let p=e.messages,g=e=>"string"==typeof e?e:Array.isArray(e)?e.filter(e=>"text"===e.type).map(e=>e.text).join(" "):"",m=!1,f=p[p.length-1];if(f?.role==="assistant"&&f.content?.[0]?.text==="{"&&(m=!0),m||"Warmup"===g(p[0]?.content)&&(m=!0),m||1!==p.length||p[0]?.role!=="user"||"count"===g(p[0]?.content)&&(m=!0),!m&&s.SKIP_PATTERNS?.length){let e=p.filter(e=>"user"===e.role).map(e=>g(e.content)).join(" ");s.SKIP_PATTERNS.some(t=>e.includes(t))&&(m=!0)}if(!m)return null;let h=(0,n.detectFormat)(e);return!1!==e.stream?function(e,n){let s=l(n),i=(0,o.initState)(e);i.model=n;let u=c(s),d=[];for(let t of u){let n=(0,o.translateResponse)(r.FORMATS.OPENAI,e,t,i);if(n?.length>0)for(let t of n)d.push((0,a.formatSSE)(t,e))}let p=(0,o.translateResponse)(r.FORMATS.OPENAI,e,null,i);if(p?.length>0)for(let t of p)d.push((0,a.formatSSE)(t,e));return d.push("data: [DONE]\n\n"),{success:!0,response:new Response(d.join(""),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive","Access-Control-Allow-Origin":(0,t.getCorsOrigin)()}})}}(h,u):function(e,n){let s=l(n);if(e===r.FORMATS.OPENAI)return{success:!0,response:new Response(JSON.stringify(s),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":(0,t.getCorsOrigin)()}})};let a=(0,o.initState)(e);a.model=n;let i=c(s),u=[];for(let t of i){let n=(0,o.translateResponse)(r.FORMATS.OPENAI,e,t,a);n?.length>0&&u.push(...n)}let d=(0,o.translateResponse)(r.FORMATS.OPENAI,e,null,a);return d?.length>0&&u.push(...d),{success:!0,response:new Response(JSON.stringify(function(e,t){if(!e||0===e.length)return l("unknown");let n=e[e.length-1];if(t===r.FORMATS.CLAUDE&&e.find(e=>"message_stop"===e.type)){e.find(e=>"content_block_delta"===e.type);let t=e.find(e=>"message_delta"===e.type),o=e.find(e=>"message_start"===e.type);o?.message&&(n=o.message,t?.usage&&(n.usage=t.usage))}return n}(u,e)),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":(0,t.getCorsOrigin)()}})}}(h,u)}function l(e){let t=`chatcmpl-${Date.now()}`;return{id:t,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:e,choices:[{index:0,message:{role:"assistant",content:"CLI Command Execution: Clear Terminal"},finish_reason:"stop"}],usage:{prompt_tokens:1,completion_tokens:1,total_tokens:2}}}function c(e){let{id:t,created:n,model:o,choices:r}=e;return[{id:t,object:"chat.completion.chunk",created:n,model:o,choices:[{index:0,delta:{role:"assistant",content:r[0].message.content},finish_reason:null}]},{id:t,object:"chat.completion.chunk",created:n,model:o,choices:[{index:0,delta:{},finish_reason:"stop"}],usage:e.usage}]}e.s(["handleBypassRequest",()=>i])},803285,e=>{"use strict";var t=e.i(496727);function n(e){return e&&"object"==typeof e&&!Array.isArray(e)?e:{}}function o(e,t=""){return"string"==typeof e?e:t}function r(e,t=0){let n="number"==typeof e?e:"string"==typeof e&&e.trim().length>0?Number(e):NaN;return Number.isFinite(n)?n:t}function s(e,s,a){if(s===a||s===t.FORMATS.OPENAI)return e;if(s===t.FORMATS.OPENAI_RESPONSES){let t=n(e),s="response"===t.object?t:n(t.response??t),a=Array.isArray(s.output)?s.output:[],i=n(s.usage??t.usage),l="",c="",u=[];for(let e of a){if(!e||"object"!=typeof e)continue;let t=n(e);if("message"===t.type&&Array.isArray(t.content))for(let e of t.content){if(!e||"object"!=typeof e)continue;let t=n(e);"output_text"===t.type&&"string"==typeof t.text?l+=t.text:"summary_text"===t.type&&"string"==typeof t.text&&(c+=t.text)}else if("reasoning"===t.type&&Array.isArray(t.summary))for(let e of t.summary){let t=n(e);"summary_text"===t.type&&"string"==typeof t.text&&(c+=t.text)}else if("function_call"===t.type){let e=o(t.call_id)||o(t.id)||`call_${Date.now()}_${u.length}`,n="string"==typeof t.arguments?t.arguments:JSON.stringify(t.arguments||{});u.push({id:e,type:"function",function:{name:o(t.name),arguments:n}})}}let d={role:"assistant"};l&&(d.content=l),c&&(d.reasoning_content=c),u.length>0&&(d.tool_calls=u),d.content||d.tool_calls||(d.content="");let p=r(s.created_at,Math.floor(Date.now()/1e3)),g=o(s.model||t.model,"openai-responses"),m=u.length>0?"tool_calls":"stop",f={id:`chatcmpl-${o(s.id,String(Date.now()))}`,object:"chat.completion",created:p,model:g,choices:[{index:0,message:d,finish_reason:m}]};if(Object.keys(i).length>0){let e=r(i.input_tokens,0),t=r(i.output_tokens,0);if(f.usage={prompt_tokens:e,completion_tokens:t,total_tokens:e+t},r(i.reasoning_tokens,0)>0&&(f.usage.completion_tokens_details={reasoning_tokens:r(i.reasoning_tokens,0)}),r(i.cache_read_input_tokens,0)>0||r(i.cache_creation_input_tokens,0)>0){f.usage.prompt_tokens_details={};let e=f.usage.prompt_tokens_details;r(i.cache_read_input_tokens,0)>0&&(e.cached_tokens=r(i.cache_read_input_tokens,0)),r(i.cache_creation_input_tokens,0)>0&&(e.cache_creation_tokens=r(i.cache_creation_input_tokens,0))}}return f}if(s===t.FORMATS.GEMINI||s===t.FORMATS.ANTIGRAVITY||s===t.FORMATS.GEMINI_CLI){let t=n(e),s=n(t.response??t),a=Array.isArray(s.candidates)?s.candidates:[];if(!a[0])return e;let i=n(a[0]),l=n(i.content),c=n(s.usageMetadata??t.usageMetadata),u="",d=[],p="";if(Array.isArray(l.parts))for(let e of l.parts){let t=n(e);if(!0===t.thought&&"string"==typeof t.text?p+=t.text:"string"==typeof t.text&&(u+=t.text),t.functionCall){let e=n(t.functionCall);d.push({id:`call_${o(e.name,"unknown")}_${Date.now()}_${d.length}`,type:"function",function:{name:o(e.name),arguments:JSON.stringify(e.args||{})}})}}let g={role:"assistant"};u&&(g.content=u),p&&(g.reasoning_content=p),d.length>0&&(g.tool_calls=d),g.content||g.tool_calls||(g.content="");let m=o(i.finishReason,"stop").toLowerCase();"stop"===m&&d.length>0&&(m="tool_calls");let f=Date.parse(o(s.createTime)),h=Number.isFinite(f)?Math.floor(f/1e3):Math.floor(Date.now()/1e3),_={id:`chatcmpl-${o(s.responseId,String(Date.now()))}`,object:"chat.completion",created:h,model:o(s.modelVersion,"gemini"),choices:[{index:0,message:g,finish_reason:m}]};return Object.keys(c).length>0&&(_.usage={prompt_tokens:r(c.promptTokenCount,0)+r(c.thoughtsTokenCount,0),completion_tokens:r(c.candidatesTokenCount,0),total_tokens:r(c.totalTokenCount,0)},r(c.thoughtsTokenCount,0)>0&&(_.usage.completion_tokens_details={reasoning_tokens:r(c.thoughtsTokenCount,0)})),_}if(s===t.FORMATS.CLAUDE){let t=n(e),s=Array.isArray(t.content)?t.content:[];if(0===s.length)return e;let a="",i="",l=[];for(let e of s){let t=n(e);"text"===t.type?a+=o(t.text):"thinking"===t.type?i+=o(t.thinking):"tool_use"===t.type&&l.push({id:o(t.id,`call_${Date.now()}_${l.length}`),type:"function",function:{name:o(t.name),arguments:JSON.stringify(t.input||{})}})}let c={role:"assistant"};a&&(c.content=a),i&&(c.reasoning_content=i),l.length>0&&(c.tool_calls=l),c.content||c.tool_calls||(c.content="");let u=o(t.stop_reason,"stop");"end_turn"===u&&(u="stop"),"tool_use"===u&&(u="tool_calls");let d={id:`chatcmpl-${o(t.id,String(Date.now()))}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:o(t.model,"claude"),choices:[{index:0,message:c,finish_reason:u}]},p=n(t.usage);if(Object.keys(p).length>0){let e=r(p.input_tokens,0),t=r(p.output_tokens,0);d.usage={prompt_tokens:e,completion_tokens:t,total_tokens:e+t}}return d}return e}e.s(["translateNonStreamingResponse",()=>s])},725538,e=>{"use strict";function t(e,t){if(!e||"object"!=typeof e)return null;if(e.usage&&"object"==typeof e.usage&&void 0!==e.usage.prompt_tokens)return{prompt_tokens:e.usage.prompt_tokens||0,completion_tokens:e.usage.completion_tokens||0,cached_tokens:e.usage.prompt_tokens_details?.cached_tokens,reasoning_tokens:e.usage.completion_tokens_details?.reasoning_tokens};let n=e.response?.usage||e.usage;return n&&"object"==typeof n&&(void 0!==n.input_tokens||void 0!==n.output_tokens)?{prompt_tokens:n.input_tokens||0,completion_tokens:n.output_tokens||0,cached_tokens:n.cache_read_input_tokens,cache_creation_input_tokens:n.cache_creation_input_tokens,reasoning_tokens:n.reasoning_tokens||n.output_tokens_details?.reasoning_tokens}:e.usage&&"object"==typeof e.usage&&(void 0!==e.usage.input_tokens||void 0!==e.usage.output_tokens)?{prompt_tokens:e.usage.input_tokens||0,completion_tokens:e.usage.output_tokens||0,cache_read_input_tokens:e.usage.cache_read_input_tokens,cache_creation_input_tokens:e.usage.cache_creation_input_tokens}:e.usageMetadata&&"object"==typeof e.usageMetadata?{prompt_tokens:e.usageMetadata.promptTokenCount||0,completion_tokens:e.usageMetadata.candidatesTokenCount||0,reasoning_tokens:e.usageMetadata.thoughtsTokenCount}:null}e.s(["extractUsageFromResponse",()=>t])},423525,e=>{"use strict";function t(e,t){let n=String(e||"").split("\n"),o=[];for(let e of n){let t=e.trim();if(!t.startsWith("data:"))continue;let n=t.slice(5).trim();if(n&&"[DONE]"!==n)try{o.push(JSON.parse(n))}catch{}}if(0===o.length)return null;let r=o[0],s=[],a=[],i="stop",l=null;for(let e of o){let t=e?.choices?.[0],n=t?.delta||{};"string"==typeof n.content&&n.content.length>0&&s.push(n.content),"string"==typeof n.reasoning_content&&n.reasoning_content.length>0&&a.push(n.reasoning_content),t?.finish_reason&&(i=t.finish_reason),e?.usage&&"object"==typeof e.usage&&(l=e.usage)}let c={role:"assistant",content:s.join("")};a.length>0&&(c.reasoning_content=a.join(""));let u={id:r.id||`chatcmpl-${Date.now()}`,object:"chat.completion",created:r.created||Math.floor(Date.now()/1e3),model:r.model||t||"unknown",choices:[{index:0,message:c,finish_reason:i}]};return l&&(u.usage=l),u}function n(e,t){let n=String(e||"").split("\n"),o=[];for(let e of n){let t=e.trim();if(!t.startsWith("data:"))continue;let n=t.slice(5).trim();if(n&&"[DONE]"!==n)try{o.push(JSON.parse(n))}catch{}}if(0===o.length)return null;let r=null,s=null;for(let e of o)e?.type==="response.completed"&&e.response&&(r=e.response),e?.response&&"object"==typeof e.response?s=e.response:e?.object==="response"&&(s=e);let a=r||s;return a&&"object"==typeof a?{id:a.id||`resp_${Date.now()}`,object:"response",model:a.model||t||"unknown",output:Array.isArray(a.output)?a.output:[],usage:a.usage||null,status:a.status||(r?"completed":"in_progress"),created_at:a.created_at||Math.floor(Date.now()/1e3),metadata:a.metadata||{}}:null}e.s(["parseSSEToOpenAIResponse",()=>t,"parseSSEToResponsesOutput",()=>n])},537981,e=>{"use strict";function t({intervalMs:e=2e3,signal:n}={}){let o,r,s=0,a=Date.now(),i=new TextEncoder;return new TransformStream({start(t){r=t,a=Date.now(),o=setInterval(()=>{if(n?.aborted)return void clearInterval(o);let e=`event: progress
12
+ `,s=!0)}}catch{}s||(t=e.startsWith("data:")&&!e.startsWith("data: ")?"data: "+e.slice(5)+"\n":e+"\n"),A?.appendConvertedChunk?.(t),o.enqueue(N.encode(t));continue}if(!c)continue;let p=s(c);if(!p)continue;if(p&&p.done){if(!$){$=!0;let e="data: [DONE]\n\n";A?.appendConvertedChunk?.(e),o.enqueue(N.encode(e))}continue}if(p.delta?.text){let e=p.delta.text;I+=e.length,b?.accumulatedContent!==void 0&&"string"==typeof e&&(b.accumulatedContent+=e)}if(p.delta?.thinking){let e=p.delta.thinking;I+=e.length,b?.accumulatedContent!==void 0&&"string"==typeof e&&(b.accumulatedContent+=e)}if(p.choices?.[0]?.delta?.content){let e=p.choices[0].delta.content;if("string"==typeof e)I+=e.length,b?.accumulatedContent!==void 0&&(b.accumulatedContent+=e);else if(Array.isArray(e))for(let t of e)t?.text&&"string"==typeof t.text&&(I+=t.text.length,b?.accumulatedContent!==void 0&&(b.accumulatedContent+=t.text))}if(p.choices?.[0]?.delta?.reasoning_content){let e=p.choices[0].delta.reasoning_content;"string"==typeof e&&(I+=e.length,b?.accumulatedContent!==void 0&&(b.accumulatedContent+=e))}if(p.candidates?.[0]?.content?.parts)for(let e of p.candidates[0].content.parts)e.text&&"string"==typeof e.text&&(I+=e.text.length,b?.accumulatedContent!==void 0&&(b.accumulatedContent+=e.text));if(b?.accumulatedContent!==void 0){if("string"==typeof p.delta){let e=p.delta;b.accumulatedContent+=e,I+=e.length}if("string"==typeof p.content){let e=p.content;b.accumulatedContent+=e,I+=e.length}if("string"==typeof p.text){let e=p.text;b.accumulatedContent+=e,I+=e.length}}let m=(0,r.extractUsage)(p);m&&(b.usage=m);let y=(0,t.translateResponse)(h,_,p,b);for(let e of d(y)){let t=l(e,n.FORMATS.OPENAI);A?.appendOpenAIChunk?.(t)}if(y?.length>0)for(let e of y){if(!a(e,_))continue;let t="message_delta"===e.type||e.choices?.[0]?.finish_reason;if(b.finishReason&&t&&!(0,r.hasValidUsage)(e.usage)&&I>0){let t=(0,r.estimateUsage)(R,I,_);e.usage=(0,r.filterUsageForFormat)(t,_),b.usage=t}else if(b.finishReason&&t&&b.usage){let t=(0,r.addBufferToUsage)(b.usage);e.usage=(0,r.filterUsageForFormat)(t,_)}let n=l(e,_);A?.appendConvertedChunk?.(n),o.enqueue(N.encode(n))}}},flush(e){if(U&&(clearInterval(U),U=null),!D){(0,o.trackPendingRequest)(k,y,S,!1);try{let a=x.decode();if(a&&(w+=a),f===g){if(w){let t=w;w.startsWith("data:")&&!w.startsWith("data: ")&&(t="data: "+w.slice(5)),A?.appendConvertedChunk?.(t),e.enqueue(N.encode(t))}if(!(0,r.hasValidUsage)(C)&&I>0&&(C=(0,r.estimateUsage)(R,I,_||n.FORMATS.OPENAI)),(0,r.hasValidUsage)(C)?(0,r.logUsage)(y,C,k,S,E):(0,o.appendRequestLog)({model:k,provider:y,connectionId:S,tokens:null,status:"200 OK"}).catch(()=>{}),v)try{let e=C,t=Number(e?.prompt_tokens??e?.input_tokens??0),n=Number(e?.completion_tokens??e?.output_tokens??0),o=O.trim()||"";v({status:200,usage:C,responseBody:{choices:[{message:{role:"assistant",content:o}}],usage:{prompt_tokens:t,completion_tokens:n,total_tokens:t+n},_streamed:!0}})}catch{}return}if(w.trim()){let o=s(w.trim());if(o&&!o.done){let r=(0,t.translateResponse)(h,_,o,b);for(let e of d(r)){let t=l(e,n.FORMATS.OPENAI);A?.appendOpenAIChunk?.(t)}if(r?.length>0)for(let t of r){let n=l(t,_);A?.appendConvertedChunk?.(n),e.enqueue(N.encode(n))}}}let i=(0,t.translateResponse)(h,_,null,b);for(let e of d(i)){let t=l(e,n.FORMATS.OPENAI);A?.appendOpenAIChunk?.(t)}if(i?.length>0)for(let t of i){let n=l(t,_);A?.appendConvertedChunk?.(n),e.enqueue(N.encode(n))}if(!$){$=!0;let t="data: [DONE]\n\n";A?.appendConvertedChunk?.(t),e.enqueue(N.encode(t))}if(!(0,r.hasValidUsage)(b?.usage)&&I>0&&(b.usage=(0,r.estimateUsage)(R,I,_)),(0,r.hasValidUsage)(b?.usage)?(0,r.logUsage)(b.provider||h,b.usage,k,S,E):(0,o.appendRequestLog)({model:k,provider:y,connectionId:S,tokens:null,status:"200 OK"}).catch(()=>{}),v)try{let e=b?.usage,t=Number(e?.prompt_tokens??e?.input_tokens??0),n=Number(e?.completion_tokens??e?.output_tokens??0),o=(b?.accumulatedContent??"").trim()||"";v({status:200,usage:b?.usage,responseBody:{choices:[{message:{role:"assistant",content:o}}],usage:{prompt_tokens:t,completion_tokens:n,total_tokens:t+n},_streamed:!0}})}catch{}}catch(e){console.log(`[STREAM] Error in flush (${k||"unknown"}):`,e.message||e)}}}},{highWaterMark:16},{highWaterMark:16})}function f(e,t,n=null,o=null,r=null,s=null,a=null,i=null,l=null,c=null){return m({mode:p,targetFormat:e,sourceFormat:t,provider:n,reqLogger:o,toolNameMap:r,model:s,connectionId:a,apiKeyInfo:c,body:i,onComplete:l})}function h(e=null,t=null,n=null,o=null,r=null,s=null,a=null){return m({mode:g,provider:e,reqLogger:t,model:n,connectionId:o,apiKeyInfo:a,body:r,onComplete:s})}e.s(["createPassthroughStreamWithLogger",()=>h,"createSSETransformStreamWithLogger",()=>f],949756)},719485,e=>{"use strict";function t({onDisconnect:e,log:n,provider:o,model:r}={}){let s=new AbortController,a=Date.now(),i=!1,l=null,c=e=>{let t=Date.now()-a,n=o?.toUpperCase()||"UNKNOWN";console.log(`[${new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})}] 🌊 [STREAM] ${n} | ${r||"unknown"} | ${t}ms | ${e}`)};return{signal:s.signal,startTime:a,isConnected:()=>!i,handleDisconnect:(t="client_closed")=>{i||(i=!0,c(`disconnect: ${t}`),l=setTimeout(()=>{s.abort()},500),e?.({reason:t,duration:Date.now()-a}))},handleComplete:()=>{!i&&(i=!0,c("complete"),l&&(clearTimeout(l),l=null))},handleError:e=>{(l&&(clearTimeout(l),l=null),e instanceof Error&&"AbortError"===e.name)?c("aborted"):e instanceof Error?c(`error: ${e.message}`):c("error: unknown")},abort:()=>s.abort()}}function n(e,t,n){var o;let r,s;return o={readable:e.body.pipeThrough(t),writable:{getWriter:()=>({abort:()=>{}})}},r=o.readable.getReader(),s=o.writable.getWriter(),new ReadableStream({async pull(e){if(!n.isConnected())return void e.close();try{let{done:t,value:o}=await r.read();if(t){n.handleComplete(),e.close();return}e.enqueue(o)}catch(t){n.handleError(t),e.error(t)}},cancel(e){n.handleDisconnect(e||"cancelled"),r.cancel(),s.abort()}})}e.s(["createStreamController",()=>t,"pipeWithDisconnect",()=>n])},54092,e=>{"use strict";let t="u">typeof process&&process.versions?.node&&!0,n="u">typeof process&&process.env?.ENABLE_REQUEST_LOGS==="true",o=null,r=null,s=null;async function a(){if(t&&n&&!o)try{o=await e.A(323970),s=(r=await e.A(589793)).join("u">typeof process&&process.cwd?process.cwd():".","logs")}catch{}}async function i(e,t,n){if(await a(),!o||!s)return null;try{await o.promises.mkdir(s,{recursive:!0});let a=function(e=new Date){let t=e=>String(e).padStart(2,"0"),n=e.getFullYear(),o=t(e.getMonth()+1),r=t(e.getDate()),s=t(e.getHours()),a=t(e.getMinutes()),i=t(e.getSeconds());return`${n}${o}${r}_${s}${a}${i}`}(),i=(n||"unknown").replace(/[/:]/g,"-"),l=`${e}_${t}_${i}_${a}`,c=r.join(s,l);return await o.promises.mkdir(c,{recursive:!0}),c}catch(e){return console.log("[LOG] Failed to create log session:",e.message),null}}function l(e,t,n){if(!o||!e)return;let s=r.join(e,t);o.promises.writeFile(s,JSON.stringify(n,null,2)).catch(e=>console.log(`[LOG] Failed to write ${t}:`,e.message))}function c(e){if(!e)return{};let t={...e},n=["authorization","x-api-key","cookie","token"];for(let e of Object.keys(t)){let o=e.toLowerCase();if(n.some(e=>o.includes(e))){let n=t[e];n&&n.length>20&&(t[e]=n.slice(0,10)+"..."+n.slice(-5))}}return t}async function u(e,t,s){if(!n)return{sessionPath:null,logClientRawRequest(){},logRawRequest(){},logOpenAIRequest(){},logTargetRequest(){},logProviderResponse(){},appendProviderChunk(){},appendOpenAIChunk(){},logConvertedResponse(){},appendConvertedChunk(){},logError(){}};let a=await i(e,t,s);return{get sessionPath(){return a},logClientRawRequest(e,t,n={}){l(a,"1_req_client.json",{timestamp:new Date().toISOString(),endpoint:e,headers:c(n),body:t})},logRawRequest(e,t={}){l(a,"2_req_source.json",{timestamp:new Date().toISOString(),headers:c(t),body:e})},logOpenAIRequest(e){l(a,"3_req_openai.json",{timestamp:new Date().toISOString(),body:e})},logTargetRequest(e,t,n){l(a,"4_req_target.json",{timestamp:new Date().toISOString(),url:e,headers:c(t),body:n})},logProviderResponse(e,t,n,o){l(a,"5_res_provider.json",{timestamp:new Date().toISOString(),status:e,statusText:t,headers:n?"function"==typeof n.entries?Object.fromEntries(n.entries()):n:{},body:o})},appendProviderChunk(e){if(!o||!a)return;let t=r.join(a,"5_res_provider.txt");o.promises.appendFile(t,e).catch(()=>{})},appendOpenAIChunk(e){if(!o||!a)return;let t=r.join(a,"6_res_openai.txt");o.promises.appendFile(t,e).catch(()=>{})},logConvertedResponse(e){l(a,"7_res_client.json",{timestamp:new Date().toISOString(),body:e})},appendConvertedChunk(e){if(!o||!a)return;let t=r.join(a,"7_res_client.txt");o.promises.appendFile(t,e).catch(()=>{})},logError(e,t=null){l(a,"6_error.json",{timestamp:new Date().toISOString(),error:e?.message||String(e),stack:e?.stack,requestBody:t})}}}e.s(["createRequestLogger",()=>u])},688828,e=>{"use strict";var t=e.i(731664),n=e.i(85713),o=e.i(352812),r=e.i(496727),s=e.i(16023);e.i(949756);var a=e.i(692172);function i(e,u,d=""){if(!d.includes("claude-cli")||!e.messages?.length)return null;let p=e.messages,g=e=>"string"==typeof e?e:Array.isArray(e)?e.filter(e=>"text"===e.type).map(e=>e.text).join(" "):"",m=!1,f=p[p.length-1];if(f?.role==="assistant"&&f.content?.[0]?.text==="{"&&(m=!0),m||"Warmup"===g(p[0]?.content)&&(m=!0),m||1!==p.length||p[0]?.role!=="user"||"count"===g(p[0]?.content)&&(m=!0),!m&&s.SKIP_PATTERNS?.length){let e=p.filter(e=>"user"===e.role).map(e=>g(e.content)).join(" ");s.SKIP_PATTERNS.some(t=>e.includes(t))&&(m=!0)}if(!m)return null;let h=(0,n.detectFormat)(e);return!1!==e.stream?function(e,n){let s=l(n),i=(0,o.initState)(e);i.model=n;let u=c(s),d=[];for(let t of u){let n=(0,o.translateResponse)(r.FORMATS.OPENAI,e,t,i);if(n?.length>0)for(let t of n)d.push((0,a.formatSSE)(t,e))}let p=(0,o.translateResponse)(r.FORMATS.OPENAI,e,null,i);if(p?.length>0)for(let t of p)d.push((0,a.formatSSE)(t,e));return d.push("data: [DONE]\n\n"),{success:!0,response:new Response(d.join(""),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive","Access-Control-Allow-Origin":(0,t.getCorsOrigin)()}})}}(h,u):function(e,n){let s=l(n);if(e===r.FORMATS.OPENAI)return{success:!0,response:new Response(JSON.stringify(s),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":(0,t.getCorsOrigin)()}})};let a=(0,o.initState)(e);a.model=n;let i=c(s),u=[];for(let t of i){let n=(0,o.translateResponse)(r.FORMATS.OPENAI,e,t,a);n?.length>0&&u.push(...n)}let d=(0,o.translateResponse)(r.FORMATS.OPENAI,e,null,a);return d?.length>0&&u.push(...d),{success:!0,response:new Response(JSON.stringify(function(e,t){if(!e||0===e.length)return l("unknown");let n=e[e.length-1];if(t===r.FORMATS.CLAUDE&&e.find(e=>"message_stop"===e.type)){e.find(e=>"content_block_delta"===e.type);let t=e.find(e=>"message_delta"===e.type),o=e.find(e=>"message_start"===e.type);o?.message&&(n=o.message,t?.usage&&(n.usage=t.usage))}return n}(u,e)),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":(0,t.getCorsOrigin)()}})}}(h,u)}function l(e){let t=`chatcmpl-${Date.now()}`;return{id:t,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:e,choices:[{index:0,message:{role:"assistant",content:"CLI Command Execution: Clear Terminal"},finish_reason:"stop"}],usage:{prompt_tokens:1,completion_tokens:1,total_tokens:2}}}function c(e){let{id:t,created:n,model:o,choices:r}=e;return[{id:t,object:"chat.completion.chunk",created:n,model:o,choices:[{index:0,delta:{role:"assistant",content:r[0].message.content},finish_reason:null}]},{id:t,object:"chat.completion.chunk",created:n,model:o,choices:[{index:0,delta:{},finish_reason:"stop"}],usage:e.usage}]}e.s(["handleBypassRequest",()=>i])},803285,e=>{"use strict";var t=e.i(496727);function n(e){return e&&"object"==typeof e&&!Array.isArray(e)?e:{}}function o(e,t=""){return"string"==typeof e?e:t}function r(e,t=0){let n="number"==typeof e?e:"string"==typeof e&&e.trim().length>0?Number(e):NaN;return Number.isFinite(n)?n:t}function s(e,s,a){if(s===a||s===t.FORMATS.OPENAI)return e;if(s===t.FORMATS.OPENAI_RESPONSES){let t=n(e),s="response"===t.object?t:n(t.response??t),a=Array.isArray(s.output)?s.output:[],i=n(s.usage??t.usage),l="",c="",u=[];for(let e of a){if(!e||"object"!=typeof e)continue;let t=n(e);if("message"===t.type&&Array.isArray(t.content))for(let e of t.content){if(!e||"object"!=typeof e)continue;let t=n(e);"output_text"===t.type&&"string"==typeof t.text?l+=t.text:"summary_text"===t.type&&"string"==typeof t.text&&(c+=t.text)}else if("reasoning"===t.type&&Array.isArray(t.summary))for(let e of t.summary){let t=n(e);"summary_text"===t.type&&"string"==typeof t.text&&(c+=t.text)}else if("function_call"===t.type){let e=o(t.call_id)||o(t.id)||`call_${Date.now()}_${u.length}`,n="string"==typeof t.arguments?t.arguments:JSON.stringify(t.arguments||{});u.push({id:e,type:"function",function:{name:o(t.name),arguments:n}})}}let d={role:"assistant"};l&&(d.content=l),c&&(d.reasoning_content=c),u.length>0&&(d.tool_calls=u),d.content||d.tool_calls||(d.content="");let p=r(s.created_at,Math.floor(Date.now()/1e3)),g=o(s.model||t.model,"openai-responses"),m=u.length>0?"tool_calls":"stop",f={id:`chatcmpl-${o(s.id,String(Date.now()))}`,object:"chat.completion",created:p,model:g,choices:[{index:0,message:d,finish_reason:m}]};if(Object.keys(i).length>0){let e=r(i.input_tokens,0),t=r(i.output_tokens,0);if(f.usage={prompt_tokens:e,completion_tokens:t,total_tokens:e+t},r(i.reasoning_tokens,0)>0&&(f.usage.completion_tokens_details={reasoning_tokens:r(i.reasoning_tokens,0)}),r(i.cache_read_input_tokens,0)>0||r(i.cache_creation_input_tokens,0)>0){f.usage.prompt_tokens_details={};let e=f.usage.prompt_tokens_details;r(i.cache_read_input_tokens,0)>0&&(e.cached_tokens=r(i.cache_read_input_tokens,0)),r(i.cache_creation_input_tokens,0)>0&&(e.cache_creation_tokens=r(i.cache_creation_input_tokens,0))}}return f}if(s===t.FORMATS.GEMINI||s===t.FORMATS.ANTIGRAVITY||s===t.FORMATS.GEMINI_CLI){let t=n(e),s=n(t.response??t),a=Array.isArray(s.candidates)?s.candidates:[];if(!a[0])return e;let i=n(a[0]),l=n(i.content),c=n(s.usageMetadata??t.usageMetadata),u="",d=[],p="";if(Array.isArray(l.parts))for(let e of l.parts){let t=n(e);if(!0===t.thought&&"string"==typeof t.text?p+=t.text:"string"==typeof t.text&&(u+=t.text),t.functionCall){let e=n(t.functionCall);d.push({id:`call_${o(e.name,"unknown")}_${Date.now()}_${d.length}`,type:"function",function:{name:o(e.name),arguments:JSON.stringify(e.args||{})}})}}let g={role:"assistant"};u&&(g.content=u),p&&(g.reasoning_content=p),d.length>0&&(g.tool_calls=d),g.content||g.tool_calls||(g.content="");let m=o(i.finishReason,"stop").toLowerCase();"stop"===m&&d.length>0&&(m="tool_calls");let f=Date.parse(o(s.createTime)),h=Number.isFinite(f)?Math.floor(f/1e3):Math.floor(Date.now()/1e3),_={id:`chatcmpl-${o(s.responseId,String(Date.now()))}`,object:"chat.completion",created:h,model:o(s.modelVersion,"gemini"),choices:[{index:0,message:g,finish_reason:m}]};return Object.keys(c).length>0&&(_.usage={prompt_tokens:r(c.promptTokenCount,0)+r(c.thoughtsTokenCount,0),completion_tokens:r(c.candidatesTokenCount,0),total_tokens:r(c.totalTokenCount,0)},r(c.thoughtsTokenCount,0)>0&&(_.usage.completion_tokens_details={reasoning_tokens:r(c.thoughtsTokenCount,0)})),_}if(s===t.FORMATS.CLAUDE){let t=n(e),s=Array.isArray(t.content)?t.content:[];if(0===s.length)return e;let a="",i="",l=[];for(let e of s){let t=n(e);"text"===t.type?a+=o(t.text):"thinking"===t.type?i+=o(t.thinking):"tool_use"===t.type&&l.push({id:o(t.id,`call_${Date.now()}_${l.length}`),type:"function",function:{name:o(t.name),arguments:JSON.stringify(t.input||{})}})}let c={role:"assistant"};a&&(c.content=a),i&&(c.reasoning_content=i),l.length>0&&(c.tool_calls=l),c.content||c.tool_calls||(c.content="");let u=o(t.stop_reason,"stop");"end_turn"===u&&(u="stop"),"tool_use"===u&&(u="tool_calls");let d={id:`chatcmpl-${o(t.id,String(Date.now()))}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:o(t.model,"claude"),choices:[{index:0,message:c,finish_reason:u}]},p=n(t.usage);if(Object.keys(p).length>0){let e=r(p.input_tokens,0),t=r(p.output_tokens,0);d.usage={prompt_tokens:e,completion_tokens:t,total_tokens:e+t}}return d}return e}e.s(["translateNonStreamingResponse",()=>s])},725538,e=>{"use strict";function t(e,t){if(!e||"object"!=typeof e)return null;if(e.usage&&"object"==typeof e.usage&&void 0!==e.usage.prompt_tokens)return{prompt_tokens:e.usage.prompt_tokens||0,completion_tokens:e.usage.completion_tokens||0,cached_tokens:e.usage.prompt_tokens_details?.cached_tokens,reasoning_tokens:e.usage.completion_tokens_details?.reasoning_tokens};let n=e.response?.usage||e.usage;return n&&"object"==typeof n&&(void 0!==n.input_tokens||void 0!==n.output_tokens)?{prompt_tokens:n.input_tokens||0,completion_tokens:n.output_tokens||0,cached_tokens:n.cache_read_input_tokens,cache_creation_input_tokens:n.cache_creation_input_tokens,reasoning_tokens:n.reasoning_tokens||n.output_tokens_details?.reasoning_tokens}:e.usage&&"object"==typeof e.usage&&(void 0!==e.usage.input_tokens||void 0!==e.usage.output_tokens)?{prompt_tokens:e.usage.input_tokens||0,completion_tokens:e.usage.output_tokens||0,cache_read_input_tokens:e.usage.cache_read_input_tokens,cache_creation_input_tokens:e.usage.cache_creation_input_tokens}:e.usageMetadata&&"object"==typeof e.usageMetadata?{prompt_tokens:e.usageMetadata.promptTokenCount||0,completion_tokens:e.usageMetadata.candidatesTokenCount||0,reasoning_tokens:e.usageMetadata.thoughtsTokenCount}:null}e.s(["extractUsageFromResponse",()=>t])},423525,e=>{"use strict";function t(e,t){let n=String(e||"").split("\n"),o=[];for(let e of n){let t=e.trim();if(!t.startsWith("data:"))continue;let n=t.slice(5).trim();if(n&&"[DONE]"!==n)try{o.push(JSON.parse(n))}catch{}}if(0===o.length)return null;let r=o[0],s=[],a=[],i="stop",l=null;for(let e of o){let t=e?.choices?.[0],n=t?.delta||{};"string"==typeof n.content&&n.content.length>0&&s.push(n.content),"string"==typeof n.reasoning_content&&n.reasoning_content.length>0&&a.push(n.reasoning_content),t?.finish_reason&&(i=t.finish_reason),e?.usage&&"object"==typeof e.usage&&(l=e.usage)}let c={role:"assistant",content:s.join("")};a.length>0&&(c.reasoning_content=a.join(""));let u={id:r.id||`chatcmpl-${Date.now()}`,object:"chat.completion",created:r.created||Math.floor(Date.now()/1e3),model:r.model||t||"unknown",choices:[{index:0,message:c,finish_reason:i}]};return l&&(u.usage=l),u}function n(e,t){let n=String(e||"").split("\n"),o=[];for(let e of n){let t=e.trim();if(!t.startsWith("data:"))continue;let n=t.slice(5).trim();if(n&&"[DONE]"!==n)try{o.push(JSON.parse(n))}catch{}}if(0===o.length)return null;let r=null,s=null;for(let e of o)e?.type==="response.completed"&&e.response&&(r=e.response),e?.response&&"object"==typeof e.response?s=e.response:e?.object==="response"&&(s=e);let a=r||s;return a&&"object"==typeof a?{id:a.id||`resp_${Date.now()}`,object:"response",model:a.model||t||"unknown",output:Array.isArray(a.output)?a.output:[],usage:a.usage||null,status:a.status||(r?"completed":"in_progress"),created_at:a.created_at||Math.floor(Date.now()/1e3),metadata:a.metadata||{}}:null}e.s(["parseSSEToOpenAIResponse",()=>t,"parseSSEToResponsesOutput",()=>n])},537981,e=>{"use strict";function t({intervalMs:e=2e3,signal:n}={}){let o,r,s=0,a=Date.now(),i=new TextEncoder;return new TransformStream({start(t){r=t,a=Date.now(),o=setInterval(()=>{if(n?.aborted)return void clearInterval(o);let e=`event: progress
13
13
  data: ${JSON.stringify({tokens_generated:s,elapsed_ms:Date.now()-a})}
14
14
 
15
15
  `;try{t.enqueue(i.encode(e))}catch{clearInterval(o)}},e),n?.addEventListener("abort",()=>{clearInterval(o)},{once:!0})},transform(e,t){let n=("string"==typeof e?e:new TextDecoder().decode(e)).split("\n").filter(e=>e.startsWith("data: "));s+=n.length,t.enqueue(e)},flush(){if(clearInterval(o),r)try{let e=`event: progress
16
16
  data: ${JSON.stringify({tokens_generated:s,elapsed_ms:Date.now()-a,done:!0})}
17
17
 
18
- `;r.enqueue(i.encode(e))}catch{}}})}function n(e){return!!e&&"true"===("function"==typeof e.get?t=>e.get(t):t=>e[t])("x-omniroute-progress")}e.s(["createProgressTransform",()=>t,"wantsProgress",()=>n])},578172,e=>{"use strict";let t={"gemini-3-pro":["gemini-3.1-pro-preview","gemini-3-pro-preview","gemini-3.1-pro-high","gemini-3-pro-high","gemini-3.1-pro-low","gemini-3-pro-low"],"gemini-3.1-pro":["gemini-3.1-pro-preview","gemini-3-pro-preview","gemini-3.1-pro-high","gemini-3-pro-high","gemini-3.1-pro-low","gemini-3-pro-low"],"gemini-3-pro-preview":["gemini-3.1-pro-preview","gemini-3-pro-high","gemini-3.1-pro-high","gemini-3-pro-low","gemini-3.1-pro-low"],"gemini-3.1-pro-preview":["gemini-3-pro-preview","gemini-3.1-pro-high","gemini-3-pro-high","gemini-3.1-pro-low","gemini-3-pro-low"],"gemini-3-pro-high":["gemini-3.1-pro-high","gemini-3-pro-preview","gemini-3.1-pro-preview","gemini-3-pro-low","gemini-3.1-pro-low"],"gemini-3.1-pro-high":["gemini-3-pro-high","gemini-3.1-pro-preview","gemini-3-pro-preview","gemini-3.1-pro-low","gemini-3-pro-low"],"gemini-2.5-pro":["gemini-2.5-pro-preview-06-05","gemini-2.5-pro-exp-03-25"],"gemini-2.5-pro-preview-06-05":["gemini-2.5-pro","gemini-2.5-pro-exp-03-25"],"claude-opus-4-6":["claude-opus-4-6-thinking","claude-opus-4-5-20251101","claude-sonnet-4-6"],"claude-opus-4-6-thinking":["claude-opus-4-6","claude-opus-4-5-20251101"],"claude-sonnet-4-6":["claude-sonnet-4-5-20250929","claude-sonnet-4-20250514"],"claude-sonnet-4-5-20250929":["claude-sonnet-4-6","claude-sonnet-4-20250514"],"gpt-5":["gpt-5-mini","gpt-4o"],"gpt-5.1":["gpt-5.1-mini","gpt-5","gpt-4o"]},n=["model not found","model_not_found","model not available","model is not available","no such model","unsupported model","unknown model","this model does not exist","invalid model","model not supported","does not support","not enabled for","access to model"];function o(e,t){if(404===e)return!0;if(400!==e&&403!==e)return!1;let o=t.toLowerCase();return n.some(e=>o.includes(e))}function r(e,n){let o=t[e];if(!o)return null;for(let e of o)if(!n.has(e))return e;return null}e.s(["getNextFamilyFallback",()=>r,"isModelUnavailableError",()=>o])},167389,e=>{"use strict";let t={enabled:!0,provider:"nvidia",model:"openai/gpt-oss-120b",triggerOn402:!0,triggerOnBudgetKeywords:!0,budgetKeywords:["insufficient funds","insufficient_funds","budget exceeded","budget_exceeded","quota exceeded","quota_exceeded","billing","payment required","out of credits","no credits","credit limit","spending limit","saldo insuficiente","limite de gastos","cota excedida"],skipForToolRequests:!0,maxOutputTokens:4096};function n(e,o,r,s=t){if(!s.enabled)return{shouldFallback:!1,reason:"emergency fallback disabled"};if(s.skipForToolRequests&&r)return{shouldFallback:!1,reason:"skipped: request has tools"};if(s.triggerOn402&&402===e)return{shouldFallback:!0,reason:`HTTP 402 → emergency fallback to ${s.provider}/${s.model}`,provider:s.provider,model:s.model,maxOutputTokens:s.maxOutputTokens};if(s.triggerOnBudgetKeywords&&o){let e=o.toLowerCase(),t=s.budgetKeywords.find(t=>e.includes(t.toLowerCase()));if(t)return{shouldFallback:!0,reason:`Budget error detected ('${t}') → emergency fallback to ${s.provider}/${s.model}`,provider:s.provider,model:s.model,maxOutputTokens:s.maxOutputTokens}}return{shouldFallback:!1,reason:"no budget error detected"}}function o(e){return!0===e.shouldFallback}e.s(["EMERGENCY_FALLBACK_CONFIG",0,t,"isFallbackDecision",()=>o,"shouldUseFallback",()=>n])},284948,e=>e.a(async(t,n)=>{try{var o=e.i(731664),r=e.i(85713),s=e.i(352812),a=e.i(496727),i=e.i(949756),l=e.i(954372),c=e.i(719485),u=e.i(928602),d=e.i(54092),p=e.i(878947),g=e.i(705765),m=e.i(828059),f=e.i(719201),h=e.i(16023),_=e.i(688828);e.i(312125);var y=e.i(400722),A=e.i(397506),T=e.i(6751),k=e.i(803285),S=e.i(725538),E=e.i(423525),R=e.i(581631),v=e.i(20870),w=e.i(511695),b=e.i(289130),C=e.i(537981),O=e.i(578172),I=e.i(951700),$=e.i(167389),x=t([T]);async function N({body:e,modelInfo:t,credentials:n,log:x,onCredentialsRefreshed:N,onRequestSuccess:P,onDisconnect:U,clientRawRequest:D,connectionId:M,apiKeyInfo:F=null,userAgent:L,comboName:j}){let q,B,H,K,W,G,{provider:Y,model:J,extendedContext:V}=t,z=Date.now(),Q=(e,t)=>{(0,y.saveRequestUsage)({provider:Y||"unknown",model:J||"unknown",tokens:{input:0,output:0,cacheRead:0,cacheCreation:0,reasoning:0},status:String(e),success:!1,latencyMs:Date.now()-z,timeToFirstTokenMs:0,errorCode:t||String(e),timestamp:new Date().toISOString(),connectionId:M||void 0,apiKeyId:F?.id||void 0,apiKeyName:F?.name||void 0}).catch(()=>{})},Z=(0,b.getIdempotencyKey)(D?.headers),X=(0,b.checkIdempotency)(Z);if(X)return x?.debug?.("IDEMPOTENCY",`Hit for key=${Z?.slice(0,12)}...`),{success:!0,response:new Response(JSON.stringify(X.response),{status:X.status,headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":(0,o.getCorsOrigin)(),"X-OmniRoute-Idempotent":"true"}})};await (0,v.initializeRateLimits)(),M&&n&&!n.connectionId&&(n.connectionId=M);let ee=(0,r.detectFormat)(e),et=String(D?.endpoint||""),en=/(?:^|\/)responses(?:\/.*)?$/i.test(et),eo=function({provider:e,sourceFormat:t,endpointPath:n}){if("codex"!==e||t!==a.FORMATS.OPENAI_RESPONSES)return!1;let o=String(n||"").replace(/\/+$/,"");return/(?:^|\/)responses(?:\/.*)?$/i.test(o)}({provider:Y,sourceFormat:ee,endpointPath:et}),er=(0,_.handleBypassRequest)(e,J,L);if(er)return er;let es=(0,g.resolveModelAlias)(J),ea=p.PROVIDER_ID_TO_ALIAS[Y]||Y,ei=(0,p.getModelTargetFormat)(ea,es)||(0,r.getTargetFormat)(Y),el=!0===e.stream;if((0,w.isCacheable)(e,D?.headers)){let t=(0,w.generateSignature)(J,e.messages,e.temperature,e.top_p),n=(0,w.getCachedResponse)(t);if(n)return x?.debug?.("CACHE",`Semantic cache HIT for ${J}`),{success:!0,response:new Response(JSON.stringify(n),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":(0,o.getCorsOrigin)(),"X-OmniRoute-Cache":"HIT"}})}}let ec=await (0,d.createRequestLogger)(ee,ei,J);D&&ec.logClientRawRequest(D.endpoint,D.body,D.headers),ec.logRawRequest(e),x?.debug?.("FORMAT",`${ee} → ${ei} | stream=${el}`);let eu=e,ed=ee===a.FORMATS.CLAUDE&&ei===a.FORMATS.CLAUDE;try{if(eo)eu={...e,_nativeCodexPassthrough:!0},x?.debug?.("FORMAT","native codex passthrough enabled");else if(ed)eu={...e},x?.debug?.("FORMAT","claude->claude passthrough -- forwarding untouched");else{if(eu={...e},ei!==a.FORMATS.CLAUDE||["claude","anthropic"].includes(Y?.toLowerCase?.())||(eu._disableToolPrefix=!0),Array.isArray(eu.messages)&&(eu.messages=eu.messages.map(e=>{if(""===e.name){let{name:t,...n}=e;return n}return e})),Array.isArray(eu.input)&&(eu.input=eu.input.map(e=>{if(""===e.name){let{name:t,...n}=e;return n}return e})),Array.isArray(eu.tools)&&(eu.tools=eu.tools.filter(e=>{let t=e.function,n=t?.name??e.name;return n&&String(n).trim().length>0})),Array.isArray(eu.messages))for(let e of eu.messages)Array.isArray(e.content)&&(e.content=e.content.filter(e=>"text"!==e.type||"string"==typeof e.text&&e.text.length>0));if(Array.isArray(eu.messages))for(let e of eu.messages)"user"===e.role&&Array.isArray(e.content)&&(e.content=e.content.flatMap(e=>{if("text"===e.type||"image_url"===e.type||"image"===e.type)return[e];if("file"===e.type||"document"===e.type){let t=e.file?.content??e.file?.text??e.content??e.text,n=e.file?.name??e.name??"attachment";return"string"==typeof t&&t.length>0?[{type:"text",text:`[${n}]
19
- ${t}`}]:[]}return x?.debug?.("CONTENT",`Dropped unsupported content part type="${e.type}"`),[]}));eu=(0,s.translateRequest)(ee,ei,J,eu,el,n,Y,ec)}}catch(s){let e=Number(s?.statusCode),t=Number.isInteger(e)&&e>=400&&e<=599?e:h.HTTP_STATUS.SERVER_ERROR,n=s?.message||"Invalid request",r="string"==typeof s?.errorType?s.errorType:null;if(x?.warn?.("TRANSLATE",`Request translation failed: ${n}`),r)return{success:!1,status:t,error:n,response:new Response(JSON.stringify({error:{message:n,type:r,code:r}}),{status:t,headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":(0,o.getCorsOrigin)()}})};return(0,f.createErrorResult)(t,n)}let ep=eu._toolNameMap;delete eu._toolNameMap,delete eu._disableToolPrefix,eu.model=J;let eg=(0,m.getUnsupportedParams)(Y,J);if(eg.length>0){let e=[];for(let t of eg)Object.hasOwn(eu,t)&&(e.push(t),delete eu[t]);e.length>0&&x?.warn?.("PARAMS",`Stripped unsupported params for ${J}: ${e.join(", ")}`)}let em=(0,T.getExecutor)(Y),ef=()=>eo?{...n,requestEndpointPath:et}:n,eh=(0,c.createStreamController)({onDisconnect:U,log:x,provider:Y,model:J}),e_={...eu,model:`${Y}/${J}`},ey=(0,I.shouldDeduplicate)(e_),eA=ey?(0,I.computeRequestHash)(e_):null,eT=async(e=J,t=!1)=>{let n=async()=>{let t=eu.model===e?eu:{...eu,model:e},n=await (0,v.withRateLimit)(Y,M,e,()=>em.execute({model:e,body:t,stream:el,credentials:ef(),signal:eh.signal,log:x,extendedContext:V}));if(el)return n;let o=n.response.status,r=n.response.statusText,s=Array.from(n.response.headers.entries()),a=await n.response.text();return{...n,response:new Response(a,{status:o,statusText:r,headers:s})}};if(t&&ey&&eA){let e=await (0,I.deduplicate)(eA,n);return e.wasDeduplicated&&x?.debug?.("DEDUP",`Joined in-flight request hash=${eA}`),e.result}return n()};(0,y.trackPendingRequest)(J,Y,M,!0);let ek=new Set([J]),eS=J;(0,y.appendRequestLog)({model:J,provider:Y,connectionId:M,status:"PENDING"}).catch(()=>{});let eE=eu.messages?.length||eu.contents?.length||eu.request?.contents?.length||0;x?.debug?.("REQUEST",`${Y.toUpperCase()} | ${J} | ${eE} msgs`);try{let e=await eT(J,!0);q=e.response,B=e.url,H=e.headers,K=e.transformedBody,ec.logTargetRequest(B,H,K),(0,v.updateFromHeaders)(Y,M,q.headers,q.status,J)}catch(n){if((0,y.trackPendingRequest)(J,Y,M,!1),(0,y.appendRequestLog)({model:J,provider:Y,connectionId:M,status:`FAILED ${"AbortError"===n.name?499:h.HTTP_STATUS.BAD_GATEWAY}`}).catch(()=>{}),(0,A.saveCallLog)({method:"POST",path:D?.endpoint||"/v1/chat/completions",status:"AbortError"===n.name?499:h.HTTP_STATUS.BAD_GATEWAY,model:J,provider:Y,connectionId:M,duration:Date.now()-z,requestBody:e,error:n.message,sourceFormat:ee,targetFormat:ei,comboName:j,apiKeyId:F?.id||null,apiKeyName:F?.name||null,noLog:F?.noLog===!0}).catch(()=>{}),"AbortError"===n.name)return eh.handleError(n),(0,f.createErrorResult)(499,"Request aborted");Q(h.HTTP_STATUS.BAD_GATEWAY,n?.name||"upstream_error");let t=(0,f.formatProviderError)(n,Y,J,h.HTTP_STATUS.BAD_GATEWAY);return console.log(`${l.COLORS.red}[ERROR] ${t}${l.COLORS.reset}`),(0,f.createErrorResult)(h.HTTP_STATUS.BAD_GATEWAY,t)}if(q.status===h.HTTP_STATUS.UNAUTHORIZED||q.status===h.HTTP_STATUS.FORBIDDEN){let e=await (0,u.refreshWithRetry)(()=>em.refreshCredentials(n,x),3,x);if(e?.accessToken||e?.copilotToken){x?.info?.("TOKEN",`${Y.toUpperCase()} | refreshed`),Object.assign(n,e),N&&e&&await N(e);try{let e=await em.execute({model:J,body:eu,stream:el,credentials:ef(),signal:eh.signal,log:x,extendedContext:V});e.response.ok&&(q=e.response,B=e.url)}catch(e){x?.warn?.("TOKEN",`${Y.toUpperCase()} | retry after refresh failed`)}}else x?.warn?.("TOKEN",`${Y.toUpperCase()} | refresh failed`)}if(!q.ok){(0,y.trackPendingRequest)(J,Y,M,!1);let{statusCode:t,message:o,retryAfterMs:r}=await (0,f.parseUpstreamError)(q,Y);(0,y.appendRequestLog)({model:J,provider:Y,connectionId:M,status:`FAILED ${t}`}).catch(()=>{}),(0,A.saveCallLog)({method:"POST",path:D?.endpoint||"/v1/chat/completions",status:t,model:J,provider:Y,connectionId:M,duration:Date.now()-z,requestBody:e,error:o,sourceFormat:ee,targetFormat:ei,comboName:j,apiKeyId:F?.id||null,apiKeyName:F?.name||null,noLog:F?.noLog===!0}).catch(()=>{});let s=(0,f.formatProviderError)(Error(o),Y,J,t);if(console.log(`${l.COLORS.red}[ERROR] ${s}${l.COLORS.reset}`),r&&"antigravity"===Y){let e=Math.ceil(r/1e3);x?.debug?.("RETRY",`Antigravity quota reset in ${e}s (${r}ms)`)}if(ec.logError(Error(o),K||eu),(0,v.updateFromHeaders)(Y,M,q.headers,t,J),!(0,O.isModelUnavailableError)(t,o))return Q(t,`upstream_${t}`),(0,f.createErrorResult)(t,s,r);{let e=(0,O.getNextFamilyFallback)(eS,ek);if(!e)return Q(t,"model_unavailable"),(0,f.createErrorResult)(t,s,r);ek.add(e),eS=e,eu.model=e,x?.info?.("MODEL_FALLBACK",`${J} unavailable (${t}) → trying ${e}`);try{let n=await eT(e,!1);if(!n.response.ok)return Q(t,"model_unavailable"),(0,f.createErrorResult)(t,s,r);q=n.response,B=n.url,H=n.headers,K=n.transformedBody,x?.info?.("MODEL_FALLBACK",`Serving ${e} as fallback for ${J}`)}catch{return Q(t,"model_unavailable"),(0,f.createErrorResult)(t,s,r)}}let a=Array.isArray(eu.tools)&&eu.tools.length>0;if(!el){let e=(0,$.shouldUseFallback)(t,o,a,$.EMERGENCY_FALLBACK_CONFIG);if((0,$.isFallbackDecision)(e)){x?.info?.("EMERGENCY_FALLBACK",e.reason);try{let t=(0,T.getExecutor)(e.provider),o=await t.execute({model:e.model,body:{...eu,model:e.model,max_tokens:Math.min("number"==typeof eu.max_tokens?eu.max_tokens:e.maxOutputTokens,e.maxOutputTokens)},stream:!1,credentials:n,signal:eh.signal,log:x,extendedContext:V});o.response.ok?(q=o.response,x?.info?.("EMERGENCY_FALLBACK",`Serving ${e.provider}/${e.model} as budget fallback for ${Y}/${J}`)):x?.warn?.("EMERGENCY_FALLBACK",`Emergency fallback also failed (${o.response.status})`)}catch(e){x?.warn?.("EMERGENCY_FALLBACK",`Emergency fallback error: ${e?.message}`)}}}}if(!el){let t;(0,y.trackPendingRequest)(J,Y,M,!1);let n=(q.headers.get("content-type")||"").toLowerCase(),r=await q.text();if(n.includes("text/event-stream")||/(^|\n)\s*(event|data):/m.test(r)){let e=ei===a.FORMATS.OPENAI_RESPONSES?(0,E.parseSSEToResponsesOutput)(r,J):(0,E.parseSSEToOpenAIResponse)(r,J);if(!e)return(0,y.appendRequestLog)({model:J,provider:Y,connectionId:M,status:`FAILED ${h.HTTP_STATUS.BAD_GATEWAY}`}).catch(()=>{}),Q(h.HTTP_STATUS.BAD_GATEWAY,"invalid_sse_payload"),(0,f.createErrorResult)(h.HTTP_STATUS.BAD_GATEWAY,"Invalid SSE response for non-streaming request");t=e}else try{t=r?JSON.parse(r):{}}catch{return(0,y.appendRequestLog)({model:J,provider:Y,connectionId:M,status:`FAILED ${h.HTTP_STATUS.BAD_GATEWAY}`}).catch(()=>{}),Q(h.HTTP_STATUS.BAD_GATEWAY,"invalid_json_payload"),(0,f.createErrorResult)(h.HTTP_STATUS.BAD_GATEWAY,"Invalid JSON response from provider")}P&&await P();let i=(0,S.extractUsageFromResponse)(t,Y);if((0,y.appendRequestLog)({model:J,provider:Y,connectionId:M,tokens:i,status:"200 OK"}).catch(()=>{}),(0,A.saveCallLog)({method:"POST",path:D?.endpoint||"/v1/chat/completions",status:200,model:J,provider:Y,connectionId:M,duration:Date.now()-z,tokens:i,requestBody:e,responseBody:t,sourceFormat:ee,targetFormat:ei,comboName:j,apiKeyId:F?.id||null,apiKeyName:F?.name||null,noLog:F?.noLog===!0}).catch(()=>{}),i&&"object"==typeof i){let e=`[${new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit"})}] 📊 [USAGE] ${Y.toUpperCase()} | in=${i?.prompt_tokens||0} | out=${i?.completion_tokens||0}${M?` | account=${M.slice(0,8)}...`:""}`;console.log(`${l.COLORS.green}${e}${l.COLORS.reset}`),(0,y.saveRequestUsage)({provider:Y||"unknown",model:J||"unknown",tokens:i,status:"200",success:!0,latencyMs:Date.now()-z,timeToFirstTokenMs:Date.now()-z,errorCode:null,timestamp:new Date().toISOString(),connectionId:M||void 0,apiKeyId:F?.id||void 0,apiKeyName:F?.name||void 0}).catch(e=>{console.error("Failed to save usage stats:",e.message)})}let c=(0,s.needsTranslation)(ei,ee)?(0,k.translateNonStreamingResponse)(t,ei,ee):t;if(ee===a.FORMATS.OPENAI&&(c=(0,R.sanitizeOpenAIResponse)(c)),c?.usage){let e=(0,l.addBufferToUsage)(c.usage);c.usage=(0,l.filterUsageForFormat)(e,ee)}else{let t=JSON.stringify(c?.choices?.[0]?.message?.content||"").length;if(t>0){let n=(0,l.estimateUsage)(e,t,ee);c.usage=(0,l.filterUsageForFormat)(n,ee)}}if((0,w.isCacheable)(e,D?.headers)){let t=(0,w.generateSignature)(J,e.messages,e.temperature,e.top_p),n=i?.prompt_tokens+i?.completion_tokens||0;(0,w.setCachedResponse)(t,J,c,n),x?.debug?.("CACHE",`Stored response for ${J} (${n} tokens)`)}return(0,b.saveIdempotency)(Z,c,200),{success:!0,response:new Response(JSON.stringify(c),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":(0,o.getCorsOrigin)(),"X-OmniRoute-Cache":"MISS"}})}}P&&await P();let eR={"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive","Access-Control-Allow-Origin":(0,o.getCorsOrigin)()},ev=({status:t,usage:n})=>{(0,A.saveCallLog)({method:"POST",path:D?.endpoint||"/v1/chat/completions",status:t||200,model:J,provider:Y,connectionId:M,duration:Date.now()-z,tokens:n||{},requestBody:e,sourceFormat:ee,targetFormat:ei,comboName:j,apiKeyId:F?.id||null,apiKeyName:F?.name||null,noLog:F?.noLog===!0}).catch(()=>{})},ew=L?.toLowerCase().includes("droid")||L?.toLowerCase().includes("codex-cli");if("codex"!==Y||ei!==a.FORMATS.OPENAI_RESPONSES||ee!==a.FORMATS.OPENAI||en||ew?(0,s.needsTranslation)(ei,ee)?(x?.debug?.("STREAM",`Translation mode: ${ei} → ${ee}`),W=(0,i.createSSETransformStreamWithLogger)(ei,ee,Y,ec,ep,J,M,e,ev,F)):(x?.debug?.("STREAM","Standard passthrough mode"),W=(0,i.createPassthroughStreamWithLogger)(Y,ec,J,M,e,ev,F)):(x?.debug?.("STREAM",`Codex translation mode: openai-responses → openai`),W=(0,i.createSSETransformStreamWithLogger)("openai-responses","openai",Y,ec,ep,J,M,e,ev,F)),(0,C.wantsProgress)(D?.headers)){let e=(0,C.createProgressTransform)({signal:eh.signal});G=(0,c.pipeWithDisconnect)(q,W,eh).pipeThrough(e),eR["X-OmniRoute-Progress"]="enabled"}else G=(0,c.pipeWithDisconnect)(q,W,eh);return{success:!0,response:new Response(G,{headers:eR})}}[T]=x.then?(await x)():x,e.s(["handleChatCore",()=>N]),n()}catch(e){n(e)}},!1),485641,e=>{"use strict";let t=[{name:"system_override",pattern:/\b(ignore|disregard|forget)\s+(all\s+)?(previous|prior|above|earlier)\s+(instructions?|prompts?|rules?|context)/i,severity:"high"},{name:"role_hijack",pattern:/\b(you\s+are\s+now|act\s+as\s+if|pretend\s+(to\s+be|you\s+are)|from\s+now\s+on\s+you\s+are)\b/i,severity:"medium"},{name:"system_prompt_leak",pattern:/\b(reveal|show|display|print|output|repeat)\s+(your\s+)?(system\s+prompt|instructions?|initial\s+prompt|hidden\s+prompt)/i,severity:"high"},{name:"delimiter_injection",pattern:/(\[SYSTEM\]|\[INST\]|<<SYS>>|<\|im_start\|>|<\|system\|>|<\|user\|>)/i,severity:"high"},{name:"jailbreak_dan",pattern:/\b(DAN|do\s+anything\s+now|jailbreak|developer\s+mode|enable\s+developer)\b/i,severity:"medium"},{name:"encoding_evasion",pattern:/\b(base64\s+decode|rot13|hex\s+decode|unicode\s+escape)\b.*\b(instruction|prompt|command)\b/i,severity:"medium"}],n=[{name:"email",pattern:/\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b/g,replacement:"[EMAIL_REDACTED]"},{name:"cpf",pattern:/\b\d{3}\.\d{3}\.\d{3}-\d{2}\b/g,replacement:"[CPF_REDACTED]"},{name:"cnpj",pattern:/\b\d{2}\.\d{3}\.\d{3}\/\d{4}-\d{2}\b/g,replacement:"[CNPJ_REDACTED]"},{name:"credit_card",pattern:/\b(?:\d{4}[-\s]?){3}\d{4}\b/g,replacement:"[CARD_REDACTED]"},{name:"phone_br",pattern:/\b\(?\d{2}\)?\s?\d{4,5}-?\d{4}\b/g,replacement:"[PHONE_REDACTED]"},{name:"ssn_us",pattern:/\b\d{3}-\d{2}-\d{4}\b/g,replacement:"[SSN_REDACTED]"}];function o(e,t=!1){let r=[],s=e;for(let o of n){let n=e.match(o.pattern);n&&n.length>0&&(r.push({type:o.name,count:n.length}),t&&(s=s.replace(o.pattern,o.replacement)))}return{text:s,detections:r}}function r(e,n=console){let s={enabled:"false"!==process.env.INPUT_SANITIZER_ENABLED,mode:process.env.INPUT_SANITIZER_MODE||"warn",piiRedaction:"true"===process.env.PII_REDACTION_ENABLED},a={blocked:!1,modified:!1,detections:[],piiDetections:[],sanitizedBody:null};if(!s.enabled)return a;let i=(function(e){let t=[];for(let n of e.messages||e.input||[])if("string"==typeof n)t.push(n);else if("string"==typeof n.content)t.push(n.content);else if(Array.isArray(n.content))for(let e of n.content)"string"==typeof e?t.push(e):e.text&&t.push(e.text);if("string"==typeof e.system)t.push(e.system);else if(Array.isArray(e.system))for(let n of e.system)"string"==typeof n?t.push(n):n.text&&t.push(n.text);return t})(e).join("\n"),l=function(e){let n=[];for(let o of t){let t=e.match(o.pattern);t&&n.push({pattern:o.name,severity:o.severity,match:t[0].slice(0,50)})}return n}(i);if(l.length>0){a.detections=l;let e=l.filter(e=>"high"===e.severity),t=e.length>0?"warn":"info";if(n[t]&&n[t](`[SANITIZER] Prompt injection detected: ${l.map(e=>e.pattern).join(", ")}`),"block"===s.mode&&e.length>0)return a.blocked=!0,a}if(s.piiRedaction){let t=o(i,"redact"===s.mode);a.piiDetections=t.detections,t.detections.length>0&&(n.warn?.(`[SANITIZER] PII detected: ${t.detections.map(e=>`${e.type}(${e.count})`).join(", ")}`),"redact"===s.mode&&(a.sanitizedBody=function(e){let t=JSON.parse(JSON.stringify(e));for(let e of t.messages||t.input||[])if("string"==typeof e.content)e.content=o(e.content,!0).text;else if(Array.isArray(e.content))for(let t of e.content)if("string"==typeof t){let n=e.content.indexOf(t);e.content[n]=o(t,!0).text}else t.text&&(t.text=o(t.text,!0).text);return"string"==typeof t.system&&(t.system=o(t.system,!0).text),t}(e),a.modified=!0))}return a}e.s(["sanitizeRequest",()=>r])},577122,e=>{"use strict";var t=e.i(478500),n=e.i(254799);function o(){return(0,n.randomUUID)()}new t.AsyncLocalStorage,e.s(["generateRequestId",()=>o])},311250,e=>e.a(async(t,n)=>{try{var o=e.i(287726),r=e.i(192408),s=e.i(85713),a=e.i(284948),i=e.i(719201),l=e.i(928041),c=e.i(16023),u=e.i(878947),d=e.i(444675);e.i(706901);var p=e.i(249157),g=e.i(496973);e.i(245272);var m=e.i(548941),f=e.i(151205),h=e.i(496928),_=e.i(21245),y=e.i(485641),A=e.i(260222),T=e.i(982392),k=e.i(25687),S=e.i(454925),E=e.i(577122),R=e.i(362225),v=e.i(478847),w=e.i(852705),b=e.i(167389),C=t([a]);async function O(e,t=null){let n,s=(0,E.generateRequestId)(),a=new S.RequestTelemetry(s);try{a.startPhase("parse"),n=await e.json(),a.endPhase()}catch{return p.warn("CHAT","Invalid JSON body"),(0,i.errorResponse)(c.HTTP_STATUS.BAD_REQUEST,"Invalid JSON body")}a.startPhase("validate");let u=(0,y.sanitizeRequest)(n,p);if(u.blocked)return p.warn("SANITIZER","Request blocked due to prompt injection",{detections:u.detections}),(0,i.errorResponse)(c.HTTP_STATUS.BAD_REQUEST,"Request rejected: suspicious content detected");u.modified&&u.sanitizedBody&&(n=u.sanitizedBody),a.endPhase(),(e.headers.get("accept")||"").includes("text/event-stream")&&void 0===n.stream&&(n={...n,stream:!0},p.debug("STREAM","Accept: text/event-stream header → overriding stream=true (body had no stream field)")),t||(t={endpoint:new URL(e.url).pathname,body:n,headers:Object.fromEntries(e.headers.entries())});let d=new URL(e.url),g=n.model,h=n.messages?.length||n.input?.length||0,_=n.tools?.length||0,A=n.reasoning_effort||n.reasoning?.effort||null;p.request("POST",`${d.pathname} | ${g} | ${h} msgs${_?` | ${_} tools`:""}${A?` | effort=${A}`:""}`);let k=e.headers.get("Authorization"),R=(0,o.extractApiKey)(e);k&&R?p.debug("AUTH",`API Key: ${p.maskKey(R)}`):p.debug("AUTH","No API key provided (local mode)");let b=e.headers?.get?.("x-internal-test")==="combo-health-check";if("true"===process.env.REQUIRE_API_KEY&&!b){if(!R)return p.warn("AUTH","Missing API key while REQUIRE_API_KEY=true"),(0,i.errorResponse)(c.HTTP_STATUS.UNAUTHORIZED,"Missing API key");if(!await (0,o.isValidApiKey)(R))return p.warn("AUTH","Invalid API key while REQUIRE_API_KEY=true"),(0,i.errorResponse)(c.HTTP_STATUS.UNAUTHORIZED,"Invalid API key")}if(!g)return p.warn("CHAT","Missing model"),(0,i.errorResponse)(c.HTTP_STATUS.BAD_REQUEST,"Missing model");a.startPhase("policy");let C=await (0,v.enforceApiKeyPolicy)(e,g);if(C.rejection)return p.warn("POLICY",`API key policy rejected: ${g} (key=${C.apiKeyInfo?.id||"unknown"})`),C.rejection;let $=C.apiKeyInfo;a.endPhase();let x=g;if((0,w.getTaskRoutingConfig)().enabled){a.startPhase("task-route");let e=(0,w.applyTaskAwareRouting)(g,n);e.wasRouted?(x=e.model,n={...n,model:e.model},p.info("T05",`Task-Aware: detected="${e.taskType}" → model override: ${g} → ${e.model}`)):"chat"!==e.taskType&&p.debug("T05",`Task-Aware: detected="${e.taskType}" (no override configured)`),e.taskType,e.wasRouted,a.endPhase()}a.startPhase("resolve");let N=await (0,r.getCombo)(x);if(N){p.info("CHAT",`Combo "${g}" [${N.strategy||"priority"}] with ${N.models.length} models`);let s=async e=>{let t=await (0,r.getModelInfo)(e),n=t.provider;if(!n)return!0;if(!(0,T.isModelAvailable)(n,t.model||e))return p.debug("AVAILABILITY",`${n}/${t.model} in cooldown, skipping`),!1;let s=await (0,o.getProviderCredentials)(n,null,$?.allowedConnections??null);return!!s&&!s.allRateLimited},[i,c]=await Promise.all([(0,m.getSettings)().catch(()=>({})),(0,f.getCombos)().catch(()=>[])]);a.endPhase();let u=await l.handleComboChat({body:n,combo:N,handleSingleModel:(n,o)=>I(n,o,t,e,N.name,$,a),isModelAvailable:s,log:p,settings:i,allCombos:c});return(0,S.recordTelemetry)(a),u}a.endPhase();let P=await I(n,g,t,e,null,$,a);return(0,S.recordTelemetry)(a),P}async function I(e,t,n=null,r=null,s=null,a=null,l=null,u={}){var d,m;let f=await $(t,e);if(f.error)return f.error;let{provider:y,model:S,sourceFormat:E,targetFormat:v,extendedContext:w}=f,C=(d=y,m=S,(0,T.isModelAvailable)(d,m)?(0,A.getCircuitBreaker)(d,{failureThreshold:5,resetTimeout:3e4,onStateChange:(e,t,n)=>p.info("CIRCUIT",`${e}: ${t} → ${n}`)}).canExecute()?null:(p.warn("CIRCUIT",`Circuit breaker OPEN for ${d}, rejecting request`),i.unavailableResponse(c.HTTP_STATUS.SERVICE_UNAVAILABLE,`Provider ${d} circuit breaker is open`,30)):(p.warn("AVAILABILITY",`${d}/${m} is in cooldown, rejecting request`),i.unavailableResponse(c.HTTP_STATUS.SERVICE_UNAVAILABLE,`Model ${d}/${m} is temporarily unavailable (cooldown)`,30)));if(C)return C;let O=(0,A.getCircuitBreaker)(y,{failureThreshold:5,resetTimeout:3e4,onStateChange:(e,t,n)=>p.info("CIRCUIT",`${e}: ${t} → ${n}`)}),P=r?.headers?.get("user-agent")||"",U=null,D=null,M=null;for(;;){let t=await (0,o.getProviderCredentials)(y,U,a?.allowedConnections??null);if(!t||t.allRateLimited)return(429===M||503===M)&&((0,T.setModelUnavailable)(y,S,6e4,`HTTP ${M}`),p.info("AVAILABILITY",`${y}/${S} marked unavailable — all accounts exhausted (HTTP ${M})`)),function(e,t,n,o,r,s){if(e?.allRateLimited){let t=r||e.lastError||"Unavailable",a=s||Number(e.lastErrorCode)||c.HTTP_STATUS.SERVICE_UNAVAILABLE;return p.warn("CHAT",`[${n}/${o}] ${t} (${e.retryAfterHuman})`),(0,i.unavailableResponse)(a,`[${n}/${o}] ${t}`,e.retryAfter,e.retryAfterHuman)}return t?(p.warn("CHAT","No more accounts available",{provider:n}),(0,i.errorResponse)(s||c.HTTP_STATUS.SERVICE_UNAVAILABLE,r||"All accounts unavailable")):(p.error("AUTH",`No credentials for provider: ${n}`),(0,i.errorResponse)(c.HTTP_STATUS.BAD_REQUEST,`No credentials for provider: ${n}`))}(t,U,y,S,D,M);let d=t.connectionId.slice(0,8);p.info("AUTH",`Using ${y} account: ${d}...`);let m=await (0,g.checkAndRefreshToken)(y,t),f=await N(t.connectionId),A=Date.now();l&&l.startPhase("connect");let{result:C,tlsFingerprintUsed:$}=await x({breaker:O,body:e,provider:y,model:S,refreshedCredentials:m,proxyInfo:f,log:p,clientRawRequest:n,credentials:t,apiKeyInfo:a,userAgent:P,comboName:s,extendedContext:w});l&&l.endPhase();let F=Date.now()-A;if(function({result:e,proxyInfo:t,proxyLatency:n,provider:o,model:r,sourceFormat:s,targetFormat:a,credentials:i,comboName:l,clientRawRequest:c,tlsFingerprintUsed:u=!1}){try{(0,h.logProxyEvent)({status:e.success?"success":408===e.status||504===e.status?"timeout":"error",proxy:t?.proxy||null,level:t?.level||"direct",levelId:t?.levelId||null,provider:o,targetUrl:`${o}/${r}`,latencyMs:n,error:e.success?null:e.error||null,connectionId:i.connectionId,comboId:l||null,account:i.connectionId?.slice(0,8)||null,tlsFingerprint:u})}catch{}try{(0,_.logTranslationEvent)({provider:o,model:r,sourceFormat:s,targetFormat:a,status:e.success?"success":"error",statusCode:e.success?200:e.status||500,latency:n,endpoint:c?.endpoint||"/v1/chat/completions",connectionId:i.connectionId||null,comboName:l||null})}catch{}}({result:C,proxyInfo:f,proxyLatency:F,provider:y,model:S,sourceFormat:E,targetFormat:v,credentials:t,comboName:s,clientRawRequest:n,tlsFingerprintUsed:$}),C.success)return(0,T.clearModelUnavailability)(y,S),function(e,t){if(e?.id)try{let n=t.usage||{},o=((n.prompt_tokens||0)+(n.completion_tokens||0))*1e-6;o>0&&(0,R.recordCost)(e.id,o)}catch{}}(a,C),l&&l.startPhase("finalize"),l&&l.endPhase(),C.response;if(!u.emergencyFallbackTried){let t=(0,b.shouldUseFallback)(Number(C.status||0),String(C.error||""),Array.isArray(e?.tools)&&e.tools.length>0);if((0,b.isFallbackDecision)(t)){let o=`${t.provider}/${t.model}`,i=`${y}/${S}`;if(o!==i){let c={...e,model:o},d=Math.min(Number(c.max_tokens??c.max_completion_tokens??t.maxOutputTokens)||t.maxOutputTokens,t.maxOutputTokens);return c.max_tokens=d,c.max_completion_tokens=d,p.warn("EMERGENCY_FALLBACK",`${i} -> ${o} | reason=${t.reason}`),I(c,o,n,r,s,a,l,{...u,emergencyFallbackTried:!0})}}}429===C.status&&(0,k.markAccountExhaustedFrom429)(t.connectionId,y);let{shouldFallback:L}=await (0,o.markAccountUnavailable)(t.connectionId,C.status,C.error,y,S);if(L){p.warn("AUTH",`Account ${d}... unavailable (${C.status}), trying fallback`),U=t.connectionId,D=C.error,M=C.status;continue}return C.response}}async function $(e,t){let n=await (0,r.getModelInfo)(e);if(!n.provider){if("ambiguous_model"===n.errorType){let t=n.errorMessage||`Ambiguous model '${e}'. Use provider/model prefix (ex: gh/${e} or cc/${e}).`;return p.warn("CHAT",t,{model:e,candidates:n.candidateAliases||n.candidateProviders||[]}),{error:(0,i.errorResponse)(c.HTTP_STATUS.BAD_REQUEST,t)}}return p.warn("CHAT","Invalid model format",{model:e}),{error:(0,i.errorResponse)(c.HTTP_STATUS.BAD_REQUEST,"Invalid model format")}}let{provider:o,model:a,extendedContext:l}=n,d=(0,s.detectFormat)(t),g=u.PROVIDER_ID_TO_ALIAS[o]||o,m=(0,u.getModelTargetFormat)(g,a)||(0,s.getTargetFormat)(o);"responses"===n.apiFormat&&(m="openai-responses",p.info("ROUTING",`Custom model apiFormat=responses → targetFormat=openai-responses`));let f=l&&"claude"===g?" [1m]":"";return e!==`${o}/${a}`?p.info("ROUTING",`${e} → ${o}/${a}${f}`):p.info("ROUTING",`Provider: ${o}, Model: ${a}${f}`),{provider:o,model:a,sourceFormat:d,targetFormat:m,extendedContext:l}}async function x({breaker:e,body:t,provider:n,model:r,refreshedCredentials:s,proxyInfo:l,log:u,clientRawRequest:m,credentials:f,apiKeyInfo:h,userAgent:_,comboName:y,extendedContext:T}){try{let i=()=>(0,d.runWithProxyContext)(l?.proxy||null,()=>a.handleChatCore({body:{...t,model:`${n}/${r}`},modelInfo:{provider:n,model:r,extendedContext:T},credentials:s,log:u,clientRawRequest:m,connectionId:f.connectionId,apiKeyInfo:h,userAgent:_,comboName:y,onCredentialsRefreshed:async e=>{await (0,g.updateProviderCredentials)(f.connectionId,{accessToken:e.accessToken,refreshToken:e.refreshToken,providerSpecificData:e.providerSpecificData,testStatus:"active"})},onRequestSuccess:async()=>{await (0,o.clearAccountError)(f.connectionId,f)}}));if(!l?.proxy&&(0,d.isTlsFingerprintActive)()){let t=await e.execute(async()=>(0,d.runWithTlsTracking)(i));return{result:t.result,tlsFingerprintUsed:t.tlsFingerprintUsed}}return{result:await e.execute(i),tlsFingerprintUsed:!1}}catch(e){if(e instanceof A.CircuitBreakerOpenError)return p.warn("CIRCUIT",`${n} circuit open during retry: ${e.message}`),{result:{success:!1,response:i.unavailableResponse(c.HTTP_STATUS.SERVICE_UNAVAILABLE,`Provider ${n} circuit breaker is open`,Math.ceil(e.retryAfterMs/1e3)),status:c.HTTP_STATUS.SERVICE_UNAVAILABLE},tlsFingerprintUsed:!1};throw e}}async function N(e){try{return await (0,m.resolveProxyForConnection)(e)}catch(e){return p.debug("PROXY",`Failed to resolve proxy: ${e.message}`),null}}[a]=C.then?(await C)():C,e.s(["handleChat",()=>O]),n()}catch(e){n(e)}},!1)];
18
+ `;r.enqueue(i.encode(e))}catch{}}})}function n(e){return!!e&&"true"===("function"==typeof e.get?t=>e.get(t):t=>e[t])("x-omniroute-progress")}e.s(["createProgressTransform",()=>t,"wantsProgress",()=>n])},578172,e=>{"use strict";let t={"gemini-3-pro":["gemini-3.1-pro-preview","gemini-3-pro-preview","gemini-3.1-pro-high","gemini-3-pro-high","gemini-3.1-pro-low","gemini-3-pro-low"],"gemini-3.1-pro":["gemini-3.1-pro-preview","gemini-3-pro-preview","gemini-3.1-pro-high","gemini-3-pro-high","gemini-3.1-pro-low","gemini-3-pro-low"],"gemini-3-pro-preview":["gemini-3.1-pro-preview","gemini-3-pro-high","gemini-3.1-pro-high","gemini-3-pro-low","gemini-3.1-pro-low"],"gemini-3.1-pro-preview":["gemini-3-pro-preview","gemini-3.1-pro-high","gemini-3-pro-high","gemini-3.1-pro-low","gemini-3-pro-low"],"gemini-3-pro-high":["gemini-3.1-pro-high","gemini-3-pro-preview","gemini-3.1-pro-preview","gemini-3-pro-low","gemini-3.1-pro-low"],"gemini-3.1-pro-high":["gemini-3-pro-high","gemini-3.1-pro-preview","gemini-3-pro-preview","gemini-3.1-pro-low","gemini-3-pro-low"],"gemini-2.5-pro":["gemini-2.5-pro-preview-06-05","gemini-2.5-pro-exp-03-25"],"gemini-2.5-pro-preview-06-05":["gemini-2.5-pro","gemini-2.5-pro-exp-03-25"],"claude-opus-4-6":["claude-opus-4-6-thinking","claude-opus-4-5-20251101","claude-sonnet-4-6"],"claude-opus-4-6-thinking":["claude-opus-4-6","claude-opus-4-5-20251101"],"claude-sonnet-4-6":["claude-sonnet-4-5-20250929","claude-sonnet-4-20250514"],"claude-sonnet-4-5-20250929":["claude-sonnet-4-6","claude-sonnet-4-20250514"],"gpt-5":["gpt-5-mini","gpt-4o"],"gpt-5.1":["gpt-5.1-mini","gpt-5","gpt-4o"]},n=["model not found","model_not_found","model not available","model is not available","no such model","unsupported model","unknown model","this model does not exist","invalid model","model not supported","does not support","not enabled for","access to model"];function o(e,t){if(404===e)return!0;if(400!==e&&403!==e)return!1;let o=t.toLowerCase();return n.some(e=>o.includes(e))}function r(e,n){let o=t[e];if(!o)return null;for(let e of o)if(!n.has(e))return e;return null}e.s(["getNextFamilyFallback",()=>r,"isModelUnavailableError",()=>o])},167389,e=>{"use strict";let t={enabled:!0,provider:"nvidia",model:"openai/gpt-oss-120b",triggerOn402:!0,triggerOnBudgetKeywords:!0,budgetKeywords:["insufficient funds","insufficient_funds","budget exceeded","budget_exceeded","quota exceeded","quota_exceeded","billing","payment required","out of credits","no credits","credit limit","spending limit","saldo insuficiente","limite de gastos","cota excedida"],skipForToolRequests:!0,maxOutputTokens:4096};function n(e,o,r,s=t){if(!s.enabled)return{shouldFallback:!1,reason:"emergency fallback disabled"};if(s.skipForToolRequests&&r)return{shouldFallback:!1,reason:"skipped: request has tools"};if(s.triggerOn402&&402===e)return{shouldFallback:!0,reason:`HTTP 402 → emergency fallback to ${s.provider}/${s.model}`,provider:s.provider,model:s.model,maxOutputTokens:s.maxOutputTokens};if(s.triggerOnBudgetKeywords&&o){let e=o.toLowerCase(),t=s.budgetKeywords.find(t=>e.includes(t.toLowerCase()));if(t)return{shouldFallback:!0,reason:`Budget error detected ('${t}') → emergency fallback to ${s.provider}/${s.model}`,provider:s.provider,model:s.model,maxOutputTokens:s.maxOutputTokens}}return{shouldFallback:!1,reason:"no budget error detected"}}function o(e){return!0===e.shouldFallback}e.s(["EMERGENCY_FALLBACK_CONFIG",0,t,"isFallbackDecision",()=>o,"shouldUseFallback",()=>n])},284948,e=>e.a(async(t,n)=>{try{var o=e.i(731664),r=e.i(85713),s=e.i(352812),a=e.i(496727),i=e.i(949756),l=e.i(954372),c=e.i(719485),u=e.i(928602),d=e.i(54092),p=e.i(878947),g=e.i(705765),m=e.i(828059),f=e.i(719201),h=e.i(16023),_=e.i(688828);e.i(312125);var y=e.i(400722),A=e.i(397506),T=e.i(542949),k=e.i(6751),S=e.i(803285),E=e.i(725538),R=e.i(423525),v=e.i(581631),w=e.i(20870),C=e.i(511695),b=e.i(289130),I=e.i(537981),O=e.i(578172),$=e.i(951700),x=e.i(167389),N=t([k]);async function P({body:e,modelInfo:t,credentials:n,log:N,onCredentialsRefreshed:P,onRequestSuccess:U,onDisconnect:D,clientRawRequest:M,connectionId:F,apiKeyInfo:L=null,userAgent:j,comboName:q}){let B,H,K,W,G,Y,{provider:J,model:V,extendedContext:z}=t,Z=Date.now(),Q=(e,t)=>{(0,y.saveRequestUsage)({provider:J||"unknown",model:V||"unknown",tokens:{input:0,output:0,cacheRead:0,cacheCreation:0,reasoning:0},status:String(e),success:!1,latencyMs:Date.now()-Z,timeToFirstTokenMs:0,errorCode:t||String(e),timestamp:new Date().toISOString(),connectionId:F||void 0,apiKeyId:L?.id||void 0,apiKeyName:L?.name||void 0}).catch(()=>{})},X=(0,b.getIdempotencyKey)(M?.headers),ee=(0,b.checkIdempotency)(X);if(ee)return N?.debug?.("IDEMPOTENCY",`Hit for key=${X?.slice(0,12)}...`),{success:!0,response:new Response(JSON.stringify(ee.response),{status:ee.status,headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":(0,o.getCorsOrigin)(),"X-OmniRoute-Idempotent":"true"}})};await (0,w.initializeRateLimits)(),F&&n&&!n.connectionId&&(n.connectionId=F);let et=(0,r.detectFormat)(e),en=String(M?.endpoint||""),eo=/(?:^|\/)responses(?:\/.*)?$/i.test(en),er=function({provider:e,sourceFormat:t,endpointPath:n}){if("codex"!==e||t!==a.FORMATS.OPENAI_RESPONSES)return!1;let o=String(n||"").replace(/\/+$/,"");return/(?:^|\/)responses(?:\/.*)?$/i.test(o)}({provider:J,sourceFormat:et,endpointPath:en}),es=(0,_.handleBypassRequest)(e,V,j);if(es)return es;let ea=(0,g.resolveModelAlias)(V),ei=p.PROVIDER_ID_TO_ALIAS[J]||J,el=(0,p.getModelTargetFormat)(ei,ea)||(0,r.getTargetFormat)(J),ec=!0===e.stream;if((0,C.isCacheable)(e,M?.headers)){let t=(0,C.generateSignature)(V,e.messages,e.temperature,e.top_p),n=(0,C.getCachedResponse)(t);if(n)return N?.debug?.("CACHE",`Semantic cache HIT for ${V}`),{success:!0,response:new Response(JSON.stringify(n),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":(0,o.getCorsOrigin)(),"X-OmniRoute-Cache":"HIT"}})}}let eu=await (0,d.createRequestLogger)(et,el,V);M&&eu.logClientRawRequest(M.endpoint,M.body,M.headers),eu.logRawRequest(e),N?.debug?.("FORMAT",`${et} → ${el} | stream=${ec}`);let ed=e,ep=et===a.FORMATS.CLAUDE&&el===a.FORMATS.CLAUDE;try{if(er)ed={...e,_nativeCodexPassthrough:!0},N?.debug?.("FORMAT","native codex passthrough enabled");else if(ep)ed={...e},N?.debug?.("FORMAT","claude->claude passthrough -- forwarding untouched");else{if(ed={...e},el!==a.FORMATS.CLAUDE||["claude","anthropic"].includes(J?.toLowerCase?.())||(ed._disableToolPrefix=!0),Array.isArray(ed.messages)&&(ed.messages=ed.messages.map(e=>{if(""===e.name){let{name:t,...n}=e;return n}return e})),Array.isArray(ed.input)&&(ed.input=ed.input.map(e=>{if(""===e.name){let{name:t,...n}=e;return n}return e})),Array.isArray(ed.tools)&&(ed.tools=ed.tools.filter(e=>{let t=e.function,n=t?.name??e.name;return n&&String(n).trim().length>0})),Array.isArray(ed.messages))for(let e of ed.messages)Array.isArray(e.content)&&(e.content=e.content.filter(e=>"text"!==e.type||"string"==typeof e.text&&e.text.length>0));if(Array.isArray(ed.messages))for(let e of ed.messages)"user"===e.role&&Array.isArray(e.content)&&(e.content=e.content.flatMap(e=>{if("text"===e.type||"image_url"===e.type||"image"===e.type)return[e];if("file"===e.type||"document"===e.type){let t=e.file?.content??e.file?.text??e.content??e.text,n=e.file?.name??e.name??"attachment";return"string"==typeof t&&t.length>0?[{type:"text",text:`[${n}]
19
+ ${t}`}]:[]}return N?.debug?.("CONTENT",`Dropped unsupported content part type="${e.type}"`),[]}));let t=(0,T.getModelNormalizeToolCallId)(J||"",V||"");ed=(0,s.translateRequest)(et,el,V,ed,ec,n,J,eu,{normalizeToolCallId:t})}}catch(s){let e=Number(s?.statusCode),t=Number.isInteger(e)&&e>=400&&e<=599?e:h.HTTP_STATUS.SERVER_ERROR,n=s?.message||"Invalid request",r="string"==typeof s?.errorType?s.errorType:null;if(N?.warn?.("TRANSLATE",`Request translation failed: ${n}`),r)return{success:!1,status:t,error:n,response:new Response(JSON.stringify({error:{message:n,type:r,code:r}}),{status:t,headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":(0,o.getCorsOrigin)()}})};return(0,f.createErrorResult)(t,n)}let eg=ed._toolNameMap;delete ed._toolNameMap,delete ed._disableToolPrefix,ed.model=V;let em=(0,m.getUnsupportedParams)(J,V);if(em.length>0){let e=[];for(let t of em)Object.hasOwn(ed,t)&&(e.push(t),delete ed[t]);e.length>0&&N?.warn?.("PARAMS",`Stripped unsupported params for ${V}: ${e.join(", ")}`)}let ef=(0,k.getExecutor)(J),eh=()=>er?{...n,requestEndpointPath:en}:n,e_=(0,c.createStreamController)({onDisconnect:D,log:N,provider:J,model:V}),ey={...ed,model:`${J}/${V}`},eA=(0,$.shouldDeduplicate)(ey),eT=eA?(0,$.computeRequestHash)(ey):null,ek=async(e=V,t=!1)=>{let n=async()=>{let t=ed.model===e?ed:{...ed,model:e},n=await (0,w.withRateLimit)(J,F,e,()=>ef.execute({model:e,body:t,stream:ec,credentials:eh(),signal:e_.signal,log:N,extendedContext:z}));if(ec)return n;let o=n.response.status,r=n.response.statusText,s=Array.from(n.response.headers.entries()),a=await n.response.text();return{...n,response:new Response(a,{status:o,statusText:r,headers:s})}};if(t&&eA&&eT){let e=await (0,$.deduplicate)(eT,n);return e.wasDeduplicated&&N?.debug?.("DEDUP",`Joined in-flight request hash=${eT}`),e.result}return n()};(0,y.trackPendingRequest)(V,J,F,!0);let eS=new Set([V]),eE=V;(0,y.appendRequestLog)({model:V,provider:J,connectionId:F,status:"PENDING"}).catch(()=>{});let eR=ed.messages?.length||ed.contents?.length||ed.request?.contents?.length||0;N?.debug?.("REQUEST",`${J.toUpperCase()} | ${V} | ${eR} msgs`);try{let e=await ek(V,!0);B=e.response,H=e.url,K=e.headers,W=e.transformedBody,eu.logTargetRequest(H,K,W),(0,w.updateFromHeaders)(J,F,B.headers,B.status,V)}catch(n){if((0,y.trackPendingRequest)(V,J,F,!1),(0,y.appendRequestLog)({model:V,provider:J,connectionId:F,status:`FAILED ${"AbortError"===n.name?499:h.HTTP_STATUS.BAD_GATEWAY}`}).catch(()=>{}),(0,A.saveCallLog)({method:"POST",path:M?.endpoint||"/v1/chat/completions",status:"AbortError"===n.name?499:h.HTTP_STATUS.BAD_GATEWAY,model:V,provider:J,connectionId:F,duration:Date.now()-Z,requestBody:e,error:n.message,sourceFormat:et,targetFormat:el,comboName:q,apiKeyId:L?.id||null,apiKeyName:L?.name||null,noLog:L?.noLog===!0}).catch(()=>{}),"AbortError"===n.name)return e_.handleError(n),(0,f.createErrorResult)(499,"Request aborted");Q(h.HTTP_STATUS.BAD_GATEWAY,n?.name||"upstream_error");let t=(0,f.formatProviderError)(n,J,V,h.HTTP_STATUS.BAD_GATEWAY);return console.log(`${l.COLORS.red}[ERROR] ${t}${l.COLORS.reset}`),(0,f.createErrorResult)(h.HTTP_STATUS.BAD_GATEWAY,t)}if(B.status===h.HTTP_STATUS.UNAUTHORIZED||B.status===h.HTTP_STATUS.FORBIDDEN){let e=await (0,u.refreshWithRetry)(()=>ef.refreshCredentials(n,N),3,N);if(e?.accessToken||e?.copilotToken){N?.info?.("TOKEN",`${J.toUpperCase()} | refreshed`),Object.assign(n,e),P&&e&&await P(e);try{let e=await ef.execute({model:V,body:ed,stream:ec,credentials:eh(),signal:e_.signal,log:N,extendedContext:z});e.response.ok&&(B=e.response,H=e.url)}catch(e){N?.warn?.("TOKEN",`${J.toUpperCase()} | retry after refresh failed`)}}else N?.warn?.("TOKEN",`${J.toUpperCase()} | refresh failed`)}if(!B.ok){(0,y.trackPendingRequest)(V,J,F,!1);let{statusCode:t,message:o,retryAfterMs:r}=await (0,f.parseUpstreamError)(B,J);(0,y.appendRequestLog)({model:V,provider:J,connectionId:F,status:`FAILED ${t}`}).catch(()=>{}),(0,A.saveCallLog)({method:"POST",path:M?.endpoint||"/v1/chat/completions",status:t,model:V,provider:J,connectionId:F,duration:Date.now()-Z,requestBody:e,error:o,sourceFormat:et,targetFormat:el,comboName:q,apiKeyId:L?.id||null,apiKeyName:L?.name||null,noLog:L?.noLog===!0}).catch(()=>{});let s=(0,f.formatProviderError)(Error(o),J,V,t);if(console.log(`${l.COLORS.red}[ERROR] ${s}${l.COLORS.reset}`),r&&"antigravity"===J){let e=Math.ceil(r/1e3);N?.debug?.("RETRY",`Antigravity quota reset in ${e}s (${r}ms)`)}if(eu.logError(Error(o),W||ed),(0,w.updateFromHeaders)(J,F,B.headers,t,V),!(0,O.isModelUnavailableError)(t,o))return Q(t,`upstream_${t}`),(0,f.createErrorResult)(t,s,r);{let e=(0,O.getNextFamilyFallback)(eE,eS);if(!e)return Q(t,"model_unavailable"),(0,f.createErrorResult)(t,s,r);eS.add(e),eE=e,ed.model=e,N?.info?.("MODEL_FALLBACK",`${V} unavailable (${t}) → trying ${e}`);try{let n=await ek(e,!1);if(!n.response.ok)return Q(t,"model_unavailable"),(0,f.createErrorResult)(t,s,r);B=n.response,H=n.url,K=n.headers,W=n.transformedBody,N?.info?.("MODEL_FALLBACK",`Serving ${e} as fallback for ${V}`)}catch{return Q(t,"model_unavailable"),(0,f.createErrorResult)(t,s,r)}}let a=Array.isArray(ed.tools)&&ed.tools.length>0;if(!ec){let e=(0,x.shouldUseFallback)(t,o,a,x.EMERGENCY_FALLBACK_CONFIG);if((0,x.isFallbackDecision)(e)){N?.info?.("EMERGENCY_FALLBACK",e.reason);try{let t=(0,k.getExecutor)(e.provider),o=await t.execute({model:e.model,body:{...ed,model:e.model,max_tokens:Math.min("number"==typeof ed.max_tokens?ed.max_tokens:e.maxOutputTokens,e.maxOutputTokens)},stream:!1,credentials:n,signal:e_.signal,log:N,extendedContext:z});o.response.ok?(B=o.response,N?.info?.("EMERGENCY_FALLBACK",`Serving ${e.provider}/${e.model} as budget fallback for ${J}/${V}`)):N?.warn?.("EMERGENCY_FALLBACK",`Emergency fallback also failed (${o.response.status})`)}catch(e){N?.warn?.("EMERGENCY_FALLBACK",`Emergency fallback error: ${e?.message}`)}}}}if(!ec){let t;(0,y.trackPendingRequest)(V,J,F,!1);let n=(B.headers.get("content-type")||"").toLowerCase(),r=await B.text();if(n.includes("text/event-stream")||/(^|\n)\s*(event|data):/m.test(r)){let e=el===a.FORMATS.OPENAI_RESPONSES?(0,R.parseSSEToResponsesOutput)(r,V):(0,R.parseSSEToOpenAIResponse)(r,V);if(!e)return(0,y.appendRequestLog)({model:V,provider:J,connectionId:F,status:`FAILED ${h.HTTP_STATUS.BAD_GATEWAY}`}).catch(()=>{}),Q(h.HTTP_STATUS.BAD_GATEWAY,"invalid_sse_payload"),(0,f.createErrorResult)(h.HTTP_STATUS.BAD_GATEWAY,"Invalid SSE response for non-streaming request");t=e}else try{t=r?JSON.parse(r):{}}catch{return(0,y.appendRequestLog)({model:V,provider:J,connectionId:F,status:`FAILED ${h.HTTP_STATUS.BAD_GATEWAY}`}).catch(()=>{}),Q(h.HTTP_STATUS.BAD_GATEWAY,"invalid_json_payload"),(0,f.createErrorResult)(h.HTTP_STATUS.BAD_GATEWAY,"Invalid JSON response from provider")}U&&await U();let i=(0,E.extractUsageFromResponse)(t,J);if((0,y.appendRequestLog)({model:V,provider:J,connectionId:F,tokens:i,status:"200 OK"}).catch(()=>{}),(0,A.saveCallLog)({method:"POST",path:M?.endpoint||"/v1/chat/completions",status:200,model:V,provider:J,connectionId:F,duration:Date.now()-Z,tokens:i,requestBody:e,responseBody:t,sourceFormat:et,targetFormat:el,comboName:q,apiKeyId:L?.id||null,apiKeyName:L?.name||null,noLog:L?.noLog===!0}).catch(()=>{}),i&&"object"==typeof i){let e=`[${new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit"})}] 📊 [USAGE] ${J.toUpperCase()} | in=${i?.prompt_tokens||0} | out=${i?.completion_tokens||0}${F?` | account=${F.slice(0,8)}...`:""}`;console.log(`${l.COLORS.green}${e}${l.COLORS.reset}`),(0,y.saveRequestUsage)({provider:J||"unknown",model:V||"unknown",tokens:i,status:"200",success:!0,latencyMs:Date.now()-Z,timeToFirstTokenMs:Date.now()-Z,errorCode:null,timestamp:new Date().toISOString(),connectionId:F||void 0,apiKeyId:L?.id||void 0,apiKeyName:L?.name||void 0}).catch(e=>{console.error("Failed to save usage stats:",e.message)})}let c=(0,s.needsTranslation)(el,et)?(0,S.translateNonStreamingResponse)(t,el,et):t;if(et===a.FORMATS.OPENAI&&(c=(0,v.sanitizeOpenAIResponse)(c)),c?.usage){let e=(0,l.addBufferToUsage)(c.usage);c.usage=(0,l.filterUsageForFormat)(e,et)}else{let t=JSON.stringify(c?.choices?.[0]?.message?.content||"").length;if(t>0){let n=(0,l.estimateUsage)(e,t,et);c.usage=(0,l.filterUsageForFormat)(n,et)}}if((0,C.isCacheable)(e,M?.headers)){let t=(0,C.generateSignature)(V,e.messages,e.temperature,e.top_p),n=i?.prompt_tokens+i?.completion_tokens||0;(0,C.setCachedResponse)(t,V,c,n),N?.debug?.("CACHE",`Stored response for ${V} (${n} tokens)`)}return(0,b.saveIdempotency)(X,c,200),{success:!0,response:new Response(JSON.stringify(c),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":(0,o.getCorsOrigin)(),"X-OmniRoute-Cache":"MISS"}})}}U&&await U();let ev={"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive","Access-Control-Allow-Origin":(0,o.getCorsOrigin)()},ew=({status:t,usage:n,responseBody:o})=>{(0,A.saveCallLog)({method:"POST",path:M?.endpoint||"/v1/chat/completions",status:t||200,model:V,provider:J,connectionId:F,duration:Date.now()-Z,tokens:n||{},requestBody:e,responseBody:o??void 0,sourceFormat:et,targetFormat:el,comboName:q,apiKeyId:L?.id||null,apiKeyName:L?.name||null,noLog:L?.noLog===!0}).catch(()=>{})},eC=j?.toLowerCase().includes("droid")||j?.toLowerCase().includes("codex-cli");if("codex"!==J||el!==a.FORMATS.OPENAI_RESPONSES||et!==a.FORMATS.OPENAI||eo||eC?(0,s.needsTranslation)(el,et)?(N?.debug?.("STREAM",`Translation mode: ${el} → ${et}`),G=(0,i.createSSETransformStreamWithLogger)(el,et,J,eu,eg,V,F,e,ew,L)):(N?.debug?.("STREAM","Standard passthrough mode"),G=(0,i.createPassthroughStreamWithLogger)(J,eu,V,F,e,ew,L)):(N?.debug?.("STREAM",`Codex translation mode: openai-responses → openai`),G=(0,i.createSSETransformStreamWithLogger)("openai-responses","openai",J,eu,eg,V,F,e,ew,L)),(0,I.wantsProgress)(M?.headers)){let e=(0,I.createProgressTransform)({signal:e_.signal});Y=(0,c.pipeWithDisconnect)(B,G,e_).pipeThrough(e),ev["X-OmniRoute-Progress"]="enabled"}else Y=(0,c.pipeWithDisconnect)(B,G,e_);return{success:!0,response:new Response(Y,{headers:ev})}}[k]=N.then?(await N)():N,e.s(["handleChatCore",()=>P]),n()}catch(e){n(e)}},!1),485641,e=>{"use strict";let t=[{name:"system_override",pattern:/\b(ignore|disregard|forget)\s+(all\s+)?(previous|prior|above|earlier)\s+(instructions?|prompts?|rules?|context)/i,severity:"high"},{name:"role_hijack",pattern:/\b(you\s+are\s+now|act\s+as\s+if|pretend\s+(to\s+be|you\s+are)|from\s+now\s+on\s+you\s+are)\b/i,severity:"medium"},{name:"system_prompt_leak",pattern:/\b(reveal|show|display|print|output|repeat)\s+(your\s+)?(system\s+prompt|instructions?|initial\s+prompt|hidden\s+prompt)/i,severity:"high"},{name:"delimiter_injection",pattern:/(\[SYSTEM\]|\[INST\]|<<SYS>>|<\|im_start\|>|<\|system\|>|<\|user\|>)/i,severity:"high"},{name:"jailbreak_dan",pattern:/\b(DAN|do\s+anything\s+now|jailbreak|developer\s+mode|enable\s+developer)\b/i,severity:"medium"},{name:"encoding_evasion",pattern:/\b(base64\s+decode|rot13|hex\s+decode|unicode\s+escape)\b.*\b(instruction|prompt|command)\b/i,severity:"medium"}],n=[{name:"email",pattern:/\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b/g,replacement:"[EMAIL_REDACTED]"},{name:"cpf",pattern:/\b\d{3}\.\d{3}\.\d{3}-\d{2}\b/g,replacement:"[CPF_REDACTED]"},{name:"cnpj",pattern:/\b\d{2}\.\d{3}\.\d{3}\/\d{4}-\d{2}\b/g,replacement:"[CNPJ_REDACTED]"},{name:"credit_card",pattern:/\b(?:\d{4}[-\s]?){3}\d{4}\b/g,replacement:"[CARD_REDACTED]"},{name:"phone_br",pattern:/\b\(?\d{2}\)?\s?\d{4,5}-?\d{4}\b/g,replacement:"[PHONE_REDACTED]"},{name:"ssn_us",pattern:/\b\d{3}-\d{2}-\d{4}\b/g,replacement:"[SSN_REDACTED]"}];function o(e,t=!1){let r=[],s=e;for(let o of n){let n=e.match(o.pattern);n&&n.length>0&&(r.push({type:o.name,count:n.length}),t&&(s=s.replace(o.pattern,o.replacement)))}return{text:s,detections:r}}function r(e,n=console){let s={enabled:"false"!==process.env.INPUT_SANITIZER_ENABLED,mode:process.env.INPUT_SANITIZER_MODE||"warn",piiRedaction:"true"===process.env.PII_REDACTION_ENABLED},a={blocked:!1,modified:!1,detections:[],piiDetections:[],sanitizedBody:null};if(!s.enabled)return a;let i=(function(e){let t=[];for(let n of e.messages||e.input||[])if("string"==typeof n)t.push(n);else if("string"==typeof n.content)t.push(n.content);else if(Array.isArray(n.content))for(let e of n.content)"string"==typeof e?t.push(e):e.text&&t.push(e.text);if("string"==typeof e.system)t.push(e.system);else if(Array.isArray(e.system))for(let n of e.system)"string"==typeof n?t.push(n):n.text&&t.push(n.text);return t})(e).join("\n"),l=function(e){let n=[];for(let o of t){let t=e.match(o.pattern);t&&n.push({pattern:o.name,severity:o.severity,match:t[0].slice(0,50)})}return n}(i);if(l.length>0){a.detections=l;let e=l.filter(e=>"high"===e.severity),t=e.length>0?"warn":"info";if(n[t]&&n[t](`[SANITIZER] Prompt injection detected: ${l.map(e=>e.pattern).join(", ")}`),"block"===s.mode&&e.length>0)return a.blocked=!0,a}if(s.piiRedaction){let t=o(i,"redact"===s.mode);a.piiDetections=t.detections,t.detections.length>0&&(n.warn?.(`[SANITIZER] PII detected: ${t.detections.map(e=>`${e.type}(${e.count})`).join(", ")}`),"redact"===s.mode&&(a.sanitizedBody=function(e){let t=JSON.parse(JSON.stringify(e));for(let e of t.messages||t.input||[])if("string"==typeof e.content)e.content=o(e.content,!0).text;else if(Array.isArray(e.content))for(let t of e.content)if("string"==typeof t){let n=e.content.indexOf(t);e.content[n]=o(t,!0).text}else t.text&&(t.text=o(t.text,!0).text);return"string"==typeof t.system&&(t.system=o(t.system,!0).text),t}(e),a.modified=!0))}return a}e.s(["sanitizeRequest",()=>r])},577122,e=>{"use strict";var t=e.i(478500),n=e.i(254799);function o(){return(0,n.randomUUID)()}new t.AsyncLocalStorage,e.s(["generateRequestId",()=>o])},311250,e=>e.a(async(t,n)=>{try{var o=e.i(287726),r=e.i(192408),s=e.i(85713),a=e.i(284948),i=e.i(719201),l=e.i(928041),c=e.i(16023),u=e.i(878947),d=e.i(444675);e.i(706901);var p=e.i(249157),g=e.i(496973);e.i(245272);var m=e.i(548941),f=e.i(151205),h=e.i(496928),_=e.i(21245),y=e.i(485641),A=e.i(260222),T=e.i(982392),k=e.i(25687),S=e.i(454925),E=e.i(577122),R=e.i(362225),v=e.i(478847),w=e.i(852705),C=e.i(167389),b=t([a]);async function I(e,t=null){let n,s=(0,E.generateRequestId)(),a=new S.RequestTelemetry(s);try{a.startPhase("parse"),n=await e.json(),a.endPhase()}catch{return p.warn("CHAT","Invalid JSON body"),(0,i.errorResponse)(c.HTTP_STATUS.BAD_REQUEST,"Invalid JSON body")}a.startPhase("validate");let u=(0,y.sanitizeRequest)(n,p);if(u.blocked)return p.warn("SANITIZER","Request blocked due to prompt injection",{detections:u.detections}),(0,i.errorResponse)(c.HTTP_STATUS.BAD_REQUEST,"Request rejected: suspicious content detected");u.modified&&u.sanitizedBody&&(n=u.sanitizedBody),a.endPhase(),(e.headers.get("accept")||"").includes("text/event-stream")&&void 0===n.stream&&(n={...n,stream:!0},p.debug("STREAM","Accept: text/event-stream header → overriding stream=true (body had no stream field)")),t||(t={endpoint:new URL(e.url).pathname,body:n,headers:Object.fromEntries(e.headers.entries())});let d=new URL(e.url),g=n.model,h=n.messages?.length||n.input?.length||0,_=n.tools?.length||0,A=n.reasoning_effort||n.reasoning?.effort||null;p.request("POST",`${d.pathname} | ${g} | ${h} msgs${_?` | ${_} tools`:""}${A?` | effort=${A}`:""}`);let k=e.headers.get("Authorization"),R=(0,o.extractApiKey)(e);k&&R?p.debug("AUTH",`API Key: ${p.maskKey(R)}`):p.debug("AUTH","No API key provided (local mode)");let C=e.headers?.get?.("x-internal-test")==="combo-health-check";if("true"!==process.env.REQUIRE_API_KEY||C){if(R&&!C&&!await (0,o.isValidApiKey)(R))return p.warn("AUTH","API key not found or invalid (must be created in API Manager)"),(0,i.errorResponse)(c.HTTP_STATUS.UNAUTHORIZED,"Invalid API key")}else{if(!R)return p.warn("AUTH","Missing API key while REQUIRE_API_KEY=true"),(0,i.errorResponse)(c.HTTP_STATUS.UNAUTHORIZED,"Missing API key");if(!await (0,o.isValidApiKey)(R))return p.warn("AUTH","Invalid API key while REQUIRE_API_KEY=true"),(0,i.errorResponse)(c.HTTP_STATUS.UNAUTHORIZED,"Invalid API key")}if(!g)return p.warn("CHAT","Missing model"),(0,i.errorResponse)(c.HTTP_STATUS.BAD_REQUEST,"Missing model");a.startPhase("policy");let b=await (0,v.enforceApiKeyPolicy)(e,g);if(b.rejection)return p.warn("POLICY",`API key policy rejected: ${g} (key=${b.apiKeyInfo?.id||"unknown"})`),b.rejection;let $=b.apiKeyInfo;a.endPhase();let x=g;if((0,w.getTaskRoutingConfig)().enabled){a.startPhase("task-route");let e=(0,w.applyTaskAwareRouting)(g,n);e.wasRouted?(x=e.model,n={...n,model:e.model},p.info("T05",`Task-Aware: detected="${e.taskType}" → model override: ${g} → ${e.model}`)):"chat"!==e.taskType&&p.debug("T05",`Task-Aware: detected="${e.taskType}" (no override configured)`),e.taskType,e.wasRouted,a.endPhase()}a.startPhase("resolve");let N=await (0,r.getCombo)(x);if(N){p.info("CHAT",`Combo "${g}" [${N.strategy||"priority"}] with ${N.models.length} models`);let s=async e=>{let t=await (0,r.getModelInfo)(e),n=t.provider;if(!n)return!0;if(!(0,T.isModelAvailable)(n,t.model||e))return p.debug("AVAILABILITY",`${n}/${t.model} in cooldown, skipping`),!1;let s=await (0,o.getProviderCredentials)(n,null,$?.allowedConnections??null);return!!s&&!s.allRateLimited},[i,c]=await Promise.all([(0,m.getSettings)().catch(()=>({})),(0,f.getCombos)().catch(()=>[])]);a.endPhase();let u=await l.handleComboChat({body:n,combo:N,handleSingleModel:(n,o)=>O(n,o,t,e,N.name,$,a),isModelAvailable:s,log:p,settings:i,allCombos:c});return(0,S.recordTelemetry)(a),u}a.endPhase();let P=await O(n,g,t,e,null,$,a);return(0,S.recordTelemetry)(a),P}async function O(e,t,n=null,r=null,s=null,a=null,l=null,u={}){var d,m;let f=await $(t,e);if(f.error)return f.error;let{provider:y,model:S,sourceFormat:E,targetFormat:v,extendedContext:w}=f,b=(d=y,m=S,(0,T.isModelAvailable)(d,m)?(0,A.getCircuitBreaker)(d,{failureThreshold:5,resetTimeout:3e4,onStateChange:(e,t,n)=>p.info("CIRCUIT",`${e}: ${t} → ${n}`)}).canExecute()?null:(p.warn("CIRCUIT",`Circuit breaker OPEN for ${d}, rejecting request`),i.unavailableResponse(c.HTTP_STATUS.SERVICE_UNAVAILABLE,`Provider ${d} circuit breaker is open`,30)):(p.warn("AVAILABILITY",`${d}/${m} is in cooldown, rejecting request`),i.unavailableResponse(c.HTTP_STATUS.SERVICE_UNAVAILABLE,`Model ${d}/${m} is temporarily unavailable (cooldown)`,30)));if(b)return b;let I=(0,A.getCircuitBreaker)(y,{failureThreshold:5,resetTimeout:3e4,onStateChange:(e,t,n)=>p.info("CIRCUIT",`${e}: ${t} → ${n}`)}),P=r?.headers?.get("user-agent")||"",U=null,D=null,M=null;for(;;){let t=await (0,o.getProviderCredentials)(y,U,a?.allowedConnections??null);if(!t||t.allRateLimited)return(429===M||503===M)&&((0,T.setModelUnavailable)(y,S,6e4,`HTTP ${M}`),p.info("AVAILABILITY",`${y}/${S} marked unavailable — all accounts exhausted (HTTP ${M})`)),function(e,t,n,o,r,s){if(e?.allRateLimited){let t=r||e.lastError||"Unavailable",a=s||Number(e.lastErrorCode)||c.HTTP_STATUS.SERVICE_UNAVAILABLE;return p.warn("CHAT",`[${n}/${o}] ${t} (${e.retryAfterHuman})`),(0,i.unavailableResponse)(a,`[${n}/${o}] ${t}`,e.retryAfter,e.retryAfterHuman)}return t?(p.warn("CHAT","No more accounts available",{provider:n}),(0,i.errorResponse)(s||c.HTTP_STATUS.SERVICE_UNAVAILABLE,r||"All accounts unavailable")):(p.error("AUTH",`No credentials for provider: ${n}`),(0,i.errorResponse)(c.HTTP_STATUS.BAD_REQUEST,`No credentials for provider: ${n}`))}(t,U,y,S,D,M);let d=t.connectionId.slice(0,8);p.info("AUTH",`Using ${y} account: ${d}...`);let m=await (0,g.checkAndRefreshToken)(y,t),f=await N(t.connectionId),A=Date.now();l&&l.startPhase("connect");let{result:b,tlsFingerprintUsed:$}=await x({breaker:I,body:e,provider:y,model:S,refreshedCredentials:m,proxyInfo:f,log:p,clientRawRequest:n,credentials:t,apiKeyInfo:a,userAgent:P,comboName:s,extendedContext:w});l&&l.endPhase();let F=Date.now()-A;if(function({result:e,proxyInfo:t,proxyLatency:n,provider:o,model:r,sourceFormat:s,targetFormat:a,credentials:i,comboName:l,clientRawRequest:c,tlsFingerprintUsed:u=!1}){try{(0,h.logProxyEvent)({status:e.success?"success":408===e.status||504===e.status?"timeout":"error",proxy:t?.proxy||null,level:t?.level||"direct",levelId:t?.levelId||null,provider:o,targetUrl:`${o}/${r}`,latencyMs:n,error:e.success?null:e.error||null,connectionId:i.connectionId,comboId:l||null,account:i.connectionId?.slice(0,8)||null,tlsFingerprint:u})}catch{}try{(0,_.logTranslationEvent)({provider:o,model:r,sourceFormat:s,targetFormat:a,status:e.success?"success":"error",statusCode:e.success?200:e.status||500,latency:n,endpoint:c?.endpoint||"/v1/chat/completions",connectionId:i.connectionId||null,comboName:l||null})}catch{}}({result:b,proxyInfo:f,proxyLatency:F,provider:y,model:S,sourceFormat:E,targetFormat:v,credentials:t,comboName:s,clientRawRequest:n,tlsFingerprintUsed:$}),b.success)return(0,T.clearModelUnavailability)(y,S),function(e,t){if(e?.id)try{let n=t.usage||{},o=((n.prompt_tokens||0)+(n.completion_tokens||0))*1e-6;o>0&&(0,R.recordCost)(e.id,o)}catch{}}(a,b),l&&l.startPhase("finalize"),l&&l.endPhase(),b.response;if(!u.emergencyFallbackTried){let t=(0,C.shouldUseFallback)(Number(b.status||0),String(b.error||""),Array.isArray(e?.tools)&&e.tools.length>0);if((0,C.isFallbackDecision)(t)){let o=`${t.provider}/${t.model}`,i=`${y}/${S}`;if(o!==i){let c={...e,model:o},d=Math.min(Number(c.max_tokens??c.max_completion_tokens??t.maxOutputTokens)||t.maxOutputTokens,t.maxOutputTokens);return c.max_tokens=d,c.max_completion_tokens=d,p.warn("EMERGENCY_FALLBACK",`${i} -> ${o} | reason=${t.reason}`),O(c,o,n,r,s,a,l,{...u,emergencyFallbackTried:!0})}}}429===b.status&&(0,k.markAccountExhaustedFrom429)(t.connectionId,y);let{shouldFallback:L}=await (0,o.markAccountUnavailable)(t.connectionId,b.status,b.error,y,S);if(L){p.warn("AUTH",`Account ${d}... unavailable (${b.status}), trying fallback`),U=t.connectionId,D=b.error,M=b.status;continue}return b.response}}async function $(e,t){let n=await (0,r.getModelInfo)(e);if(!n.provider){if("ambiguous_model"===n.errorType){let t=n.errorMessage||`Ambiguous model '${e}'. Use provider/model prefix (ex: gh/${e} or cc/${e}).`;return p.warn("CHAT",t,{model:e,candidates:n.candidateAliases||n.candidateProviders||[]}),{error:(0,i.errorResponse)(c.HTTP_STATUS.BAD_REQUEST,t)}}return p.warn("CHAT","Invalid model format",{model:e}),{error:(0,i.errorResponse)(c.HTTP_STATUS.BAD_REQUEST,"Invalid model format")}}let{provider:o,model:a,extendedContext:l}=n,d=(0,s.detectFormat)(t),g=u.PROVIDER_ID_TO_ALIAS[o]||o,m=(0,u.getModelTargetFormat)(g,a)||(0,s.getTargetFormat)(o);"responses"===n.apiFormat&&(m="openai-responses",p.info("ROUTING",`Custom model apiFormat=responses → targetFormat=openai-responses`));let f=l&&"claude"===g?" [1m]":"";return e!==`${o}/${a}`?p.info("ROUTING",`${e} → ${o}/${a}${f}`):p.info("ROUTING",`Provider: ${o}, Model: ${a}${f}`),{provider:o,model:a,sourceFormat:d,targetFormat:m,extendedContext:l}}async function x({breaker:e,body:t,provider:n,model:r,refreshedCredentials:s,proxyInfo:l,log:u,clientRawRequest:m,credentials:f,apiKeyInfo:h,userAgent:_,comboName:y,extendedContext:T}){try{let i=()=>(0,d.runWithProxyContext)(l?.proxy||null,()=>a.handleChatCore({body:{...t,model:`${n}/${r}`},modelInfo:{provider:n,model:r,extendedContext:T},credentials:s,log:u,clientRawRequest:m,connectionId:f.connectionId,apiKeyInfo:h,userAgent:_,comboName:y,onCredentialsRefreshed:async e=>{await (0,g.updateProviderCredentials)(f.connectionId,{accessToken:e.accessToken,refreshToken:e.refreshToken,providerSpecificData:e.providerSpecificData,testStatus:"active"})},onRequestSuccess:async()=>{await (0,o.clearAccountError)(f.connectionId,f)}}));if(!l?.proxy&&(0,d.isTlsFingerprintActive)()){let t=await e.execute(async()=>(0,d.runWithTlsTracking)(i));return{result:t.result,tlsFingerprintUsed:t.tlsFingerprintUsed}}return{result:await e.execute(i),tlsFingerprintUsed:!1}}catch(e){if(e instanceof A.CircuitBreakerOpenError)return p.warn("CIRCUIT",`${n} circuit open during retry: ${e.message}`),{result:{success:!1,response:i.unavailableResponse(c.HTTP_STATUS.SERVICE_UNAVAILABLE,`Provider ${n} circuit breaker is open`,Math.ceil(e.retryAfterMs/1e3)),status:c.HTTP_STATUS.SERVICE_UNAVAILABLE},tlsFingerprintUsed:!1};throw e}}async function N(e){try{return await (0,m.resolveProxyForConnection)(e)}catch(e){return p.debug("PROXY",`Failed to resolve proxy: ${e.message}`),null}}[a]=b.then?(await b)():b,e.s(["handleChat",()=>I]),n()}catch(e){n(e)}},!1)];
20
20
 
21
21
  //# sourceMappingURL=_1244636c._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[495767,e=>e.a(async(t,a)=>{try{var r=e.i(745015),n=e.i(89171),s=e.i(924868),o=e.i(814747),i=e.i(266240),l=e.i(841788),d=e.i(197892),u=e.i(676088),c=e.i(200392),p=e.i(195975),m=t([u,c]);[u,c]=m.then?(await m)():m;let R=()=>(0,i.getCliPrimaryConfigPath)("openclaw"),w=async()=>{try{let e=R(),t=await s.default.readFile(e,"utf-8");return JSON.parse(t)}catch(e){if("ENOENT"===e.code)return null;throw e}};async function h(){try{let e=await (0,i.getCliRuntimeStatus)("openclaw");if(!e.installed||!e.runnable)return n.NextResponse.json({installed:e.installed,runnable:e.runnable,command:e.command,commandPath:e.commandPath,runtimeMode:e.runtimeMode,reason:e.reason,settings:null,message:e.installed&&!e.runnable?"Open Claw CLI is installed but not runnable":"Open Claw CLI is not installed"});let t=await w();return n.NextResponse.json({installed:e.installed,runnable:e.runnable,command:e.command,commandPath:e.commandPath,runtimeMode:e.runtimeMode,reason:e.reason,settings:t,hasOmniRoute:!!t&&!!t.models&&!!t.models.providers&&!!t.models.providers.omniroute,settingsPath:R()})}catch(e){return console.log("Error checking openclaw settings:",e),n.NextResponse.json({error:"Failed to check openclaw settings"},{status:500})}}async function g(e){let t;try{t=await e.json()}catch{return n.NextResponse.json({error:{message:"Invalid request",details:[{field:"body",message:"Invalid JSON body"}]}},{status:400})}try{let e=(0,i.ensureCliConfigWriteAllowed)();if(e)return n.NextResponse.json({error:e},{status:403});let a=(0,c.validateBody)(u.cliModelConfigSchema,t);if((0,c.isValidationFailure)(a))return n.NextResponse.json({error:a.error},{status:400});let{baseUrl:r,apiKey:p,model:m}=a.data,h=o.default.dirname(R()),g=R();await s.default.mkdir(h,{recursive:!0}),await (0,l.createBackup)("openclaw",g);let f={};try{let e=await s.default.readFile(g,"utf-8");f=JSON.parse(e)}catch{}f.agents||(f.agents={}),f.agents.defaults||(f.agents.defaults={}),f.agents.defaults.model||(f.agents.defaults.model={}),f.models||(f.models={}),f.models.providers||(f.models.providers={});let w=r.endsWith("/v1")?r:`${r}/v1`;f.agents.defaults.model.primary=`omniroute/${m}`,f.models.providers.omniroute={baseUrl:w,apiKey:p||"your_api_key",api:"openai-completions",models:[{id:m,name:m.split("/").pop()||m}]},await s.default.writeFile(g,JSON.stringify(f,null,2));try{(0,d.saveCliToolLastConfigured)("openclaw")}catch{}return n.NextResponse.json({success:!0,message:"Open Claw settings applied successfully!",settingsPath:g})}catch(e){return console.log("Error updating openclaw settings:",e),n.NextResponse.json({error:"Failed to update openclaw settings"},{status:500})}}async function f(){try{let e=(0,i.ensureCliConfigWriteAllowed)();if(e)return n.NextResponse.json({error:e},{status:403});let t=R();await (0,l.createBackup)("openclaw",t);let a={};try{let e=await s.default.readFile(t,"utf-8");a=JSON.parse(e)}catch(e){if("ENOENT"===e.code)return n.NextResponse.json({success:!0,message:"No settings file to reset"});throw e}a.models&&a.models.providers&&(delete a.models.providers.omniroute,0===Object.keys(a.models.providers).length&&delete a.models.providers),a.agents?.defaults?.model?.primary?.startsWith("omniroute/")&&delete a.agents.defaults.model.primary,await s.default.writeFile(t,JSON.stringify(a,null,2));try{(0,d.deleteCliToolLastConfigured)("openclaw")}catch{}return n.NextResponse.json({success:!0,message:"OmniRoute settings removed successfully"})}catch(e){return console.log("Error resetting openclaw settings:",e),n.NextResponse.json({error:"Failed to reset openclaw settings"},{status:500})}}(0,p.ensureServerEntryExports)([h,g,f]),(0,r.registerServerReference)(h,"0089da9ef5f1cf3988770d504a384483a724315256",null),(0,r.registerServerReference)(g,"408ad5c0ab5c3e277b8117402635ebc85c41074ae1",null),(0,r.registerServerReference)(f,"002830c6466be2bae80affaa271b45863704a99929",null),e.s(["DELETE",()=>f,"GET",()=>h,"POST",()=>g]),a()}catch(e){a(e)}},!1),128142,e=>e.a(async(t,a)=>{try{var r=e.i(747909),n=e.i(174017),s=e.i(996250),o=e.i(759756),i=e.i(561916),l=e.i(174677),d=e.i(869741),u=e.i(316795),c=e.i(487718),p=e.i(995169),m=e.i(47587),h=e.i(666012),g=e.i(570101),f=e.i(626937),R=e.i(10372),w=e.i(193695);e.i(52474);var v=e.i(600220),y=e.i(495767),E=t([y]);[y]=E.then?(await E)():E;let x=new r.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/cli-tools/openclaw-settings/route",pathname:"/api/cli-tools/openclaw-settings",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/cli-tools/openclaw-settings/route.ts",nextConfigOutput:"standalone",userland:y}),{workAsyncStorage:b,workUnitAsyncStorage:O,serverHooks:S}=x;function C(){return(0,s.patchFetch)({workAsyncStorage:b,workUnitAsyncStorage:O})}async function N(e,t,a){x.isDev&&(0,o.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let r="/api/cli-tools/openclaw-settings/route";r=r.replace(/\/index$/,"")||"/";let s=await x.prepare(e,t,{srcPage:r,multiZoneDraftMode:!1});if(!s)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:y,params:E,nextConfig:C,parsedUrl:N,isDraftMode:b,prerenderManifest:O,routerServerContext:S,isOnDemandRevalidate:A,revalidateOnlyGenerated:P,resolvedPathname:T,clientReferenceManifest:_,serverActionsManifest:j}=s,k=(0,d.normalizeAppPath)(r),I=!!(O.dynamicRoutes[k]||O.routes[T]),F=async()=>((null==S?void 0:S.render404)?await S.render404(e,t,N,!1):t.end("This page could not be found"),null);if(I&&!b){let e=!!O.routes[T],t=O.dynamicRoutes[k];if(t&&!1===t.fallback&&!e){if(C.experimental.adapterPath)return await F();throw new w.NoFallbackError}}let H=null;!I||x.isDev||b||(H=T,H="/index"===H?"/":H);let M=!0===x.isDev||!I,U=I&&!M;j&&_&&(0,l.setManifestsSingleton)({page:r,clientReferenceManifest:_,serverActionsManifest:j});let q=e.method||"GET",D=(0,i.getTracer)(),$=D.getActiveScopeSpan(),L={params:E,prerenderManifest:O,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts},cacheComponents:!!C.cacheComponents,supportsDynamicResponse:M,incrementalCache:(0,o.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:C.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,n)=>x.onRequestError(e,t,r,n,S)},sharedContext:{buildId:y}},K=new u.NodeNextRequest(e),B=new u.NodeNextResponse(t),J=c.NextRequestAdapter.fromNodeNextRequest(K,(0,c.signalFromNodeResponse)(t));try{let s=async e=>x.handle(J,L).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=D.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=a.get("next.route");if(n){let t=`${q} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${q} ${r}`)}),l=!!(0,o.getRequestMeta)(e,"minimalMode"),d=async o=>{var i,d;let u=async({previousCacheEntry:n})=>{try{if(!l&&A&&P&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let r=await s(o);e.fetchMetrics=L.renderOpts.fetchMetrics;let i=L.renderOpts.pendingWaitUntil;i&&a.waitUntil&&(a.waitUntil(i),i=void 0);let d=L.renderOpts.collectedTags;if(!I)return await (0,h.sendResponse)(K,B,r,L.renderOpts.pendingWaitUntil),null;{let e=await r.blob(),t=(0,g.toNodeOutgoingHttpHeaders)(r.headers);d&&(t[R.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==L.renderOpts.collectedRevalidate&&!(L.renderOpts.collectedRevalidate>=R.INFINITE_CACHE)&&L.renderOpts.collectedRevalidate,n=void 0===L.renderOpts.collectedExpire||L.renderOpts.collectedExpire>=R.INFINITE_CACHE?void 0:L.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:r.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:n}}}}catch(t){throw(null==n?void 0:n.isStale)&&await x.onRequestError(e,t,{routerKind:"App Router",routePath:r,routeType:"route",revalidateReason:(0,m.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:A})},!1,S),t}},c=await x.handleResponse({req:e,nextConfig:C,cacheKey:H,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:O,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:P,responseGenerator:u,waitUntil:a.waitUntil,isMinimalMode:l});if(!I)return null;if((null==c||null==(i=c.value)?void 0:i.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(d=c.value)?void 0:d.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});l||t.setHeader("x-nextjs-cache",A?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),b&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let p=(0,g.fromNodeOutgoingHttpHeaders)(c.value.headers);return l&&I||p.delete(R.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||p.get("Cache-Control")||p.set("Cache-Control",(0,f.getCacheControlHeader)(c.cacheControl)),await (0,h.sendResponse)(K,B,new Response(c.value.body,{headers:p,status:c.value.status||200})),null};$?await d($):await D.withPropagatedContext(e.headers,()=>D.trace(p.BaseServerSpan.handleRequest,{spanName:`${q} ${r}`,kind:i.SpanKind.SERVER,attributes:{"http.method":q,"http.target":e.url}},d))}catch(t){if(t instanceof w.NoFallbackError||await x.onRequestError(e,t,{routerKind:"App Router",routePath:k,routeType:"route",revalidateReason:(0,m.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:A})},!1,S),I)throw t;return await (0,h.sendResponse)(K,B,new Response(null,{status:500})),null}}e.s(["handler",()=>N,"patchFetch",()=>C,"routeModule",()=>x,"serverHooks",()=>S,"workAsyncStorage",()=>b,"workUnitAsyncStorage",()=>O]),a()}catch(e){a(e)}},!1)];
1
+ module.exports=[495767,e=>e.a(async(t,a)=>{try{var r=e.i(745015),n=e.i(89171),s=e.i(924868),o=e.i(814747),i=e.i(266240),l=e.i(841788),d=e.i(197892),u=e.i(676088),c=e.i(200392),p=e.i(195975),m=t([u,c]);[u,c]=m.then?(await m)():m;let R=()=>(0,i.getCliPrimaryConfigPath)("openclaw"),w=async()=>{try{let e=R(),t=await s.default.readFile(e,"utf-8");return JSON.parse(t)}catch(e){if("ENOENT"===e.code)return null;throw e}};async function h(){try{let e=await (0,i.getCliRuntimeStatus)("openclaw");if(!e.installed||!e.runnable)return n.NextResponse.json({installed:e.installed,runnable:e.runnable,command:e.command,commandPath:e.commandPath,runtimeMode:e.runtimeMode,reason:e.reason,settings:null,message:e.installed&&!e.runnable?"Open Claw CLI is installed but not runnable":"Open Claw CLI is not installed"});let t=await w();return n.NextResponse.json({installed:e.installed,runnable:e.runnable,command:e.command,commandPath:e.commandPath,runtimeMode:e.runtimeMode,reason:e.reason,settings:t,hasOmniRoute:!!t&&!!t.models&&!!t.models.providers&&!!t.models.providers.omniroute,settingsPath:R()})}catch(e){return console.log("Error checking openclaw settings:",e),n.NextResponse.json({error:"Failed to check openclaw settings"},{status:500})}}async function f(e){let t;try{t=await e.json()}catch{return n.NextResponse.json({error:{message:"Invalid request",details:[{field:"body",message:"Invalid JSON body"}]}},{status:400})}try{let e=(0,i.ensureCliConfigWriteAllowed)();if(e)return n.NextResponse.json({error:e},{status:403});let a=(0,c.validateBody)(u.cliModelConfigSchema,t);if((0,c.isValidationFailure)(a))return n.NextResponse.json({error:a.error},{status:400});let{baseUrl:r,apiKey:p,model:m}=a.data,h=o.default.dirname(R()),f=R();await s.default.mkdir(h,{recursive:!0}),await (0,l.createBackup)("openclaw",f);let g={};try{let e=await s.default.readFile(f,"utf-8");g=JSON.parse(e)}catch{}g.agents||(g.agents={}),g.agents.defaults||(g.agents.defaults={}),g.agents.defaults.model||(g.agents.defaults.model={}),g.models||(g.models={}),g.models.providers||(g.models.providers={});let w=r.endsWith("/v1")?r:`${r}/v1`;g.agents.defaults.model.primary=`omniroute/${m}`,g.models.providers.omniroute={baseUrl:w,apiKey:p||"your_api_key",api:"openai-completions",models:[{id:m,name:m.split("/").pop()||m}]},await s.default.writeFile(f,JSON.stringify(g,null,2));try{(0,d.saveCliToolLastConfigured)("openclaw")}catch{}return n.NextResponse.json({success:!0,message:"Open Claw settings applied successfully!",settingsPath:f})}catch(e){return console.log("Error updating openclaw settings:",e),n.NextResponse.json({error:"Failed to update openclaw settings"},{status:500})}}async function g(){try{let e=(0,i.ensureCliConfigWriteAllowed)();if(e)return n.NextResponse.json({error:e},{status:403});let t=R();await (0,l.createBackup)("openclaw",t);let a={};try{let e=await s.default.readFile(t,"utf-8");a=JSON.parse(e)}catch(e){if("ENOENT"===e.code)return n.NextResponse.json({success:!0,message:"No settings file to reset"});throw e}a.models&&a.models.providers&&(delete a.models.providers.omniroute,0===Object.keys(a.models.providers).length&&delete a.models.providers),a.agents?.defaults?.model?.primary?.startsWith("omniroute/")&&delete a.agents.defaults.model.primary,await s.default.writeFile(t,JSON.stringify(a,null,2));try{(0,d.deleteCliToolLastConfigured)("openclaw")}catch{}return n.NextResponse.json({success:!0,message:"OmniRoute settings removed successfully"})}catch(e){return console.log("Error resetting openclaw settings:",e),n.NextResponse.json({error:"Failed to reset openclaw settings"},{status:500})}}(0,p.ensureServerEntryExports)([h,f,g]),(0,r.registerServerReference)(h,"003b8c4ce2ec1510adcfbe6b34f8738e49d4c4d378",null),(0,r.registerServerReference)(f,"40e06c93264ee7d67cee55276209c980db9843f4d3",null),(0,r.registerServerReference)(g,"004ac852e8ebd18de64683119ce0267f85ff79bebb",null),e.s(["DELETE",()=>g,"GET",()=>h,"POST",()=>f]),a()}catch(e){a(e)}},!1),128142,e=>e.a(async(t,a)=>{try{var r=e.i(747909),n=e.i(174017),s=e.i(996250),o=e.i(759756),i=e.i(561916),l=e.i(174677),d=e.i(869741),u=e.i(316795),c=e.i(487718),p=e.i(995169),m=e.i(47587),h=e.i(666012),f=e.i(570101),g=e.i(626937),R=e.i(10372),w=e.i(193695);e.i(52474);var v=e.i(600220),y=e.i(495767),E=t([y]);[y]=E.then?(await E)():E;let x=new r.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/cli-tools/openclaw-settings/route",pathname:"/api/cli-tools/openclaw-settings",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/cli-tools/openclaw-settings/route.ts",nextConfigOutput:"standalone",userland:y}),{workAsyncStorage:b,workUnitAsyncStorage:O,serverHooks:S}=x;function C(){return(0,s.patchFetch)({workAsyncStorage:b,workUnitAsyncStorage:O})}async function N(e,t,a){x.isDev&&(0,o.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let r="/api/cli-tools/openclaw-settings/route";r=r.replace(/\/index$/,"")||"/";let s=await x.prepare(e,t,{srcPage:r,multiZoneDraftMode:!1});if(!s)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:y,params:E,nextConfig:C,parsedUrl:N,isDraftMode:b,prerenderManifest:O,routerServerContext:S,isOnDemandRevalidate:A,revalidateOnlyGenerated:P,resolvedPathname:T,clientReferenceManifest:_,serverActionsManifest:j}=s,k=(0,d.normalizeAppPath)(r),I=!!(O.dynamicRoutes[k]||O.routes[T]),F=async()=>((null==S?void 0:S.render404)?await S.render404(e,t,N,!1):t.end("This page could not be found"),null);if(I&&!b){let e=!!O.routes[T],t=O.dynamicRoutes[k];if(t&&!1===t.fallback&&!e){if(C.experimental.adapterPath)return await F();throw new w.NoFallbackError}}let H=null;!I||x.isDev||b||(H=T,H="/index"===H?"/":H);let M=!0===x.isDev||!I,U=I&&!M;j&&_&&(0,l.setManifestsSingleton)({page:r,clientReferenceManifest:_,serverActionsManifest:j});let q=e.method||"GET",D=(0,i.getTracer)(),$=D.getActiveScopeSpan(),L={params:E,prerenderManifest:O,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts},cacheComponents:!!C.cacheComponents,supportsDynamicResponse:M,incrementalCache:(0,o.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:C.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,n)=>x.onRequestError(e,t,r,n,S)},sharedContext:{buildId:y}},K=new u.NodeNextRequest(e),B=new u.NodeNextResponse(t),J=c.NextRequestAdapter.fromNodeNextRequest(K,(0,c.signalFromNodeResponse)(t));try{let s=async e=>x.handle(J,L).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=D.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=a.get("next.route");if(n){let t=`${q} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${q} ${r}`)}),l=!!(0,o.getRequestMeta)(e,"minimalMode"),d=async o=>{var i,d;let u=async({previousCacheEntry:n})=>{try{if(!l&&A&&P&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let r=await s(o);e.fetchMetrics=L.renderOpts.fetchMetrics;let i=L.renderOpts.pendingWaitUntil;i&&a.waitUntil&&(a.waitUntil(i),i=void 0);let d=L.renderOpts.collectedTags;if(!I)return await (0,h.sendResponse)(K,B,r,L.renderOpts.pendingWaitUntil),null;{let e=await r.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(r.headers);d&&(t[R.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==L.renderOpts.collectedRevalidate&&!(L.renderOpts.collectedRevalidate>=R.INFINITE_CACHE)&&L.renderOpts.collectedRevalidate,n=void 0===L.renderOpts.collectedExpire||L.renderOpts.collectedExpire>=R.INFINITE_CACHE?void 0:L.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:r.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:n}}}}catch(t){throw(null==n?void 0:n.isStale)&&await x.onRequestError(e,t,{routerKind:"App Router",routePath:r,routeType:"route",revalidateReason:(0,m.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:A})},!1,S),t}},c=await x.handleResponse({req:e,nextConfig:C,cacheKey:H,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:O,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:P,responseGenerator:u,waitUntil:a.waitUntil,isMinimalMode:l});if(!I)return null;if((null==c||null==(i=c.value)?void 0:i.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(d=c.value)?void 0:d.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});l||t.setHeader("x-nextjs-cache",A?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),b&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let p=(0,f.fromNodeOutgoingHttpHeaders)(c.value.headers);return l&&I||p.delete(R.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||p.get("Cache-Control")||p.set("Cache-Control",(0,g.getCacheControlHeader)(c.cacheControl)),await (0,h.sendResponse)(K,B,new Response(c.value.body,{headers:p,status:c.value.status||200})),null};$?await d($):await D.withPropagatedContext(e.headers,()=>D.trace(p.BaseServerSpan.handleRequest,{spanName:`${q} ${r}`,kind:i.SpanKind.SERVER,attributes:{"http.method":q,"http.target":e.url}},d))}catch(t){if(t instanceof w.NoFallbackError||await x.onRequestError(e,t,{routerKind:"App Router",routePath:k,routeType:"route",revalidateReason:(0,m.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:A})},!1,S),I)throw t;return await (0,h.sendResponse)(K,B,new Response(null,{status:500})),null}}e.s(["handler",()=>N,"patchFetch",()=>C,"routeModule",()=>x,"serverHooks",()=>S,"workAsyncStorage",()=>b,"workUnitAsyncStorage",()=>O]),a()}catch(e){a(e)}},!1)];
2
2
 
3
3
  //# sourceMappingURL=_2115d8de._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[980935,e=>e.a(async(t,r)=>{try{var a=e.i(745015),n=e.i(89171),o=e.i(924868),s=e.i(814747),i=e.i(266240),l=e.i(841788),d=e.i(197892),u=e.i(676088),c=e.i(200392),p=e.i(195975),h=t([u,c]);[u,c]=h.then?(await h)():h;let R=()=>(0,i.getCliConfigPaths)("codex").config,x=()=>(0,i.getCliConfigPaths)("codex").auth,v=e=>{let t={_root:{},_sections:{}},r="_root";return e.split("\n").forEach(e=>{let a=e.trim();if(!a||a.startsWith("#"))return;let n=a.match(/^\[(.+)\]$/);if(n){r=n[1],t._sections[r]={};return}let o=a.match(/^([^=]+)\s*=\s*(.+)$/);if(o){let e=o[1].trim(),a=o[2].trim();(a.startsWith('"')&&a.endsWith('"')||a.startsWith("'")&&a.endsWith("'"))&&(a=a.slice(1,-1)),"_root"===r?t._root[e]=a:t._sections[r][e]=a}}),t},w=e=>{let t=[];return Object.entries(e._root).forEach(([e,r])=>{t.push(`${e} = "${r}"`)}),Object.entries(e._sections).forEach(([e,r])=>{t.push(""),t.push(`[${e}]`),Object.entries(r).forEach(([e,r])=>{t.push(`${e} = "${r}"`)})}),t.join("\n")+"\n"},E=async()=>{try{let e=R();return await o.default.readFile(e,"utf-8")}catch(e){if("ENOENT"===e.code)return null;throw e}};async function f(){try{let e=await (0,i.getCliRuntimeStatus)("codex");if(!e.installed||!e.runnable)return n.NextResponse.json({installed:e.installed,runnable:e.runnable,command:e.command,commandPath:e.commandPath,runtimeMode:e.runtimeMode,reason:e.reason,config:null,message:e.installed&&!e.runnable?"Codex CLI is installed but not runnable":"Codex CLI is not installed"});let t=await E();return n.NextResponse.json({installed:e.installed,runnable:e.runnable,command:e.command,commandPath:e.commandPath,runtimeMode:e.runtimeMode,reason:e.reason,config:t,hasOmniRoute:!!t&&(t.includes('model_provider = "omniroute"')||t.includes("[model_providers.omniroute]")),configPath:R()})}catch(e){return console.log("Error checking codex settings:",e),n.NextResponse.json({error:"Failed to check codex settings"},{status:500})}}async function m(e){let t;try{t=await e.json()}catch{return n.NextResponse.json({error:{message:"Invalid request",details:[{field:"body",message:"Invalid JSON body"}]}},{status:400})}try{let e=(0,i.ensureCliConfigWriteAllowed)();if(e)return n.NextResponse.json({error:e},{status:403});let r=(0,c.validateBody)(u.cliModelConfigSchema,t);if((0,c.isValidationFailure)(r))return n.NextResponse.json({error:r.error},{status:400});let{baseUrl:a,apiKey:p,model:h}=r.data;if(!p)return n.NextResponse.json({error:"baseUrl, apiKey and model are required"},{status:400});let f=s.default.dirname(R()),m=R(),g=x();await o.default.mkdir(f,{recursive:!0}),await (0,l.createMultiBackup)("codex",[m,g]);let E={_root:{},_sections:{}};try{let e=await o.default.readFile(m,"utf-8");E=v(e)}catch{}E._root.model=h,E._root.model_provider="omniroute";let y=a.endsWith("/v1")?a:`${a}/v1`;E._sections["model_providers.omniroute"]={name:"OmniRoute",base_url:y,wire_api:"responses"};let C=w(E);await o.default.writeFile(m,C);let _={};try{let e=await o.default.readFile(g,"utf-8");_=JSON.parse(e)}catch{}_.OPENAI_API_KEY=p,await o.default.writeFile(g,JSON.stringify(_,null,2));try{(0,d.saveCliToolLastConfigured)("codex")}catch{}return n.NextResponse.json({success:!0,message:"Codex settings applied successfully!",configPath:m})}catch(e){return console.log("Error updating codex settings:",e),n.NextResponse.json({error:"Failed to update codex settings"},{status:500})}}async function g(){try{let e=(0,i.ensureCliConfigWriteAllowed)();if(e)return n.NextResponse.json({error:e},{status:403});let t=R();await (0,l.createMultiBackup)("codex",[t,x()]);let r={_root:{},_sections:{}};try{let e=await o.default.readFile(t,"utf-8");r=v(e)}catch(e){if("ENOENT"===e.code)return n.NextResponse.json({success:!0,message:"No config file to reset"});throw e}"omniroute"===r._root.model_provider&&(delete r._root.model,delete r._root.model_provider),delete r._sections["model_providers.omniroute"];let a=w(r);await o.default.writeFile(t,a);let s=x();try{let e=await o.default.readFile(s,"utf-8"),t=JSON.parse(e);delete t.OPENAI_API_KEY,0===Object.keys(t).length?await o.default.unlink(s):await o.default.writeFile(s,JSON.stringify(t,null,2))}catch{}try{(0,d.deleteCliToolLastConfigured)("codex")}catch{}return n.NextResponse.json({success:!0,message:"OmniRoute settings removed successfully"})}catch(e){return console.log("Error resetting codex settings:",e),n.NextResponse.json({error:"Failed to reset codex settings"},{status:500})}}(0,p.ensureServerEntryExports)([f,m,g]),(0,a.registerServerReference)(f,"0089bac547ed15394d835f7dffa25467cd1c9ebefb",null),(0,a.registerServerReference)(m,"4079598dc10ab1cbdd6e91d7b2a4f019d45f136efe",null),(0,a.registerServerReference)(g,"0045b60c07a6418492a982c45d39f3702de25bbbe9",null),e.s(["DELETE",()=>g,"GET",()=>f,"POST",()=>m]),r()}catch(e){r(e)}},!1),58214,e=>e.a(async(t,r)=>{try{var a=e.i(747909),n=e.i(174017),o=e.i(996250),s=e.i(759756),i=e.i(561916),l=e.i(174677),d=e.i(869741),u=e.i(316795),c=e.i(487718),p=e.i(995169),h=e.i(47587),f=e.i(666012),m=e.i(570101),g=e.i(626937),R=e.i(10372),x=e.i(193695);e.i(52474);var v=e.i(600220),w=e.i(980935),E=t([w]);[w]=E.then?(await E)():E;let _=new a.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/cli-tools/codex-settings/route",pathname:"/api/cli-tools/codex-settings",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/cli-tools/codex-settings/route.ts",nextConfigOutput:"standalone",userland:w}),{workAsyncStorage:N,workUnitAsyncStorage:b,serverHooks:O}=_;function y(){return(0,o.patchFetch)({workAsyncStorage:N,workUnitAsyncStorage:b})}async function C(e,t,r){_.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let a="/api/cli-tools/codex-settings/route";a=a.replace(/\/index$/,"")||"/";let o=await _.prepare(e,t,{srcPage:a,multiZoneDraftMode:!1});if(!o)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:w,params:E,nextConfig:y,parsedUrl:C,isDraftMode:N,prerenderManifest:b,routerServerContext:O,isOnDemandRevalidate:A,revalidateOnlyGenerated:P,resolvedPathname:S,clientReferenceManifest:T,serverActionsManifest:j}=o,I=(0,d.normalizeAppPath)(a),F=!!(b.dynamicRoutes[I]||b.routes[S]),k=async()=>((null==O?void 0:O.render404)?await O.render404(e,t,C,!1):t.end("This page could not be found"),null);if(F&&!N){let e=!!b.routes[S],t=b.dynamicRoutes[I];if(t&&!1===t.fallback&&!e){if(y.experimental.adapterPath)return await k();throw new x.NoFallbackError}}let M=null;!F||_.isDev||N||(M=S,M="/index"===M?"/":M);let H=!0===_.isDev||!F,U=F&&!H;j&&T&&(0,l.setManifestsSingleton)({page:a,clientReferenceManifest:T,serverActionsManifest:j});let $=e.method||"GET",q=(0,i.getTracer)(),D=q.getActiveScopeSpan(),K={params:E,prerenderManifest:b,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts},cacheComponents:!!y.cacheComponents,supportsDynamicResponse:H,incrementalCache:(0,s.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:y.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>_.onRequestError(e,t,a,n,O)},sharedContext:{buildId:w}},L=new u.NodeNextRequest(e),W=new u.NodeNextResponse(t),B=c.NextRequestAdapter.fromNodeNextRequest(L,(0,c.signalFromNodeResponse)(t));try{let o=async e=>_.handle(B,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=q.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${$} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${$} ${a}`)}),l=!!(0,s.getRequestMeta)(e,"minimalMode"),d=async s=>{var i,d;let u=async({previousCacheEntry:n})=>{try{if(!l&&A&&P&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await o(s);e.fetchMetrics=K.renderOpts.fetchMetrics;let i=K.renderOpts.pendingWaitUntil;i&&r.waitUntil&&(r.waitUntil(i),i=void 0);let d=K.renderOpts.collectedTags;if(!F)return await (0,f.sendResponse)(L,W,a,K.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(a.headers);d&&(t[R.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=R.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,n=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=R.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==n?void 0:n.isStale)&&await _.onRequestError(e,t,{routerKind:"App Router",routePath:a,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:A})},!1,O),t}},c=await _.handleResponse({req:e,nextConfig:y,cacheKey:M,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:b,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:P,responseGenerator:u,waitUntil:r.waitUntil,isMinimalMode:l});if(!F)return null;if((null==c||null==(i=c.value)?void 0:i.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(d=c.value)?void 0:d.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});l||t.setHeader("x-nextjs-cache",A?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),N&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let p=(0,m.fromNodeOutgoingHttpHeaders)(c.value.headers);return l&&F||p.delete(R.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||p.get("Cache-Control")||p.set("Cache-Control",(0,g.getCacheControlHeader)(c.cacheControl)),await (0,f.sendResponse)(L,W,new Response(c.value.body,{headers:p,status:c.value.status||200})),null};D?await d(D):await q.withPropagatedContext(e.headers,()=>q.trace(p.BaseServerSpan.handleRequest,{spanName:`${$} ${a}`,kind:i.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},d))}catch(t){if(t instanceof x.NoFallbackError||await _.onRequestError(e,t,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:A})},!1,O),F)throw t;return await (0,f.sendResponse)(L,W,new Response(null,{status:500})),null}}e.s(["handler",()=>C,"patchFetch",()=>y,"routeModule",()=>_,"serverHooks",()=>O,"workAsyncStorage",()=>N,"workUnitAsyncStorage",()=>b]),r()}catch(e){r(e)}},!1)];
1
+ module.exports=[980935,e=>e.a(async(t,r)=>{try{var a=e.i(745015),n=e.i(89171),o=e.i(924868),s=e.i(814747),i=e.i(266240),l=e.i(841788),d=e.i(197892),u=e.i(676088),c=e.i(200392),p=e.i(195975),h=t([u,c]);[u,c]=h.then?(await h)():h;let R=()=>(0,i.getCliConfigPaths)("codex").config,x=()=>(0,i.getCliConfigPaths)("codex").auth,v=e=>{let t={_root:{},_sections:{}},r="_root";return e.split("\n").forEach(e=>{let a=e.trim();if(!a||a.startsWith("#"))return;let n=a.match(/^\[(.+)\]$/);if(n){r=n[1],t._sections[r]={};return}let o=a.match(/^([^=]+)\s*=\s*(.+)$/);if(o){let e=o[1].trim(),a=o[2].trim();(a.startsWith('"')&&a.endsWith('"')||a.startsWith("'")&&a.endsWith("'"))&&(a=a.slice(1,-1)),"_root"===r?t._root[e]=a:t._sections[r][e]=a}}),t},w=e=>{let t=[];return Object.entries(e._root).forEach(([e,r])=>{t.push(`${e} = "${r}"`)}),Object.entries(e._sections).forEach(([e,r])=>{t.push(""),t.push(`[${e}]`),Object.entries(r).forEach(([e,r])=>{t.push(`${e} = "${r}"`)})}),t.join("\n")+"\n"},E=async()=>{try{let e=R();return await o.default.readFile(e,"utf-8")}catch(e){if("ENOENT"===e.code)return null;throw e}};async function f(){try{let e=await (0,i.getCliRuntimeStatus)("codex");if(!e.installed||!e.runnable)return n.NextResponse.json({installed:e.installed,runnable:e.runnable,command:e.command,commandPath:e.commandPath,runtimeMode:e.runtimeMode,reason:e.reason,config:null,message:e.installed&&!e.runnable?"Codex CLI is installed but not runnable":"Codex CLI is not installed"});let t=await E();return n.NextResponse.json({installed:e.installed,runnable:e.runnable,command:e.command,commandPath:e.commandPath,runtimeMode:e.runtimeMode,reason:e.reason,config:t,hasOmniRoute:!!t&&(t.includes('model_provider = "omniroute"')||t.includes("[model_providers.omniroute]")),configPath:R()})}catch(e){return console.log("Error checking codex settings:",e),n.NextResponse.json({error:"Failed to check codex settings"},{status:500})}}async function m(e){let t;try{t=await e.json()}catch{return n.NextResponse.json({error:{message:"Invalid request",details:[{field:"body",message:"Invalid JSON body"}]}},{status:400})}try{let e=(0,i.ensureCliConfigWriteAllowed)();if(e)return n.NextResponse.json({error:e},{status:403});let r=(0,c.validateBody)(u.cliModelConfigSchema,t);if((0,c.isValidationFailure)(r))return n.NextResponse.json({error:r.error},{status:400});let{baseUrl:a,apiKey:p,model:h}=r.data;if(!p)return n.NextResponse.json({error:"baseUrl, apiKey and model are required"},{status:400});let f=s.default.dirname(R()),m=R(),g=x();await o.default.mkdir(f,{recursive:!0}),await (0,l.createMultiBackup)("codex",[m,g]);let E={_root:{},_sections:{}};try{let e=await o.default.readFile(m,"utf-8");E=v(e)}catch{}E._root.model=h,E._root.model_provider="omniroute";let y=a.endsWith("/v1")?a:`${a}/v1`;E._sections["model_providers.omniroute"]={name:"OmniRoute",base_url:y,wire_api:"responses"};let C=w(E);await o.default.writeFile(m,C);let _={};try{let e=await o.default.readFile(g,"utf-8");_=JSON.parse(e)}catch{}_.OPENAI_API_KEY=p,await o.default.writeFile(g,JSON.stringify(_,null,2));try{(0,d.saveCliToolLastConfigured)("codex")}catch{}return n.NextResponse.json({success:!0,message:"Codex settings applied successfully!",configPath:m})}catch(e){return console.log("Error updating codex settings:",e),n.NextResponse.json({error:"Failed to update codex settings"},{status:500})}}async function g(){try{let e=(0,i.ensureCliConfigWriteAllowed)();if(e)return n.NextResponse.json({error:e},{status:403});let t=R();await (0,l.createMultiBackup)("codex",[t,x()]);let r={_root:{},_sections:{}};try{let e=await o.default.readFile(t,"utf-8");r=v(e)}catch(e){if("ENOENT"===e.code)return n.NextResponse.json({success:!0,message:"No config file to reset"});throw e}"omniroute"===r._root.model_provider&&(delete r._root.model,delete r._root.model_provider),delete r._sections["model_providers.omniroute"];let a=w(r);await o.default.writeFile(t,a);let s=x();try{let e=await o.default.readFile(s,"utf-8"),t=JSON.parse(e);delete t.OPENAI_API_KEY,0===Object.keys(t).length?await o.default.unlink(s):await o.default.writeFile(s,JSON.stringify(t,null,2))}catch{}try{(0,d.deleteCliToolLastConfigured)("codex")}catch{}return n.NextResponse.json({success:!0,message:"OmniRoute settings removed successfully"})}catch(e){return console.log("Error resetting codex settings:",e),n.NextResponse.json({error:"Failed to reset codex settings"},{status:500})}}(0,p.ensureServerEntryExports)([f,m,g]),(0,a.registerServerReference)(f,"000b4167f9cd2218aea5a6bd443cef8f7bb62253c3",null),(0,a.registerServerReference)(m,"409ec2c3a134fc300960a0f188d7ce3932c14b9f9f",null),(0,a.registerServerReference)(g,"00846e5650a066f728dbd136cf5fe5429d9e9d1dae",null),e.s(["DELETE",()=>g,"GET",()=>f,"POST",()=>m]),r()}catch(e){r(e)}},!1),58214,e=>e.a(async(t,r)=>{try{var a=e.i(747909),n=e.i(174017),o=e.i(996250),s=e.i(759756),i=e.i(561916),l=e.i(174677),d=e.i(869741),u=e.i(316795),c=e.i(487718),p=e.i(995169),h=e.i(47587),f=e.i(666012),m=e.i(570101),g=e.i(626937),R=e.i(10372),x=e.i(193695);e.i(52474);var v=e.i(600220),w=e.i(980935),E=t([w]);[w]=E.then?(await E)():E;let _=new a.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/cli-tools/codex-settings/route",pathname:"/api/cli-tools/codex-settings",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/cli-tools/codex-settings/route.ts",nextConfigOutput:"standalone",userland:w}),{workAsyncStorage:N,workUnitAsyncStorage:b,serverHooks:O}=_;function y(){return(0,o.patchFetch)({workAsyncStorage:N,workUnitAsyncStorage:b})}async function C(e,t,r){_.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let a="/api/cli-tools/codex-settings/route";a=a.replace(/\/index$/,"")||"/";let o=await _.prepare(e,t,{srcPage:a,multiZoneDraftMode:!1});if(!o)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:w,params:E,nextConfig:y,parsedUrl:C,isDraftMode:N,prerenderManifest:b,routerServerContext:O,isOnDemandRevalidate:A,revalidateOnlyGenerated:P,resolvedPathname:S,clientReferenceManifest:T,serverActionsManifest:j}=o,I=(0,d.normalizeAppPath)(a),F=!!(b.dynamicRoutes[I]||b.routes[S]),k=async()=>((null==O?void 0:O.render404)?await O.render404(e,t,C,!1):t.end("This page could not be found"),null);if(F&&!N){let e=!!b.routes[S],t=b.dynamicRoutes[I];if(t&&!1===t.fallback&&!e){if(y.experimental.adapterPath)return await k();throw new x.NoFallbackError}}let M=null;!F||_.isDev||N||(M=S,M="/index"===M?"/":M);let H=!0===_.isDev||!F,U=F&&!H;j&&T&&(0,l.setManifestsSingleton)({page:a,clientReferenceManifest:T,serverActionsManifest:j});let $=e.method||"GET",q=(0,i.getTracer)(),D=q.getActiveScopeSpan(),K={params:E,prerenderManifest:b,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts},cacheComponents:!!y.cacheComponents,supportsDynamicResponse:H,incrementalCache:(0,s.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:y.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>_.onRequestError(e,t,a,n,O)},sharedContext:{buildId:w}},L=new u.NodeNextRequest(e),W=new u.NodeNextResponse(t),B=c.NextRequestAdapter.fromNodeNextRequest(L,(0,c.signalFromNodeResponse)(t));try{let o=async e=>_.handle(B,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=q.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${$} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${$} ${a}`)}),l=!!(0,s.getRequestMeta)(e,"minimalMode"),d=async s=>{var i,d;let u=async({previousCacheEntry:n})=>{try{if(!l&&A&&P&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await o(s);e.fetchMetrics=K.renderOpts.fetchMetrics;let i=K.renderOpts.pendingWaitUntil;i&&r.waitUntil&&(r.waitUntil(i),i=void 0);let d=K.renderOpts.collectedTags;if(!F)return await (0,f.sendResponse)(L,W,a,K.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(a.headers);d&&(t[R.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=R.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,n=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=R.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==n?void 0:n.isStale)&&await _.onRequestError(e,t,{routerKind:"App Router",routePath:a,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:A})},!1,O),t}},c=await _.handleResponse({req:e,nextConfig:y,cacheKey:M,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:b,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:P,responseGenerator:u,waitUntil:r.waitUntil,isMinimalMode:l});if(!F)return null;if((null==c||null==(i=c.value)?void 0:i.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(d=c.value)?void 0:d.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});l||t.setHeader("x-nextjs-cache",A?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),N&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let p=(0,m.fromNodeOutgoingHttpHeaders)(c.value.headers);return l&&F||p.delete(R.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||p.get("Cache-Control")||p.set("Cache-Control",(0,g.getCacheControlHeader)(c.cacheControl)),await (0,f.sendResponse)(L,W,new Response(c.value.body,{headers:p,status:c.value.status||200})),null};D?await d(D):await q.withPropagatedContext(e.headers,()=>q.trace(p.BaseServerSpan.handleRequest,{spanName:`${$} ${a}`,kind:i.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},d))}catch(t){if(t instanceof x.NoFallbackError||await _.onRequestError(e,t,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,h.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:A})},!1,O),F)throw t;return await (0,f.sendResponse)(L,W,new Response(null,{status:500})),null}}e.s(["handler",()=>C,"patchFetch",()=>y,"routeModule",()=>_,"serverHooks",()=>O,"workAsyncStorage",()=>N,"workUnitAsyncStorage",()=>b]),r()}catch(e){r(e)}},!1)];
2
2
 
3
3
  //# sourceMappingURL=_3ac953eb._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[314251,e=>e.a(async(t,r)=>{try{var a=e.i(745015),n=e.i(89171),o=e.i(924868),s=e.i(814747),i=e.i(266240),l=e.i(256770),u=e.i(676088),d=e.i(200392),c=e.i(195975),f=t([u,d]);[u,d]=f.then?(await f)():f;let x=s.default.join((0,l.resolveDataDir)(),"codex-profiles");async function p(){return await o.default.mkdir(x,{recursive:!0}),x}async function h(){try{let e;await p();try{e=await o.default.readdir(x)}catch{return n.NextResponse.json({profiles:[]})}let t=e.filter(e=>e.endsWith(".json")),r=[];for(let e of t)try{let t=await o.default.readFile(s.default.join(x,e),"utf-8"),a=JSON.parse(t);r.push({id:e.replace(".json",""),name:a.name,authLabel:a.authLabel||"unknown",createdAt:a.createdAt,hasConfig:!!a.configToml,hasAuth:!!a.authJson})}catch{}return r.sort((e,t)=>e.name.localeCompare(t.name)),n.NextResponse.json({profiles:r})}catch(e){return console.log("Error listing codex profiles:",e.message),n.NextResponse.json({error:"Failed to list profiles"},{status:500})}}async function g(e){let t;try{t=await e.json()}catch{return n.NextResponse.json({error:{message:"Invalid request",details:[{field:"body",message:"Invalid JSON body"}]}},{status:400})}try{let e=(0,i.ensureCliConfigWriteAllowed)();if(e)return n.NextResponse.json({error:e},{status:403});let r=(0,d.validateBody)(u.codexProfileNameSchema,t);if((0,d.isValidationFailure)(r))return n.NextResponse.json({error:r.error},{status:400});let{name:a}=r.data,l=(0,i.getCliConfigPaths)("codex");if(!l)return n.NextResponse.json({error:"Codex config paths not found"},{status:500});let c=null,f=null;try{c=await o.default.readFile(l.config,"utf-8")}catch{}try{f=await o.default.readFile(l.auth,"utf-8")}catch{}if(!c&&!f)return n.NextResponse.json({error:"No Codex configuration files found to save"},{status:400});let h=a.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,""),g={name:a.trim(),createdAt:new Date().toISOString(),authLabel:f?function(e){try{let t=JSON.parse(e);if(t.tokens?.id_token){let e=t.tokens.id_token.split(".")[1],r=JSON.parse(Buffer.from(e,"base64").toString());if(r.email)return r.email}if(t.auth_mode)return t.auth_mode;if(t.OPENAI_API_KEY)return`API Key: ${t.OPENAI_API_KEY.slice(0,8)}...`;return"unknown"}catch{return"unknown"}}(f):"no-auth",configToml:c,authJson:f};await p();let R=s.default.join(x,`${h}.json`);return await o.default.writeFile(R,JSON.stringify(g,null,2)),n.NextResponse.json({success:!0,message:`Profile "${a}" saved successfully`,profileId:h})}catch(e){return console.log("Error saving codex profile:",e.message),n.NextResponse.json({error:"Failed to save profile"},{status:500})}}async function R(t){let r;try{r=await t.json()}catch{return n.NextResponse.json({error:{message:"Invalid request",details:[{field:"body",message:"Invalid JSON body"}]}},{status:400})}try{let t,a=(0,i.ensureCliConfigWriteAllowed)();if(a)return n.NextResponse.json({error:a},{status:403});let l=(0,d.validateBody)(u.codexProfileIdSchema,r);if((0,d.isValidationFailure)(l))return n.NextResponse.json({error:l.error},{status:400});let{profileId:c}=l.data,f=s.default.join(x,`${c}.json`);try{let e=await o.default.readFile(f,"utf-8");t=JSON.parse(e)}catch{return n.NextResponse.json({error:`Profile "${c}" not found`},{status:404})}let p=(0,i.getCliConfigPaths)("codex");if(!p)return n.NextResponse.json({error:"Codex config paths not found"},{status:500});let{createMultiBackup:h}=await e.A(452484);return await h("codex",[p.config,p.auth]),await o.default.mkdir(s.default.dirname(p.config),{recursive:!0}),t.configToml&&await o.default.writeFile(p.config,t.configToml),t.authJson&&await o.default.writeFile(p.auth,t.authJson),n.NextResponse.json({success:!0,message:`Profile "${t.name}" activated`,profileId:c,restoredConfig:!!t.configToml,restoredAuth:!!t.authJson})}catch(e){return console.log("Error activating codex profile:",e.message),n.NextResponse.json({error:"Failed to activate profile"},{status:500})}}async function m(e){let t;try{t=await e.json()}catch{return n.NextResponse.json({error:{message:"Invalid request",details:[{field:"body",message:"Invalid JSON body"}]}},{status:400})}try{let e=(0,d.validateBody)(u.codexProfileIdSchema,t);if((0,d.isValidationFailure)(e))return n.NextResponse.json({error:e.error},{status:400});let{profileId:r}=e.data,a=s.default.join(x,`${r}.json`);try{await o.default.unlink(a)}catch(e){if("ENOENT"===e.code)return n.NextResponse.json({error:`Profile "${r}" not found`},{status:404});throw e}return n.NextResponse.json({success:!0,message:`Profile "${r}" deleted`})}catch(e){return console.log("Error deleting codex profile:",e.message),n.NextResponse.json({error:"Failed to delete profile"},{status:500})}}(0,c.ensureServerEntryExports)([h,g,R,m]),(0,a.registerServerReference)(h,"00bf3f7326ccfa7b274a7a09d892c5e99498b30bbf",null),(0,a.registerServerReference)(g,"40587c951b503f93fca27c21213affdbc2c27bac05",null),(0,a.registerServerReference)(R,"4084d87727498a715f613ac924ae4888cd36e1c0b5",null),(0,a.registerServerReference)(m,"40bcd1b679f09e257fb64310a6119e17e34898fc54",null),e.s(["DELETE",()=>m,"GET",()=>h,"POST",()=>g,"PUT",()=>R]),r()}catch(e){r(e)}},!1),57985,e=>e.a(async(t,r)=>{try{var a=e.i(747909),n=e.i(174017),o=e.i(996250),s=e.i(759756),i=e.i(561916),l=e.i(174677),u=e.i(869741),d=e.i(316795),c=e.i(487718),f=e.i(995169),p=e.i(47587),h=e.i(666012),g=e.i(570101),R=e.i(626937),m=e.i(10372),x=e.i(193695);e.i(52474);var v=e.i(600220),w=e.i(314251),y=t([w]);[w]=y.then?(await y)():y;let C=new a.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/cli-tools/codex-profiles/route",pathname:"/api/cli-tools/codex-profiles",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/cli-tools/codex-profiles/route.ts",nextConfigOutput:"standalone",userland:w}),{workAsyncStorage:b,workUnitAsyncStorage:j,serverHooks:A}=C;function N(){return(0,o.patchFetch)({workAsyncStorage:b,workUnitAsyncStorage:j})}async function E(e,t,r){C.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let a="/api/cli-tools/codex-profiles/route";a=a.replace(/\/index$/,"")||"/";let o=await C.prepare(e,t,{srcPage:a,multiZoneDraftMode:!1});if(!o)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:w,params:y,nextConfig:N,parsedUrl:E,isDraftMode:b,prerenderManifest:j,routerServerContext:A,isOnDemandRevalidate:P,revalidateOnlyGenerated:S,resolvedPathname:O,clientReferenceManifest:T,serverActionsManifest:I}=o,_=(0,u.normalizeAppPath)(a),k=!!(j.dynamicRoutes[_]||j.routes[O]),F=async()=>((null==A?void 0:A.render404)?await A.render404(e,t,E,!1):t.end("This page could not be found"),null);if(k&&!b){let e=!!j.routes[O],t=j.dynamicRoutes[_];if(t&&!1===t.fallback&&!e){if(N.experimental.adapterPath)return await F();throw new x.NoFallbackError}}let $=null;!k||C.isDev||b||($=O,$="/index"===$?"/":$);let q=!0===C.isDev||!k,D=k&&!q;I&&T&&(0,l.setManifestsSingleton)({page:a,clientReferenceManifest:T,serverActionsManifest:I});let H=e.method||"GET",U=(0,i.getTracer)(),J=U.getActiveScopeSpan(),M={params:y,prerenderManifest:j,renderOpts:{experimental:{authInterrupts:!!N.experimental.authInterrupts},cacheComponents:!!N.cacheComponents,supportsDynamicResponse:q,incrementalCache:(0,s.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:N.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>C.onRequestError(e,t,a,n,A)},sharedContext:{buildId:w}},K=new d.NodeNextRequest(e),L=new d.NodeNextResponse(t),B=c.NextRequestAdapter.fromNodeNextRequest(K,(0,c.signalFromNodeResponse)(t));try{let o=async e=>C.handle(B,M).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=U.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==f.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${H} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${H} ${a}`)}),l=!!(0,s.getRequestMeta)(e,"minimalMode"),u=async s=>{var i,u;let d=async({previousCacheEntry:n})=>{try{if(!l&&P&&S&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await o(s);e.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&r.waitUntil&&(r.waitUntil(i),i=void 0);let u=M.renderOpts.collectedTags;if(!k)return await (0,h.sendResponse)(K,L,a,M.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,g.toNodeOutgoingHttpHeaders)(a.headers);u&&(t[m.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,n=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=m.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==n?void 0:n.isStale)&&await C.onRequestError(e,t,{routerKind:"App Router",routePath:a,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:P})},!1,A),t}},c=await C.handleResponse({req:e,nextConfig:N,cacheKey:$,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:j,isRoutePPREnabled:!1,isOnDemandRevalidate:P,revalidateOnlyGenerated:S,responseGenerator:d,waitUntil:r.waitUntil,isMinimalMode:l});if(!k)return null;if((null==c||null==(i=c.value)?void 0:i.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(u=c.value)?void 0:u.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});l||t.setHeader("x-nextjs-cache",P?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),b&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,g.fromNodeOutgoingHttpHeaders)(c.value.headers);return l&&k||f.delete(m.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,R.getCacheControlHeader)(c.cacheControl)),await (0,h.sendResponse)(K,L,new Response(c.value.body,{headers:f,status:c.value.status||200})),null};J?await u(J):await U.withPropagatedContext(e.headers,()=>U.trace(f.BaseServerSpan.handleRequest,{spanName:`${H} ${a}`,kind:i.SpanKind.SERVER,attributes:{"http.method":H,"http.target":e.url}},u))}catch(t){if(t instanceof x.NoFallbackError||await C.onRequestError(e,t,{routerKind:"App Router",routePath:_,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:P})},!1,A),k)throw t;return await (0,h.sendResponse)(K,L,new Response(null,{status:500})),null}}e.s(["handler",()=>E,"patchFetch",()=>N,"routeModule",()=>C,"serverHooks",()=>A,"workAsyncStorage",()=>b,"workUnitAsyncStorage",()=>j]),r()}catch(e){r(e)}},!1)];
1
+ module.exports=[314251,e=>e.a(async(t,r)=>{try{var a=e.i(745015),n=e.i(89171),o=e.i(924868),s=e.i(814747),i=e.i(266240),l=e.i(256770),u=e.i(676088),d=e.i(200392),c=e.i(195975),f=t([u,d]);[u,d]=f.then?(await f)():f;let x=s.default.join((0,l.resolveDataDir)(),"codex-profiles");async function p(){return await o.default.mkdir(x,{recursive:!0}),x}async function h(){try{let e;await p();try{e=await o.default.readdir(x)}catch{return n.NextResponse.json({profiles:[]})}let t=e.filter(e=>e.endsWith(".json")),r=[];for(let e of t)try{let t=await o.default.readFile(s.default.join(x,e),"utf-8"),a=JSON.parse(t);r.push({id:e.replace(".json",""),name:a.name,authLabel:a.authLabel||"unknown",createdAt:a.createdAt,hasConfig:!!a.configToml,hasAuth:!!a.authJson})}catch{}return r.sort((e,t)=>e.name.localeCompare(t.name)),n.NextResponse.json({profiles:r})}catch(e){return console.log("Error listing codex profiles:",e.message),n.NextResponse.json({error:"Failed to list profiles"},{status:500})}}async function g(e){let t;try{t=await e.json()}catch{return n.NextResponse.json({error:{message:"Invalid request",details:[{field:"body",message:"Invalid JSON body"}]}},{status:400})}try{let e=(0,i.ensureCliConfigWriteAllowed)();if(e)return n.NextResponse.json({error:e},{status:403});let r=(0,d.validateBody)(u.codexProfileNameSchema,t);if((0,d.isValidationFailure)(r))return n.NextResponse.json({error:r.error},{status:400});let{name:a}=r.data,l=(0,i.getCliConfigPaths)("codex");if(!l)return n.NextResponse.json({error:"Codex config paths not found"},{status:500});let c=null,f=null;try{c=await o.default.readFile(l.config,"utf-8")}catch{}try{f=await o.default.readFile(l.auth,"utf-8")}catch{}if(!c&&!f)return n.NextResponse.json({error:"No Codex configuration files found to save"},{status:400});let h=a.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,""),g={name:a.trim(),createdAt:new Date().toISOString(),authLabel:f?function(e){try{let t=JSON.parse(e);if(t.tokens?.id_token){let e=t.tokens.id_token.split(".")[1],r=JSON.parse(Buffer.from(e,"base64").toString());if(r.email)return r.email}if(t.auth_mode)return t.auth_mode;if(t.OPENAI_API_KEY)return`API Key: ${t.OPENAI_API_KEY.slice(0,8)}...`;return"unknown"}catch{return"unknown"}}(f):"no-auth",configToml:c,authJson:f};await p();let R=s.default.join(x,`${h}.json`);return await o.default.writeFile(R,JSON.stringify(g,null,2)),n.NextResponse.json({success:!0,message:`Profile "${a}" saved successfully`,profileId:h})}catch(e){return console.log("Error saving codex profile:",e.message),n.NextResponse.json({error:"Failed to save profile"},{status:500})}}async function R(t){let r;try{r=await t.json()}catch{return n.NextResponse.json({error:{message:"Invalid request",details:[{field:"body",message:"Invalid JSON body"}]}},{status:400})}try{let t,a=(0,i.ensureCliConfigWriteAllowed)();if(a)return n.NextResponse.json({error:a},{status:403});let l=(0,d.validateBody)(u.codexProfileIdSchema,r);if((0,d.isValidationFailure)(l))return n.NextResponse.json({error:l.error},{status:400});let{profileId:c}=l.data,f=s.default.join(x,`${c}.json`);try{let e=await o.default.readFile(f,"utf-8");t=JSON.parse(e)}catch{return n.NextResponse.json({error:`Profile "${c}" not found`},{status:404})}let p=(0,i.getCliConfigPaths)("codex");if(!p)return n.NextResponse.json({error:"Codex config paths not found"},{status:500});let{createMultiBackup:h}=await e.A(452484);return await h("codex",[p.config,p.auth]),await o.default.mkdir(s.default.dirname(p.config),{recursive:!0}),t.configToml&&await o.default.writeFile(p.config,t.configToml),t.authJson&&await o.default.writeFile(p.auth,t.authJson),n.NextResponse.json({success:!0,message:`Profile "${t.name}" activated`,profileId:c,restoredConfig:!!t.configToml,restoredAuth:!!t.authJson})}catch(e){return console.log("Error activating codex profile:",e.message),n.NextResponse.json({error:"Failed to activate profile"},{status:500})}}async function m(e){let t;try{t=await e.json()}catch{return n.NextResponse.json({error:{message:"Invalid request",details:[{field:"body",message:"Invalid JSON body"}]}},{status:400})}try{let e=(0,d.validateBody)(u.codexProfileIdSchema,t);if((0,d.isValidationFailure)(e))return n.NextResponse.json({error:e.error},{status:400});let{profileId:r}=e.data,a=s.default.join(x,`${r}.json`);try{await o.default.unlink(a)}catch(e){if("ENOENT"===e.code)return n.NextResponse.json({error:`Profile "${r}" not found`},{status:404});throw e}return n.NextResponse.json({success:!0,message:`Profile "${r}" deleted`})}catch(e){return console.log("Error deleting codex profile:",e.message),n.NextResponse.json({error:"Failed to delete profile"},{status:500})}}(0,c.ensureServerEntryExports)([h,g,R,m]),(0,a.registerServerReference)(h,"00b549328f6e45c0a1644335fe5949f3fbb221140a",null),(0,a.registerServerReference)(g,"40bad9e10235e7bd9bda26fd56fa7994d7450ec141",null),(0,a.registerServerReference)(R,"409d93d2a3122a911a1843da15ccf18cf68a913553",null),(0,a.registerServerReference)(m,"407ad4a678f73fc13bdf0fe2068f21dd215d5e957d",null),e.s(["DELETE",()=>m,"GET",()=>h,"POST",()=>g,"PUT",()=>R]),r()}catch(e){r(e)}},!1),57985,e=>e.a(async(t,r)=>{try{var a=e.i(747909),n=e.i(174017),o=e.i(996250),s=e.i(759756),i=e.i(561916),l=e.i(174677),u=e.i(869741),d=e.i(316795),c=e.i(487718),f=e.i(995169),p=e.i(47587),h=e.i(666012),g=e.i(570101),R=e.i(626937),m=e.i(10372),x=e.i(193695);e.i(52474);var v=e.i(600220),w=e.i(314251),y=t([w]);[w]=y.then?(await y)():y;let C=new a.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/cli-tools/codex-profiles/route",pathname:"/api/cli-tools/codex-profiles",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/cli-tools/codex-profiles/route.ts",nextConfigOutput:"standalone",userland:w}),{workAsyncStorage:j,workUnitAsyncStorage:A,serverHooks:P}=C;function N(){return(0,o.patchFetch)({workAsyncStorage:j,workUnitAsyncStorage:A})}async function E(e,t,r){C.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let a="/api/cli-tools/codex-profiles/route";a=a.replace(/\/index$/,"")||"/";let o=await C.prepare(e,t,{srcPage:a,multiZoneDraftMode:!1});if(!o)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:w,params:y,nextConfig:N,parsedUrl:E,isDraftMode:j,prerenderManifest:A,routerServerContext:P,isOnDemandRevalidate:S,revalidateOnlyGenerated:b,resolvedPathname:O,clientReferenceManifest:T,serverActionsManifest:I}=o,_=(0,u.normalizeAppPath)(a),k=!!(A.dynamicRoutes[_]||A.routes[O]),F=async()=>((null==P?void 0:P.render404)?await P.render404(e,t,E,!1):t.end("This page could not be found"),null);if(k&&!j){let e=!!A.routes[O],t=A.dynamicRoutes[_];if(t&&!1===t.fallback&&!e){if(N.experimental.adapterPath)return await F();throw new x.NoFallbackError}}let $=null;!k||C.isDev||j||($=O,$="/index"===$?"/":$);let q=!0===C.isDev||!k,D=k&&!q;I&&T&&(0,l.setManifestsSingleton)({page:a,clientReferenceManifest:T,serverActionsManifest:I});let H=e.method||"GET",U=(0,i.getTracer)(),J=U.getActiveScopeSpan(),M={params:y,prerenderManifest:A,renderOpts:{experimental:{authInterrupts:!!N.experimental.authInterrupts},cacheComponents:!!N.cacheComponents,supportsDynamicResponse:q,incrementalCache:(0,s.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:N.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>C.onRequestError(e,t,a,n,P)},sharedContext:{buildId:w}},K=new d.NodeNextRequest(e),L=new d.NodeNextResponse(t),B=c.NextRequestAdapter.fromNodeNextRequest(K,(0,c.signalFromNodeResponse)(t));try{let o=async e=>C.handle(B,M).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=U.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==f.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${H} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${H} ${a}`)}),l=!!(0,s.getRequestMeta)(e,"minimalMode"),u=async s=>{var i,u;let d=async({previousCacheEntry:n})=>{try{if(!l&&S&&b&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await o(s);e.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&r.waitUntil&&(r.waitUntil(i),i=void 0);let u=M.renderOpts.collectedTags;if(!k)return await (0,h.sendResponse)(K,L,a,M.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,g.toNodeOutgoingHttpHeaders)(a.headers);u&&(t[m.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,n=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=m.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==n?void 0:n.isStale)&&await C.onRequestError(e,t,{routerKind:"App Router",routePath:a,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:S})},!1,P),t}},c=await C.handleResponse({req:e,nextConfig:N,cacheKey:$,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:S,revalidateOnlyGenerated:b,responseGenerator:d,waitUntil:r.waitUntil,isMinimalMode:l});if(!k)return null;if((null==c||null==(i=c.value)?void 0:i.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(u=c.value)?void 0:u.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});l||t.setHeader("x-nextjs-cache",S?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),j&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,g.fromNodeOutgoingHttpHeaders)(c.value.headers);return l&&k||f.delete(m.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,R.getCacheControlHeader)(c.cacheControl)),await (0,h.sendResponse)(K,L,new Response(c.value.body,{headers:f,status:c.value.status||200})),null};J?await u(J):await U.withPropagatedContext(e.headers,()=>U.trace(f.BaseServerSpan.handleRequest,{spanName:`${H} ${a}`,kind:i.SpanKind.SERVER,attributes:{"http.method":H,"http.target":e.url}},u))}catch(t){if(t instanceof x.NoFallbackError||await C.onRequestError(e,t,{routerKind:"App Router",routePath:_,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:S})},!1,P),k)throw t;return await (0,h.sendResponse)(K,L,new Response(null,{status:500})),null}}e.s(["handler",()=>E,"patchFetch",()=>N,"routeModule",()=>C,"serverHooks",()=>P,"workAsyncStorage",()=>j,"workUnitAsyncStorage",()=>A]),r()}catch(e){r(e)}},!1)];
2
2
 
3
3
  //# sourceMappingURL=_4b8fd853._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[114902,e=>e.a(async(t,a)=>{try{var r=e.i(745015),n=e.i(89171),i=e.i(924868),o=e.i(814747),s=e.i(446786),l=e.i(266240),d=e.i(841788),u=e.i(197892),c=e.i(676088),p=e.i(200392),f=e.i(195975),h=t([c,p]);[c,p]=h.then?(await h)():h;let w=o.default.join(s.default.homedir(),".local","share","kilo"),y=o.default.join(w,"auth.json");o.default.join(s.default.homedir(),".config","kilo");let v=async()=>{try{let e=await i.default.readFile(y,"utf-8");return JSON.parse(e)}catch(e){if("ENOENT"===e.code)return null;throw e}};async function m(){try{let e=await (0,l.getCliRuntimeStatus)("kilo");if(!e.installed||!e.runnable)return n.NextResponse.json({installed:e.installed,runnable:e.runnable,command:e.command,commandPath:e.commandPath,runtimeMode:e.runtimeMode,reason:e.reason,settings:null,message:e.installed&&!e.runnable?"Kilo Code CLI is installed but not runnable":"Kilo Code CLI is not installed"});let t=await v(),a=null;try{let e=o.default.join(s.default.homedir(),".config","Code","User","settings.json"),t=await i.default.readFile(e,"utf-8"),r=JSON.parse(t);for(let[e,t]of(a={},Object.entries(r)))(e.startsWith("kilocode.")||e.startsWith("kilo-code.")||e.startsWith("kilo."))&&(a[e]=t)}catch{}return n.NextResponse.json({installed:e.installed,runnable:e.runnable,command:e.command,commandPath:e.commandPath,runtimeMode:e.runtimeMode,reason:e.reason,settings:{auth:t?Object.keys(t):[],extensionSettings:a},hasOmniRoute:(e=>{if(!e)return!1;let t=e["openai-compatible"]||e.omniroute;if(!t)return!1;let a=t.baseUrl||t.baseURL||"";return a.includes("localhost")||a.includes("127.0.0.1")||a.includes("omniroute")})(t),authPath:y})}catch(e){return console.log("Error checking kilo settings:",e),n.NextResponse.json({error:"Failed to check kilo settings"},{status:500})}}async function g(e){let t;try{t=await e.json()}catch{return n.NextResponse.json({error:{message:"Invalid request",details:[{field:"body",message:"Invalid JSON body"}]}},{status:400})}try{let e=(0,l.ensureCliConfigWriteAllowed)();if(e)return n.NextResponse.json({error:e},{status:403});let a=(0,p.validateBody)(c.cliModelConfigSchema,t);if((0,p.isValidationFailure)(a))return n.NextResponse.json({error:a.error},{status:400});let{baseUrl:r,apiKey:f,model:h}=a.data;await i.default.mkdir(w,{recursive:!0}),await (0,d.createBackup)("kilo",y);let m={};try{let e=await i.default.readFile(y,"utf-8");m=JSON.parse(e)}catch{}let g=r.endsWith("/v1")?r:`${r}/v1`;m["openai-compatible"]={type:"api-key",apiKey:f||"sk_omniroute",baseUrl:g,model:h},await i.default.writeFile(y,JSON.stringify(m,null,2));try{let e=o.default.join(s.default.homedir(),".config","Code","User","settings.json"),t={};try{let a=await i.default.readFile(e,"utf-8");t=JSON.parse(a)}catch{}t["kilocode.customProvider"]={name:"OmniRoute",baseURL:g,apiKey:f||"sk_omniroute"},t["kilocode.defaultModel"]=h,await i.default.writeFile(e,JSON.stringify(t,null,2))}catch{}try{(0,u.saveCliToolLastConfigured)("kilo")}catch{}return n.NextResponse.json({success:!0,message:"Kilo Code settings applied successfully!",authPath:y})}catch(e){return console.log("Error updating kilo settings:",e),n.NextResponse.json({error:"Failed to update kilo settings"},{status:500})}}async function R(){try{let e=(0,l.ensureCliConfigWriteAllowed)();if(e)return n.NextResponse.json({error:e},{status:403});await (0,d.createBackup)("kilo",y);let t={};try{let e=await i.default.readFile(y,"utf-8");t=JSON.parse(e)}catch(e){if("ENOENT"===e.code)return n.NextResponse.json({success:!0,message:"No settings file to reset"});throw e}delete t["openai-compatible"],delete t.omniroute,await i.default.writeFile(y,JSON.stringify(t,null,2));try{let e=o.default.join(s.default.homedir(),".config","Code","User","settings.json"),t=await i.default.readFile(e,"utf-8"),a=JSON.parse(t);delete a["kilocode.customProvider"],delete a["kilocode.defaultModel"],await i.default.writeFile(e,JSON.stringify(a,null,2))}catch{}try{(0,u.deleteCliToolLastConfigured)("kilo")}catch{}return n.NextResponse.json({success:!0,message:"OmniRoute settings removed from Kilo Code"})}catch(e){return console.log("Error resetting kilo settings:",e),n.NextResponse.json({error:"Failed to reset kilo settings"},{status:500})}}(0,f.ensureServerEntryExports)([m,g,R]),(0,r.registerServerReference)(m,"00da23bc86d3910b83f1e9637783a01357db541297",null),(0,r.registerServerReference)(g,"40ae289cca69f717d40d54536a76c2de8b6d597d20",null),(0,r.registerServerReference)(R,"0039e686f50ef8e5cce1998a5b718b961cf0e6b332",null),e.s(["DELETE",()=>R,"GET",()=>m,"POST",()=>g]),a()}catch(e){a(e)}},!1),472224,e=>e.a(async(t,a)=>{try{var r=e.i(747909),n=e.i(174017),i=e.i(996250),o=e.i(759756),s=e.i(561916),l=e.i(174677),d=e.i(869741),u=e.i(316795),c=e.i(487718),p=e.i(995169),f=e.i(47587),h=e.i(666012),m=e.i(570101),g=e.i(626937),R=e.i(10372),w=e.i(193695);e.i(52474);var y=e.i(600220),v=e.i(114902),C=t([v]);[v]=C.then?(await C)():C;let b=new r.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/cli-tools/kilo-settings/route",pathname:"/api/cli-tools/kilo-settings",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/cli-tools/kilo-settings/route.ts",nextConfigOutput:"standalone",userland:v}),{workAsyncStorage:k,workUnitAsyncStorage:x,serverHooks:O}=b;function E(){return(0,i.patchFetch)({workAsyncStorage:k,workUnitAsyncStorage:x})}async function N(e,t,a){b.isDev&&(0,o.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let r="/api/cli-tools/kilo-settings/route";r=r.replace(/\/index$/,"")||"/";let i=await b.prepare(e,t,{srcPage:r,multiZoneDraftMode:!1});if(!i)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:v,params:C,nextConfig:E,parsedUrl:N,isDraftMode:k,prerenderManifest:x,routerServerContext:O,isOnDemandRevalidate:S,revalidateOnlyGenerated:j,resolvedPathname:P,clientReferenceManifest:A,serverActionsManifest:T}=i,U=(0,d.normalizeAppPath)(r),F=!!(x.dynamicRoutes[U]||x.routes[P]),_=async()=>((null==O?void 0:O.render404)?await O.render404(e,t,N,!1):t.end("This page could not be found"),null);if(F&&!k){let e=!!x.routes[P],t=x.dynamicRoutes[U];if(t&&!1===t.fallback&&!e){if(E.experimental.adapterPath)return await _();throw new w.NoFallbackError}}let I=null;!F||b.isDev||k||(I=P,I="/index"===I?"/":I);let M=!0===b.isDev||!F,H=F&&!M;T&&A&&(0,l.setManifestsSingleton)({page:r,clientReferenceManifest:A,serverActionsManifest:T});let q=e.method||"GET",D=(0,s.getTracer)(),K=D.getActiveScopeSpan(),L={params:C,prerenderManifest:x,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:M,incrementalCache:(0,o.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:E.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,n)=>b.onRequestError(e,t,r,n,O)},sharedContext:{buildId:v}},J=new u.NodeNextRequest(e),$=new u.NodeNextResponse(t),B=c.NextRequestAdapter.fromNodeNextRequest(J,(0,c.signalFromNodeResponse)(t));try{let i=async e=>b.handle(B,L).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=D.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=a.get("next.route");if(n){let t=`${q} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${q} ${r}`)}),l=!!(0,o.getRequestMeta)(e,"minimalMode"),d=async o=>{var s,d;let u=async({previousCacheEntry:n})=>{try{if(!l&&S&&j&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let r=await i(o);e.fetchMetrics=L.renderOpts.fetchMetrics;let s=L.renderOpts.pendingWaitUntil;s&&a.waitUntil&&(a.waitUntil(s),s=void 0);let d=L.renderOpts.collectedTags;if(!F)return await (0,h.sendResponse)(J,$,r,L.renderOpts.pendingWaitUntil),null;{let e=await r.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(r.headers);d&&(t[R.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==L.renderOpts.collectedRevalidate&&!(L.renderOpts.collectedRevalidate>=R.INFINITE_CACHE)&&L.renderOpts.collectedRevalidate,n=void 0===L.renderOpts.collectedExpire||L.renderOpts.collectedExpire>=R.INFINITE_CACHE?void 0:L.renderOpts.collectedExpire;return{value:{kind:y.CachedRouteKind.APP_ROUTE,status:r.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:n}}}}catch(t){throw(null==n?void 0:n.isStale)&&await b.onRequestError(e,t,{routerKind:"App Router",routePath:r,routeType:"route",revalidateReason:(0,f.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:S})},!1,O),t}},c=await b.handleResponse({req:e,nextConfig:E,cacheKey:I,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:x,isRoutePPREnabled:!1,isOnDemandRevalidate:S,revalidateOnlyGenerated:j,responseGenerator:u,waitUntil:a.waitUntil,isMinimalMode:l});if(!F)return null;if((null==c||null==(s=c.value)?void 0:s.kind)!==y.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(d=c.value)?void 0:d.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});l||t.setHeader("x-nextjs-cache",S?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),k&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let p=(0,m.fromNodeOutgoingHttpHeaders)(c.value.headers);return l&&F||p.delete(R.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||p.get("Cache-Control")||p.set("Cache-Control",(0,g.getCacheControlHeader)(c.cacheControl)),await (0,h.sendResponse)(J,$,new Response(c.value.body,{headers:p,status:c.value.status||200})),null};K?await d(K):await D.withPropagatedContext(e.headers,()=>D.trace(p.BaseServerSpan.handleRequest,{spanName:`${q} ${r}`,kind:s.SpanKind.SERVER,attributes:{"http.method":q,"http.target":e.url}},d))}catch(t){if(t instanceof w.NoFallbackError||await b.onRequestError(e,t,{routerKind:"App Router",routePath:U,routeType:"route",revalidateReason:(0,f.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:S})},!1,O),F)throw t;return await (0,h.sendResponse)(J,$,new Response(null,{status:500})),null}}e.s(["handler",()=>N,"patchFetch",()=>E,"routeModule",()=>b,"serverHooks",()=>O,"workAsyncStorage",()=>k,"workUnitAsyncStorage",()=>x]),a()}catch(e){a(e)}},!1)];
1
+ module.exports=[114902,e=>e.a(async(t,a)=>{try{var r=e.i(745015),n=e.i(89171),i=e.i(924868),o=e.i(814747),s=e.i(446786),l=e.i(266240),u=e.i(841788),d=e.i(197892),c=e.i(676088),p=e.i(200392),f=e.i(195975),h=t([c,p]);[c,p]=h.then?(await h)():h;let w=o.default.join(s.default.homedir(),".local","share","kilo"),y=o.default.join(w,"auth.json");o.default.join(s.default.homedir(),".config","kilo");let v=async()=>{try{let e=await i.default.readFile(y,"utf-8");return JSON.parse(e)}catch(e){if("ENOENT"===e.code)return null;throw e}};async function m(){try{let e=await (0,l.getCliRuntimeStatus)("kilo");if(!e.installed||!e.runnable)return n.NextResponse.json({installed:e.installed,runnable:e.runnable,command:e.command,commandPath:e.commandPath,runtimeMode:e.runtimeMode,reason:e.reason,settings:null,message:e.installed&&!e.runnable?"Kilo Code CLI is installed but not runnable":"Kilo Code CLI is not installed"});let t=await v(),a=null;try{let e=o.default.join(s.default.homedir(),".config","Code","User","settings.json"),t=await i.default.readFile(e,"utf-8"),r=JSON.parse(t);for(let[e,t]of(a={},Object.entries(r)))(e.startsWith("kilocode.")||e.startsWith("kilo-code.")||e.startsWith("kilo."))&&(a[e]=t)}catch{}return n.NextResponse.json({installed:e.installed,runnable:e.runnable,command:e.command,commandPath:e.commandPath,runtimeMode:e.runtimeMode,reason:e.reason,settings:{auth:t?Object.keys(t):[],extensionSettings:a},hasOmniRoute:(e=>{if(!e)return!1;let t=e["openai-compatible"]||e.omniroute;if(!t)return!1;let a=t.baseUrl||t.baseURL||"";return a.includes("localhost")||a.includes("127.0.0.1")||a.includes("omniroute")})(t),authPath:y})}catch(e){return console.log("Error checking kilo settings:",e),n.NextResponse.json({error:"Failed to check kilo settings"},{status:500})}}async function g(e){let t;try{t=await e.json()}catch{return n.NextResponse.json({error:{message:"Invalid request",details:[{field:"body",message:"Invalid JSON body"}]}},{status:400})}try{let e=(0,l.ensureCliConfigWriteAllowed)();if(e)return n.NextResponse.json({error:e},{status:403});let a=(0,p.validateBody)(c.cliModelConfigSchema,t);if((0,p.isValidationFailure)(a))return n.NextResponse.json({error:a.error},{status:400});let{baseUrl:r,apiKey:f,model:h}=a.data;await i.default.mkdir(w,{recursive:!0}),await (0,u.createBackup)("kilo",y);let m={};try{let e=await i.default.readFile(y,"utf-8");m=JSON.parse(e)}catch{}let g=r.endsWith("/v1")?r:`${r}/v1`;m["openai-compatible"]={type:"api-key",apiKey:f||"sk_omniroute",baseUrl:g,model:h},await i.default.writeFile(y,JSON.stringify(m,null,2));try{let e=o.default.join(s.default.homedir(),".config","Code","User","settings.json"),t={};try{let a=await i.default.readFile(e,"utf-8");t=JSON.parse(a)}catch{}t["kilocode.customProvider"]={name:"OmniRoute",baseURL:g,apiKey:f||"sk_omniroute"},t["kilocode.defaultModel"]=h,await i.default.writeFile(e,JSON.stringify(t,null,2))}catch{}try{(0,d.saveCliToolLastConfigured)("kilo")}catch{}return n.NextResponse.json({success:!0,message:"Kilo Code settings applied successfully!",authPath:y})}catch(e){return console.log("Error updating kilo settings:",e),n.NextResponse.json({error:"Failed to update kilo settings"},{status:500})}}async function R(){try{let e=(0,l.ensureCliConfigWriteAllowed)();if(e)return n.NextResponse.json({error:e},{status:403});await (0,u.createBackup)("kilo",y);let t={};try{let e=await i.default.readFile(y,"utf-8");t=JSON.parse(e)}catch(e){if("ENOENT"===e.code)return n.NextResponse.json({success:!0,message:"No settings file to reset"});throw e}delete t["openai-compatible"],delete t.omniroute,await i.default.writeFile(y,JSON.stringify(t,null,2));try{let e=o.default.join(s.default.homedir(),".config","Code","User","settings.json"),t=await i.default.readFile(e,"utf-8"),a=JSON.parse(t);delete a["kilocode.customProvider"],delete a["kilocode.defaultModel"],await i.default.writeFile(e,JSON.stringify(a,null,2))}catch{}try{(0,d.deleteCliToolLastConfigured)("kilo")}catch{}return n.NextResponse.json({success:!0,message:"OmniRoute settings removed from Kilo Code"})}catch(e){return console.log("Error resetting kilo settings:",e),n.NextResponse.json({error:"Failed to reset kilo settings"},{status:500})}}(0,f.ensureServerEntryExports)([m,g,R]),(0,r.registerServerReference)(m,"00f446326c454690b40513c8f04115227ca27669a6",null),(0,r.registerServerReference)(g,"400d424287f2f0abb3a29d7b584e4f189191b91d4a",null),(0,r.registerServerReference)(R,"00b04e6609aba141b979506706541e8c58d754916c",null),e.s(["DELETE",()=>R,"GET",()=>m,"POST",()=>g]),a()}catch(e){a(e)}},!1),472224,e=>e.a(async(t,a)=>{try{var r=e.i(747909),n=e.i(174017),i=e.i(996250),o=e.i(759756),s=e.i(561916),l=e.i(174677),u=e.i(869741),d=e.i(316795),c=e.i(487718),p=e.i(995169),f=e.i(47587),h=e.i(666012),m=e.i(570101),g=e.i(626937),R=e.i(10372),w=e.i(193695);e.i(52474);var y=e.i(600220),v=e.i(114902),C=t([v]);[v]=C.then?(await C)():C;let b=new r.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/cli-tools/kilo-settings/route",pathname:"/api/cli-tools/kilo-settings",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/cli-tools/kilo-settings/route.ts",nextConfigOutput:"standalone",userland:v}),{workAsyncStorage:k,workUnitAsyncStorage:x,serverHooks:O}=b;function E(){return(0,i.patchFetch)({workAsyncStorage:k,workUnitAsyncStorage:x})}async function N(e,t,a){b.isDev&&(0,o.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let r="/api/cli-tools/kilo-settings/route";r=r.replace(/\/index$/,"")||"/";let i=await b.prepare(e,t,{srcPage:r,multiZoneDraftMode:!1});if(!i)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:v,params:C,nextConfig:E,parsedUrl:N,isDraftMode:k,prerenderManifest:x,routerServerContext:O,isOnDemandRevalidate:S,revalidateOnlyGenerated:j,resolvedPathname:P,clientReferenceManifest:A,serverActionsManifest:T}=i,U=(0,u.normalizeAppPath)(r),F=!!(x.dynamicRoutes[U]||x.routes[P]),_=async()=>((null==O?void 0:O.render404)?await O.render404(e,t,N,!1):t.end("This page could not be found"),null);if(F&&!k){let e=!!x.routes[P],t=x.dynamicRoutes[U];if(t&&!1===t.fallback&&!e){if(E.experimental.adapterPath)return await _();throw new w.NoFallbackError}}let I=null;!F||b.isDev||k||(I=P,I="/index"===I?"/":I);let M=!0===b.isDev||!F,H=F&&!M;T&&A&&(0,l.setManifestsSingleton)({page:r,clientReferenceManifest:A,serverActionsManifest:T});let q=e.method||"GET",D=(0,s.getTracer)(),K=D.getActiveScopeSpan(),L={params:C,prerenderManifest:x,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:M,incrementalCache:(0,o.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:E.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,n)=>b.onRequestError(e,t,r,n,O)},sharedContext:{buildId:v}},J=new d.NodeNextRequest(e),$=new d.NodeNextResponse(t),B=c.NextRequestAdapter.fromNodeNextRequest(J,(0,c.signalFromNodeResponse)(t));try{let i=async e=>b.handle(B,L).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=D.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=a.get("next.route");if(n){let t=`${q} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${q} ${r}`)}),l=!!(0,o.getRequestMeta)(e,"minimalMode"),u=async o=>{var s,u;let d=async({previousCacheEntry:n})=>{try{if(!l&&S&&j&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let r=await i(o);e.fetchMetrics=L.renderOpts.fetchMetrics;let s=L.renderOpts.pendingWaitUntil;s&&a.waitUntil&&(a.waitUntil(s),s=void 0);let u=L.renderOpts.collectedTags;if(!F)return await (0,h.sendResponse)(J,$,r,L.renderOpts.pendingWaitUntil),null;{let e=await r.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(r.headers);u&&(t[R.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==L.renderOpts.collectedRevalidate&&!(L.renderOpts.collectedRevalidate>=R.INFINITE_CACHE)&&L.renderOpts.collectedRevalidate,n=void 0===L.renderOpts.collectedExpire||L.renderOpts.collectedExpire>=R.INFINITE_CACHE?void 0:L.renderOpts.collectedExpire;return{value:{kind:y.CachedRouteKind.APP_ROUTE,status:r.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:n}}}}catch(t){throw(null==n?void 0:n.isStale)&&await b.onRequestError(e,t,{routerKind:"App Router",routePath:r,routeType:"route",revalidateReason:(0,f.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:S})},!1,O),t}},c=await b.handleResponse({req:e,nextConfig:E,cacheKey:I,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:x,isRoutePPREnabled:!1,isOnDemandRevalidate:S,revalidateOnlyGenerated:j,responseGenerator:d,waitUntil:a.waitUntil,isMinimalMode:l});if(!F)return null;if((null==c||null==(s=c.value)?void 0:s.kind)!==y.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(u=c.value)?void 0:u.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});l||t.setHeader("x-nextjs-cache",S?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),k&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let p=(0,m.fromNodeOutgoingHttpHeaders)(c.value.headers);return l&&F||p.delete(R.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||p.get("Cache-Control")||p.set("Cache-Control",(0,g.getCacheControlHeader)(c.cacheControl)),await (0,h.sendResponse)(J,$,new Response(c.value.body,{headers:p,status:c.value.status||200})),null};K?await u(K):await D.withPropagatedContext(e.headers,()=>D.trace(p.BaseServerSpan.handleRequest,{spanName:`${q} ${r}`,kind:s.SpanKind.SERVER,attributes:{"http.method":q,"http.target":e.url}},u))}catch(t){if(t instanceof w.NoFallbackError||await b.onRequestError(e,t,{routerKind:"App Router",routePath:U,routeType:"route",revalidateReason:(0,f.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:S})},!1,O),F)throw t;return await (0,h.sendResponse)(J,$,new Response(null,{status:500})),null}}e.s(["handler",()=>N,"patchFetch",()=>E,"routeModule",()=>b,"serverHooks",()=>O,"workAsyncStorage",()=>k,"workUnitAsyncStorage",()=>x]),a()}catch(e){a(e)}},!1)];
2
2
 
3
3
  //# sourceMappingURL=_68683848._.js.map