switchboard-router 0.9.63 → 0.9.65

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 (136) hide show
  1. package/app/{.next-cli-build/static/chunks/1321-e00fa4ad9a905a7b.js → .next/static/chunks/1321-fed8b28775abdff1.js} +1 -1
  2. package/app/.next/static/chunks/app/(dashboard)/dashboard/quota/page-452a2893dc7fd3a8.js +1 -0
  3. package/app/.next-cli-build/BUILD_ID +1 -1
  4. package/app/.next-cli-build/app-path-routes-manifest.json +15 -15
  5. package/app/.next-cli-build/build-manifest.json +2 -2
  6. package/app/.next-cli-build/prerender-manifest.json +3 -3
  7. package/app/.next-cli-build/server/app/(dashboard)/dashboard/agent-library/page_client-reference-manifest.js +1 -1
  8. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  9. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  10. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  11. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  12. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/routing/page_client-reference-manifest.js +1 -1
  13. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  14. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  15. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  16. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  17. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  18. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/page_client-reference-manifest.js +1 -1
  19. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  20. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  21. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  22. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  23. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  24. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  25. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  26. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  27. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +1 -1
  28. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  29. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/[id]/page_client-reference-manifest.js +1 -1
  30. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  31. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  32. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  33. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  34. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  35. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  36. package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  37. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  38. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  39. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  40. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  41. package/app/.next-cli-build/server/app/_not-found.html +1 -1
  42. package/app/.next-cli-build/server/app/_not-found.rsc +3 -3
  43. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +3 -3
  44. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
  45. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  46. package/app/.next-cli-build/server/app/api/cli-tools/aider-settings/route.js +2 -2
  47. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +6 -6
  48. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +1 -1
  49. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +2 -2
  50. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +1 -1
  51. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +2 -2
  52. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +2 -2
  53. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +2 -2
  54. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +1 -1
  55. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +2 -2
  56. package/app/.next-cli-build/server/app/api/cli-tools/fx-settings/route.js +1 -1
  57. package/app/.next-cli-build/server/app/api/cli-tools/gemini-cli-settings/route.js +3 -3
  58. package/app/.next-cli-build/server/app/api/cli-tools/grok-settings/route.js +2 -2
  59. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +3 -3
  60. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +2 -2
  61. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +2 -2
  62. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  63. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +1 -1
  64. package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js +2 -2
  65. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
  66. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js +1 -1
  67. package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
  68. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
  69. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
  70. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
  71. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
  72. package/app/.next-cli-build/server/app/api/version/route.js +1 -1
  73. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  74. package/app/.next-cli-build/server/app/callback.html +1 -1
  75. package/app/.next-cli-build/server/app/callback.rsc +3 -3
  76. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +3 -3
  77. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
  78. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +3 -3
  79. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  80. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  81. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +3 -3
  82. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
  83. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
  84. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +3 -3
  85. package/app/.next-cli-build/server/app/index.html +1 -1
  86. package/app/.next-cli-build/server/app/index.rsc +3 -3
  87. package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +3 -3
  88. package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +3 -3
  89. package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +1 -1
  90. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  91. package/app/.next-cli-build/server/app/landing.html +1 -1
  92. package/app/.next-cli-build/server/app/landing.rsc +3 -3
  93. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +3 -3
  94. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
  95. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +3 -3
  96. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  97. package/app/.next-cli-build/server/app/login.html +1 -1
  98. package/app/.next-cli-build/server/app/login.rsc +4 -4
  99. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +4 -4
  100. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
  101. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +4 -4
  102. package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  103. package/app/.next-cli-build/server/app-paths-manifest.json +15 -15
  104. package/app/.next-cli-build/server/chunks/1158.js +1 -1
  105. package/app/.next-cli-build/server/chunks/1350.js +1 -1
  106. package/app/.next-cli-build/server/chunks/1792.js +1 -1
  107. package/app/.next-cli-build/server/chunks/2847.js +1 -1
  108. package/app/.next-cli-build/server/chunks/369.js +7 -6
  109. package/app/.next-cli-build/server/chunks/3694.js +1 -1
  110. package/app/.next-cli-build/server/chunks/4301.js +1 -1
  111. package/app/.next-cli-build/server/chunks/8400.js +5 -5
  112. package/app/.next-cli-build/server/chunks/869.js +1 -1
  113. package/app/.next-cli-build/server/chunks/8998.js +9 -9
  114. package/app/.next-cli-build/server/chunks/9264.js +1 -1
  115. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  116. package/app/.next-cli-build/server/middleware.js +4 -4
  117. package/app/.next-cli-build/server/pages/404.html +1 -1
  118. package/app/.next-cli-build/server/pages/500.html +1 -1
  119. package/app/.next-cli-build/server/server-reference-manifest.js +1 -1
  120. package/app/.next-cli-build/server/server-reference-manifest.json +1 -1
  121. package/app/{.next/static/chunks/1321-e00fa4ad9a905a7b.js → .next-cli-build/static/chunks/1321-fed8b28775abdff1.js} +1 -1
  122. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-452a2893dc7fd3a8.js +1 -0
  123. package/app/open-sse/identity/tls/bin/darwin/arm64/switchboard-claude-tls +0 -0
  124. package/app/open-sse/identity/tls/bin/darwin/x64/switchboard-claude-tls +0 -0
  125. package/app/open-sse/identity/tls/bin/linux/arm64/switchboard-claude-tls +0 -0
  126. package/app/open-sse/identity/tls/bin/linux/x64/switchboard-claude-tls +0 -0
  127. package/app/open-sse/identity/tls/bin/win32/arm64/switchboard-claude-tls.exe +0 -0
  128. package/app/open-sse/identity/tls/bin/win32/x64/switchboard-claude-tls.exe +0 -0
  129. package/app/package.json +1 -1
  130. package/package.json +1 -1
  131. package/app/.next/static/chunks/app/(dashboard)/dashboard/quota/page-c9a257b85e05472a.js +0 -1
  132. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-c9a257b85e05472a.js +0 -1
  133. /package/app/.next/static/{5c3eUqHnZ4XIBUMPRDLdh → d_kgkyLFc009hkiluta7E}/_buildManifest.js +0 -0
  134. /package/app/.next/static/{5c3eUqHnZ4XIBUMPRDLdh → d_kgkyLFc009hkiluta7E}/_ssgManifest.js +0 -0
  135. /package/app/.next-cli-build/static/{5c3eUqHnZ4XIBUMPRDLdh → d_kgkyLFc009hkiluta7E}/_buildManifest.js +0 -0
  136. /package/app/.next-cli-build/static/{5c3eUqHnZ4XIBUMPRDLdh → d_kgkyLFc009hkiluta7E}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- "use strict";(()=>{var a={};a.id=1910,a.ids=[1910],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},643:a=>{a.exports=require("node:perf_hooks")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4573:a=>{a.exports=require("node:buffer")},7803:(a,b,c)=>{c.r(b),c.d(b,{debug:()=>h,error:()=>k,info:()=>i,maskKey:()=>o,request:()=>l,response:()=>m,stream:()=>n,warn:()=>j});let d={DEBUG:0,INFO:1,WARN:2,ERROR:3},e=d[process.env.LOG_LEVEL?.toUpperCase?.()]??d.INFO;function f(){return new Date().toLocaleTimeString("en-US",{hour12:!1})}function g(a){if(!a)return"";if("string"==typeof a)return a;try{return JSON.stringify(a)}catch{return String(a)}}function h(a,b,c){if(e<=d.DEBUG){let d=c?` ${g(c)}`:"";console.log(`[${f()}] 🔍 [${a}] ${b}${d}`)}}function i(a,b,c){if(e<=d.INFO){let d=c?` ${g(c)}`:"";console.log(`[${f()}] ℹ️ [${a}] ${b}${d}`)}}function j(a,b,c){e<=d.WARN&&c&&g(c)}function k(a,b,c){if(e<=d.ERROR){let d=c?` ${g(c)}`:"";console.log(`[${f()}] ❌ [${a}] ${b}${d}`)}}function l(a,b,c){let d=c?` ${g(c)}`:"";console.log(`\x1b[36m[${f()}] 📥 ${a} ${b}${d}\x1b[0m`)}function m(a,b,c){let d=c?` ${g(c)}`:"";console.log(`[${f()}] ${a<400?"\uD83D\uDCE4":"\uD83D\uDCA5"} ${a} (${b}ms)${d}`)}function n(a,b){let c=b?` ${g(b)}`:"";console.log(`[${f()}] 🌊 [STREAM] ${a}${c}`)}function o(a){return!a||a.length<8?"***":`${a.slice(0,4)}...${a.slice(-4)}`}},8128:a=>{a.exports=require("next/dist/server/runtime-reacts.external.js")},10781:(a,b,c)=>{c.r(b),c.d(b,{OPTIONS:()=>F,POST:()=>G,maxDuration:()=>E});var d=c(67133),e=c(59353),f=c(38775),g=c(4573),h=c(89865),i=c(60290),j=c(46052),k=c(45350);function l(a,b){if(!b)return{};switch(a.authHeader){case"bearer":default:return{Authorization:`Bearer ${b}`};case"token":return{Authorization:`Token ${b}`};case"x-api-key":return{"x-api-key":b};case"key":return{Authorization:`Key ${b}`}}}function m(a){if(a?.aborted)throw Object.assign(Error("STT request aborted"),{name:"AbortError"})}function n(a){let b="number"==typeof a?.size?a.size:null;if(null!=b&&b>0x6400000){let a=Error("audio file exceeds 104857600 bytes");throw a.status=413,a}}function o(a){let b=(a.type||"").toLowerCase();if(b.startsWith("audio/"))return b;let c="string"==typeof a.name?a.name.toLowerCase():"";return({mp3:"audio/mpeg",mp4:"audio/mp4",m4a:"audio/mp4",wav:"audio/wav",ogg:"audio/ogg",flac:"audio/flac",webm:"audio/webm",aac:"audio/aac",opus:"audio/opus"})[c.includes(".")?c.split(".").pop():""]||"application/octet-stream"}async function p(a){let b="";try{b=await a.text()}catch{}let c=b||`Upstream error (${a.status})`;try{let a=JSON.parse(b);c=a?.error?.message||a?.error||a?.message||c}catch{}return(0,h.A1)(a.status,"string"==typeof c?c:JSON.stringify(c))}async function q(a,b,c,d,e,f,g,h){let i=new URL(a.baseUrl);i.searchParams.set("model",c),i.searchParams.set("smart_format","true"),i.searchParams.set("punctuate","true");let k=e.get("language");"string"==typeof k&&k.trim()?i.searchParams.set("language",k.trim()):i.searchParams.set("detect_language","true"),n(b);let q=await b.arrayBuffer();m(g);let r=await (0,j.Fm)(i,{method:"POST",headers:{...l(a,d),"Content-Type":o(b)},body:q,...f,signal:g},h);if(!r.ok)return p(r);let s=await r.json();return w({text:s.results?.channels?.[0]?.alternatives?.[0]?.transcript??""})}async function r(a,b,c,d,e,f,g){let i=l(a,d);n(b);let k=await b.arrayBuffer();m(f);let o=await (0,j.Fm)("https://api.assemblyai.com/v2/upload",{method:"POST",headers:{...i,"Content-Type":"application/octet-stream"},body:k,...e,signal:f},g);if(!o.ok)return p(o);let{upload_url:q}=await o.json(),r=await (0,j.Fm)(a.baseUrl,{method:"POST",headers:{...i,"Content-Type":"application/json"},body:JSON.stringify({audio_url:q,speech_models:[c],language_detection:!0}),...e,signal:f},g);if(!r.ok)return p(r);let{id:s}=await r.json(),t=Date.now();for(;Date.now()-t<12e4;){await function(a){return a?a.aborted?Promise.reject(Object.assign(Error("STT request aborted"),{name:"AbortError"})):new Promise((b,c)=>{let d=setTimeout(()=>{a.removeEventListener("abort",e),b()},2e3),e=()=>{clearTimeout(d),c(Object.assign(Error("STT request aborted"),{name:"AbortError"}))};a.addEventListener("abort",e,{once:!0})}):new Promise(a=>setTimeout(a,2e3))}(f);let b=await (0,j.Fm)(`${a.baseUrl}/${s}`,{headers:i,...e,signal:f},g);if(!b.ok){if(401===b.status||403===b.status||404===b.status)return p(b);continue}let c=await b.json();if("completed"===c.status)return w({text:c.text||""});if("error"===c.status)return(0,h.A1)(500,c.error||"AssemblyAI failed")}return(0,h.A1)(504,"AssemblyAI timeout after 120s")}async function s(a,b,c,d,e,f,g){n(b);let h=new FormData;h.append("file",b,b.name||"audio.wav"),h.append("model",c);let i=await (0,j.Fm)(a.baseUrl,{method:"POST",headers:l(a,d),body:h,...e,signal:f},g);if(!i.ok)return p(i);let k=await i.json();return w({text:k.text||k.transcript||""})}async function t(a,b,c,d,e,f,h,i){n(b);let k=await b.arrayBuffer();m(h);let l=g.Buffer.from(k).toString("base64"),q=o(b),r=e.get("language"),s=e.get("prompt"),t=s&&"string"==typeof s&&s.trim()?s.trim():"Generate a transcript of the speech. Return only the transcribed text, no commentary.";"string"==typeof r&&r.trim()&&(t+=` Language: ${r.trim()}.`);let u=`${a.baseUrl}/${c}:generateContent?key=${encodeURIComponent(d)}`,v=await (0,j.Fm)(u,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({contents:[{parts:[{text:t},{inline_data:{mime_type:q,data:l}}]}]}),...f,signal:h},i);if(!v.ok)return p(v);let x=await v.json();return w({text:x?.candidates?.[0]?.content?.parts?.map(a=>a.text).filter(Boolean).join("")||""})}async function u(a,b,c,d,e,f,g){if(c.includes("..")||c.includes("//"))return(0,h.A1)(400,"Invalid model ID");let i=`${a.baseUrl.replace(/\/+$/,"")}/${c}`;n(b);let k=await b.arrayBuffer();m(f);let q=await (0,j.Fm)(i,{method:"POST",headers:{...l(a,d),"Content-Type":o(b)},body:k,...e,signal:f},g);return q.ok?w({text:(await q.json()).text||""}):p(q)}async function v(a,b,c,d,e,f,g,h){n(b);let i=new FormData;for(let a of(i.append("file",b,b.name||"audio.wav"),i.append("model",c),["language","prompt","response_format","temperature"])){let b=e.get(a);null!=b&&""!==b&&i.append(a,b)}let k=await (0,j.Fm)(a.baseUrl,{method:"POST",headers:l(a,d),body:i,...f,signal:g},h);if(!k.ok)return p(k);let m=k.headers.get("content-type")||"application/json";return{success:!0,response:new Response(await k.text(),{status:200,headers:{"Content-Type":m}})}}function w(a){return{success:!0,response:new Response(JSON.stringify(a),{status:200,headers:{"Content-Type":"application/json"}})}}async function x({provider:a,model:b,formData:c,credentials:d,sttConfig:e,abortSignal:f}){var g;let l,m,n=c.get("file");if(!n)return(0,h.A1)(i.gx.BAD_REQUEST,"Missing required field: file");let o=e;if(!o)return(0,h.A1)(i.gx.BAD_REQUEST,`Provider '${a}' does not support STT`);let p="selfhosted-stt"===a;if(p){let a=d?.providerSpecificData?.baseUrl?.trim();if(!a)return(0,h.A1)(i.gx.BAD_REQUEST,"Self-hosted STT requires a connection base URL");try{if(!["http:","https:"].includes(new URL(a).protocol))throw Error()}catch{return(0,h.A1)(i.gx.BAD_REQUEST,"Self-hosted STT base URL must use http or https")}o={...o,baseUrl:a.replace(/\/+$/,"")}}let w=p||"none"!==o.authType?d?.apiKey||d?.accessToken:null;if(!p&&"none"!==o.authType&&!w)return(0,h.A1)(i.gx.UNAUTHORIZED,`No credentials for STT provider: ${a}`);let y=(g=o,l=k.xq[a]||{},{identity:(m=k.B$[a]?.sttConfig||g||{}).identity||l.identity||"openai-node",provider:a,format:m.format||l.format||"openai"}),z=(0,j.$6)(d);try{switch(o.format){case"deepgram":return await q(o,n,b,w,c,y,f,z);case"assemblyai":return await r(o,n,b,w,y,f,z);case"nvidia-asr":return await s(o,n,b,w,y,f,z);case"huggingface-asr":return await u(o,n,b,w,y,f,z);case"gemini-stt":return await t(o,n,b,w,c,y,f,z);default:return await v(o,n,b,w,c,y,f,z)}}catch(b){if(b?.name==="AbortError"||f?.aborted)return(0,h.A1)(499,"STT request aborted");let a=Number(b?.status);if(Number.isInteger(a)&&a>=400&&a<600)return(0,h.A1)(a,b.message||"STT request failed");return(0,h.A1)(i.gx.BAD_GATEWAY,b.message||"STT request failed")}}var y=c(40615),z=c(7803),A=c(78102),B=c(66077);let C=new Set(Object.entries(y.Q2).filter(([,a])=>a.serviceKinds?.includes("stt")&&!a.noAuth).map(([a])=>a));async function D(a){let b;try{b=await a.formData()}catch{return(0,h.yj)(i.gx.BAD_REQUEST,"Invalid multipart form data")}let c=b.get("model"),g=a.headers.get("x-connection-id")||null,j="1"===a.headers.get("x-switchboard-strict-connection");z.request("POST",`/v1/audio/transcriptions | ${c}`);let k=await (0,e.mt)(),l=await (0,A.DM)({settings:k,rawKey:(0,d.Tr)(a),request:a,target:{kind:"model",id:c}});return l.ok?(0,A.yH)(l.lease,async()=>{let{clientKeyId:e}=l;if(!c)return(0,h.yj)(i.gx.BAD_REQUEST,"Missing model");if(!b.get("file"))return(0,h.yj)(i.gx.BAD_REQUEST,"Missing required field: file");let k=await (0,f.getModelInfo)(c);if(!k.provider)return(0,h.yj)(i.gx.BAD_REQUEST,"Invalid model format");let{provider:m,model:n}=k;if(z.info("ROUTING",`Provider: ${m}, Model: ${n}`),!C.has(m)){let c=await x({clientKeyId:e,provider:m,model:n,formData:b,sttConfig:y.Q2[m]?.sttConfig,abortSignal:a.signal});return c.success?c.response:(0,h.yj)(c.status||i.gx.BAD_GATEWAY,c.error||"STT failed")}let o=new Set,p=null,q=null;for(;;){let c=await (0,d.getProviderCredentials)(m,o,n,{preferredConnectionId:g,strictPreferredConnection:j,clientKeyId:e});if(!c||c.allRateLimited){if(c?.allRateLimited){let a=p||c.lastError||"Unavailable",b=q||Number(c.lastErrorCode)||i.gx.SERVICE_UNAVAILABLE;return(0,h.wO)(b,`[${m}/${n}] ${a}`,c.retryAfter,c.retryAfterHuman)}if(0===o.size)return(0,h.yj)(i.gx.BAD_REQUEST,`No credentials for provider: ${m}`);return(0,h.yj)(q||i.gx.SERVICE_UNAVAILABLE,p||"All accounts unavailable")}z.info("AUTH",`\x1b[32mUsing ${m} account: ${c.connectionName}\x1b[0m`);let f=await (0,B.G)({provider:m,model:n,connectionId:c.connectionId},async()=>{let f=await x({clientKeyId:e,provider:m,model:n,formData:b,credentials:c,sttConfig:y.Q2[m]?.sttConfig,abortSignal:a.signal});if(f.success)return f.response;if(499===f.status||a.signal.aborted)return{finalResponse:f.response};let{shouldFallback:g}=await (0,d.vk)(c.connectionId,f.status,f.error,m,n);return g?{retry:!0,error:f.error,status:f.status}:{finalResponse:f.response||(0,h.yj)(f.status,f.error)}});if(f instanceof Response)return f;if(f.finalResponse)return f.finalResponse;o.add(c.connectionId),p=f.error,q=f.status}}):l.response}let E=300;async function F(){return new Response(null,{headers:{"Access-Control-Allow-Methods":"POST, OPTIONS","Access-Control-Allow-Headers":"*"}})}async function G(a){return await D(a)}},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},14985:a=>{a.exports=require("dns")},16698:a=>{a.exports=require("node:async_hooks")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{a.exports=require("os")},27910:a=>{a.exports=require("stream")},28354:a=>{a.exports=require("util")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{a.exports=require("node:child_process")},32467:a=>{a.exports=require("node:http2")},33873:a=>{a.exports=require("path")},34589:a=>{a.exports=require("node:assert")},36435:a=>{a.exports=require("impit")},37067:a=>{a.exports=require("node:http")},37540:a=>{a.exports=require("node:console")},37830:a=>{a.exports=require("node:stream/web")},38522:a=>{a.exports=require("node:zlib")},38775:(a,b,c)=>{c.d(b,{getComboModels:()=>l,getModelInfo:()=>k});var d=c(59353),e=c(66451),f=c(39698),g=c(68393);let h={xmtp:"xiaomi-tokenplan","xiaomi-tokenplan":"xiaomi-tokenplan"},i=new Set(Object.keys(h));for(let a of f.A)for(let b of(i.add(a.id),a.alias&&i.add(a.alias),a.aliases||[]))i.add(b);async function j(a){let b=await (0,d.OM)();return(0,e.sc)(a,b)}async function k(a){let b,c=(0,g.iO)(a)||a,f=await j(c);if(f)return!f.provider&&f.model&&await (0,d.Dj)(f.model)?{provider:null,model:f.model}:f;let k=(b=(0,e.Xh)(c),b?.providerAlias&&h[b.providerAlias]?{...b,provider:h[b.providerAlias]}:b);if(!k.isAlias){if(!i.has(k.providerAlias)){let a=(await (0,d.Fh)({type:"openai-compatible"})).find(a=>a.prefix===k.providerAlias);if(a)return{provider:a.id,model:k.model};let b=(await (0,d.Fh)({type:"anthropic-compatible"})).find(a=>a.prefix===k.providerAlias);if(b)return{provider:b.id,model:k.model};let c=(await (0,d.Fh)({type:"custom-embedding"})).find(a=>a.prefix===k.providerAlias);if(c)return{provider:c.id,model:k.model}}return{provider:k.provider,model:k.model}}return await (0,d.Dj)(k.model)?{provider:null,model:k.model}:(0,e.js)(c,d.OM)}async function l(a){let b=(0,g.iO)(a)||a;if(b.includes("/"))return null;let c=await (0,d.Dj)(b);return c&&c.models&&c.models.length>0?c.models:null}},39326:(a,b,c)=>{function d(a){return null==a?"":String(a).trim()}async function e(a={}){try{let b=function(a={}){let b=a?.connectionProxyEnabled===!0,c=d(a?.connectionProxyUrl);return{connectionProxyEnabled:b,connectionProxyUrl:c,connectionNoProxy:d(a?.connectionNoProxy)}}(a);if(b.connectionProxyEnabled&&b.connectionProxyUrl)return{source:"legacy",proxyPoolId:null,proxyPool:null,...b,strictProxy:!1,vercelRelayUrl:""};return{source:"none",proxyPoolId:null,proxyPool:null,connectionProxyEnabled:!1,connectionProxyUrl:"",connectionNoProxy:b.connectionNoProxy||"",strictProxy:!1,vercelRelayUrl:""}}catch(a){return console.error("[resolveConnectionProxyConfig] Failed to resolve proxy config:",a),{source:"error",proxyPoolId:null,proxyPool:null,connectionProxyEnabled:!1,connectionProxyUrl:"",connectionNoProxy:"",strictProxy:!1,vercelRelayUrl:""}}}c.d(b,{B:()=>e})},40610:a=>{a.exports=require("node:dns")},41692:a=>{a.exports=require("node:tls")},41792:a=>{a.exports=require("node:querystring")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},46293:a=>{a.exports=require("sql.js")},47293:(a,b,c)=>{c.d(b,{A:()=>f});let d=new Uint8Array(16);var e=c(50122);let f=function(a,b,c){return b||a||!crypto.randomUUID?function(a,b,c){let f=(a=a||{}).random??a.rng?.()??crypto.getRandomValues(d);if(f.length<16)throw Error("Random bytes length must be >= 16");if(f[6]=15&f[6]|64,f[8]=63&f[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=f[a];return b}return(0,e.k)(f)}(a,b,c):crypto.randomUUID()}},48161:a=>{a.exports=require("node:os")},49263:(a,b,c)=>{c.d(b,{Bl:()=>k,Qo:()=>f,RU:()=>g,S5:()=>n,V0:()=>l,hk:()=>e,kJ:()=>m});var d=c(87252);function e(a,b,c=0){let f=b?("string"==typeof b?b:JSON.stringify(b)).toLowerCase():"";for(let b of d.t2)if(b.text&&f&&f.includes(b.text)||b.status&&b.status===a){let a=!1!==b.shouldFallback;if(b.backoff){let b=Math.min(c+1,d.EQ.maxLevel);return{shouldFallback:a,cooldownMs:function(a=0){let b=Math.max(0,a-1);return Math.min(d.EQ.base*Math.pow(2,b),d.EQ.max)}(b),newBackoffLevel:b}}return{shouldFallback:a,cooldownMs:b.cooldownMs||0}}return a>=400&&a<500&&408!==a&&429!==a?{shouldFallback:!1,cooldownMs:0}:{shouldFallback:!0,cooldownMs:d.wf}}function f(a){if(!a)return"";let b=new Date(a).getTime()-Date.now();if(b<=0)return"reset after 0s";let c=Math.ceil(b/1e3),d=Math.floor(c/3600),e=Math.floor(c%3600/60),f=c%60,g=[];return d>0&&g.push(`${d}h`),e>0&&g.push(`${e}m`),(f>0||0===g.length)&&g.push(`${f}s`),`reset after ${g.join(" ")}`}let g="reauth_required",h="modelLock_",i=`${h}__all`;function j(a){return a?`${h}${a}`:i}function k(a,b){let c=j(b);return[a?.[c],a?.[i]].some(a=>a&&new Date(a).getTime()>Date.now())}function l(a,b){let c=Date.now(),d=[a?.[j(b)],a?.[i]].map(a=>new Date(a).getTime()).filter(a=>Number.isFinite(a)&&a>c);return d.length>0?new Date(Math.max(...d)).toISOString():null}function m(a){if(!a)return null;let b=null,c=Date.now();for(let[d,e]of Object.entries(a)){if(!d.startsWith(h)||!e)continue;let a=new Date(e).getTime();a<=c||(!b||a<b)&&(b=a)}return b?new Date(b).toISOString():null}function n(a,b){return{[j(a)]:new Date(Date.now()+b).toISOString()}}},49625:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/v1/audio/transcriptions/route",pathname:"/api/v1/audio/transcriptions",filename:"route",bundlePath:"app/api/v1/audio/transcriptions/route"},distDir:".next-cli-build",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/switchboard-router/switchboard-router/src/app/api/v1/audio/transcriptions/route.js",nextConfigOutput:"standalone",userland:()=>c(10781),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/v1/audio/transcriptions/route";"/index"===d&&(d="/");let f=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:w,deploymentId:x,params:y,nextConfig:z,parsedUrl:A,isDraftMode:B,prerenderManifest:C,routerServerContext:D,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,resolvedPathname:G,clientReferenceManifest:H,serverActionsManifest:I}=f,J=(0,j.normalizeAppPath)(d),K=!!C.routes[G]&&(v.isDev||(0,t.isRouteCacheOwner)(G,v.cacheOwner,C.routes[G])),L=!!(C.dynamicRoutes[J]||K),M=async()=>((null==D?void 0:D.render404)?await D.render404(a,b,A,!1):b.end("This page could not be found"),null);if(L&&!B){let a=C.dynamicRoutes[J];if(a&&!1===a.fallback&&!K){if(z.adapterPath)return await M();throw new s.NoFallbackError}}let N=null;!L||v.isDev||B||(N="/index"===(N=G)?"/":N);let O=!0===v.isDev||!L,P=L&&!O;I&&H&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:H,serverActionsManifest:I});let Q=a.method||"GET",R=(0,h.getTracer)(),S=R.getActiveScopeSpan(),T=!!(null==D?void 0:D.isWrappedByNextServer),U=!!(0,g.getRequestMeta)(a,"minimalMode"),V=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,z,C,U);null==V||V.resetRequestCache(),globalThis.__incrementalCache=V;let W={params:y,previewProps:C.preview,renderOpts:{experimental:{authInterrupts:!!z.experimental.authInterrupts,useCacheTimeout:z.experimental.useCacheTimeout},cacheComponents:!!z.cacheComponents,validationLevel:z.experimental.instantInsights.validationLevel,isDraftMode:B,supportsDynamicResponse:O,incrementalCache:V,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:z.cacheLife,staticPageGenerationTimeout:z.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>v.onRequestError(a,b,d,e,D)},sharedContext:{buildId:w,deploymentId:x}},X=new k.NodeNextRequest(a),Y=new k.NodeNextResponse(b),Z=l.NextRequestAdapter.fromNodeNextRequest(X,(0,l.signalFromNodeResponse)(b)),$=async({previousCacheEntry:e})=>{try{if(!U&&E&&F&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await v.handle(Z,W);a.fetchMetrics=W.renderOpts.fetchMetrics;let f=W.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=W.renderOpts.collectedTags;if(!L)return await (0,o.I)(X,Y,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,e=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?z.expireTime:void 0:W.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),b}},_=async(d,f)=>{try{var g,i;let d=await v.handleResponse({req:a,nextConfig:z,cacheKey:N,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,responseGenerator:$,waitUntil:c.waitUntil,isMinimalMode:U});if(!L)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});U||b.setHeader("x-nextjs-cache",E?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),B&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);U&&L||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(X,Y,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await v.onRequestError(a,b,{routerKind:"App Router",routePath:J,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),L)throw b;await (0,o.I)(X,Y,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=R.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||J,g=`${Q} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(T&&S)await _(S,void 0);else{let b=R.getActiveScopeSpan();await R.withPropagatedContext(a.headers,()=>R.trace(m.BaseServerSpan.handleRequest,{spanName:`${Q} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":Q,"http.target":a.url}},a=>_(a,b)),void 0,!T)}}},50122:(a,b,c)=>{c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}},51455:a=>{a.exports=require("node:fs/promises")},53053:a=>{a.exports=require("node:diagnostics_channel")},55511:a=>{a.exports=require("crypto")},55591:a=>{a.exports=require("https")},57075:a=>{a.exports=require("node:stream")},57975:a=>{a.exports=require("node:util")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66077:(a,b,c)=>{c.d(b,{G:()=>e});var d=c(23832);async function e({provider:a,model:b,connectionId:c},f){if(!c||"noauth"===c)return f();let g=!1,h=()=>{g||(g=!0,(0,d.uw)(b,a,c,!1))};(0,d.uw)(b,a,c,!0);try{let a=await f();if(a instanceof Response){if(!(a instanceof Response)||!a.body)return h(),a;let b=a.body.getReader();return new Response(new ReadableStream({async pull(a){try{let{done:c,value:d}=await b.read();c?(h(),a.close()):a.enqueue(d)}catch(b){h(),a.error(b)}},async cancel(a){try{await b.cancel(a)}finally{h()}}}),{status:a.status,statusText:a.statusText,headers:a.headers})}return h(),a}catch(a){throw h(),a}}},66451:(a,b,c)=>{c.d(b,{Xh:()=>f,js:()=>h,sc:()=>g});var d=c(39698);let e={el:"elevenlabs",jina:"jina-ai","jina-ai":"jina-ai",polly:"aws-polly","aws-polly":"aws-polly"};for(let a of d.A)for(let b of(e[a.id]=a.id,a.alias&&(e[a.alias]=a.id),a.aliases||[]))e[b]=a.id;function f(a){if(!a)return{provider:null,model:null,isAlias:!1,providerAlias:null};if(a.includes("/")){let b=a.indexOf("/"),c=a.slice(0,b),d=a.slice(b+1);return{provider:e[c]||c,model:d,isAlias:!1,providerAlias:c}}return{provider:null,model:a,isAlias:!0,providerAlias:null}}function g(a,b){var c,d;if(!b||"string"!=typeof a)return null;let f=b[a];if(!f){for(let[c,d]of Object.entries(b))if("string"==typeof c&&c.includes("*"))try{let b="^"+c.replace(/[.+?^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*")+"$";if(RegExp(b,"i").test(a)){f=d;break}}catch{}}if(!f)return null;if("string"==typeof f&&f.includes("/")){let a=f.indexOf("/");return{provider:e[c=f.slice(0,a)]||c,model:f.slice(a+1)}}return"object"==typeof f&&f.provider&&f.model?{provider:e[d=f.provider]||d,model:f.model}:"string"==typeof f?{provider:null,model:f}:null}async function h(a,b){let c=f(a);if(!c.isAlias)return{provider:c.provider,model:c.model};let d="function"==typeof b?await b():b,e=g(c.model,d);return e||{provider:function(a){if(!a)return"openai";let b=a.toLowerCase();return i.find(([a])=>a.test(b))?.[1]||"openai"}(c.model),model:c.model}}let i=[[/^grok-build$/,"grok-cli"],[/^muse-/,"muse"],[/^claude-/,"anthropic"],[/^gemini-/,"gemini"],[/^gpt-/,"openai"],[/^o[134]/,"openai"],[/^deepseek-/,"openrouter"]]},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},73429:a=>{a.exports=require("node:util/types")},75919:a=>{a.exports=require("node:worker_threads")},76760:a=>{a.exports=require("node:path")},77030:a=>{a.exports=require("node:net")},77598:a=>{a.exports=require("node:crypto")},78102:(a,b,c)=>{c.d(b,{DM:()=>j,yH:()=>k});var d=c(59353),e=c(68658),f=c(41460);function g(){return global._clientKeyPolicyState}function h(a,b,c=null){let d={"content-type":"application/json"};return null!=c&&(d["retry-after"]=String(c)),{ok:!1,response:new Response(JSON.stringify({error:{message:"API key policy rejected this request",type:"client_key_policy_error",code:b}}),{status:a,headers:d})}}function i(a){return{ok:!0,mode:a,clientKey:null,clientKeyId:null,lease:null}}async function j({settings:a,rawKey:b,request:c,target:k}){if(c&&(0,e.v5)(c))return i("local");if(c)try{if(await (0,f.gN)(c))return i("cli")}catch{}if(!b)return a?.requireApiKey?h(401,"missing_api_key"):i("local");let l=await (0,d.PW)(b);if(!l)return a?.requireApiKey?h(401,"invalid_api_key"):i("local");let m=Date.now();if(l.expiresAt&&new Date(l.expiresAt).getTime()<=m)return h(403,"client_key_expired");if(!function(a,b){if(!a)return!0;let c=b.allowedModels||[],d=b.allowedCombos||[];return 0===c.length&&0===d.length||("combo"===a.kind?d.includes(a.id):c.includes(a.id))}(k,l))return h(403,"client_key_target_not_allowed");if(null!=l.spendLimitUsd){let a=await (0,d.fz)(l.id);if(l.spentUsd=a,a>=l.spendLimitUsd)return h(429,"client_key_spend_limit_exceeded")}let n=g().byId.get(l.id);if((!n||m-n.windowStartedAt>=6e4)&&(n={windowStartedAt:m,acceptedStarts:0,inFlight:n?.inFlight||0},g().byId.set(l.id,n)),null!=l.concurrencyLimit&&n.inFlight>=l.concurrencyLimit)return h(429,"client_key_concurrency_limit_exceeded",1);if(null!=l.rateLimitPerMinute&&n.acceptedStarts>=l.rateLimitPerMinute)return h(429,"client_key_rate_limit_exceeded",Math.max(1,Math.ceil((6e4-(m-n.windowStartedAt))/1e3)));n.acceptedStarts++,n.inFlight++;let o=!1;return{ok:!0,mode:"api-key",clientKey:l,clientKeyId:l.id,lease:{release(){if(o)return;o=!0;let a=g().byId.get(l.id);a&&(a.inFlight=Math.max(0,a.inFlight-1))}}}}async function k(a,b){let c;if(!a)return await b();let d=!1,e=()=>{d||(d=!0,a.release())};try{c=await b()}catch(a){throw e(),a}if(!(c instanceof Response&&c.body&&(c.headers.get("content-type")||"").toLowerCase().includes("text/event-stream")))return e(),c;let f=c.body.getReader();return new Response(new ReadableStream({async pull(a){try{let{done:b,value:c}=await f.read();b?(e(),a.close()):a.enqueue(c)}catch(b){e(),a.error(b)}},async cancel(a){e(),await f.cancel(a)}}),{status:c.status,statusText:c.statusText,headers:c.headers})}global._clientKeyPolicyState||(global._clientKeyPolicyState={byId:new Map})},78474:a=>{a.exports=require("node:events")},79868:a=>{a.exports=require("node:sqlite")},81787:a=>{a.exports=require("bun:sqlite")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{a.exports=require("better-sqlite3")},87997:a=>{a.exports=require("node:timers")},89865:(a,b,c)=>{c.d(b,{A1:()=>h,lR:()=>j,wO:()=>i,yj:()=>f,zL:()=>g});var d=c(87252);async function e(a,b){let c=a?.body?.getReader?.();if(!c)try{return(await a.text()).slice(0,b)}catch{return""}let d=new TextDecoder,e="",f=0;try{for(;f<b;){let{done:a,value:g}=await c.read();if(a)break;let h=g instanceof Uint8Array?g:new Uint8Array(g),i=b-f;if(e+=d.decode(h.subarray(0,i),{stream:h.byteLength<=i}),f+=Math.min(h.byteLength,i),h.byteLength>i){try{await c.cancel("upstream error body limit")}catch{}break}}return e+d.decode()}catch{return e}finally{try{c.releaseLock?.()}catch{}}}function f(a,b){let c;return new Response(JSON.stringify((c=d.LY[a]||(a>=500?{type:"server_error",code:"internal_server_error"}:{type:"invalid_request_error",code:""}),{error:{message:b||d.O[a]||"An error occurred",type:c.type,code:c.code}})),{status:a,headers:{"Content-Type":"application/json"}})}async function g(a,b=null){let c=await e(a,65536);if(b&&"function"==typeof b.parseError)try{let e=b.parseError(a,c);if(e&&"object"==typeof e){let b=e.message||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:e.status||a.status,message:b,resetsAtMs:e.resetsAtMs}}}catch{}let f="";try{let a=JSON.parse(c);f="string"==typeof a?.error?.message?a.error.message:"string"==typeof a?.message?a.message:"string"==typeof a?.error_description?a.error_description:"string"==typeof a?.error?a.error:""}catch{f=c}let h=("string"==typeof f?f:"")||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:a.status,message:h}}function h(a,b,c){return{success:!1,status:a,error:b,resetsAtMs:c,response:f(a,b)}}function i(a,b,c,d){let e=Math.max(Math.ceil((new Date(c).getTime()-Date.now())/1e3),1);return new Response(JSON.stringify({error:{message:`${b} (${d})`}}),{status:a,headers:{"Content-Type":"application/json","Retry-After":String(e)}})}function j(a,b,c,d){let e=d||a.code||"FETCH_FAILED",f=a.message||"Unknown error",g=a.cause?.code,h=a.cause?.message,i=g||h?` (cause: ${[g,h].filter(Boolean).join(": ")})`:"";return`[${e}]: ${f}${i}`}},91645:a=>{a.exports=require("net")},94735:a=>{a.exports=require("events")},96930:a=>{a.exports=require("node-machine-id")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,1813,9698,5350,869,2142,5781,9353,1792,9059,7133],()=>b(b.s=49625));module.exports=c})();
1
+ "use strict";(()=>{var a={};a.id=1910,a.ids=[1910],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},643:a=>{a.exports=require("node:perf_hooks")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4573:a=>{a.exports=require("node:buffer")},7803:(a,b,c)=>{c.r(b),c.d(b,{debug:()=>h,error:()=>k,info:()=>i,maskKey:()=>o,request:()=>l,response:()=>m,stream:()=>n,warn:()=>j});let d={DEBUG:0,INFO:1,WARN:2,ERROR:3},e=d[process.env.LOG_LEVEL?.toUpperCase?.()]??d.INFO;function f(){return new Date().toLocaleTimeString("en-US",{hour12:!1})}function g(a){if(!a)return"";if("string"==typeof a)return a;try{return JSON.stringify(a)}catch{return String(a)}}function h(a,b,c){if(e<=d.DEBUG){let d=c?` ${g(c)}`:"";console.log(`[${f()}] 🔍 [${a}] ${b}${d}`)}}function i(a,b,c){if(e<=d.INFO){let d=c?` ${g(c)}`:"";console.log(`[${f()}] ℹ️ [${a}] ${b}${d}`)}}function j(a,b,c){e<=d.WARN&&c&&g(c)}function k(a,b,c){if(e<=d.ERROR){let d=c?` ${g(c)}`:"";console.log(`[${f()}] ❌ [${a}] ${b}${d}`)}}function l(a,b,c){let d=c?` ${g(c)}`:"";console.log(`\x1b[36m[${f()}] 📥 ${a} ${b}${d}\x1b[0m`)}function m(a,b,c){let d=c?` ${g(c)}`:"";console.log(`[${f()}] ${a<400?"\uD83D\uDCE4":"\uD83D\uDCA5"} ${a} (${b}ms)${d}`)}function n(a,b){let c=b?` ${g(b)}`:"";console.log(`[${f()}] 🌊 [STREAM] ${a}${c}`)}function o(a){return!a||a.length<8?"***":`${a.slice(0,4)}...${a.slice(-4)}`}},8128:a=>{a.exports=require("next/dist/server/runtime-reacts.external.js")},10781:(a,b,c)=>{c.r(b),c.d(b,{OPTIONS:()=>F,POST:()=>G,maxDuration:()=>E});var d=c(67133),e=c(59353),f=c(38775),g=c(4573),h=c(89865),i=c(60290),j=c(46052),k=c(45350);function l(a,b){if(!b)return{};switch(a.authHeader){case"bearer":default:return{Authorization:`Bearer ${b}`};case"token":return{Authorization:`Token ${b}`};case"x-api-key":return{"x-api-key":b};case"key":return{Authorization:`Key ${b}`}}}function m(a){if(a?.aborted)throw Object.assign(Error("STT request aborted"),{name:"AbortError"})}function n(a){let b="number"==typeof a?.size?a.size:null;if(null!=b&&b>0x6400000){let a=Error("audio file exceeds 104857600 bytes");throw a.status=413,a}}function o(a){let b=(a.type||"").toLowerCase();if(b.startsWith("audio/"))return b;let c="string"==typeof a.name?a.name.toLowerCase():"";return({mp3:"audio/mpeg",mp4:"audio/mp4",m4a:"audio/mp4",wav:"audio/wav",ogg:"audio/ogg",flac:"audio/flac",webm:"audio/webm",aac:"audio/aac",opus:"audio/opus"})[c.includes(".")?c.split(".").pop():""]||"application/octet-stream"}async function p(a){let b="";try{b=await a.text()}catch{}let c=b||`Upstream error (${a.status})`;try{let a=JSON.parse(b);c=a?.error?.message||a?.error||a?.message||c}catch{}return(0,h.A1)(a.status,"string"==typeof c?c:JSON.stringify(c))}async function q(a,b,c,d,e,f,g,h){let i=new URL(a.baseUrl);i.searchParams.set("model",c),i.searchParams.set("smart_format","true"),i.searchParams.set("punctuate","true");let k=e.get("language");"string"==typeof k&&k.trim()?i.searchParams.set("language",k.trim()):i.searchParams.set("detect_language","true"),n(b);let q=await b.arrayBuffer();m(g);let r=await (0,j.Fm)(i,{method:"POST",headers:{...l(a,d),"Content-Type":o(b)},body:q,...f,signal:g},h);if(!r.ok)return p(r);let s=await r.json();return w({text:s.results?.channels?.[0]?.alternatives?.[0]?.transcript??""})}async function r(a,b,c,d,e,f,g){let i=l(a,d);n(b);let k=await b.arrayBuffer();m(f);let o=await (0,j.Fm)("https://api.assemblyai.com/v2/upload",{method:"POST",headers:{...i,"Content-Type":"application/octet-stream"},body:k,...e,signal:f},g);if(!o.ok)return p(o);let{upload_url:q}=await o.json(),r=await (0,j.Fm)(a.baseUrl,{method:"POST",headers:{...i,"Content-Type":"application/json"},body:JSON.stringify({audio_url:q,speech_models:[c],language_detection:!0}),...e,signal:f},g);if(!r.ok)return p(r);let{id:s}=await r.json(),t=Date.now();for(;Date.now()-t<12e4;){await function(a){return a?a.aborted?Promise.reject(Object.assign(Error("STT request aborted"),{name:"AbortError"})):new Promise((b,c)=>{let d=setTimeout(()=>{a.removeEventListener("abort",e),b()},2e3),e=()=>{clearTimeout(d),c(Object.assign(Error("STT request aborted"),{name:"AbortError"}))};a.addEventListener("abort",e,{once:!0})}):new Promise(a=>setTimeout(a,2e3))}(f);let b=await (0,j.Fm)(`${a.baseUrl}/${s}`,{headers:i,...e,signal:f},g);if(!b.ok){if(401===b.status||403===b.status||404===b.status)return p(b);continue}let c=await b.json();if("completed"===c.status)return w({text:c.text||""});if("error"===c.status)return(0,h.A1)(500,c.error||"AssemblyAI failed")}return(0,h.A1)(504,"AssemblyAI timeout after 120s")}async function s(a,b,c,d,e,f,g){n(b);let h=new FormData;h.append("file",b,b.name||"audio.wav"),h.append("model",c);let i=await (0,j.Fm)(a.baseUrl,{method:"POST",headers:l(a,d),body:h,...e,signal:f},g);if(!i.ok)return p(i);let k=await i.json();return w({text:k.text||k.transcript||""})}async function t(a,b,c,d,e,f,h,i){n(b);let k=await b.arrayBuffer();m(h);let l=g.Buffer.from(k).toString("base64"),q=o(b),r=e.get("language"),s=e.get("prompt"),t=s&&"string"==typeof s&&s.trim()?s.trim():"Generate a transcript of the speech. Return only the transcribed text, no commentary.";"string"==typeof r&&r.trim()&&(t+=` Language: ${r.trim()}.`);let u=`${a.baseUrl}/${c}:generateContent?key=${encodeURIComponent(d)}`,v=await (0,j.Fm)(u,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({contents:[{parts:[{text:t},{inline_data:{mime_type:q,data:l}}]}]}),...f,signal:h},i);if(!v.ok)return p(v);let x=await v.json();return w({text:x?.candidates?.[0]?.content?.parts?.map(a=>a.text).filter(Boolean).join("")||""})}async function u(a,b,c,d,e,f,g){if(c.includes("..")||c.includes("//"))return(0,h.A1)(400,"Invalid model ID");let i=`${a.baseUrl.replace(/\/+$/,"")}/${c}`;n(b);let k=await b.arrayBuffer();m(f);let q=await (0,j.Fm)(i,{method:"POST",headers:{...l(a,d),"Content-Type":o(b)},body:k,...e,signal:f},g);return q.ok?w({text:(await q.json()).text||""}):p(q)}async function v(a,b,c,d,e,f,g,h){n(b);let i=new FormData;for(let a of(i.append("file",b,b.name||"audio.wav"),i.append("model",c),["language","prompt","response_format","temperature"])){let b=e.get(a);null!=b&&""!==b&&i.append(a,b)}let k=await (0,j.Fm)(a.baseUrl,{method:"POST",headers:l(a,d),body:i,...f,signal:g},h);if(!k.ok)return p(k);let m=k.headers.get("content-type")||"application/json";return{success:!0,response:new Response(await k.text(),{status:200,headers:{"Content-Type":m}})}}function w(a){return{success:!0,response:new Response(JSON.stringify(a),{status:200,headers:{"Content-Type":"application/json"}})}}async function x({provider:a,model:b,formData:c,credentials:d,sttConfig:e,abortSignal:f}){var g;let l,m,n=c.get("file");if(!n)return(0,h.A1)(i.gx.BAD_REQUEST,"Missing required field: file");let o=e;if(!o)return(0,h.A1)(i.gx.BAD_REQUEST,`Provider '${a}' does not support STT`);let p="selfhosted-stt"===a;if(p){let a=d?.providerSpecificData?.baseUrl?.trim();if(!a)return(0,h.A1)(i.gx.BAD_REQUEST,"Self-hosted STT requires a connection base URL");try{if(!["http:","https:"].includes(new URL(a).protocol))throw Error()}catch{return(0,h.A1)(i.gx.BAD_REQUEST,"Self-hosted STT base URL must use http or https")}o={...o,baseUrl:a.replace(/\/+$/,"")}}let w=p||"none"!==o.authType?d?.apiKey||d?.accessToken:null;if(!p&&"none"!==o.authType&&!w)return(0,h.A1)(i.gx.UNAUTHORIZED,`No credentials for STT provider: ${a}`);let y=(g=o,l=k.xq[a]||{},{identity:(m=k.B$[a]?.sttConfig||g||{}).identity||l.identity||"openai-node",provider:a,format:m.format||l.format||"openai"}),z=(0,j.$6)(d);try{switch(o.format){case"deepgram":return await q(o,n,b,w,c,y,f,z);case"assemblyai":return await r(o,n,b,w,y,f,z);case"nvidia-asr":return await s(o,n,b,w,y,f,z);case"huggingface-asr":return await u(o,n,b,w,y,f,z);case"gemini-stt":return await t(o,n,b,w,c,y,f,z);default:return await v(o,n,b,w,c,y,f,z)}}catch(b){if(b?.name==="AbortError"||f?.aborted)return(0,h.A1)(499,"STT request aborted");let a=Number(b?.status);if(Number.isInteger(a)&&a>=400&&a<600)return(0,h.A1)(a,b.message||"STT request failed");return(0,h.A1)(i.gx.BAD_GATEWAY,b.message||"STT request failed")}}var y=c(40615),z=c(7803),A=c(78102),B=c(66077);let C=new Set(Object.entries(y.Q2).filter(([,a])=>a.serviceKinds?.includes("stt")&&!a.noAuth).map(([a])=>a));async function D(a){let b;try{b=await a.formData()}catch{return(0,h.yj)(i.gx.BAD_REQUEST,"Invalid multipart form data")}let c=b.get("model"),g=a.headers.get("x-connection-id")||null,j="1"===a.headers.get("x-switchboard-strict-connection");z.request("POST",`/v1/audio/transcriptions | ${c}`);let k=await (0,e.mt)(),l=await (0,A.DM)({settings:k,rawKey:(0,d.Tr)(a),request:a,target:{kind:"model",id:c}});return l.ok?(0,A.yH)(l.lease,async()=>{let{clientKeyId:e}=l;if(!c)return(0,h.yj)(i.gx.BAD_REQUEST,"Missing model");if(!b.get("file"))return(0,h.yj)(i.gx.BAD_REQUEST,"Missing required field: file");let k=await (0,f.getModelInfo)(c);if(!k.provider)return(0,h.yj)(i.gx.BAD_REQUEST,"Invalid model format");let{provider:m,model:n}=k;if(z.info("ROUTING",`Provider: ${m}, Model: ${n}`),!C.has(m)){let c=await x({clientKeyId:e,provider:m,model:n,formData:b,sttConfig:y.Q2[m]?.sttConfig,abortSignal:a.signal});return c.success?c.response:(0,h.yj)(c.status||i.gx.BAD_GATEWAY,c.error||"STT failed")}let o=new Set,p=null,q=null;for(;;){let c=await (0,d.getProviderCredentials)(m,o,n,{preferredConnectionId:g,strictPreferredConnection:j,clientKeyId:e});if(!c||c.allRateLimited){if(c?.allRateLimited){let a=p||c.lastError||"Unavailable",b=q||Number(c.lastErrorCode)||i.gx.SERVICE_UNAVAILABLE;return(0,h.wO)(b,`[${m}/${n}] ${a}`,c.retryAfter,c.retryAfterHuman)}if(0===o.size)return(0,h.yj)(i.gx.BAD_REQUEST,`No credentials for provider: ${m}`);return(0,h.yj)(q||i.gx.SERVICE_UNAVAILABLE,p||"All accounts unavailable")}z.info("AUTH",`\x1b[32mUsing ${m} account: ${c.connectionName}\x1b[0m`);let f=await (0,B.G)({provider:m,model:n,connectionId:c.connectionId},async()=>{let f=await x({clientKeyId:e,provider:m,model:n,formData:b,credentials:c,sttConfig:y.Q2[m]?.sttConfig,abortSignal:a.signal});if(f.success)return f.response;if(499===f.status||a.signal.aborted)return{finalResponse:f.response};let{shouldFallback:g}=await (0,d.vk)(c.connectionId,f.status,f.error,m,n);return g?{retry:!0,error:f.error,status:f.status}:{finalResponse:f.response||(0,h.yj)(f.status,f.error)}});if(f instanceof Response)return f;if(f.finalResponse)return f.finalResponse;o.add(c.connectionId),p=f.error,q=f.status}}):l.response}let E=300;async function F(){return new Response(null,{headers:{"Access-Control-Allow-Methods":"POST, OPTIONS","Access-Control-Allow-Headers":"*"}})}async function G(a){return await D(a)}},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},14985:a=>{a.exports=require("dns")},16698:a=>{a.exports=require("node:async_hooks")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{a.exports=require("os")},27910:a=>{a.exports=require("stream")},28354:a=>{a.exports=require("util")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{a.exports=require("node:child_process")},32467:a=>{a.exports=require("node:http2")},33873:a=>{a.exports=require("path")},34589:a=>{a.exports=require("node:assert")},36435:a=>{a.exports=require("impit")},37067:a=>{a.exports=require("node:http")},37540:a=>{a.exports=require("node:console")},37830:a=>{a.exports=require("node:stream/web")},38522:a=>{a.exports=require("node:zlib")},38775:(a,b,c)=>{c.d(b,{getComboModels:()=>l,getModelInfo:()=>k});var d=c(59353),e=c(66451),f=c(39698),g=c(68393);let h={xmtp:"xiaomi-tokenplan","xiaomi-tokenplan":"xiaomi-tokenplan"},i=new Set(Object.keys(h));for(let a of f.A)for(let b of(i.add(a.id),a.alias&&i.add(a.alias),a.aliases||[]))i.add(b);async function j(a){let b=await (0,d.OM)();return(0,e.sc)(a,b)}async function k(a){let b,c=(0,g.iO)(a)||a,f=await j(c);if(f)return!f.provider&&f.model&&await (0,d.Dj)(f.model)?{provider:null,model:f.model}:f;let k=(b=(0,e.Xh)(c),b?.providerAlias&&h[b.providerAlias]?{...b,provider:h[b.providerAlias]}:b);if(!k.isAlias){if(!i.has(k.providerAlias)){let a=(await (0,d.Fh)({type:"openai-compatible"})).find(a=>a.prefix===k.providerAlias);if(a)return{provider:a.id,model:k.model};let b=(await (0,d.Fh)({type:"anthropic-compatible"})).find(a=>a.prefix===k.providerAlias);if(b)return{provider:b.id,model:k.model};let c=(await (0,d.Fh)({type:"custom-embedding"})).find(a=>a.prefix===k.providerAlias);if(c)return{provider:c.id,model:k.model}}return{provider:k.provider,model:k.model}}return await (0,d.Dj)(k.model)?{provider:null,model:k.model}:(0,e.js)(c,d.OM)}async function l(a){let b=(0,g.iO)(a)||a;if(b.includes("/"))return null;let c=await (0,d.Dj)(b);return c&&c.models&&c.models.length>0?c.models:null}},39326:(a,b,c)=>{function d(a){return null==a?"":String(a).trim()}async function e(a={}){try{let b=function(a={}){let b=a?.connectionProxyEnabled===!0,c=d(a?.connectionProxyUrl);return{connectionProxyEnabled:b,connectionProxyUrl:c,connectionNoProxy:d(a?.connectionNoProxy)}}(a);if(b.connectionProxyEnabled&&b.connectionProxyUrl)return{source:"legacy",proxyPoolId:null,proxyPool:null,...b,strictProxy:!1,vercelRelayUrl:""};return{source:"none",proxyPoolId:null,proxyPool:null,connectionProxyEnabled:!1,connectionProxyUrl:"",connectionNoProxy:b.connectionNoProxy||"",strictProxy:!1,vercelRelayUrl:""}}catch(a){return console.error("[resolveConnectionProxyConfig] Failed to resolve proxy config:",a),{source:"error",proxyPoolId:null,proxyPool:null,connectionProxyEnabled:!1,connectionProxyUrl:"",connectionNoProxy:"",strictProxy:!1,vercelRelayUrl:""}}}c.d(b,{B:()=>e})},40610:a=>{a.exports=require("node:dns")},41692:a=>{a.exports=require("node:tls")},41792:a=>{a.exports=require("node:querystring")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},46293:a=>{a.exports=require("sql.js")},47293:(a,b,c)=>{c.d(b,{A:()=>f});let d=new Uint8Array(16);var e=c(50122);let f=function(a,b,c){return b||a||!crypto.randomUUID?function(a,b,c){let f=(a=a||{}).random??a.rng?.()??crypto.getRandomValues(d);if(f.length<16)throw Error("Random bytes length must be >= 16");if(f[6]=15&f[6]|64,f[8]=63&f[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=f[a];return b}return(0,e.k)(f)}(a,b,c):crypto.randomUUID()}},48161:a=>{a.exports=require("node:os")},49263:(a,b,c)=>{c.d(b,{Bl:()=>k,Qo:()=>f,RU:()=>g,S5:()=>n,V0:()=>l,hk:()=>e,kJ:()=>m});var d=c(87252);function e(a,b,c=0){let f=b?("string"==typeof b?b:JSON.stringify(b)).toLowerCase():"";for(let b of d.t2)if(b.text&&f&&f.includes(b.text)||b.status&&b.status===a){let a=!1!==b.shouldFallback;if(b.backoff){let b=Math.min(c+1,d.EQ.maxLevel);return{shouldFallback:a,cooldownMs:function(a=0){let b=Math.max(0,a-1);return Math.min(d.EQ.base*Math.pow(2,b),d.EQ.max)}(b),newBackoffLevel:b}}return{shouldFallback:a,cooldownMs:b.cooldownMs||0}}return a>=400&&a<500&&408!==a&&429!==a?{shouldFallback:!1,cooldownMs:0}:{shouldFallback:!0,cooldownMs:d.wf}}function f(a){if(!a)return"";let b=new Date(a).getTime()-Date.now();if(b<=0)return"reset after 0s";let c=Math.ceil(b/1e3),d=Math.floor(c/3600),e=Math.floor(c%3600/60),f=c%60,g=[];return d>0&&g.push(`${d}h`),e>0&&g.push(`${e}m`),(f>0||0===g.length)&&g.push(`${f}s`),`reset after ${g.join(" ")}`}let g="reauth_required",h="modelLock_",i=`${h}__all`;function j(a){return a?`${h}${a}`:i}function k(a,b){let c=j(b);return[a?.[c],a?.[i]].some(a=>a&&new Date(a).getTime()>Date.now())}function l(a,b){let c=Date.now(),d=[a?.[j(b)],a?.[i]].map(a=>new Date(a).getTime()).filter(a=>Number.isFinite(a)&&a>c);return d.length>0?new Date(Math.max(...d)).toISOString():null}function m(a){if(!a)return null;let b=null,c=Date.now();for(let[d,e]of Object.entries(a)){if(!d.startsWith(h)||!e)continue;let a=new Date(e).getTime();a<=c||(!b||a<b)&&(b=a)}return b?new Date(b).toISOString():null}function n(a,b){return{[j(a)]:new Date(Date.now()+b).toISOString()}}},49625:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/v1/audio/transcriptions/route",pathname:"/api/v1/audio/transcriptions",filename:"route",bundlePath:"app/api/v1/audio/transcriptions/route"},distDir:".next-cli-build",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/switchboard-router/switchboard-router/src/app/api/v1/audio/transcriptions/route.js",nextConfigOutput:"standalone",userland:()=>c(10781),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/v1/audio/transcriptions/route";"/index"===d&&(d="/");let f=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:w,deploymentId:x,params:y,nextConfig:z,parsedUrl:A,isDraftMode:B,prerenderManifest:C,routerServerContext:D,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,resolvedPathname:G,clientReferenceManifest:H,serverActionsManifest:I}=f,J=(0,j.normalizeAppPath)(d),K=!!C.routes[G]&&(v.isDev||(0,t.isRouteCacheOwner)(G,v.cacheOwner,C.routes[G])),L=!!(C.dynamicRoutes[J]||K),M=async()=>((null==D?void 0:D.render404)?await D.render404(a,b,A,!1):b.end("This page could not be found"),null);if(L&&!B){let a=C.dynamicRoutes[J];if(a&&!1===a.fallback&&!K){if(z.adapterPath)return await M();throw new s.NoFallbackError}}let N=null;!L||v.isDev||B||(N="/index"===(N=G)?"/":N);let O=!0===v.isDev||!L,P=L&&!O;I&&H&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:H,serverActionsManifest:I});let Q=a.method||"GET",R=(0,h.getTracer)(),S=R.getActiveScopeSpan(),T=!!(null==D?void 0:D.isWrappedByNextServer),U=!!(0,g.getRequestMeta)(a,"minimalMode"),V=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,z,C,U);null==V||V.resetRequestCache(),globalThis.__incrementalCache=V;let W={params:y,previewProps:C.preview,renderOpts:{experimental:{authInterrupts:!!z.experimental.authInterrupts,useCacheTimeout:z.experimental.useCacheTimeout},cacheComponents:!!z.cacheComponents,validationLevel:z.experimental.instantInsights.validationLevel,isDraftMode:B,supportsDynamicResponse:O,incrementalCache:V,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:z.cacheLife,staticPageGenerationTimeout:z.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>v.onRequestError(a,b,d,e,D)},sharedContext:{buildId:w,deploymentId:x}},X=new k.NodeNextRequest(a),Y=new k.NodeNextResponse(b),Z=l.NextRequestAdapter.fromNodeNextRequest(X,(0,l.signalFromNodeResponse)(b)),$=async({previousCacheEntry:e})=>{try{if(!U&&E&&F&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await v.handle(Z,W);a.fetchMetrics=W.renderOpts.fetchMetrics;let f=W.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=W.renderOpts.collectedTags;if(!L)return await (0,o.I)(X,Y,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,e=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?z.expireTime:void 0:W.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),b}},_=async(d,f)=>{try{var g,i;let d=await v.handleResponse({req:a,nextConfig:z,cacheKey:N,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,responseGenerator:$,waitUntil:c.waitUntil,isMinimalMode:U});if(!L)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});U||b.setHeader("x-nextjs-cache",E?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),B&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);U&&L||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(X,Y,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await v.onRequestError(a,b,{routerKind:"App Router",routePath:J,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),L)throw b;await (0,o.I)(X,Y,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=R.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||J,g=`${Q} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(T&&S)await _(S,void 0);else{let b=R.getActiveScopeSpan();await R.withPropagatedContext(a.headers,()=>R.trace(m.BaseServerSpan.handleRequest,{spanName:`${Q} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":Q,"http.target":a.url}},a=>_(a,b)),void 0,!T)}}},50122:(a,b,c)=>{c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}},51455:a=>{a.exports=require("node:fs/promises")},53053:a=>{a.exports=require("node:diagnostics_channel")},55511:a=>{a.exports=require("crypto")},55591:a=>{a.exports=require("https")},57075:a=>{a.exports=require("node:stream")},57975:a=>{a.exports=require("node:util")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66077:(a,b,c)=>{c.d(b,{G:()=>e});var d=c(23832);async function e({provider:a,model:b,connectionId:c},f){if(!c||"noauth"===c)return f();let g=!1,h=()=>{g||(g=!0,(0,d.uw)(b,a,c,!1))};(0,d.uw)(b,a,c,!0);try{let a=await f();if(a instanceof Response){if(!(a instanceof Response)||!a.body)return h(),a;let b=a.body.getReader();return new Response(new ReadableStream({async pull(a){try{let{done:c,value:d}=await b.read();c?(h(),a.close()):a.enqueue(d)}catch(b){h(),a.error(b)}},async cancel(a){try{await b.cancel(a)}finally{h()}}}),{status:a.status,statusText:a.statusText,headers:a.headers})}return h(),a}catch(a){throw h(),a}}},66451:(a,b,c)=>{c.d(b,{Xh:()=>f,js:()=>h,sc:()=>g});var d=c(39698);let e={el:"elevenlabs",jina:"jina-ai","jina-ai":"jina-ai",polly:"aws-polly","aws-polly":"aws-polly"};for(let a of d.A)for(let b of(e[a.id]=a.id,a.alias&&(e[a.alias]=a.id),a.aliases||[]))e[b]=a.id;function f(a){if(!a)return{provider:null,model:null,isAlias:!1,providerAlias:null};if(a.includes("/")){let b=a.indexOf("/"),c=a.slice(0,b),d=a.slice(b+1);return{provider:e[c]||c,model:d,isAlias:!1,providerAlias:c}}return{provider:null,model:a,isAlias:!0,providerAlias:null}}function g(a,b){var c,d;if(!b||"string"!=typeof a)return null;let f=b[a];if(!f){for(let[c,d]of Object.entries(b))if("string"==typeof c&&c.includes("*"))try{let b="^"+c.replace(/[.+?^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*")+"$";if(RegExp(b,"i").test(a)){f=d;break}}catch{}}if(!f)return null;if("string"==typeof f&&f.includes("/")){let a=f.indexOf("/");return{provider:e[c=f.slice(0,a)]||c,model:f.slice(a+1)}}return"object"==typeof f&&f.provider&&f.model?{provider:e[d=f.provider]||d,model:f.model}:"string"==typeof f?{provider:null,model:f}:null}async function h(a,b){let c=f(a);if(!c.isAlias)return{provider:c.provider,model:c.model};let d="function"==typeof b?await b():b,e=g(c.model,d);return e||{provider:function(a){if(!a)return"openai";let b=a.toLowerCase();return i.find(([a])=>a.test(b))?.[1]||"openai"}(c.model),model:c.model}}let i=[[/^grok-build$/,"grok-cli"],[/^muse-/,"muse"],[/^claude-/,"anthropic"],[/^gemini-/,"gemini"],[/^gpt-/,"openai"],[/^o[134]/,"openai"],[/^deepseek-/,"openrouter"]]},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},73429:a=>{a.exports=require("node:util/types")},75919:a=>{a.exports=require("node:worker_threads")},76760:a=>{a.exports=require("node:path")},77030:a=>{a.exports=require("node:net")},77598:a=>{a.exports=require("node:crypto")},78102:(a,b,c)=>{c.d(b,{DM:()=>j,yH:()=>k});var d=c(59353),e=c(68658),f=c(41460);function g(){return global._clientKeyPolicyState}function h(a,b,c=null){let d={"content-type":"application/json"};return null!=c&&(d["retry-after"]=String(c)),{ok:!1,response:new Response(JSON.stringify({error:{message:"API key policy rejected this request",type:"client_key_policy_error",code:b}}),{status:a,headers:d})}}function i(a){return{ok:!0,mode:a,clientKey:null,clientKeyId:null,lease:null}}async function j({settings:a,rawKey:b,request:c,target:k}){if(c&&(0,e.v5)(c))return i("local");if(c)try{if(await (0,f.gN)(c))return i("cli")}catch{}if(!b)return a?.requireApiKey?h(401,"missing_api_key"):i("local");let l=await (0,d.PW)(b);if(!l)return a?.requireApiKey?h(401,"invalid_api_key"):i("local");let m=Date.now();if(l.expiresAt&&new Date(l.expiresAt).getTime()<=m)return h(403,"client_key_expired");if(!function(a,b){if(!a)return!0;let c=b.allowedModels||[],d=b.allowedCombos||[];return 0===c.length&&0===d.length||("combo"===a.kind?d.includes(a.id):c.includes(a.id))}(k,l))return h(403,"client_key_target_not_allowed");if(null!=l.spendLimitUsd){let a=await (0,d.fz)(l.id);if(l.spentUsd=a,a>=l.spendLimitUsd)return h(429,"client_key_spend_limit_exceeded")}let n=g().byId.get(l.id);if((!n||m-n.windowStartedAt>=6e4)&&(n={windowStartedAt:m,acceptedStarts:0,inFlight:n?.inFlight||0},g().byId.set(l.id,n)),null!=l.concurrencyLimit&&n.inFlight>=l.concurrencyLimit)return h(429,"client_key_concurrency_limit_exceeded",1);if(null!=l.rateLimitPerMinute&&n.acceptedStarts>=l.rateLimitPerMinute)return h(429,"client_key_rate_limit_exceeded",Math.max(1,Math.ceil((6e4-(m-n.windowStartedAt))/1e3)));n.acceptedStarts++,n.inFlight++;let o=!1;return{ok:!0,mode:"api-key",clientKey:l,clientKeyId:l.id,lease:{release(){if(o)return;o=!0;let a=g().byId.get(l.id);a&&(a.inFlight=Math.max(0,a.inFlight-1))}}}}async function k(a,b){let c;if(!a)return await b();let d=!1,e=()=>{d||(d=!0,a.release())};try{c=await b()}catch(a){throw e(),a}if(!(c instanceof Response&&c.body&&(c.headers.get("content-type")||"").toLowerCase().includes("text/event-stream")))return e(),c;let f=c.body.getReader();return new Response(new ReadableStream({async pull(a){try{let{done:b,value:c}=await f.read();b?(e(),a.close()):a.enqueue(c)}catch(b){e(),a.error(b)}},async cancel(a){e(),await f.cancel(a)}}),{status:c.status,statusText:c.statusText,headers:c.headers})}global._clientKeyPolicyState||(global._clientKeyPolicyState={byId:new Map})},78474:a=>{a.exports=require("node:events")},79868:a=>{a.exports=require("node:sqlite")},81787:a=>{a.exports=require("bun:sqlite")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{a.exports=require("better-sqlite3")},87997:a=>{a.exports=require("node:timers")},89865:(a,b,c)=>{c.d(b,{A1:()=>h,lR:()=>j,wO:()=>i,yj:()=>f,zL:()=>g});var d=c(87252);async function e(a,b){let c=a?.body?.getReader?.();if(!c)try{return(await a.text()).slice(0,b)}catch{return""}let d=new TextDecoder,e="",f=0;try{for(;f<b;){let{done:a,value:g}=await c.read();if(a)break;let h=g instanceof Uint8Array?g:new Uint8Array(g),i=b-f;if(e+=d.decode(h.subarray(0,i),{stream:h.byteLength<=i}),f+=Math.min(h.byteLength,i),h.byteLength>i){try{await c.cancel("upstream error body limit")}catch{}break}}return e+d.decode()}catch{return e}finally{try{c.releaseLock?.()}catch{}}}function f(a,b){let c;return new Response(JSON.stringify((c=d.LY[a]||(a>=500?{type:"server_error",code:"internal_server_error"}:{type:"invalid_request_error",code:""}),{error:{message:b||d.O[a]||"An error occurred",type:c.type,code:c.code}})),{status:a,headers:{"Content-Type":"application/json"}})}async function g(a,b=null){let c=await e(a,65536);if(b&&"function"==typeof b.parseError)try{let e=b.parseError(a,c);if(e&&"object"==typeof e){let b=e.message||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:e.status||a.status,message:b,resetsAtMs:e.resetsAtMs,rawBody:c}}}catch{}let f="";try{let a=JSON.parse(c);f="string"==typeof a?.error?.message?a.error.message:"string"==typeof a?.message?a.message:"string"==typeof a?.error_description?a.error_description:"string"==typeof a?.error?a.error:""}catch{f=c}let h=("string"==typeof f?f:"")||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:a.status,message:h,rawBody:c}}function h(a,b,c,d){let e=null;if("string"==typeof d&&d)try{JSON.parse(d),e=new Response(d,{status:a,headers:{"Content-Type":"application/json"}})}catch{}return{success:!1,status:a,error:b,resetsAtMs:c,response:e||f(a,b)}}function i(a,b,c,d){let e=Math.max(Math.ceil((new Date(c).getTime()-Date.now())/1e3),1);return new Response(JSON.stringify({error:{message:`${b} (${d})`}}),{status:a,headers:{"Content-Type":"application/json","Retry-After":String(e)}})}function j(a,b,c,d){let e=d||a.code||"FETCH_FAILED",f=a.message||"Unknown error",g=a.cause?.code,h=a.cause?.message,i=g||h?` (cause: ${[g,h].filter(Boolean).join(": ")})`:"";return`[${e}]: ${f}${i}`}},91645:a=>{a.exports=require("net")},94735:a=>{a.exports=require("events")},96930:a=>{a.exports=require("node-machine-id")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,1813,9698,5350,869,2142,5781,9353,1792,9059,7133],()=>b(b.s=49625));module.exports=c})();
@@ -1 +1 @@
1
- "use strict";(()=>{var a={};a.id=5018,a.ids=[5018],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},643:a=>{a.exports=require("node:perf_hooks")},1708:a=>{a.exports=require("node:process")},1932:a=>{a.exports=require("url")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4573:a=>{a.exports=require("node:buffer")},5425:(a,b,c)=>{function d(a){let b=a?.thread;return!!b&&"object"==typeof b&&!Array.isArray(b)&&"continue"===b.type&&"string"==typeof b.previous_message_id&&b.previous_message_id.trim().length>0}function e(a){return!!a?.thread&&"object"==typeof a.thread&&!Array.isArray(a.thread)}c.d(b,{k:()=>d,r:()=>e})},7066:a=>{a.exports=require("node:tty")},8128:a=>{a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},14985:a=>{a.exports=require("dns")},16698:a=>{a.exports=require("node:async_hooks")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{a.exports=require("os")},27910:a=>{a.exports=require("stream")},28354:a=>{a.exports=require("util")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{a.exports=require("node:child_process")},32467:a=>{a.exports=require("node:http2")},33873:a=>{a.exports=require("path")},34589:a=>{a.exports=require("node:assert")},36435:a=>{a.exports=require("impit")},37067:a=>{a.exports=require("node:http")},37540:a=>{a.exports=require("node:console")},37830:a=>{a.exports=require("node:stream/web")},38522:a=>{a.exports=require("node:zlib")},40610:a=>{a.exports=require("node:dns")},41692:a=>{a.exports=require("node:tls")},41792:a=>{a.exports=require("node:querystring")},43429:(a,b,c)=>{c.d(b,{Y:()=>e});let d=["user-agent","anthropic-beta","anthropic-version","anthropic-dangerous-direct-browser-access","x-app","x-stainless-helper-method","x-stainless-retry-count","x-stainless-runtime-version","x-stainless-package-version","x-stainless-runtime","x-stainless-lang","x-stainless-arch","x-stainless-os","x-stainless-timeout","x-claude-code-session-id","package-version","runtime-version","os","arch"];function e(a){if(!a||"object"!=typeof a)return null;let b={};for(let c of d)void 0!==a[c]&&null!==a[c]&&(b[c]=a[c]);return Object.keys(b).length>0?b:null}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},46293:a=>{a.exports=require("sql.js")},48161:a=>{a.exports=require("node:os")},51455:a=>{a.exports=require("node:fs/promises")},52261:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/v1/embeddings/route",pathname:"/api/v1/embeddings",filename:"route",bundlePath:"app/api/v1/embeddings/route"},distDir:".next-cli-build",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/switchboard-router/switchboard-router/src/app/api/v1/embeddings/route.js",nextConfigOutput:"standalone",userland:()=>c(98854),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/v1/embeddings/route";"/index"===d&&(d="/");let f=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:w,deploymentId:x,params:y,nextConfig:z,parsedUrl:A,isDraftMode:B,prerenderManifest:C,routerServerContext:D,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,resolvedPathname:G,clientReferenceManifest:H,serverActionsManifest:I}=f,J=(0,j.normalizeAppPath)(d),K=!!C.routes[G]&&(v.isDev||(0,t.isRouteCacheOwner)(G,v.cacheOwner,C.routes[G])),L=!!(C.dynamicRoutes[J]||K),M=async()=>((null==D?void 0:D.render404)?await D.render404(a,b,A,!1):b.end("This page could not be found"),null);if(L&&!B){let a=C.dynamicRoutes[J];if(a&&!1===a.fallback&&!K){if(z.adapterPath)return await M();throw new s.NoFallbackError}}let N=null;!L||v.isDev||B||(N="/index"===(N=G)?"/":N);let O=!0===v.isDev||!L,P=L&&!O;I&&H&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:H,serverActionsManifest:I});let Q=a.method||"GET",R=(0,h.getTracer)(),S=R.getActiveScopeSpan(),T=!!(null==D?void 0:D.isWrappedByNextServer),U=!!(0,g.getRequestMeta)(a,"minimalMode"),V=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,z,C,U);null==V||V.resetRequestCache(),globalThis.__incrementalCache=V;let W={params:y,previewProps:C.preview,renderOpts:{experimental:{authInterrupts:!!z.experimental.authInterrupts,useCacheTimeout:z.experimental.useCacheTimeout},cacheComponents:!!z.cacheComponents,validationLevel:z.experimental.instantInsights.validationLevel,isDraftMode:B,supportsDynamicResponse:O,incrementalCache:V,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:z.cacheLife,staticPageGenerationTimeout:z.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>v.onRequestError(a,b,d,e,D)},sharedContext:{buildId:w,deploymentId:x}},X=new k.NodeNextRequest(a),Y=new k.NodeNextResponse(b),Z=l.NextRequestAdapter.fromNodeNextRequest(X,(0,l.signalFromNodeResponse)(b)),$=async({previousCacheEntry:e})=>{try{if(!U&&E&&F&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await v.handle(Z,W);a.fetchMetrics=W.renderOpts.fetchMetrics;let f=W.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=W.renderOpts.collectedTags;if(!L)return await (0,o.I)(X,Y,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,e=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?z.expireTime:void 0:W.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),b}},_=async(d,f)=>{try{var g,i;let d=await v.handleResponse({req:a,nextConfig:z,cacheKey:N,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,responseGenerator:$,waitUntil:c.waitUntil,isMinimalMode:U});if(!L)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});U||b.setHeader("x-nextjs-cache",E?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),B&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);U&&L||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(X,Y,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await v.onRequestError(a,b,{routerKind:"App Router",routePath:J,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),L)throw b;await (0,o.I)(X,Y,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=R.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||J,g=`${Q} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(T&&S)await _(S,void 0);else{let b=R.getActiveScopeSpan();await R.withPropagatedContext(a.headers,()=>R.trace(m.BaseServerSpan.handleRequest,{spanName:`${Q} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":Q,"http.target":a.url}},a=>_(a,b)),void 0,!T)}}},53053:a=>{a.exports=require("node:diagnostics_channel")},55511:a=>{a.exports=require("crypto")},55591:a=>{a.exports=require("https")},57075:a=>{a.exports=require("node:stream")},57975:a=>{a.exports=require("node:util")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66077:(a,b,c)=>{c.d(b,{G:()=>e});var d=c(23832);async function e({provider:a,model:b,connectionId:c},f){if(!c||"noauth"===c)return f();let g=!1,h=()=>{g||(g=!0,(0,d.uw)(b,a,c,!1))};(0,d.uw)(b,a,c,!0);try{let a=await f();if(a instanceof Response){if(!(a instanceof Response)||!a.body)return h(),a;let b=a.body.getReader();return new Response(new ReadableStream({async pull(a){try{let{done:c,value:d}=await b.read();c?(h(),a.close()):a.enqueue(d)}catch(b){h(),a.error(b)}},async cancel(a){try{await b.cancel(a)}finally{h()}}}),{status:a.status,statusText:a.statusText,headers:a.headers})}return h(),a}catch(a){throw h(),a}}},71553:a=>{a.exports=require("node:dns/promises")},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},73429:a=>{a.exports=require("node:util/types")},73496:a=>{a.exports=require("http2")},74075:a=>{a.exports=require("zlib")},75008:(a,b,c)=>{c.d(b,{R:()=>f});var d=c(57034);let e=/^arn:(aws|aws-us-gov):codewhisperer:([^:]+):(\d{12}):profile\/([^/]+)$/;function f(a){let b="string"==typeof a?a.trim():"",c=b.match(e);return c&&(0,d.i7)(c[2])?{profileArn:b,region:c[2]}:null}},75215:(a,b,c)=>{c.d(b,{d:()=>m});var d=c(45350);let e={"jina-ai":"https://api.jina.ai/v1/embeddings"},f=a=>d.B$[a]?.embeddingConfig||{};function g(a){let b=f(a);return{buildUrl:()=>f(a).baseUrl||e[a],buildHeaders:a=>({"Content-Type":"application/json",...{Authorization:`Bearer ${a.apiKey||a.accessToken}`},...b.headers||{}}),buildBody:(a,{input:b,encoding_format:c,dimensions:d})=>{let e={model:a,input:b};if(c&&(e.encoding_format=c),null!=d&&""!==d){let a=Number(d);Number.isFinite(a)&&a>0&&(e.dimensions=a)}return e},normalize:a=>a}}function h(a){return a.startsWith("models/")?a:`models/${a}`}let i={buildUrl:(a,b,{input:c}={})=>{let d=b.apiKey||b.accessToken,e=h(a),f=Array.isArray(c)?"batchEmbedContents":"embedContent";return`https://generativelanguage.googleapis.com/v1beta/${e}:${f}?key=${encodeURIComponent(d)}`},buildHeaders:()=>({"Content-Type":"application/json"}),buildBody:(a,{input:b,dimensions:c})=>{let d=h(a),e=Number(c),f=Number.isFinite(e)&&e>0;return Array.isArray(b)?{requests:b.map(a=>({model:d,content:{parts:[{text:String(a)}]},...f?{outputDimensionality:e}:{}}))}:{model:d,content:{parts:[{text:String(b)}]},...f?{outputDimensionality:e}:{}}},normalize:(a,b)=>{if("list"===a.object&&Array.isArray(a.data))return a;let c=[];return Array.isArray(a.embeddings)?c=a.embeddings.map((a,b)=>({object:"embedding",index:b,embedding:a.values||[]})):a.embedding?.values&&(c=[{object:"embedding",index:0,embedding:a.embedding.values}]),{object:"list",data:c,model:b,usage:{prompt_tokens:0,total_tokens:0}}}},j={...g("openai"),buildUrl:(a,b)=>{let c=(b?.providerSpecificData?.baseUrl||"https://api.openai.com/v1").replace(/\/$/,"").replace(/\/embeddings$/,"");return`${c}/embeddings`}},k={...g("openai"),buildUrl:(a,b)=>{let c=b?.providerSpecificData?.baseUrl?.trim();if(!c)throw Error("Self-hosted Embedding requires a connection base URL");if(!["http:","https:"].includes(new URL(c).protocol))throw Error("Self-hosted Embedding base URL must use http or https");return`${c.replace(/\/+$/,"").replace(/\/embeddings$/,"")}/embeddings`},buildHeaders:a=>({"Content-Type":"application/json",...a?.apiKey||a?.accessToken?{Authorization:`Bearer ${a.apiKey||a.accessToken}`}:{}})},l={...Object.fromEntries(["openai","openrouter","mistral","voyage-ai","fireworks","together","nebius","github","nvidia","jina-ai","vercel-ai-gateway"].map(a=>[a,g(a)])),gemini:i,google_ai_studio:i,"selfhosted-embedding":k};function m(a){return l[a]?l[a]:a?.startsWith?.("openai-compatible-")||a?.startsWith?.("custom-embedding-")?j:null}},75919:a=>{a.exports=require("node:worker_threads")},76760:a=>{a.exports=require("node:path")},77030:a=>{a.exports=require("node:net")},77598:a=>{a.exports=require("node:crypto")},78102:(a,b,c)=>{c.d(b,{DM:()=>j,yH:()=>k});var d=c(59353),e=c(68658),f=c(41460);function g(){return global._clientKeyPolicyState}function h(a,b,c=null){let d={"content-type":"application/json"};return null!=c&&(d["retry-after"]=String(c)),{ok:!1,response:new Response(JSON.stringify({error:{message:"API key policy rejected this request",type:"client_key_policy_error",code:b}}),{status:a,headers:d})}}function i(a){return{ok:!0,mode:a,clientKey:null,clientKeyId:null,lease:null}}async function j({settings:a,rawKey:b,request:c,target:k}){if(c&&(0,e.v5)(c))return i("local");if(c)try{if(await (0,f.gN)(c))return i("cli")}catch{}if(!b)return a?.requireApiKey?h(401,"missing_api_key"):i("local");let l=await (0,d.PW)(b);if(!l)return a?.requireApiKey?h(401,"invalid_api_key"):i("local");let m=Date.now();if(l.expiresAt&&new Date(l.expiresAt).getTime()<=m)return h(403,"client_key_expired");if(!function(a,b){if(!a)return!0;let c=b.allowedModels||[],d=b.allowedCombos||[];return 0===c.length&&0===d.length||("combo"===a.kind?d.includes(a.id):c.includes(a.id))}(k,l))return h(403,"client_key_target_not_allowed");if(null!=l.spendLimitUsd){let a=await (0,d.fz)(l.id);if(l.spentUsd=a,a>=l.spendLimitUsd)return h(429,"client_key_spend_limit_exceeded")}let n=g().byId.get(l.id);if((!n||m-n.windowStartedAt>=6e4)&&(n={windowStartedAt:m,acceptedStarts:0,inFlight:n?.inFlight||0},g().byId.set(l.id,n)),null!=l.concurrencyLimit&&n.inFlight>=l.concurrencyLimit)return h(429,"client_key_concurrency_limit_exceeded",1);if(null!=l.rateLimitPerMinute&&n.acceptedStarts>=l.rateLimitPerMinute)return h(429,"client_key_rate_limit_exceeded",Math.max(1,Math.ceil((6e4-(m-n.windowStartedAt))/1e3)));n.acceptedStarts++,n.inFlight++;let o=!1;return{ok:!0,mode:"api-key",clientKey:l,clientKeyId:l.id,lease:{release(){if(o)return;o=!0;let a=g().byId.get(l.id);a&&(a.inFlight=Math.max(0,a.inFlight-1))}}}}async function k(a,b){let c;if(!a)return await b();let d=!1,e=()=>{d||(d=!0,a.release())};try{c=await b()}catch(a){throw e(),a}if(!(c instanceof Response&&c.body&&(c.headers.get("content-type")||"").toLowerCase().includes("text/event-stream")))return e(),c;let f=c.body.getReader();return new Response(new ReadableStream({async pull(a){try{let{done:b,value:c}=await f.read();b?(e(),a.close()):a.enqueue(c)}catch(b){e(),a.error(b)}},async cancel(a){e(),await f.cancel(a)}}),{status:c.status,statusText:c.statusText,headers:c.headers})}global._clientKeyPolicyState||(global._clientKeyPolicyState={byId:new Map})},78474:a=>{a.exports=require("node:events")},79646:a=>{a.exports=require("child_process")},79748:a=>{a.exports=require("fs/promises")},79868:a=>{a.exports=require("node:sqlite")},81509:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{P:()=>p}),c(40863);var e=c(67133),f=c(59353),g=c(38775),h=c(98158),i=c(89865),j=c(60290),k=c(7803),l=c(67828),m=c(78102),n=c(66077),o=a([h]);async function p(a){let b;try{b=await a.json()}catch{return k.warn("EMBEDDINGS","Invalid JSON body"),(0,i.yj)(j.gx.BAD_REQUEST,"Invalid JSON body")}if(!b||"object"!=typeof b||Array.isArray(b))return k.warn("EMBEDDINGS","Invalid JSON body shape"),(0,i.yj)(j.gx.BAD_REQUEST,"Invalid JSON body");let c=new URL(a.url),d=b.model,o=a.headers.get("x-connection-id")||null,p="1"===a.headers.get("x-switchboard-strict-connection");k.request("POST",`${c.pathname} | ${d}`);let q=await (0,f.mt)(),r=await (0,m.DM)({settings:q,rawKey:(0,e.Tr)(a),request:a,target:{kind:"model",id:d}});return r.ok?(0,m.yH)(r.lease,async()=>{let{clientKeyId:c}=r;if(!d)return k.warn("EMBEDDINGS","Missing model"),(0,i.yj)(j.gx.BAD_REQUEST,"Missing model");if(!b.input)return k.warn("EMBEDDINGS","Missing input"),(0,i.yj)(j.gx.BAD_REQUEST,"Missing required field: input");let f=await (0,g.getModelInfo)(d);if(!f.provider)return k.warn("EMBEDDINGS","Invalid model format",{model:d}),(0,i.yj)(j.gx.BAD_REQUEST,"Invalid model format");let{provider:m,model:q}=f;d!==`${m}/${q}`?k.info("ROUTING",`${d} → ${m}/${q}`):k.info("ROUTING",`Provider: ${m}, Model: ${q}`);let s=new Set,t=null,u=null;for(;;){let d=await (0,e.getProviderCredentials)(m,s,q,{preferredConnectionId:o,strictPreferredConnection:p,clientKeyId:c});if(!d||d.allRateLimited){if(d?.allRateLimited){let a=t||d.lastError||"Unavailable",b=u||Number(d.lastErrorCode)||j.gx.SERVICE_UNAVAILABLE;return k.warn("EMBEDDINGS",`[${m}/${q}] ${a} (${d.retryAfterHuman})`),(0,i.wO)(b,`[${m}/${q}] ${a}`,d.retryAfter,d.retryAfterHuman)}if(0===s.size)return k.error("AUTH",`No credentials for provider: ${m}`),(0,i.yj)(j.gx.BAD_REQUEST,`No credentials for provider: ${m}`);return k.warn("EMBEDDINGS","No more accounts available",{provider:m}),(0,i.yj)(u||j.gx.SERVICE_UNAVAILABLE,t||"All accounts unavailable")}k.info("AUTH",`\x1b[32mUsing ${m} account: ${d.connectionName}\x1b[0m`);let f=await (0,n.G)({provider:m,model:q,connectionId:d.connectionId},async()=>{let f=await (0,l.eU)(m,d),g=await (0,h.o)({clientKeyId:c,abortSignal:a.signal,body:{...b,model:`${m}/${q}`},modelInfo:{provider:m,model:q},credentials:f,log:k,onCredentialsRefreshed:async a=>{await (0,l.vN)(d.connectionId,{...a,existingProviderSpecificData:d.providerSpecificData,testStatus:"active"})},onRequestSuccess:async()=>{await (0,e.Pt)(d.connectionId,d,q)}});if(g.success)return g.response;if(499===g.status||a.signal.aborted)return{finalResponse:g.response};let{shouldFallback:i}=await (0,e.vk)(d.connectionId,g.status,g.error,m,q);return i?{retry:!0,error:g.error,status:g.status}:{finalResponse:g.response}});if(f instanceof Response)return f;if(f.finalResponse)return f.finalResponse;k.warn("AUTH",`Account ${d.connectionName} unavailable (${f.status}), trying fallback`),s.add(d.connectionId),t=f.error,u=f.status}}):r.response}h=(o.then?(await o)():o)[0],d()}catch(a){d(a)}})},81630:a=>{a.exports=require("http")},81787:a=>{a.exports=require("bun:sqlite")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{a.exports=require("better-sqlite3")},87997:a=>{a.exports=require("node:timers")},89865:(a,b,c)=>{c.d(b,{A1:()=>h,lR:()=>j,wO:()=>i,yj:()=>f,zL:()=>g});var d=c(87252);async function e(a,b){let c=a?.body?.getReader?.();if(!c)try{return(await a.text()).slice(0,b)}catch{return""}let d=new TextDecoder,e="",f=0;try{for(;f<b;){let{done:a,value:g}=await c.read();if(a)break;let h=g instanceof Uint8Array?g:new Uint8Array(g),i=b-f;if(e+=d.decode(h.subarray(0,i),{stream:h.byteLength<=i}),f+=Math.min(h.byteLength,i),h.byteLength>i){try{await c.cancel("upstream error body limit")}catch{}break}}return e+d.decode()}catch{return e}finally{try{c.releaseLock?.()}catch{}}}function f(a,b){let c;return new Response(JSON.stringify((c=d.LY[a]||(a>=500?{type:"server_error",code:"internal_server_error"}:{type:"invalid_request_error",code:""}),{error:{message:b||d.O[a]||"An error occurred",type:c.type,code:c.code}})),{status:a,headers:{"Content-Type":"application/json"}})}async function g(a,b=null){let c=await e(a,65536);if(b&&"function"==typeof b.parseError)try{let e=b.parseError(a,c);if(e&&"object"==typeof e){let b=e.message||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:e.status||a.status,message:b,resetsAtMs:e.resetsAtMs}}}catch{}let f="";try{let a=JSON.parse(c);f="string"==typeof a?.error?.message?a.error.message:"string"==typeof a?.message?a.message:"string"==typeof a?.error_description?a.error_description:"string"==typeof a?.error?a.error:""}catch{f=c}let h=("string"==typeof f?f:"")||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:a.status,message:h}}function h(a,b,c){return{success:!1,status:a,error:b,resetsAtMs:c,response:f(a,b)}}function i(a,b,c,d){let e=Math.max(Math.ceil((new Date(c).getTime()-Date.now())/1e3),1);return new Response(JSON.stringify({error:{message:`${b} (${d})`}}),{status:a,headers:{"Content-Type":"application/json","Retry-After":String(e)}})}function j(a,b,c,d){let e=d||a.code||"FETCH_FAILED",f=a.message||"Unknown error",g=a.cause?.code,h=a.cause?.message,i=g||h?` (cause: ${[g,h].filter(Boolean).join(": ")})`:"";return`[${e}]: ${f}${i}`}},91645:a=>{a.exports=require("net")},94735:a=>{a.exports=require("events")},96930:a=>{a.exports=require("node-machine-id")},98158:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{o:()=>p});var e=c(89865),f=c(60290),g=c(48400),h=c(41029),i=c(18129),j=c(75215),k=c(83204),l=c(12407),m=c(46052),n=c(45350),o=a([g]);async function p({body:a,modelInfo:b,credentials:c,log:d,onCredentialsRefreshed:o,onRequestSuccess:q,abortSignal:r}){let s,t,u,v,w,x,y,{provider:z,model:A}=b,B=(x=n.xq[z]||{},{identity:(y=n.B$[z]?.embeddingConfig||{}).identity||x.identity||"openai-node",format:y.format||x.format||"openai"}),C=(0,m.$6)(c),D=a.input;if(void 0===D)return(0,e.A1)(f.gx.BAD_REQUEST,"Missing required field: input");if("string"!=typeof D&&!Array.isArray(D))return(0,e.A1)(f.gx.BAD_REQUEST,"input must be a string or array of non-empty strings");let E="string"==typeof D?[D]:D;if(0===E.length||E.length>256)return(0,e.A1)(f.gx.BAD_REQUEST,"input must contain 1-256 items");if(E.some(a=>"string"!=typeof a||!a.trim()))return(0,e.A1)(f.gx.BAD_REQUEST,"input must be a non-empty string or array of non-empty strings");if(E.reduce((a,b)=>a+b.length,0)>1048576)return(0,e.A1)(f.gx.BAD_REQUEST,"input exceeds 1048576 total characters");let F=(0,j.d)(z);if(!F)return(0,e.A1)(f.gx.BAD_REQUEST,`Provider '${z}' does not support embeddings.`);let G={input:D};try{s=F.buildUrl(A,c,G),t=F.buildHeaders(c,G),u=F.buildBody(A,{input:D,encoding_format:a.encoding_format||"float",dimensions:a.dimensions})}catch(a){return(0,e.A1)(f.gx.BAD_REQUEST,a.message||"Invalid embeddings configuration")}d?.debug?.("EMBEDDINGS",`${z.toUpperCase()} | ${A} | input_type=${Array.isArray(D)?`array[${D.length}]`:"string"}`);let H=null;try{H=(await (0,l.oC)().getSettings?.())?.ssrfAllowHosts||null}catch{}try{"selfhosted-embedding"!==z&&await (0,k.h)(s,H),v=await (0,m.Fm)(s,{method:"POST",headers:t,body:JSON.stringify(u),redirect:"error",signal:r,identity:B.identity,provider:z,format:B.format},C)}catch(b){if(b?.name==="AbortError"||r?.aborted)return(0,e.A1)(499,"Embeddings request aborted");let a=(0,e.lR)(b,z,A,f.gx.BAD_GATEWAY);return d?.debug?.("EMBEDDINGS",`Fetch error: ${a}`),(0,e.A1)(f.gx.BAD_GATEWAY,a)}let I=(0,g.getExecutor)(z);if(!I?.noAuth&&(v.status===f.gx.UNAUTHORIZED||v.status===f.gx.FORBIDDEN)){let a=await (0,h.qZ)(async()=>{let a=await (0,i.MF)(z,c,()=>I.refreshCredentials(c,d));return a?.refreshToken&&a.refreshToken!==c.refreshToken&&(a.accessToken&&(c.accessToken=a.accessToken),c.refreshToken=a.refreshToken),a},3,d);if(a?.accessToken||a?.apiKey){d?.info?.("TOKEN",`${z.toUpperCase()} | refreshed for embeddings`),Object.assign(c,a),o&&await o(a);try{let a=F.buildHeaders(c,G),b=F.buildUrl(A,c,G);"selfhosted-embedding"!==z&&await (0,k.h)(b,H),await v.body?.cancel?.().catch?.(()=>{}),v=await (0,m.Fm)(b,{method:"POST",headers:a,body:JSON.stringify(u),redirect:"error",signal:r,identity:B.identity,provider:z,format:B.format},C)}catch(a){if(a?.name==="AbortError"||r?.aborted)return(0,e.A1)(499,"Embeddings request aborted");d?.warn?.("TOKEN",`${z.toUpperCase()} | retry after refresh failed`)}}else d?.warn?.("TOKEN",`${z.toUpperCase()} | refresh failed`)}if(!v.ok){let{statusCode:a,message:b}=await (0,e.zL)(v),c=(0,e.lR)(Error(b),z,A,a);return d?.debug?.("EMBEDDINGS",`Provider error: ${c}`),(0,e.A1)(a,c)}try{w=await v.json()}catch{return(0,e.A1)(f.gx.BAD_GATEWAY,`Invalid JSON response from ${z}`)}q&&await q();let J=F.normalize(w,A);return d?.debug?.("EMBEDDINGS",`Success | usage=${JSON.stringify(J.usage||{})}`),{success:!0,response:new Response(JSON.stringify(J),{headers:{"Content-Type":"application/json"}})}}g=(o.then?(await o)():o)[0],d()}catch(a){d(a)}})},98854:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{OPTIONS:()=>g,POST:()=>h});var e=c(81509),f=a([e]);async function g(){return new Response(null,{headers:{"Access-Control-Allow-Methods":"POST, OPTIONS","Access-Control-Allow-Headers":"*"}})}async function h(a){return await (0,e.P)(a)}e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,1813,7774,9698,5350,869,2142,5781,9353,4646,1792,3904,8789,4454,6406,9261,1937,9059,6533,7828,8400,7133],()=>b(b.s=52261));module.exports=c})();
1
+ "use strict";(()=>{var a={};a.id=5018,a.ids=[5018],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},643:a=>{a.exports=require("node:perf_hooks")},1708:a=>{a.exports=require("node:process")},1932:a=>{a.exports=require("url")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4573:a=>{a.exports=require("node:buffer")},5425:(a,b,c)=>{function d(a){let b=a?.thread;return!!b&&"object"==typeof b&&!Array.isArray(b)&&"continue"===b.type&&"string"==typeof b.previous_message_id&&b.previous_message_id.trim().length>0}function e(a){return!!a?.thread&&"object"==typeof a.thread&&!Array.isArray(a.thread)}c.d(b,{k:()=>d,r:()=>e})},7066:a=>{a.exports=require("node:tty")},8128:a=>{a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},14985:a=>{a.exports=require("dns")},16698:a=>{a.exports=require("node:async_hooks")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{a.exports=require("os")},27910:a=>{a.exports=require("stream")},28354:a=>{a.exports=require("util")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{a.exports=require("node:child_process")},32467:a=>{a.exports=require("node:http2")},33873:a=>{a.exports=require("path")},34589:a=>{a.exports=require("node:assert")},36435:a=>{a.exports=require("impit")},37067:a=>{a.exports=require("node:http")},37540:a=>{a.exports=require("node:console")},37830:a=>{a.exports=require("node:stream/web")},38522:a=>{a.exports=require("node:zlib")},40610:a=>{a.exports=require("node:dns")},41692:a=>{a.exports=require("node:tls")},41792:a=>{a.exports=require("node:querystring")},43429:(a,b,c)=>{c.d(b,{Y:()=>e});let d=["user-agent","anthropic-beta","anthropic-version","anthropic-dangerous-direct-browser-access","x-app","x-stainless-helper-method","x-stainless-retry-count","x-stainless-runtime-version","x-stainless-package-version","x-stainless-runtime","x-stainless-lang","x-stainless-arch","x-stainless-os","x-stainless-timeout","x-claude-code-session-id","package-version","runtime-version","os","arch"];function e(a){if(!a||"object"!=typeof a)return null;let b={};for(let c of d)void 0!==a[c]&&null!==a[c]&&(b[c]=a[c]);return Object.keys(b).length>0?b:null}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},46293:a=>{a.exports=require("sql.js")},48161:a=>{a.exports=require("node:os")},51455:a=>{a.exports=require("node:fs/promises")},52261:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/v1/embeddings/route",pathname:"/api/v1/embeddings",filename:"route",bundlePath:"app/api/v1/embeddings/route"},distDir:".next-cli-build",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/switchboard-router/switchboard-router/src/app/api/v1/embeddings/route.js",nextConfigOutput:"standalone",userland:()=>c(98854),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/v1/embeddings/route";"/index"===d&&(d="/");let f=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:w,deploymentId:x,params:y,nextConfig:z,parsedUrl:A,isDraftMode:B,prerenderManifest:C,routerServerContext:D,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,resolvedPathname:G,clientReferenceManifest:H,serverActionsManifest:I}=f,J=(0,j.normalizeAppPath)(d),K=!!C.routes[G]&&(v.isDev||(0,t.isRouteCacheOwner)(G,v.cacheOwner,C.routes[G])),L=!!(C.dynamicRoutes[J]||K),M=async()=>((null==D?void 0:D.render404)?await D.render404(a,b,A,!1):b.end("This page could not be found"),null);if(L&&!B){let a=C.dynamicRoutes[J];if(a&&!1===a.fallback&&!K){if(z.adapterPath)return await M();throw new s.NoFallbackError}}let N=null;!L||v.isDev||B||(N="/index"===(N=G)?"/":N);let O=!0===v.isDev||!L,P=L&&!O;I&&H&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:H,serverActionsManifest:I});let Q=a.method||"GET",R=(0,h.getTracer)(),S=R.getActiveScopeSpan(),T=!!(null==D?void 0:D.isWrappedByNextServer),U=!!(0,g.getRequestMeta)(a,"minimalMode"),V=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,z,C,U);null==V||V.resetRequestCache(),globalThis.__incrementalCache=V;let W={params:y,previewProps:C.preview,renderOpts:{experimental:{authInterrupts:!!z.experimental.authInterrupts,useCacheTimeout:z.experimental.useCacheTimeout},cacheComponents:!!z.cacheComponents,validationLevel:z.experimental.instantInsights.validationLevel,isDraftMode:B,supportsDynamicResponse:O,incrementalCache:V,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:z.cacheLife,staticPageGenerationTimeout:z.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>v.onRequestError(a,b,d,e,D)},sharedContext:{buildId:w,deploymentId:x}},X=new k.NodeNextRequest(a),Y=new k.NodeNextResponse(b),Z=l.NextRequestAdapter.fromNodeNextRequest(X,(0,l.signalFromNodeResponse)(b)),$=async({previousCacheEntry:e})=>{try{if(!U&&E&&F&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await v.handle(Z,W);a.fetchMetrics=W.renderOpts.fetchMetrics;let f=W.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=W.renderOpts.collectedTags;if(!L)return await (0,o.I)(X,Y,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,e=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?z.expireTime:void 0:W.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),b}},_=async(d,f)=>{try{var g,i;let d=await v.handleResponse({req:a,nextConfig:z,cacheKey:N,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,responseGenerator:$,waitUntil:c.waitUntil,isMinimalMode:U});if(!L)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});U||b.setHeader("x-nextjs-cache",E?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),B&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);U&&L||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(X,Y,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await v.onRequestError(a,b,{routerKind:"App Router",routePath:J,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),L)throw b;await (0,o.I)(X,Y,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=R.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||J,g=`${Q} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(T&&S)await _(S,void 0);else{let b=R.getActiveScopeSpan();await R.withPropagatedContext(a.headers,()=>R.trace(m.BaseServerSpan.handleRequest,{spanName:`${Q} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":Q,"http.target":a.url}},a=>_(a,b)),void 0,!T)}}},53053:a=>{a.exports=require("node:diagnostics_channel")},55511:a=>{a.exports=require("crypto")},55591:a=>{a.exports=require("https")},57075:a=>{a.exports=require("node:stream")},57975:a=>{a.exports=require("node:util")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66077:(a,b,c)=>{c.d(b,{G:()=>e});var d=c(23832);async function e({provider:a,model:b,connectionId:c},f){if(!c||"noauth"===c)return f();let g=!1,h=()=>{g||(g=!0,(0,d.uw)(b,a,c,!1))};(0,d.uw)(b,a,c,!0);try{let a=await f();if(a instanceof Response){if(!(a instanceof Response)||!a.body)return h(),a;let b=a.body.getReader();return new Response(new ReadableStream({async pull(a){try{let{done:c,value:d}=await b.read();c?(h(),a.close()):a.enqueue(d)}catch(b){h(),a.error(b)}},async cancel(a){try{await b.cancel(a)}finally{h()}}}),{status:a.status,statusText:a.statusText,headers:a.headers})}return h(),a}catch(a){throw h(),a}}},71553:a=>{a.exports=require("node:dns/promises")},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},73429:a=>{a.exports=require("node:util/types")},73496:a=>{a.exports=require("http2")},74075:a=>{a.exports=require("zlib")},75008:(a,b,c)=>{c.d(b,{R:()=>f});var d=c(57034);let e=/^arn:(aws|aws-us-gov):codewhisperer:([^:]+):(\d{12}):profile\/([^/]+)$/;function f(a){let b="string"==typeof a?a.trim():"",c=b.match(e);return c&&(0,d.i7)(c[2])?{profileArn:b,region:c[2]}:null}},75215:(a,b,c)=>{c.d(b,{d:()=>m});var d=c(45350);let e={"jina-ai":"https://api.jina.ai/v1/embeddings"},f=a=>d.B$[a]?.embeddingConfig||{};function g(a){let b=f(a);return{buildUrl:()=>f(a).baseUrl||e[a],buildHeaders:a=>({"Content-Type":"application/json",...{Authorization:`Bearer ${a.apiKey||a.accessToken}`},...b.headers||{}}),buildBody:(a,{input:b,encoding_format:c,dimensions:d})=>{let e={model:a,input:b};if(c&&(e.encoding_format=c),null!=d&&""!==d){let a=Number(d);Number.isFinite(a)&&a>0&&(e.dimensions=a)}return e},normalize:a=>a}}function h(a){return a.startsWith("models/")?a:`models/${a}`}let i={buildUrl:(a,b,{input:c}={})=>{let d=b.apiKey||b.accessToken,e=h(a),f=Array.isArray(c)?"batchEmbedContents":"embedContent";return`https://generativelanguage.googleapis.com/v1beta/${e}:${f}?key=${encodeURIComponent(d)}`},buildHeaders:()=>({"Content-Type":"application/json"}),buildBody:(a,{input:b,dimensions:c})=>{let d=h(a),e=Number(c),f=Number.isFinite(e)&&e>0;return Array.isArray(b)?{requests:b.map(a=>({model:d,content:{parts:[{text:String(a)}]},...f?{outputDimensionality:e}:{}}))}:{model:d,content:{parts:[{text:String(b)}]},...f?{outputDimensionality:e}:{}}},normalize:(a,b)=>{if("list"===a.object&&Array.isArray(a.data))return a;let c=[];return Array.isArray(a.embeddings)?c=a.embeddings.map((a,b)=>({object:"embedding",index:b,embedding:a.values||[]})):a.embedding?.values&&(c=[{object:"embedding",index:0,embedding:a.embedding.values}]),{object:"list",data:c,model:b,usage:{prompt_tokens:0,total_tokens:0}}}},j={...g("openai"),buildUrl:(a,b)=>{let c=(b?.providerSpecificData?.baseUrl||"https://api.openai.com/v1").replace(/\/$/,"").replace(/\/embeddings$/,"");return`${c}/embeddings`}},k={...g("openai"),buildUrl:(a,b)=>{let c=b?.providerSpecificData?.baseUrl?.trim();if(!c)throw Error("Self-hosted Embedding requires a connection base URL");if(!["http:","https:"].includes(new URL(c).protocol))throw Error("Self-hosted Embedding base URL must use http or https");return`${c.replace(/\/+$/,"").replace(/\/embeddings$/,"")}/embeddings`},buildHeaders:a=>({"Content-Type":"application/json",...a?.apiKey||a?.accessToken?{Authorization:`Bearer ${a.apiKey||a.accessToken}`}:{}})},l={...Object.fromEntries(["openai","openrouter","mistral","voyage-ai","fireworks","together","nebius","github","nvidia","jina-ai","vercel-ai-gateway"].map(a=>[a,g(a)])),gemini:i,google_ai_studio:i,"selfhosted-embedding":k};function m(a){return l[a]?l[a]:a?.startsWith?.("openai-compatible-")||a?.startsWith?.("custom-embedding-")?j:null}},75919:a=>{a.exports=require("node:worker_threads")},76760:a=>{a.exports=require("node:path")},77030:a=>{a.exports=require("node:net")},77598:a=>{a.exports=require("node:crypto")},78102:(a,b,c)=>{c.d(b,{DM:()=>j,yH:()=>k});var d=c(59353),e=c(68658),f=c(41460);function g(){return global._clientKeyPolicyState}function h(a,b,c=null){let d={"content-type":"application/json"};return null!=c&&(d["retry-after"]=String(c)),{ok:!1,response:new Response(JSON.stringify({error:{message:"API key policy rejected this request",type:"client_key_policy_error",code:b}}),{status:a,headers:d})}}function i(a){return{ok:!0,mode:a,clientKey:null,clientKeyId:null,lease:null}}async function j({settings:a,rawKey:b,request:c,target:k}){if(c&&(0,e.v5)(c))return i("local");if(c)try{if(await (0,f.gN)(c))return i("cli")}catch{}if(!b)return a?.requireApiKey?h(401,"missing_api_key"):i("local");let l=await (0,d.PW)(b);if(!l)return a?.requireApiKey?h(401,"invalid_api_key"):i("local");let m=Date.now();if(l.expiresAt&&new Date(l.expiresAt).getTime()<=m)return h(403,"client_key_expired");if(!function(a,b){if(!a)return!0;let c=b.allowedModels||[],d=b.allowedCombos||[];return 0===c.length&&0===d.length||("combo"===a.kind?d.includes(a.id):c.includes(a.id))}(k,l))return h(403,"client_key_target_not_allowed");if(null!=l.spendLimitUsd){let a=await (0,d.fz)(l.id);if(l.spentUsd=a,a>=l.spendLimitUsd)return h(429,"client_key_spend_limit_exceeded")}let n=g().byId.get(l.id);if((!n||m-n.windowStartedAt>=6e4)&&(n={windowStartedAt:m,acceptedStarts:0,inFlight:n?.inFlight||0},g().byId.set(l.id,n)),null!=l.concurrencyLimit&&n.inFlight>=l.concurrencyLimit)return h(429,"client_key_concurrency_limit_exceeded",1);if(null!=l.rateLimitPerMinute&&n.acceptedStarts>=l.rateLimitPerMinute)return h(429,"client_key_rate_limit_exceeded",Math.max(1,Math.ceil((6e4-(m-n.windowStartedAt))/1e3)));n.acceptedStarts++,n.inFlight++;let o=!1;return{ok:!0,mode:"api-key",clientKey:l,clientKeyId:l.id,lease:{release(){if(o)return;o=!0;let a=g().byId.get(l.id);a&&(a.inFlight=Math.max(0,a.inFlight-1))}}}}async function k(a,b){let c;if(!a)return await b();let d=!1,e=()=>{d||(d=!0,a.release())};try{c=await b()}catch(a){throw e(),a}if(!(c instanceof Response&&c.body&&(c.headers.get("content-type")||"").toLowerCase().includes("text/event-stream")))return e(),c;let f=c.body.getReader();return new Response(new ReadableStream({async pull(a){try{let{done:b,value:c}=await f.read();b?(e(),a.close()):a.enqueue(c)}catch(b){e(),a.error(b)}},async cancel(a){e(),await f.cancel(a)}}),{status:c.status,statusText:c.statusText,headers:c.headers})}global._clientKeyPolicyState||(global._clientKeyPolicyState={byId:new Map})},78474:a=>{a.exports=require("node:events")},79646:a=>{a.exports=require("child_process")},79748:a=>{a.exports=require("fs/promises")},79868:a=>{a.exports=require("node:sqlite")},81509:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{P:()=>p}),c(40863);var e=c(67133),f=c(59353),g=c(38775),h=c(98158),i=c(89865),j=c(60290),k=c(7803),l=c(67828),m=c(78102),n=c(66077),o=a([h]);async function p(a){let b;try{b=await a.json()}catch{return k.warn("EMBEDDINGS","Invalid JSON body"),(0,i.yj)(j.gx.BAD_REQUEST,"Invalid JSON body")}if(!b||"object"!=typeof b||Array.isArray(b))return k.warn("EMBEDDINGS","Invalid JSON body shape"),(0,i.yj)(j.gx.BAD_REQUEST,"Invalid JSON body");let c=new URL(a.url),d=b.model,o=a.headers.get("x-connection-id")||null,p="1"===a.headers.get("x-switchboard-strict-connection");k.request("POST",`${c.pathname} | ${d}`);let q=await (0,f.mt)(),r=await (0,m.DM)({settings:q,rawKey:(0,e.Tr)(a),request:a,target:{kind:"model",id:d}});return r.ok?(0,m.yH)(r.lease,async()=>{let{clientKeyId:c}=r;if(!d)return k.warn("EMBEDDINGS","Missing model"),(0,i.yj)(j.gx.BAD_REQUEST,"Missing model");if(!b.input)return k.warn("EMBEDDINGS","Missing input"),(0,i.yj)(j.gx.BAD_REQUEST,"Missing required field: input");let f=await (0,g.getModelInfo)(d);if(!f.provider)return k.warn("EMBEDDINGS","Invalid model format",{model:d}),(0,i.yj)(j.gx.BAD_REQUEST,"Invalid model format");let{provider:m,model:q}=f;d!==`${m}/${q}`?k.info("ROUTING",`${d} → ${m}/${q}`):k.info("ROUTING",`Provider: ${m}, Model: ${q}`);let s=new Set,t=null,u=null;for(;;){let d=await (0,e.getProviderCredentials)(m,s,q,{preferredConnectionId:o,strictPreferredConnection:p,clientKeyId:c});if(!d||d.allRateLimited){if(d?.allRateLimited){let a=t||d.lastError||"Unavailable",b=u||Number(d.lastErrorCode)||j.gx.SERVICE_UNAVAILABLE;return k.warn("EMBEDDINGS",`[${m}/${q}] ${a} (${d.retryAfterHuman})`),(0,i.wO)(b,`[${m}/${q}] ${a}`,d.retryAfter,d.retryAfterHuman)}if(0===s.size)return k.error("AUTH",`No credentials for provider: ${m}`),(0,i.yj)(j.gx.BAD_REQUEST,`No credentials for provider: ${m}`);return k.warn("EMBEDDINGS","No more accounts available",{provider:m}),(0,i.yj)(u||j.gx.SERVICE_UNAVAILABLE,t||"All accounts unavailable")}k.info("AUTH",`\x1b[32mUsing ${m} account: ${d.connectionName}\x1b[0m`);let f=await (0,n.G)({provider:m,model:q,connectionId:d.connectionId},async()=>{let f=await (0,l.eU)(m,d),g=await (0,h.o)({clientKeyId:c,abortSignal:a.signal,body:{...b,model:`${m}/${q}`},modelInfo:{provider:m,model:q},credentials:f,log:k,onCredentialsRefreshed:async a=>{await (0,l.vN)(d.connectionId,{...a,existingProviderSpecificData:d.providerSpecificData,testStatus:"active"})},onRequestSuccess:async()=>{await (0,e.Pt)(d.connectionId,d,q)}});if(g.success)return g.response;if(499===g.status||a.signal.aborted)return{finalResponse:g.response};let{shouldFallback:i}=await (0,e.vk)(d.connectionId,g.status,g.error,m,q);return i?{retry:!0,error:g.error,status:g.status}:{finalResponse:g.response}});if(f instanceof Response)return f;if(f.finalResponse)return f.finalResponse;k.warn("AUTH",`Account ${d.connectionName} unavailable (${f.status}), trying fallback`),s.add(d.connectionId),t=f.error,u=f.status}}):r.response}h=(o.then?(await o)():o)[0],d()}catch(a){d(a)}})},81630:a=>{a.exports=require("http")},81787:a=>{a.exports=require("bun:sqlite")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{a.exports=require("better-sqlite3")},87997:a=>{a.exports=require("node:timers")},89865:(a,b,c)=>{c.d(b,{A1:()=>h,lR:()=>j,wO:()=>i,yj:()=>f,zL:()=>g});var d=c(87252);async function e(a,b){let c=a?.body?.getReader?.();if(!c)try{return(await a.text()).slice(0,b)}catch{return""}let d=new TextDecoder,e="",f=0;try{for(;f<b;){let{done:a,value:g}=await c.read();if(a)break;let h=g instanceof Uint8Array?g:new Uint8Array(g),i=b-f;if(e+=d.decode(h.subarray(0,i),{stream:h.byteLength<=i}),f+=Math.min(h.byteLength,i),h.byteLength>i){try{await c.cancel("upstream error body limit")}catch{}break}}return e+d.decode()}catch{return e}finally{try{c.releaseLock?.()}catch{}}}function f(a,b){let c;return new Response(JSON.stringify((c=d.LY[a]||(a>=500?{type:"server_error",code:"internal_server_error"}:{type:"invalid_request_error",code:""}),{error:{message:b||d.O[a]||"An error occurred",type:c.type,code:c.code}})),{status:a,headers:{"Content-Type":"application/json"}})}async function g(a,b=null){let c=await e(a,65536);if(b&&"function"==typeof b.parseError)try{let e=b.parseError(a,c);if(e&&"object"==typeof e){let b=e.message||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:e.status||a.status,message:b,resetsAtMs:e.resetsAtMs,rawBody:c}}}catch{}let f="";try{let a=JSON.parse(c);f="string"==typeof a?.error?.message?a.error.message:"string"==typeof a?.message?a.message:"string"==typeof a?.error_description?a.error_description:"string"==typeof a?.error?a.error:""}catch{f=c}let h=("string"==typeof f?f:"")||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:a.status,message:h,rawBody:c}}function h(a,b,c,d){let e=null;if("string"==typeof d&&d)try{JSON.parse(d),e=new Response(d,{status:a,headers:{"Content-Type":"application/json"}})}catch{}return{success:!1,status:a,error:b,resetsAtMs:c,response:e||f(a,b)}}function i(a,b,c,d){let e=Math.max(Math.ceil((new Date(c).getTime()-Date.now())/1e3),1);return new Response(JSON.stringify({error:{message:`${b} (${d})`}}),{status:a,headers:{"Content-Type":"application/json","Retry-After":String(e)}})}function j(a,b,c,d){let e=d||a.code||"FETCH_FAILED",f=a.message||"Unknown error",g=a.cause?.code,h=a.cause?.message,i=g||h?` (cause: ${[g,h].filter(Boolean).join(": ")})`:"";return`[${e}]: ${f}${i}`}},91645:a=>{a.exports=require("net")},94735:a=>{a.exports=require("events")},96930:a=>{a.exports=require("node-machine-id")},98158:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{o:()=>p});var e=c(89865),f=c(60290),g=c(48400),h=c(41029),i=c(18129),j=c(75215),k=c(83204),l=c(12407),m=c(46052),n=c(45350),o=a([g]);async function p({body:a,modelInfo:b,credentials:c,log:d,onCredentialsRefreshed:o,onRequestSuccess:q,abortSignal:r}){let s,t,u,v,w,x,y,{provider:z,model:A}=b,B=(x=n.xq[z]||{},{identity:(y=n.B$[z]?.embeddingConfig||{}).identity||x.identity||"openai-node",format:y.format||x.format||"openai"}),C=(0,m.$6)(c),D=a.input;if(void 0===D)return(0,e.A1)(f.gx.BAD_REQUEST,"Missing required field: input");if("string"!=typeof D&&!Array.isArray(D))return(0,e.A1)(f.gx.BAD_REQUEST,"input must be a string or array of non-empty strings");let E="string"==typeof D?[D]:D;if(0===E.length||E.length>256)return(0,e.A1)(f.gx.BAD_REQUEST,"input must contain 1-256 items");if(E.some(a=>"string"!=typeof a||!a.trim()))return(0,e.A1)(f.gx.BAD_REQUEST,"input must be a non-empty string or array of non-empty strings");if(E.reduce((a,b)=>a+b.length,0)>1048576)return(0,e.A1)(f.gx.BAD_REQUEST,"input exceeds 1048576 total characters");let F=(0,j.d)(z);if(!F)return(0,e.A1)(f.gx.BAD_REQUEST,`Provider '${z}' does not support embeddings.`);let G={input:D};try{s=F.buildUrl(A,c,G),t=F.buildHeaders(c,G),u=F.buildBody(A,{input:D,encoding_format:a.encoding_format||"float",dimensions:a.dimensions})}catch(a){return(0,e.A1)(f.gx.BAD_REQUEST,a.message||"Invalid embeddings configuration")}d?.debug?.("EMBEDDINGS",`${z.toUpperCase()} | ${A} | input_type=${Array.isArray(D)?`array[${D.length}]`:"string"}`);let H=null;try{H=(await (0,l.oC)().getSettings?.())?.ssrfAllowHosts||null}catch{}try{"selfhosted-embedding"!==z&&await (0,k.h)(s,H),v=await (0,m.Fm)(s,{method:"POST",headers:t,body:JSON.stringify(u),redirect:"error",signal:r,identity:B.identity,provider:z,format:B.format},C)}catch(b){if(b?.name==="AbortError"||r?.aborted)return(0,e.A1)(499,"Embeddings request aborted");let a=(0,e.lR)(b,z,A,f.gx.BAD_GATEWAY);return d?.debug?.("EMBEDDINGS",`Fetch error: ${a}`),(0,e.A1)(f.gx.BAD_GATEWAY,a)}let I=(0,g.getExecutor)(z);if(!I?.noAuth&&(v.status===f.gx.UNAUTHORIZED||v.status===f.gx.FORBIDDEN)){let a=await (0,h.qZ)(async()=>{let a=await (0,i.MF)(z,c,()=>I.refreshCredentials(c,d));return a?.refreshToken&&a.refreshToken!==c.refreshToken&&(a.accessToken&&(c.accessToken=a.accessToken),c.refreshToken=a.refreshToken),a},3,d);if(a?.accessToken||a?.apiKey){d?.info?.("TOKEN",`${z.toUpperCase()} | refreshed for embeddings`),Object.assign(c,a),o&&await o(a);try{let a=F.buildHeaders(c,G),b=F.buildUrl(A,c,G);"selfhosted-embedding"!==z&&await (0,k.h)(b,H),await v.body?.cancel?.().catch?.(()=>{}),v=await (0,m.Fm)(b,{method:"POST",headers:a,body:JSON.stringify(u),redirect:"error",signal:r,identity:B.identity,provider:z,format:B.format},C)}catch(a){if(a?.name==="AbortError"||r?.aborted)return(0,e.A1)(499,"Embeddings request aborted");d?.warn?.("TOKEN",`${z.toUpperCase()} | retry after refresh failed`)}}else d?.warn?.("TOKEN",`${z.toUpperCase()} | refresh failed`)}if(!v.ok){let{statusCode:a,message:b}=await (0,e.zL)(v),c=(0,e.lR)(Error(b),z,A,a);return d?.debug?.("EMBEDDINGS",`Provider error: ${c}`),(0,e.A1)(a,c)}try{w=await v.json()}catch{return(0,e.A1)(f.gx.BAD_GATEWAY,`Invalid JSON response from ${z}`)}q&&await q();let J=F.normalize(w,A);return d?.debug?.("EMBEDDINGS",`Success | usage=${JSON.stringify(J.usage||{})}`),{success:!0,response:new Response(JSON.stringify(J),{headers:{"Content-Type":"application/json"}})}}g=(o.then?(await o)():o)[0],d()}catch(a){d(a)}})},98854:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{OPTIONS:()=>g,POST:()=>h});var e=c(81509),f=a([e]);async function g(){return new Response(null,{headers:{"Access-Control-Allow-Methods":"POST, OPTIONS","Access-Control-Allow-Headers":"*"}})}async function h(a){return await (0,e.P)(a)}e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,1813,7774,9698,5350,869,2142,5781,9353,4646,1792,3904,8789,4454,6406,9261,1937,9059,6533,7828,8400,7133],()=>b(b.s=52261));module.exports=c})();
@@ -1 +1 @@
1
- (()=>{var a={};a.id=2922,a.ids=[2922],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19225:(a,b,c)=>{"use strict";a.exports=c(44870)},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},39006:a=>{"use strict";a.exports=JSON.parse('{"UU":"switchboard-app","rE":"0.9.63"}')},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48045:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/version/route",pathname:"/api/version",filename:"route",bundlePath:"app/api/version/route"},distDir:".next-cli-build",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/switchboard-router/switchboard-router/src/app/api/version/route.js",nextConfigOutput:"standalone",userland:()=>c(78778),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/version/route";"/index"===d&&(d="/");let f=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:w,deploymentId:x,params:y,nextConfig:z,parsedUrl:A,isDraftMode:B,prerenderManifest:C,routerServerContext:D,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,resolvedPathname:G,clientReferenceManifest:H,serverActionsManifest:I}=f,J=(0,j.normalizeAppPath)(d),K=!!C.routes[G]&&(v.isDev||(0,t.isRouteCacheOwner)(G,v.cacheOwner,C.routes[G])),L=!!(C.dynamicRoutes[J]||K),M=async()=>((null==D?void 0:D.render404)?await D.render404(a,b,A,!1):b.end("This page could not be found"),null);if(L&&!B){let a=C.dynamicRoutes[J];if(a&&!1===a.fallback&&!K){if(z.adapterPath)return await M();throw new s.NoFallbackError}}let N=null;!L||v.isDev||B||(N="/index"===(N=G)?"/":N);let O=!0===v.isDev||!L,P=L&&!O;I&&H&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:H,serverActionsManifest:I});let Q=a.method||"GET",R=(0,h.getTracer)(),S=R.getActiveScopeSpan(),T=!!(null==D?void 0:D.isWrappedByNextServer),U=!!(0,g.getRequestMeta)(a,"minimalMode"),V=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,z,C,U);null==V||V.resetRequestCache(),globalThis.__incrementalCache=V;let W={params:y,previewProps:C.preview,renderOpts:{experimental:{authInterrupts:!!z.experimental.authInterrupts,useCacheTimeout:z.experimental.useCacheTimeout},cacheComponents:!!z.cacheComponents,validationLevel:z.experimental.instantInsights.validationLevel,isDraftMode:B,supportsDynamicResponse:O,incrementalCache:V,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:z.cacheLife,staticPageGenerationTimeout:z.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>v.onRequestError(a,b,d,e,D)},sharedContext:{buildId:w,deploymentId:x}},X=new k.NodeNextRequest(a),Y=new k.NodeNextResponse(b),Z=l.NextRequestAdapter.fromNodeNextRequest(X,(0,l.signalFromNodeResponse)(b)),$=async({previousCacheEntry:e})=>{try{if(!U&&E&&F&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await v.handle(Z,W);a.fetchMetrics=W.renderOpts.fetchMetrics;let f=W.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=W.renderOpts.collectedTags;if(!L)return await (0,o.I)(X,Y,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,e=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?z.expireTime:void 0:W.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),b}},_=async(d,f)=>{try{var g,i;let d=await v.handleResponse({req:a,nextConfig:z,cacheKey:N,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,responseGenerator:$,waitUntil:c.waitUntil,isMinimalMode:U});if(!L)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});U||b.setHeader("x-nextjs-cache",E?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),B&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);U&&L||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(X,Y,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await v.onRequestError(a,b,{routerKind:"App Router",routePath:J,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),L)throw b;await (0,o.I)(X,Y,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=R.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||J,g=`${Q} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(T&&S)await _(S,void 0);else{let b=R.getActiveScopeSpan();await R.withPropagatedContext(a.headers,()=>R.trace(m.BaseServerSpan.handleRequest,{spanName:`${Q} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":Q,"http.target":a.url}},a=>_(a,b)),void 0,!T)}}},55511:a=>{"use strict";a.exports=require("crypto")},55591:a=>{"use strict";a.exports=require("https")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},78335:()=>{},78778:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GET:()=>i,compareVersions:()=>g});var d=c(55591),e=c.n(d),f=c(39006);function g(a,b){if(!a||!b)return 0;let c=String(a).replace(/^v/i,"").split(".").map(a=>parseInt(a,10)||0),d=String(b).replace(/^v/i,"").split(".").map(a=>parseInt(a,10)||0),e=Math.max(c.length,d.length,3);for(let a=0;a<e;a++){let b=c[a]||0,e=d[a]||0;if(b>e)return 1;if(b<e)return -1}return 0}let h=null;async function i(){let a,b=f.rE,c=(a=process.env.SWITCHBOARD_NPM_PACKAGE||process.env.NPM_UPDATE_PACKAGE)&&String(a).trim()?String(a).trim():"switchboard-router";if(!c)return Response.json({currentVersion:b,latestVersion:null,hasUpdate:!1,packageName:null,reason:"no_package_configured"});let d=Date.now();if(h&&d-h.at<36e5)return Response.json(h.payload);let i=await new Promise(a=>{if(!c)return void a(null);let b=e().get(`https://registry.npmjs.org/${encodeURIComponent(c)}/latest`,{timeout:4e3},b=>{if(b.statusCode&&b.statusCode>=400){b.resume(),a(null);return}let d="";b.on("data",a=>d+=a),b.on("end",()=>{try{let b=JSON.parse(d);a({version:"string"==typeof b.version?b.version:null,name:"string"==typeof b.name?b.name:c,description:"string"==typeof b.description?b.description:""})}catch{a(null)}})});b.on("error",()=>a(null)),b.on("timeout",()=>{b.destroy(),a(null)})});if(!i?.version)return h?Response.json(h.payload):Response.json({currentVersion:b,latestVersion:null,hasUpdate:!1,packageName:c,reason:"registry_unavailable"});if(!function(a,b){if(!a?.version||a.name&&b&&a.name!==b)return!1;let c=(a.description||"").toLowerCase();return!!/switchboard|routing|router|openai|claude|gateway|model/.test(c)||!c&&a.name===b}(i,c))return Response.json({currentVersion:b,latestVersion:null,hasUpdate:!1,packageName:c,reason:"package_identity_mismatch"});let j=i.version,k=g(j,b)>0,l={currentVersion:b,latestVersion:j,hasUpdate:k,packageName:c};return h={at:Date.now(),payload:l},Response.json(l)}},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},92280:(a,b,c)=>{"use strict";Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},96487:()=>{}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970],()=>b(b.s=48045));module.exports=c})();
1
+ (()=>{var a={};a.id=2922,a.ids=[2922],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19225:(a,b,c)=>{"use strict";a.exports=c(44870)},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},39006:a=>{"use strict";a.exports=JSON.parse('{"UU":"switchboard-app","rE":"0.9.65"}')},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48045:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/version/route",pathname:"/api/version",filename:"route",bundlePath:"app/api/version/route"},distDir:".next-cli-build",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/switchboard-router/switchboard-router/src/app/api/version/route.js",nextConfigOutput:"standalone",userland:()=>c(78778),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/version/route";"/index"===d&&(d="/");let f=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:w,deploymentId:x,params:y,nextConfig:z,parsedUrl:A,isDraftMode:B,prerenderManifest:C,routerServerContext:D,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,resolvedPathname:G,clientReferenceManifest:H,serverActionsManifest:I}=f,J=(0,j.normalizeAppPath)(d),K=!!C.routes[G]&&(v.isDev||(0,t.isRouteCacheOwner)(G,v.cacheOwner,C.routes[G])),L=!!(C.dynamicRoutes[J]||K),M=async()=>((null==D?void 0:D.render404)?await D.render404(a,b,A,!1):b.end("This page could not be found"),null);if(L&&!B){let a=C.dynamicRoutes[J];if(a&&!1===a.fallback&&!K){if(z.adapterPath)return await M();throw new s.NoFallbackError}}let N=null;!L||v.isDev||B||(N="/index"===(N=G)?"/":N);let O=!0===v.isDev||!L,P=L&&!O;I&&H&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:H,serverActionsManifest:I});let Q=a.method||"GET",R=(0,h.getTracer)(),S=R.getActiveScopeSpan(),T=!!(null==D?void 0:D.isWrappedByNextServer),U=!!(0,g.getRequestMeta)(a,"minimalMode"),V=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,z,C,U);null==V||V.resetRequestCache(),globalThis.__incrementalCache=V;let W={params:y,previewProps:C.preview,renderOpts:{experimental:{authInterrupts:!!z.experimental.authInterrupts,useCacheTimeout:z.experimental.useCacheTimeout},cacheComponents:!!z.cacheComponents,validationLevel:z.experimental.instantInsights.validationLevel,isDraftMode:B,supportsDynamicResponse:O,incrementalCache:V,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:z.cacheLife,staticPageGenerationTimeout:z.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>v.onRequestError(a,b,d,e,D)},sharedContext:{buildId:w,deploymentId:x}},X=new k.NodeNextRequest(a),Y=new k.NodeNextResponse(b),Z=l.NextRequestAdapter.fromNodeNextRequest(X,(0,l.signalFromNodeResponse)(b)),$=async({previousCacheEntry:e})=>{try{if(!U&&E&&F&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await v.handle(Z,W);a.fetchMetrics=W.renderOpts.fetchMetrics;let f=W.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=W.renderOpts.collectedTags;if(!L)return await (0,o.I)(X,Y,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,e=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?z.expireTime:void 0:W.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),b}},_=async(d,f)=>{try{var g,i;let d=await v.handleResponse({req:a,nextConfig:z,cacheKey:N,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,responseGenerator:$,waitUntil:c.waitUntil,isMinimalMode:U});if(!L)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});U||b.setHeader("x-nextjs-cache",E?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),B&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);U&&L||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(X,Y,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await v.onRequestError(a,b,{routerKind:"App Router",routePath:J,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),L)throw b;await (0,o.I)(X,Y,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=R.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||J,g=`${Q} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(T&&S)await _(S,void 0);else{let b=R.getActiveScopeSpan();await R.withPropagatedContext(a.headers,()=>R.trace(m.BaseServerSpan.handleRequest,{spanName:`${Q} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":Q,"http.target":a.url}},a=>_(a,b)),void 0,!T)}}},55511:a=>{"use strict";a.exports=require("crypto")},55591:a=>{"use strict";a.exports=require("https")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},78335:()=>{},78778:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GET:()=>i,compareVersions:()=>g});var d=c(55591),e=c.n(d),f=c(39006);function g(a,b){if(!a||!b)return 0;let c=String(a).replace(/^v/i,"").split(".").map(a=>parseInt(a,10)||0),d=String(b).replace(/^v/i,"").split(".").map(a=>parseInt(a,10)||0),e=Math.max(c.length,d.length,3);for(let a=0;a<e;a++){let b=c[a]||0,e=d[a]||0;if(b>e)return 1;if(b<e)return -1}return 0}let h=null;async function i(){let a,b=f.rE,c=(a=process.env.SWITCHBOARD_NPM_PACKAGE||process.env.NPM_UPDATE_PACKAGE)&&String(a).trim()?String(a).trim():"switchboard-router";if(!c)return Response.json({currentVersion:b,latestVersion:null,hasUpdate:!1,packageName:null,reason:"no_package_configured"});let d=Date.now();if(h&&d-h.at<36e5)return Response.json(h.payload);let i=await new Promise(a=>{if(!c)return void a(null);let b=e().get(`https://registry.npmjs.org/${encodeURIComponent(c)}/latest`,{timeout:4e3},b=>{if(b.statusCode&&b.statusCode>=400){b.resume(),a(null);return}let d="";b.on("data",a=>d+=a),b.on("end",()=>{try{let b=JSON.parse(d);a({version:"string"==typeof b.version?b.version:null,name:"string"==typeof b.name?b.name:c,description:"string"==typeof b.description?b.description:""})}catch{a(null)}})});b.on("error",()=>a(null)),b.on("timeout",()=>{b.destroy(),a(null)})});if(!i?.version)return h?Response.json(h.payload):Response.json({currentVersion:b,latestVersion:null,hasUpdate:!1,packageName:c,reason:"registry_unavailable"});if(!function(a,b){if(!a?.version||a.name&&b&&a.name!==b)return!1;let c=(a.description||"").toLowerCase();return!!/switchboard|routing|router|openai|claude|gateway|model/.test(c)||!c&&a.name===b}(i,c))return Response.json({currentVersion:b,latestVersion:null,hasUpdate:!1,packageName:c,reason:"package_identity_mismatch"});let j=i.version,k=g(j,b)>0,l={currentVersion:b,latestVersion:j,hasUpdate:k,packageName:c};return h={at:Date.now(),payload:l},Response.json(l)}},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},92280:(a,b,c)=>{"use strict";Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},96487:()=>{}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970],()=>b(b.s=48045));module.exports=c})();