@zwbigi/ink-xy 0.1.13 → 0.1.15

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 (172) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +4 -3
  3. package/.next/build-manifest.json +2 -2
  4. package/.next/routes-manifest.json +6 -0
  5. package/.next/server/app/_global-error/page.js +2 -2
  6. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  7. package/.next/server/app/_global-error.html +1 -1
  8. package/.next/server/app/_global-error.rsc +1 -1
  9. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  10. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  12. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  13. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  14. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  15. package/.next/server/app/_not-found/page.js +2 -2
  16. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  17. package/.next/server/app/_not-found.html +1 -1
  18. package/.next/server/app/_not-found.rsc +1 -1
  19. package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  20. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  21. package/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  22. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  23. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  24. package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  25. package/.next/server/app/api/agent/[id]/events/route.js +2 -2
  26. package/.next/server/app/api/agent/[id]/events/route.js.nft.json +1 -1
  27. package/.next/server/app/api/agent/[id]/route.js +1 -1
  28. package/.next/server/app/api/agent/[id]/route.js.nft.json +1 -1
  29. package/.next/server/app/api/agent/describe-image/route.js +1 -1
  30. package/.next/server/app/api/agent/describe-image/route.js.nft.json +1 -1
  31. package/.next/server/app/api/agent/new/route.js +1 -1
  32. package/.next/server/app/api/agent/new/route.js.nft.json +1 -1
  33. package/.next/server/app/api/agent/parse-characters/route.js +43 -0
  34. package/.next/server/app/api/agent/parse-characters/route.js.nft.json +1 -0
  35. package/.next/server/app/api/agent/parse-characters/route_client-reference-manifest.js +1 -0
  36. package/.next/server/app/api/auth/all-providers/route.js +1 -1
  37. package/.next/server/app/api/auth/all-providers/route.js.nft.json +1 -1
  38. package/.next/server/app/api/auth/api-key/[provider]/route.js +1 -1
  39. package/.next/server/app/api/auth/api-key/[provider]/route.js.nft.json +1 -1
  40. package/.next/server/app/api/auth/login/[provider]/route.js +1 -1
  41. package/.next/server/app/api/auth/login/[provider]/route.js.nft.json +1 -1
  42. package/.next/server/app/api/auth/logout/[provider]/route.js +1 -1
  43. package/.next/server/app/api/auth/logout/[provider]/route.js.nft.json +1 -1
  44. package/.next/server/app/api/auth/providers/route.js +1 -1
  45. package/.next/server/app/api/auth/providers/route.js.nft.json +1 -1
  46. package/.next/server/app/api/default-cwd/route.js +1 -1
  47. package/.next/server/app/api/files/[...path]/route.js +3 -3
  48. package/.next/server/app/api/files/[...path]/route.js.nft.json +1 -1
  49. package/.next/server/app/api/gem-xy/[id]/route.js +1 -1
  50. package/.next/server/app/api/gem-xy/[id]/route.js.nft.json +1 -1
  51. package/.next/server/app/api/gem-xy/route.js +1 -1
  52. package/.next/server/app/api/gem-xy/route.js.nft.json +1 -1
  53. package/.next/server/app/api/home/route.js +1 -1
  54. package/.next/server/app/api/inkos/route.js +1 -1
  55. package/.next/server/app/api/inkos/route.js.nft.json +1 -1
  56. package/.next/server/app/api/models/route.js +1 -1
  57. package/.next/server/app/api/models/route.js.nft.json +1 -1
  58. package/.next/server/app/api/models-config/route.js +1 -1
  59. package/.next/server/app/api/models-config/route.js.nft.json +1 -1
  60. package/.next/server/app/api/register-cwd/route.js +1 -1
  61. package/.next/server/app/api/sessions/[id]/context/route.js +2 -2
  62. package/.next/server/app/api/sessions/[id]/context/route.js.nft.json +1 -1
  63. package/.next/server/app/api/sessions/[id]/lock/route.js +1 -1
  64. package/.next/server/app/api/sessions/[id]/lock/route.js.nft.json +1 -1
  65. package/.next/server/app/api/sessions/[id]/route.js +1 -1
  66. package/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -1
  67. package/.next/server/app/api/sessions/new/route.js +1 -1
  68. package/.next/server/app/api/sessions/route.js +1 -1
  69. package/.next/server/app/api/sessions/route.js.nft.json +1 -1
  70. package/.next/server/app/api/skills/install/route.js +1 -1
  71. package/.next/server/app/api/skills/install/route.js.nft.json +1 -1
  72. package/.next/server/app/api/skills/route.js +1 -1
  73. package/.next/server/app/api/skills/route.js.nft.json +1 -1
  74. package/.next/server/app/api/skills/search/route.js +1 -1
  75. package/.next/server/app/api/skills/search/route.js.nft.json +1 -1
  76. package/.next/server/app/api/tts/synthesize/route.js +1 -1
  77. package/.next/server/app/api/tts/synthesize/route.js.nft.json +1 -1
  78. package/.next/server/app/favicon.ico/route.js +1 -1
  79. package/.next/server/app/index.html +1 -1
  80. package/.next/server/app/index.rsc +2 -2
  81. package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  82. package/.next/server/app/index.segments/_full.segment.rsc +2 -2
  83. package/.next/server/app/index.segments/_head.segment.rsc +1 -1
  84. package/.next/server/app/index.segments/_index.segment.rsc +1 -1
  85. package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  86. package/.next/server/app/page.js +64 -29
  87. package/.next/server/app/page_client-reference-manifest.js +1 -1
  88. package/.next/server/app-paths-manifest.json +4 -3
  89. package/.next/server/chunks/162.js +1 -1
  90. package/.next/server/middleware-build-manifest.js +1 -1
  91. package/.next/server/pages/404.html +1 -1
  92. package/.next/server/pages/500.html +1 -1
  93. package/.next/static/Y5hk_NhnX1o3afMM2Tt5-/_buildManifest.js +1 -0
  94. package/.next/static/chunks/app/_global-error/page-63ec4518ba538b61.js +1 -0
  95. package/.next/static/chunks/app/api/agent/[id]/events/route-63ec4518ba538b61.js +1 -0
  96. package/.next/static/chunks/app/api/agent/[id]/route-63ec4518ba538b61.js +1 -0
  97. package/.next/static/chunks/app/api/agent/describe-image/route-63ec4518ba538b61.js +1 -0
  98. package/.next/static/chunks/app/api/agent/new/route-63ec4518ba538b61.js +1 -0
  99. package/.next/static/chunks/app/api/agent/parse-characters/route-63ec4518ba538b61.js +1 -0
  100. package/.next/static/chunks/app/api/auth/all-providers/route-63ec4518ba538b61.js +1 -0
  101. package/.next/static/chunks/app/api/auth/api-key/[provider]/route-63ec4518ba538b61.js +1 -0
  102. package/.next/static/chunks/app/api/auth/login/[provider]/route-63ec4518ba538b61.js +1 -0
  103. package/.next/static/chunks/app/api/auth/logout/[provider]/route-63ec4518ba538b61.js +1 -0
  104. package/.next/static/chunks/app/api/auth/providers/route-63ec4518ba538b61.js +1 -0
  105. package/.next/static/chunks/app/api/default-cwd/route-63ec4518ba538b61.js +1 -0
  106. package/.next/static/chunks/app/api/files/[...path]/route-63ec4518ba538b61.js +1 -0
  107. package/.next/static/chunks/app/api/gem-xy/[id]/route-63ec4518ba538b61.js +1 -0
  108. package/.next/static/chunks/app/api/gem-xy/route-63ec4518ba538b61.js +1 -0
  109. package/.next/static/chunks/app/api/home/route-63ec4518ba538b61.js +1 -0
  110. package/.next/static/chunks/app/api/inkos/route-63ec4518ba538b61.js +1 -0
  111. package/.next/static/chunks/app/api/models/route-63ec4518ba538b61.js +1 -0
  112. package/.next/static/chunks/app/api/models-config/route-63ec4518ba538b61.js +1 -0
  113. package/.next/static/chunks/app/api/register-cwd/route-63ec4518ba538b61.js +1 -0
  114. package/.next/static/chunks/app/api/sessions/[id]/context/route-63ec4518ba538b61.js +1 -0
  115. package/.next/static/chunks/app/api/sessions/[id]/lock/route-63ec4518ba538b61.js +1 -0
  116. package/.next/static/chunks/app/api/sessions/[id]/route-63ec4518ba538b61.js +1 -0
  117. package/.next/static/chunks/app/api/sessions/new/route-63ec4518ba538b61.js +1 -0
  118. package/.next/static/chunks/app/api/sessions/route-63ec4518ba538b61.js +1 -0
  119. package/.next/static/chunks/app/api/skills/install/route-63ec4518ba538b61.js +1 -0
  120. package/.next/static/chunks/app/api/skills/route-63ec4518ba538b61.js +1 -0
  121. package/.next/static/chunks/app/api/skills/search/route-63ec4518ba538b61.js +1 -0
  122. package/.next/static/chunks/app/api/tts/synthesize/route-63ec4518ba538b61.js +1 -0
  123. package/.next/static/chunks/app/page-3c94fbcf268ba682.js +202 -0
  124. package/.next/static/chunks/next/dist/client/components/builtin/app-error-63ec4518ba538b61.js +1 -0
  125. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-63ec4518ba538b61.js +1 -0
  126. package/.next/static/chunks/next/dist/client/components/builtin/not-found-63ec4518ba538b61.js +1 -0
  127. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-63ec4518ba538b61.js +1 -0
  128. package/.next/trace +4 -4
  129. package/.next/trace-build +1 -1
  130. package/.next/types/app/api/agent/parse-characters/route.ts +351 -0
  131. package/.next/types/routes.d.ts +2 -1
  132. package/.next/types/validator.ts +9 -0
  133. package/inkos/packages/cli/dist/index.js +2 -2
  134. package/inkos/packages/core/dist/pipeline/runner.js +2 -2
  135. package/inkos/packages/core/dist/pipeline/runner.js.map +1 -1
  136. package/inkos/packages/core/src/pipeline/runner.ts +2 -2
  137. package/package.json +1 -1
  138. package/.next/static/_dVc8qn-Ll1d6faCafbmD/_buildManifest.js +0 -1
  139. package/.next/static/chunks/app/_global-error/page-7f5e7bebe7a745ed.js +0 -1
  140. package/.next/static/chunks/app/api/agent/[id]/events/route-7f5e7bebe7a745ed.js +0 -1
  141. package/.next/static/chunks/app/api/agent/[id]/route-7f5e7bebe7a745ed.js +0 -1
  142. package/.next/static/chunks/app/api/agent/describe-image/route-7f5e7bebe7a745ed.js +0 -1
  143. package/.next/static/chunks/app/api/agent/new/route-7f5e7bebe7a745ed.js +0 -1
  144. package/.next/static/chunks/app/api/auth/all-providers/route-7f5e7bebe7a745ed.js +0 -1
  145. package/.next/static/chunks/app/api/auth/api-key/[provider]/route-7f5e7bebe7a745ed.js +0 -1
  146. package/.next/static/chunks/app/api/auth/login/[provider]/route-7f5e7bebe7a745ed.js +0 -1
  147. package/.next/static/chunks/app/api/auth/logout/[provider]/route-7f5e7bebe7a745ed.js +0 -1
  148. package/.next/static/chunks/app/api/auth/providers/route-7f5e7bebe7a745ed.js +0 -1
  149. package/.next/static/chunks/app/api/default-cwd/route-7f5e7bebe7a745ed.js +0 -1
  150. package/.next/static/chunks/app/api/files/[...path]/route-7f5e7bebe7a745ed.js +0 -1
  151. package/.next/static/chunks/app/api/gem-xy/[id]/route-7f5e7bebe7a745ed.js +0 -1
  152. package/.next/static/chunks/app/api/gem-xy/route-7f5e7bebe7a745ed.js +0 -1
  153. package/.next/static/chunks/app/api/home/route-7f5e7bebe7a745ed.js +0 -1
  154. package/.next/static/chunks/app/api/inkos/route-7f5e7bebe7a745ed.js +0 -1
  155. package/.next/static/chunks/app/api/models/route-7f5e7bebe7a745ed.js +0 -1
  156. package/.next/static/chunks/app/api/models-config/route-7f5e7bebe7a745ed.js +0 -1
  157. package/.next/static/chunks/app/api/register-cwd/route-7f5e7bebe7a745ed.js +0 -1
  158. package/.next/static/chunks/app/api/sessions/[id]/context/route-7f5e7bebe7a745ed.js +0 -1
  159. package/.next/static/chunks/app/api/sessions/[id]/lock/route-7f5e7bebe7a745ed.js +0 -1
  160. package/.next/static/chunks/app/api/sessions/[id]/route-7f5e7bebe7a745ed.js +0 -1
  161. package/.next/static/chunks/app/api/sessions/new/route-7f5e7bebe7a745ed.js +0 -1
  162. package/.next/static/chunks/app/api/sessions/route-7f5e7bebe7a745ed.js +0 -1
  163. package/.next/static/chunks/app/api/skills/install/route-7f5e7bebe7a745ed.js +0 -1
  164. package/.next/static/chunks/app/api/skills/route-7f5e7bebe7a745ed.js +0 -1
  165. package/.next/static/chunks/app/api/skills/search/route-7f5e7bebe7a745ed.js +0 -1
  166. package/.next/static/chunks/app/api/tts/synthesize/route-7f5e7bebe7a745ed.js +0 -1
  167. package/.next/static/chunks/app/page-fbf66e00e4553a09.js +0 -167
  168. package/.next/static/chunks/next/dist/client/components/builtin/app-error-7f5e7bebe7a745ed.js +0 -1
  169. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-7f5e7bebe7a745ed.js +0 -1
  170. package/.next/static/chunks/next/dist/client/components/builtin/not-found-7f5e7bebe7a745ed.js +0 -1
  171. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-7f5e7bebe7a745ed.js +0 -1
  172. /package/.next/static/{_dVc8qn-Ll1d6faCafbmD → Y5hk_NhnX1o3afMM2Tt5-}/_ssgManifest.js +0 -0
@@ -12,4 +12,4 @@
12
12
  ---
13
13
 
14
14
  ## 🛠️ 【最终直调用 Prompt】
15
- 请根据上述分析,直接组合出可直接复制的流利中文 Prompt。请使用纯英文自然语言或短语(用逗号隔开),以便我直接复制粘贴:`;if(u){let a=await fetch(`https://generativelanguage.googleapis.com/v1beta/models/${q}:generateContent?key=${r}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({contents:[{parts:[{text:w},{inlineData:{mimeType:l,data:k}}]}],generationConfig:{maxOutputTokens:1e3}})});if(!a.ok){let b=await a.json();throw Error(`Gemini API returned status ${a.status}: ${JSON.stringify(b)}`)}let b=await a.json(),c=i(b.candidates?.[0]?.content?.parts?.[0]?.text?.trim()||"");return e.NextResponse.json({description:c})}if("anthropic"===p){let a=await fetch("https://api.anthropic.com/v1/messages",{method:"POST",headers:{"x-api-key":r,"anthropic-version":"2023-06-01","content-type":"application/json"},body:JSON.stringify({model:q||"claude-3-5-sonnet-20241022",max_tokens:1e3,messages:[{role:"user",content:[{type:"image",source:{type:"base64",media_type:l,data:k}},{type:"text",text:w}]}]})});if(!a.ok){let b=await a.json();throw Error(`Anthropic API returned status ${a.status}: ${JSON.stringify(b)}`)}let b=await a.json(),c=i(b.content?.[0]?.text?.trim()||"");return e.NextResponse.json({description:c})}{let a=`data:${l};base64,${k}`;q&&q.toLowerCase().includes("mimo")&&q.toLowerCase().includes("flash")&&(q="mimo-v2-omni");let b={model:q,messages:[{role:"user",content:[{type:"text",text:w},{type:"image_url",image_url:{url:a}}]}],max_tokens:1e3};console.log(`[describe-image] Sending to: ${s}`),console.log(`[describe-image] model: ${q}, provider: ${p}`),console.log(`[describe-image] imageUrl prefix: ${a.substring(0,60)}...`),console.log(`[describe-image] headers (keys): ${Object.keys(t).join(", ")}`);let c=await fetch(s,{method:"POST",headers:t,body:JSON.stringify(b)});if(!c.ok){let a=await c.json();throw Error(`${p.toUpperCase()} API returned status ${c.status}: ${JSON.stringify(a)}`)}let d=await c.json(),f=d.choices?.[0]?.message,g=f?.content?.trim()||"";if(!g&&f){let a=f.reasoning_content?.trim()||f.thinking_content?.trim()||f.thinking?.trim()||"";if(a){let b=a.split(/\n\n+/).map(a=>a.trim()).filter(Boolean),c=["不对","等等","可能","但是我","然而我","让我","先得","首先得","再想"];for(let a=b.length-1;a>=0;a--){let d=b[a],e=c.some(a=>d.startsWith(a));if(d.length>=40&&!e){g=d;break}}g||(g=a)}}return e.NextResponse.json({description:i(g)})}}catch(a){return console.error("Error in describe-image API:",a),e.NextResponse.json({error:String(a)},{status:500})}}d()}catch(a){d(a)}})},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},16510:(a,b,c)=>{"use strict";function d(a,b){let c=a.toLowerCase(),d=b.toLowerCase();return!(d.includes("tts")||d.includes("voiceclone")||d.includes("voicedesign")||d.includes("audio-gen")||d.includes("mimo")&&d.includes("flash"))&&(c.includes("deepseek")||d.includes("deepseek")?!!(d.includes("vl")||d.includes("v4")||d.includes("janus")||d.includes("ocr")):c.includes("openai")?!d.includes("o1-mini")&&!!(d.includes("gpt-4o")||d.includes("gpt-5")||d.includes("gpt-4.5")||d.includes("gpt-4-turbo")||d.includes("vision")||d.includes("multimodal")||"o1"===d||d.startsWith("o1-202")):c.includes("anthropic")?!!(d.includes("claude-3")||d.includes("claude-4")||d.includes("claude-5")||d.includes("claude-sonnet")||d.includes("claude-opus")||d.includes("claude-")&&(d.includes("vision")||d.includes("multimodal"))):c.includes("google")||c.includes("gemini")?!!(d.includes("gemini-")||d.includes("omni")||d.includes("vision")||d.includes("multimodal")):!!(d.includes("vision")||d.includes("multimodal")||d.includes("vlm")||d.includes("vla")||d.includes("gpt-4o")||d.includes("gpt-5")||d.includes("gpt-4.5")||d.includes("claude-3")||d.includes("claude-4")||d.includes("gemini-")||d.includes("pixtral")||d.includes("mimo")||d.includes("-vl")||d.includes("molmo")||d.includes("paligemma")||d.includes("gemma-3")||d.includes("gemma-4")||d.includes("gemma-5")||d.includes("llama")&&(d.includes("11b")||d.includes("90b")||d.includes("vision")||d.includes("multimodal"))||d.includes("qwen")&&d.includes("vl")||d.includes("glm")&&(d.includes("vision")||d.includes("vl")||d.includes("thinking")||/glm-(?:\d+(?:\.\d+)?v|edge-v|omni)/i.test(d))||d.includes("cogvlm")||d.includes("internvl")||d.includes("yi")&&d.includes("vl")||d.includes("step-")&&(d.includes("v")||d.includes("vision"))||d.includes("hunyuan")&&(d.includes("vision")||d.includes("vl"))||d.includes("doubao")&&(d.includes("vision")||d.includes("vl"))||(d.includes("kimi")||d.includes("moonshot"))&&(d.includes("vision")||d.includes("vl")||d.includes("2.6")||d.includes("k2"))||d.includes("abab")&&(d.includes("vision")||d.includes("vl"))||d.includes("minimax")&&(d.includes("vision")||d.includes("vl"))||d.includes("hailuo")))}c.d(b,{S:()=>d})},21820:a=>{"use strict";a.exports=require("os")},23582:(a,b,c)=>{"use strict";var d=c(21820),e=c(33873),f=c(29021);let g=(0,d.homedir)(),h=(0,e.join)(g,".ink","agent"),i=(0,e.join)(g,".pi","agent");process.env.PI_CODING_AGENT_DIR||(process.env.PI_CODING_AGENT_DIR=h);try{if((0,f.existsSync)(i)){for(let a of((0,f.existsSync)(h)||(0,f.mkdirSync)(h,{recursive:!0}),["models.json","auth.json","settings.json","fetched-models-cache.json","gem_xy.json","locked-sessions.json"])){let b=(0,e.join)(i,a),c=(0,e.join)(h,a);if((0,f.existsSync)(b)&&function(a){try{if(!(0,f.existsSync)(a))return!0;let b=(0,f.readFileSync)(a,"utf8").trim();if(!b||"{}"===b||'{\n "providers": {}\n}'===b)return!0;let c=JSON.parse(b);if(0===Object.keys(c).length||c.providers&&0===Object.keys(c.providers).length)return!0;return!1}catch{return!0}}(c))try{(0,f.writeFileSync)(c,(0,f.readFileSync)(b)),console.log(`[env-init] Migrated config file ${a} from .pi/agent to .ink/agent`)}catch(b){console.error(`[env-init] Failed to migrate config file ${a}:`,b)}}for(let a of["sessions","skills","bin"]){let b=(0,e.join)(i,a),c=(0,e.join)(h,a);if((0,f.existsSync)(b))try{!function a(b,c){if((0,f.existsSync)(b))for(let d of((0,f.existsSync)(c)||(0,f.mkdirSync)(c,{recursive:!0}),(0,f.readdirSync)(b,{withFileTypes:!0}))){let g=(0,e.join)(b,d.name),h=(0,e.join)(c,d.name);if(d.isDirectory())a(g,h);else try{(0,f.existsSync)(h)||(0,f.writeFileSync)(h,(0,f.readFileSync)(g))}catch(a){console.error(`[env-init] Failed to copy file ${g} to ${h}:`,a)}}}(b,c),console.log(`[env-init] Migrated directory ${a} from .pi/agent to .ink/agent`)}catch(b){console.error(`[env-init] Failed to migrate directory ${a}:`,b)}}let a=(0,e.join)(g,".pi");if((0,f.existsSync)(a))try{let b=a+".bak",c=b,d=1;for(;(0,f.existsSync)(c);)c=`${b}_${d}`,d++;(0,f.renameSync)(a,c),console.log(`[env-init] Renamed old config dir ${a} to ${c}`)}catch(a){console.error("[env-init] Failed to rename old config dir:",a)}}}catch(a){console.error("[env-init] Migration failed:",a)}},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33776:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{handler:()=>y,patchFetch:()=>x,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(5262),w=a([v]);v=(w.then?(await w)():w)[0];let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/agent/describe-image/route",pathname:"/api/agent/describe-image",filename:"route",bundlePath:"app/api/agent/describe-image/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"E:\\ink-xY\\app\\api\\agent\\describe-image\\route.ts",nextConfigOutput:"",userland:v}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function x(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function y(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/agent/describe-image/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||z.isDev||y||(K=E,K="/index"===K?"/":K);let L=!0===z.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.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==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await z.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}d()}catch(a){d(a)}})},33873:a=>{"use strict";a.exports=require("path")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},75430:a=>{"use strict";a.exports=import("@earendil-works/pi-coding-agent")},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},96487:()=>{},98388:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Lj:()=>k,P6:()=>m,QA:()=>l}),c(23582);var e=c(29021),f=c(33873),g=c(75430),h=c(16510),i=a([g]);function j(){return(0,f.join)((0,g.getAgentDir)(),"fetched-models-cache.json")}g=(i.then?(await i)():i)[0];let n=null;function k(){if(n)return n;let a=j();if((0,e.existsSync)(a))try{return n=JSON.parse((0,e.readFileSync)(a,"utf8"))}catch{}return n={}}function l(a){setTimeout(async()=>{try{let b=k(),c=Date.now(),d=(0,f.join)((0,g.getAgentDir)(),"auth.json");if(!(0,e.existsSync)(d))return;let i=JSON.parse((0,e.readFileSync)(d,"utf8")),l=Object.keys(i),m=!1;for(let d of l){let e=i[d]?.key;if(!e)continue;let f=b[d];if(f&&c-f.updatedAt<36e5)continue;console.log(`[model-resolver] Background syncing models list for provider: "${d}"...`);let g=a.models?.find(a=>a.provider===d),j=g?.baseUrl||"",k=function(a,b){let c=a.toLowerCase();if(c.startsWith("minimax"))return"https://api.minimaxi.com/v1/models";if(c.includes("google")||c.includes("gemini"))return"https://generativelanguage.googleapis.com/v1beta/models";let d=b;return d.endsWith("/anthropic")&&(d=d.replace("/anthropic","/v1")),d.endsWith("/")&&(d=d.slice(0,-1)),d.endsWith("/models")||(d=`${d}/models`),d}(d,j),l={},n=k,o=d.toLowerCase();o.includes("google")||o.includes("gemini")?n=`${k}?key=${e}`:l.Authorization=`Bearer ${e}`;try{let a=await fetch(n,{headers:l,signal:AbortSignal.timeout(6e3)});if(!a.ok){console.error(`[model-resolver] Failed to fetch models for "${d}": HTTP ${a.status}`);continue}let e=await a.json(),f=[];if((f=o.includes("google")||o.includes("gemini")?(e.models||[]).map(a=>{let b=a.name||"";return b.startsWith("models/")?b.replace("models/",""):b}).filter(a=>a.includes("gemini")):(e.data||[]).map(a=>a.id).filter(Boolean)).length>0){let a=f.map(a=>{let b=(0,h.S)(d,a);return{id:a,name:a,provider:d,supportsVision:b}});b[d]={updatedAt:c,models:a},m=!0,console.log(`[model-resolver] Successfully synced ${f.length} models for "${d}".`)}}catch(a){console.error(`[model-resolver] Fetch failed for "${d}":`,a)}}m&&function(a){n=a;try{(0,e.writeFileSync)(j(),JSON.stringify(a,null,2),"utf8")}catch(a){console.error("Failed to save models cache:",a)}}(b)}catch(a){console.error("[model-resolver] Error in triggerBackgroundModelsSync:",a)}},100)}function m(a,b,c){let d=a.find(b,c);if(d)return d;let e=b.toLowerCase(),f=c.toLowerCase();if("minimax-cn"===e&&"MiniMax-M3"===c){let b=a.find("minimax-cn","MiniMax-M2.7")||a.find("minimax-cn","MiniMax-M2.7-highspeed");return b?{...b,id:"MiniMax-M3",name:"MiniMax-M3",api:"openai-completions",baseUrl:b.baseUrl.includes("anthropic")?b.baseUrl.replace("/anthropic","/v1"):"https://api.minimaxi.com/v1",reasoning:!0}:{id:"MiniMax-M3",name:"MiniMax-M3",api:"openai-completions",provider:"minimax-cn",baseUrl:"https://api.minimaxi.com/v1",reasoning:!0,input:["text"],cost:{input:.3,output:1.2,cacheRead:.06,cacheWrite:.375},contextWindow:204800,maxTokens:131072}}let g=(a.models||[]).find(a=>a.provider===b)||("function"==typeof a.getAll?a.getAll().find(a=>a.provider===b):void 0);if(g){let a=(0,h.S)(b,c);return{...g,id:c,name:c,reasoning:f.includes("reasoning")||f.includes("thinking")||f.includes("-r1")||g.reasoning,input:a?["text","image"]:["text"]}}}d()}catch(a){d(a)}})}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[741,813],()=>b(b.s=33776));module.exports=c})();
15
+ 请根据上述分析,直接组合出可直接复制的流利中文 Prompt。请使用纯英文自然语言或短语(用逗号隔开),以便我直接复制粘贴:`;if(u){let a=await fetch(`https://generativelanguage.googleapis.com/v1beta/models/${q}:generateContent?key=${r}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({contents:[{parts:[{text:w},{inlineData:{mimeType:l,data:k}}]}],generationConfig:{maxOutputTokens:1e3}})});if(!a.ok){let b=await a.json();throw Error(`Gemini API returned status ${a.status}: ${JSON.stringify(b)}`)}let b=await a.json(),c=i(b.candidates?.[0]?.content?.parts?.[0]?.text?.trim()||"");return e.NextResponse.json({description:c})}if("anthropic"===p){let a=await fetch("https://api.anthropic.com/v1/messages",{method:"POST",headers:{"x-api-key":r,"anthropic-version":"2023-06-01","content-type":"application/json"},body:JSON.stringify({model:q||"claude-3-5-sonnet-20241022",max_tokens:1e3,messages:[{role:"user",content:[{type:"image",source:{type:"base64",media_type:l,data:k}},{type:"text",text:w}]}]})});if(!a.ok){let b=await a.json();throw Error(`Anthropic API returned status ${a.status}: ${JSON.stringify(b)}`)}let b=await a.json(),c=i(b.content?.[0]?.text?.trim()||"");return e.NextResponse.json({description:c})}{let a=`data:${l};base64,${k}`;q&&q.toLowerCase().includes("mimo")&&q.toLowerCase().includes("flash")&&(q="mimo-v2-omni");let b={model:q,messages:[{role:"user",content:[{type:"text",text:w},{type:"image_url",image_url:{url:a}}]}],max_tokens:1e3};console.log(`[describe-image] Sending to: ${s}`),console.log(`[describe-image] model: ${q}, provider: ${p}`),console.log(`[describe-image] imageUrl prefix: ${a.substring(0,60)}...`),console.log(`[describe-image] headers (keys): ${Object.keys(t).join(", ")}`);let c=await fetch(s,{method:"POST",headers:t,body:JSON.stringify(b)});if(!c.ok){let a=await c.json();throw Error(`${p.toUpperCase()} API returned status ${c.status}: ${JSON.stringify(a)}`)}let d=await c.json(),f=d.choices?.[0]?.message,g=f?.content?.trim()||"";if(!g&&f){let a=f.reasoning_content?.trim()||f.thinking_content?.trim()||f.thinking?.trim()||"";if(a){let b=a.split(/\n\n+/).map(a=>a.trim()).filter(Boolean),c=["不对","等等","可能","但是我","然而我","让我","先得","首先得","再想"];for(let a=b.length-1;a>=0;a--){let d=b[a],e=c.some(a=>d.startsWith(a));if(d.length>=40&&!e){g=d;break}}g||(g=a)}}return e.NextResponse.json({description:i(g)})}}catch(a){return console.error("Error in describe-image API:",a),e.NextResponse.json({error:String(a)},{status:500})}}d()}catch(a){d(a)}})},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},16510:(a,b,c)=>{"use strict";function d(a,b){let c=a.toLowerCase(),d=b.toLowerCase();return!(d.includes("tts")||d.includes("voiceclone")||d.includes("voicedesign")||d.includes("audio-gen")||d.includes("mimo")&&d.includes("flash"))&&(c.includes("deepseek")||d.includes("deepseek")?!!(d.includes("vl")||d.includes("v4")||d.includes("janus")||d.includes("ocr")):c.includes("openai")?!d.includes("o1-mini")&&!!(d.includes("gpt-4o")||d.includes("gpt-5")||d.includes("gpt-4.5")||d.includes("gpt-4-turbo")||d.includes("vision")||d.includes("multimodal")||"o1"===d||d.startsWith("o1-202")):c.includes("anthropic")?!!(d.includes("claude-3")||d.includes("claude-4")||d.includes("claude-5")||d.includes("claude-sonnet")||d.includes("claude-opus")||d.includes("claude-")&&(d.includes("vision")||d.includes("multimodal"))):c.includes("google")||c.includes("gemini")?!!(d.includes("gemini-")||d.includes("omni")||d.includes("vision")||d.includes("multimodal")):!!(d.includes("vision")||d.includes("multimodal")||d.includes("vlm")||d.includes("vla")||d.includes("gpt-4o")||d.includes("gpt-5")||d.includes("gpt-4.5")||d.includes("claude-3")||d.includes("claude-4")||d.includes("gemini-")||d.includes("pixtral")||d.includes("mimo")||d.includes("-vl")||d.includes("molmo")||d.includes("paligemma")||d.includes("gemma-3")||d.includes("gemma-4")||d.includes("gemma-5")||d.includes("llama")&&(d.includes("11b")||d.includes("90b")||d.includes("vision")||d.includes("multimodal"))||d.includes("qwen")&&d.includes("vl")||d.includes("glm")&&(d.includes("vision")||d.includes("vl")||d.includes("thinking")||/glm-(?:\d+(?:\.\d+)?v|edge-v|omni)/i.test(d))||d.includes("cogvlm")||d.includes("internvl")||d.includes("yi")&&d.includes("vl")||d.includes("step-")&&(d.includes("v")||d.includes("vision"))||d.includes("hunyuan")&&(d.includes("vision")||d.includes("vl"))||d.includes("doubao")&&(d.includes("vision")||d.includes("vl"))||(d.includes("kimi")||d.includes("moonshot"))&&(d.includes("vision")||d.includes("vl")||d.includes("2.6")||d.includes("k2"))||d.includes("abab")&&(d.includes("vision")||d.includes("vl"))||d.includes("minimax")&&(d.includes("vision")||d.includes("vl"))||d.includes("hailuo")))}c.d(b,{S:()=>d})},21820:a=>{"use strict";a.exports=require("os")},23582:(a,b,c)=>{"use strict";var d=c(21820),e=c(33873),f=c(29021);let g=(0,d.homedir)(),h=(0,e.join)(g,".ink","agent"),i=(0,e.join)(g,".pi","agent");process.env.PI_CODING_AGENT_DIR||(process.env.PI_CODING_AGENT_DIR=h);try{if((0,f.existsSync)(i)){for(let a of((0,f.existsSync)(h)||(0,f.mkdirSync)(h,{recursive:!0}),["models.json","auth.json","settings.json","fetched-models-cache.json","gem_xy.json","locked-sessions.json"])){let b=(0,e.join)(i,a),c=(0,e.join)(h,a);if((0,f.existsSync)(b)&&function(a){try{if(!(0,f.existsSync)(a))return!0;let b=(0,f.readFileSync)(a,"utf8").trim();if(!b||"{}"===b||'{\n "providers": {}\n}'===b)return!0;let c=JSON.parse(b);if(0===Object.keys(c).length||c.providers&&0===Object.keys(c.providers).length)return!0;return!1}catch{return!0}}(c))try{(0,f.writeFileSync)(c,(0,f.readFileSync)(b)),console.log(`[env-init] Migrated config file ${a} from .pi/agent to .ink/agent`)}catch(b){console.error(`[env-init] Failed to migrate config file ${a}:`,b)}}for(let a of["sessions","skills","bin"]){let b=(0,e.join)(i,a),c=(0,e.join)(h,a);if((0,f.existsSync)(b))try{!function a(b,c){if((0,f.existsSync)(b))for(let d of((0,f.existsSync)(c)||(0,f.mkdirSync)(c,{recursive:!0}),(0,f.readdirSync)(b,{withFileTypes:!0}))){let g=(0,e.join)(b,d.name),h=(0,e.join)(c,d.name);if(d.isDirectory())a(g,h);else try{(0,f.existsSync)(h)||(0,f.writeFileSync)(h,(0,f.readFileSync)(g))}catch(a){console.error(`[env-init] Failed to copy file ${g} to ${h}:`,a)}}}(b,c),console.log(`[env-init] Migrated directory ${a} from .pi/agent to .ink/agent`)}catch(b){console.error(`[env-init] Failed to migrate directory ${a}:`,b)}}let a=(0,e.join)(g,".pi");if((0,f.existsSync)(a))try{let b=a+".bak",c=b,d=1;for(;(0,f.existsSync)(c);)c=`${b}_${d}`,d++;(0,f.renameSync)(a,c),console.log(`[env-init] Renamed old config dir ${a} to ${c}`)}catch(a){console.error("[env-init] Failed to rename old config dir:",a)}}}catch(a){console.error("[env-init] Migration failed:",a)}},29021:a=>{"use strict";a.exports=require("fs")},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")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},75430:a=>{"use strict";a.exports=import("@earendil-works/pi-coding-agent")},78335:()=>{},82882:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{handler:()=>y,patchFetch:()=>x,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(5262),w=a([v]);v=(w.then?(await w)():w)[0];let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/agent/describe-image/route",pathname:"/api/agent/describe-image",filename:"route",bundlePath:"app/api/agent/describe-image/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"E:\\ink-xY\\app\\api\\agent\\describe-image\\route.ts",nextConfigOutput:"",userland:v}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function x(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function y(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/agent/describe-image/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||z.isDev||y||(K=E,K="/index"===K?"/":K);let L=!0===z.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.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==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await z.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}d()}catch(a){d(a)}})},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},96487:()=>{},98388:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Lj:()=>k,P6:()=>m,QA:()=>l}),c(23582);var e=c(29021),f=c(33873),g=c(75430),h=c(16510),i=a([g]);function j(){return(0,f.join)((0,g.getAgentDir)(),"fetched-models-cache.json")}g=(i.then?(await i)():i)[0];let n=null;function k(){if(n)return n;let a=j();if((0,e.existsSync)(a))try{return n=JSON.parse((0,e.readFileSync)(a,"utf8"))}catch{}return n={}}function l(a){setTimeout(async()=>{try{let b=k(),c=Date.now(),d=(0,f.join)((0,g.getAgentDir)(),"auth.json");if(!(0,e.existsSync)(d))return;let i=JSON.parse((0,e.readFileSync)(d,"utf8")),l=Object.keys(i),m=!1;for(let d of l){let e=i[d]?.key;if(!e)continue;let f=b[d];if(f&&c-f.updatedAt<36e5)continue;console.log(`[model-resolver] Background syncing models list for provider: "${d}"...`);let g=a.models?.find(a=>a.provider===d),j=g?.baseUrl||"",k=function(a,b){let c=a.toLowerCase();if(c.startsWith("minimax"))return"https://api.minimaxi.com/v1/models";if(c.includes("google")||c.includes("gemini"))return"https://generativelanguage.googleapis.com/v1beta/models";let d=b;return d.endsWith("/anthropic")&&(d=d.replace("/anthropic","/v1")),d.endsWith("/")&&(d=d.slice(0,-1)),d.endsWith("/models")||(d=`${d}/models`),d}(d,j),l={},n=k,o=d.toLowerCase();o.includes("google")||o.includes("gemini")?n=`${k}?key=${e}`:l.Authorization=`Bearer ${e}`;try{let a=await fetch(n,{headers:l,signal:AbortSignal.timeout(6e3)});if(!a.ok){console.error(`[model-resolver] Failed to fetch models for "${d}": HTTP ${a.status}`);continue}let e=await a.json(),f=[];if((f=o.includes("google")||o.includes("gemini")?(e.models||[]).map(a=>{let b=a.name||"";return b.startsWith("models/")?b.replace("models/",""):b}).filter(a=>a.includes("gemini")):(e.data||[]).map(a=>a.id).filter(Boolean)).length>0){let a=f.map(a=>{let b=(0,h.S)(d,a);return{id:a,name:a,provider:d,supportsVision:b}});b[d]={updatedAt:c,models:a},m=!0,console.log(`[model-resolver] Successfully synced ${f.length} models for "${d}".`)}}catch(a){console.error(`[model-resolver] Fetch failed for "${d}":`,a)}}m&&function(a){n=a;try{(0,e.writeFileSync)(j(),JSON.stringify(a,null,2),"utf8")}catch(a){console.error("Failed to save models cache:",a)}}(b)}catch(a){console.error("[model-resolver] Error in triggerBackgroundModelsSync:",a)}},100)}function m(a,b,c){let d=a.find(b,c);if(d)return d;let e=b.toLowerCase(),f=c.toLowerCase();if("minimax-cn"===e&&"MiniMax-M3"===c){let b=a.find("minimax-cn","MiniMax-M2.7")||a.find("minimax-cn","MiniMax-M2.7-highspeed");return b?{...b,id:"MiniMax-M3",name:"MiniMax-M3",api:"openai-completions",baseUrl:b.baseUrl.includes("anthropic")?b.baseUrl.replace("/anthropic","/v1"):"https://api.minimaxi.com/v1",reasoning:!0}:{id:"MiniMax-M3",name:"MiniMax-M3",api:"openai-completions",provider:"minimax-cn",baseUrl:"https://api.minimaxi.com/v1",reasoning:!0,input:["text"],cost:{input:.3,output:1.2,cacheRead:.06,cacheWrite:.375},contextWindow:204800,maxTokens:131072}}let g=(a.models||[]).find(a=>a.provider===b)||("function"==typeof a.getAll?a.getAll().find(a=>a.provider===b):void 0);if(g){let a=(0,h.S)(b,c);return{...g,id:c,name:c,reasoning:f.includes("reasoning")||f.includes("thinking")||f.includes("-r1")||g.reasoning,input:a?["text","image"]:["text"]}}}d()}catch(a){d(a)}})}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[741,813],()=>b(b.s=82882));module.exports=c})();