@killingjacky/claude-code-router 2.1.1 → 2.2.0
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.
- package/README.md +53 -19
- package/dist/cli.js +234 -238
- package/dist/main/cli.js +8896 -0
- package/dist/main/fusion-tool-fallback-mcp.js +5 -0
- package/dist/main/fusion-vision-mcp.js +10 -0
- package/dist/main/gateway-bootstrap.js +2 -0
- package/dist/main/local-agent-auth-provider-hook.js +294 -0
- package/dist/main/media-tools-proxy-mcp.js +6 -0
- package/dist/main/request-log-worker.js +951 -0
- package/dist/main/route-script-worker.js +61 -0
- package/dist/main/toolhub-mcp.js +48 -0
- package/dist/main/upstream-header-sanitizer.js +1 -0
- package/dist/models.json +657155 -0
- package/dist/renderer/assets/assets/anthropic-CJYB5ODC.png +0 -0
- package/dist/renderer/assets/assets/bailian-6RH6ASGG.ico +0 -0
- package/dist/renderer/assets/assets/claude-code-WX35JWK4.png +0 -0
- package/dist/renderer/assets/assets/claudeapi-A6VUG2I3.png +0 -0
- package/dist/renderer/assets/assets/code0-XF6QJ6WD.png +0 -0
- package/dist/renderer/assets/assets/codex-3X2KBXKY.png +0 -0
- package/dist/renderer/assets/assets/deepseek-ZIDCDTQF.ico +0 -0
- package/dist/renderer/assets/assets/fenno-XFKUO3XQ.jpg +0 -0
- package/dist/renderer/assets/assets/gemini-7QB7T63T.svg +1 -0
- package/dist/renderer/assets/assets/grok-RUIG6CO6.ico +0 -0
- package/dist/renderer/assets/assets/infistar-ai-QGWTTUZK.jpg +0 -0
- package/dist/renderer/assets/assets/kilo-WKXQUJ25.svg +13 -0
- package/dist/renderer/assets/assets/logo-IPLFWCDN.png +0 -0
- package/dist/renderer/assets/assets/mascot-transition-DUBPNIIV.svg +100 -0
- package/dist/renderer/assets/assets/minimax-5TL6POE3.ico +0 -0
- package/dist/renderer/assets/assets/mistral-2RFSC6K3.webp +0 -0
- package/dist/renderer/assets/assets/moonshot-FNEXMLNW.ico +0 -0
- package/dist/renderer/assets/assets/nvidia-CCRWBFBH.svg +1 -0
- package/dist/renderer/assets/assets/openai-2EIP7LI2.png +0 -0
- package/dist/renderer/assets/assets/opencode-CEWXDOQI.ico +0 -0
- package/dist/renderer/assets/assets/openrouter-CZIFREDB.ico +0 -0
- package/dist/renderer/assets/assets/pi-O6OOC4YY.svg +21 -0
- package/dist/renderer/assets/assets/qiniu-ai-A5VJAOJ6.png +0 -0
- package/dist/renderer/assets/assets/runapi-UAX35AOL.jpg +0 -0
- package/dist/renderer/assets/assets/siliconflow-QCZUQAH2.png +0 -0
- package/dist/renderer/assets/assets/teamorouter-3LCEETRZ.png +0 -0
- package/dist/renderer/assets/assets/tray-cyan-C3U4WBE7.png +0 -0
- package/dist/renderer/assets/assets/tray-orange-VUJTRHBB.png +0 -0
- package/dist/renderer/assets/assets/tray-violet-EGMLZ2GB.png +0 -0
- package/dist/renderer/assets/assets/unity2-QCJYG2D6.jpg +0 -0
- package/dist/renderer/assets/assets/workbuddy-LBUELROU.png +0 -0
- package/dist/renderer/assets/assets/xiaomi-mimo-LQ6RRXCR.png +0 -0
- package/dist/renderer/assets/assets/zai-global-coding-OMCES3LL.svg +219 -0
- package/dist/renderer/assets/assets/zai-global-general-OMCES3LL.svg +219 -0
- package/dist/renderer/assets/assets/zcode-Z7V7YY2Q.png +0 -0
- package/dist/renderer/assets/assets/zhipu-cn-coding-7BBWPUTC.png +0 -0
- package/dist/renderer/assets/assets/zhipu-cn-general-7BBWPUTC.png +0 -0
- package/dist/renderer/assets/browser.js +408 -0
- package/dist/renderer/assets/log-body.worker.js +3 -0
- package/dist/renderer/assets/main.css +2 -0
- package/dist/renderer/assets/main.js +103 -0
- package/dist/renderer/assets/tray.js +8 -0
- package/dist/renderer/assets/web-client-bridge.js +1 -0
- package/dist/renderer/pages/browser/index.html +13 -0
- package/dist/renderer/pages/home/index.html +18 -0
- package/dist/renderer/pages/tray/index.html +17 -0
- package/package.json +5 -2
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
var ge=Object.create;var W=Object.defineProperty;var me=Object.getOwnPropertyDescriptor;var fe=Object.getOwnPropertyNames;var ye=Object.getPrototypeOf,Ce=Object.prototype.hasOwnProperty;var F=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var he=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of fe(t))!Ce.call(e,r)&&r!==n&&W(e,r,{get:()=>t[r],enumerable:!(o=me(t,r))||o.enumerable});return e};var be=(e,t,n)=>(n=e!=null?ge(ye(e)):{},he(t||!e||!e.__esModule?W(n,"default",{value:e,enumerable:!0}):n,e));var te=F(u=>{"use strict";var v=Symbol.for("react.element"),Pe=Symbol.for("react.portal"),we=Symbol.for("react.fragment"),xe=Symbol.for("react.strict_mode"),ke=Symbol.for("react.profiler"),Re=Symbol.for("react.provider"),Se=Symbol.for("react.context"),Ie=Symbol.for("react.forward_ref"),Te=Symbol.for("react.suspense"),Me=Symbol.for("react.memo"),Oe=Symbol.for("react.lazy"),V=Symbol.iterator;function Le(e){return e===null||typeof e!="object"?null:(e=V&&e[V]||e["@@iterator"],typeof e=="function"?e:null)}var H={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},J=Object.assign,j={};function A(e,t,n){this.props=e,this.context=t,this.refs=j,this.updater=n||H}A.prototype.isReactComponent={};A.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};A.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function Y(){}Y.prototype=A.prototype;function E(e,t,n){this.props=e,this.context=t,this.refs=j,this.updater=n||H}var N=E.prototype=new Y;N.constructor=E;J(N,A.prototype);N.isPureReactComponent=!0;var $=Array.isArray,Z=Object.prototype.hasOwnProperty,_={current:null},Q={key:!0,ref:!0,__self:!0,__source:!0};function X(e,t,n){var o,r={},i=null,d=null;if(t!=null)for(o in t.ref!==void 0&&(d=t.ref),t.key!==void 0&&(i=""+t.key),t)Z.call(t,o)&&!Q.hasOwnProperty(o)&&(r[o]=t[o]);var a=arguments.length-2;if(a===1)r.children=n;else if(1<a){for(var s=Array(a),p=0;p<a;p++)s[p]=arguments[p+2];r.children=s}if(e&&e.defaultProps)for(o in a=e.defaultProps,a)r[o]===void 0&&(r[o]=a[o]);return{$$typeof:v,type:e,key:i,ref:d,props:r,_owner:_.current}}function Ee(e,t){return{$$typeof:v,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}function D(e){return typeof e=="object"&&e!==null&&e.$$typeof===v}function Ne(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(n){return t[n]})}var z=/\/+/g;function L(e,t){return typeof e=="object"&&e!==null&&e.key!=null?Ne(""+e.key):t.toString(36)}function k(e,t,n,o,r){var i=typeof e;(i==="undefined"||i==="boolean")&&(e=null);var d=!1;if(e===null)d=!0;else switch(i){case"string":case"number":d=!0;break;case"object":switch(e.$$typeof){case v:case Pe:d=!0}}if(d)return d=e,r=r(d),e=o===""?"."+L(d,0):o,$(r)?(n="",e!=null&&(n=e.replace(z,"$&/")+"/"),k(r,t,n,"",function(p){return p})):r!=null&&(D(r)&&(r=Ee(r,n+(!r.key||d&&d.key===r.key?"":(""+r.key).replace(z,"$&/")+"/")+e)),t.push(r)),1;if(d=0,o=o===""?".":o+":",$(e))for(var a=0;a<e.length;a++){i=e[a];var s=o+L(i,a);d+=k(i,t,n,s,r)}else if(s=Le(e),typeof s=="function")for(e=s.call(e),a=0;!(i=e.next()).done;)i=i.value,s=o+L(i,a++),d+=k(i,t,n,s,r);else if(i==="object")throw t=String(e),Error("Objects are not valid as a React child (found: "+(t==="[object Object]"?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return d}function x(e,t,n){if(e==null)return e;var o=[],r=0;return k(e,o,"","",function(i){return t.call(n,i,r++)}),o}function _e(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(n){(e._status===0||e._status===-1)&&(e._status=1,e._result=n)},function(n){(e._status===0||e._status===-1)&&(e._status=2,e._result=n)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var f={current:null},R={transition:null},De={ReactCurrentDispatcher:f,ReactCurrentBatchConfig:R,ReactCurrentOwner:_};function ee(){throw Error("act(...) is not supported in production builds of React.")}u.Children={map:x,forEach:function(e,t,n){x(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return x(e,function(){t++}),t},toArray:function(e){return x(e,function(t){return t})||[]},only:function(e){if(!D(e))throw Error("React.Children.only expected to receive a single React element child.");return e}};u.Component=A;u.Fragment=we;u.Profiler=ke;u.PureComponent=E;u.StrictMode=xe;u.Suspense=Te;u.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=De;u.act=ee;u.cloneElement=function(e,t,n){if(e==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var o=J({},e.props),r=e.key,i=e.ref,d=e._owner;if(t!=null){if(t.ref!==void 0&&(i=t.ref,d=_.current),t.key!==void 0&&(r=""+t.key),e.type&&e.type.defaultProps)var a=e.type.defaultProps;for(s in t)Z.call(t,s)&&!Q.hasOwnProperty(s)&&(o[s]=t[s]===void 0&&a!==void 0?a[s]:t[s])}var s=arguments.length-2;if(s===1)o.children=n;else if(1<s){a=Array(s);for(var p=0;p<s;p++)a[p]=arguments[p+2];o.children=a}return{$$typeof:v,type:e.type,key:r,ref:i,props:o,_owner:d}};u.createContext=function(e){return e={$$typeof:Se,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},e.Provider={$$typeof:Re,_context:e},e.Consumer=e};u.createElement=X;u.createFactory=function(e){var t=X.bind(null,e);return t.type=e,t};u.createRef=function(){return{current:null}};u.forwardRef=function(e){return{$$typeof:Ie,render:e}};u.isValidElement=D;u.lazy=function(e){return{$$typeof:Oe,_payload:{_status:-1,_result:e},_init:_e}};u.memo=function(e,t){return{$$typeof:Me,type:e,compare:t===void 0?null:t}};u.startTransition=function(e){var t=R.transition;R.transition={};try{e()}finally{R.transition=t}};u.unstable_act=ee;u.useCallback=function(e,t){return f.current.useCallback(e,t)};u.useContext=function(e){return f.current.useContext(e)};u.useDebugValue=function(){};u.useDeferredValue=function(e){return f.current.useDeferredValue(e)};u.useEffect=function(e,t){return f.current.useEffect(e,t)};u.useId=function(){return f.current.useId()};u.useImperativeHandle=function(e,t,n){return f.current.useImperativeHandle(e,t,n)};u.useInsertionEffect=function(e,t){return f.current.useInsertionEffect(e,t)};u.useLayoutEffect=function(e,t){return f.current.useLayoutEffect(e,t)};u.useMemo=function(e,t){return f.current.useMemo(e,t)};u.useReducer=function(e,t,n){return f.current.useReducer(e,t,n)};u.useRef=function(e){return f.current.useRef(e)};u.useState=function(e){return f.current.useState(e)};u.useSyncExternalStore=function(e,t,n){return f.current.useSyncExternalStore(e,t,n)};u.useTransition=function(){return f.current.useTransition()};u.version="18.3.1"});var ne=F((St,oe)=>{"use strict";oe.exports=te()});var Pt=5*1024*1024;var Ae="CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY",wt={[Ae]:"1"};var b={account:"bar",modelShare:"bars",rings:"rings",stats:"cards",tokenFlow:"line",tokenMix:"bars"};var K=["source-tabs","header","account","token-flow","activity","stats","token-mix","rings","model-share","footer"];var ve=[...K],xt=[{id:"source-tabs",type:"source-tabs"},{id:"header",type:"header"},{id:"account",type:"account",variant:b.account},{id:"token-flow",type:"token-flow",variant:b.tokenFlow},{id:"activity",type:"activity"},{id:"stats",type:"stats",variant:b.stats},{id:"token-mix",type:"token-mix",variant:b.tokenMix},{id:"rings",type:"rings",variant:b.rings},{id:"model-share",type:"model-share",variant:b.modelShare}];var S=be(ne());var qe={en:{navigation:{onboarding:"Onboarding","api-keys":"API Keys",extensions:"Extensions",logs:"Logs",networking:"Networking",observability:"Observability",overview:"Overview",profile:"Agent Profiles",providers:"Providers",models:"Models",routing:"Global Routing",server:"Server","virtual-models":"Fusion"},settings:{agentAnalysis:"Agent observability",agentAnalysisDescription:"Record request metadata needed for the observability page.",appearance:"Appearance",bots:"Bots",button:"Settings",close:"Close",data:"Data",done:"Done",general:"General",language:"Language",languageChinese:"Chinese",languageEnglish:"English",languageSystem:"System",launchAtLogin:"Launch at login",launchAtLoginDescription:"Open Claude Code Router automatically when you sign in to this computer.",observability:"Logs & Observability",proxy:"Proxy",requestLogs:"Request logs",requestLogsDescription:"Record gateway requests and show the Logs page.",theme:"Theme",themeDark:"Dark",themeLight:"Light",themeSystem:"System",toolHub:"ToolHub",toolHubBrowserAutomation:"Built-in browser automation",toolHubBrowserAutomationDescription:"Expose CCR Desktop's built-in browser automation tools through ToolHub.",toolHubDescription:"Route configured MCP servers through ToolHub, where the model finds the tools needed for each task.",toolHubEnabled:"Enable ToolHub",toolHubEnabledDescription:"Expose a compact ToolHub MCP server instead of all configured MCP tools.",toolHubMaxTools:"Max tools",toolHubModel:"Resolver model",toolHubModelPlaceholder:"Select a configured model",toolHubTimeout:"Timeout ms",tray:"Tray",trayBalanceProgressAccount:"Account",trayBalanceProgressData:"Data",trayBalanceProgressNoData:"No account data is available. Enable account monitoring on a provider first.",trayBalanceProgressRequired:"Choose an account and data to enable balance progress.",trayIcon:"Tray mascot",trayIconCyan:"Auralis",trayIconOrange:"Solara",trayIconProgress:"Balance progress",trayIconRandom:"Random",trayIconViolet:"Vesper",trayComponentAccount:"Account meter",trayComponentArc:"Arc",trayComponentArea:"Area",trayComponentBar:"Bar",trayComponentBars:"Bars",trayComponentCards:"Cards",trayComponentCompact:"Compact",trayComponentDonut:"Donut",trayComponentFlow:"Flow chart",trayComponentGauges:"Gauges",trayComponentLine:"Line",trayComponentList:"List",trayComponentModelShare:"Model share",trayComponentPie:"Pie",trayComponentPills:"Pills",trayComponentRing:"Ring",trayComponentRings:"Rings",trayComponentSparkline:"Sparkline",trayComponentStacked:"Stacked",trayComponentStats:"Stats",trayComponentStyles:"Component styles",trayComponentEnabled:"Enabled",trayComponentProperties:"Component properties",trayComponentStyle:"Style",trayComponents:"Components",trayComponentTokenMix:"Token mix",trayModuleActivity:"Token activity",trayModuleAccount:"Account balance",trayModuleFooter:"Footer actions",trayModuleHeader:"Title and status",trayModuleModelShare:"Model share",trayModuleRings:"Circular metrics",trayModuleSourceTabs:"Provider tabs",trayModuleStats:"Token stats",trayModuleTokenFlow:"Token flow chart",trayModuleTokenMix:"Token mix",trayPreview:"Preview",trayPreviewEmpty:"No tray modules enabled",trayProgressTarget:"Progress target",trayWindowModules:"Tray window modules",title:"Settings"},sidebar:{collapse:"Collapse sidebar",expand:"Expand sidebar",primaryNavigation:"Primary navigation"},text:{\u4E0A\u4E00\u9875:"Previous page",\u4E0B\u4E00\u9875:"Next page",\u5168\u90E8\u72B6\u6001:"All statuses",\u6210\u529F:"Success",\u9519\u8BEF:"Error",\u65F6\u95F4:"Time",\u72B6\u6001:"Status",\u6A21\u578B:"Model","CCR compact for Claude Code":"CCR compact for Claude Code","Use CCR context archive when Claude Code runs /compact.":"Use CCR context archive when Claude Code runs /compact.","Context archive and MCP access will be enabled for this compact mode.":"Context archive and MCP access will be enabled for this compact mode.",Stream:"Stream",Streaming:"Streaming","Non-streaming":"Non-streaming",Token:"Token",\u4EE4\u724C:"Tokens",\u6210\u672C:"Cost",\u6301\u7EED\u65F6\u95F4:"Duration",\u53CD\u9988:"Feedback","Failed requests":"Failed requests",\u8F93\u5165:"Input",\u8F93\u51FA:"Output",\u7F13\u5B58\u8BFB\u53D6:"Cache read",\u7F13\u5B58\u5199\u5165:"Cache write",\u603B\u8BA1:"Total",\u8BF7\u6C42:"Request",\u54CD\u5E94:"Response",\u590D\u5236:"Copy","\u7B5B\u9009\u65E5\u5FD7\u3001\u6A21\u578B\u3001\u8BF7\u6C42\u6216\u54CD\u5E94":"Filter logs, models, requests, or responses",\u5168\u90E8\u4F9B\u5E94\u5546:"All providers",\u5168\u90E8\u6A21\u578B:"All models",\u6B63\u5728\u52A0\u8F7D\u65E5\u5FD7:"Loading logs",\u6682\u65E0\u65E5\u5FD7:"No logs","No request headers":"No request headers","No response headers":"No response headers","\u7B5B\u9009 JSON...":"Filter JSON...",Text:"Text",body:"Body",header:"Headers",\u5165:"in",\u51FA:"out","No provider presets found":"No provider presets found","After you enter the API endpoint and key, the system will automatically detect supported protocols and available models.":"After you enter the API endpoint and key, the system will automatically detect supported protocols and available models.",Advanced:"Advanced","Advanced settings":"Advanced settings","Advanced settings need attention":"Advanced settings need attention","Agent profile":"Agent profile",Back:"Back","Auto fetch latest models":"Auto fetch latest models","Poll the provider models endpoint every 10 minutes and add newly discovered models automatically.":"Poll the provider models endpoint every 10 minutes and add newly discovered models automatically.","OpenRouter discount routing":"OpenRouter discount routing","Automatically choose the cheapest live OpenRouter provider endpoint when savings exceed estimated cache loss.":"Automatically choose the cheapest live OpenRouter provider endpoint when savings exceed estimated cache loss.","Provider blacklist":"Provider blacklist","No providers blocked":"No providers blocked",blocked:"blocked","Clear blacklist":"Clear blacklist","Search providers":"Search providers","Refresh providers":"Refresh providers","Loading providers":"Loading providers","No providers found":"No providers found",Quantization:"Quantization",Uptime:"Uptime",Yesterday:"Yesterday","Enter an OpenRouter API key to load providers.":"Enter an OpenRouter API key to load providers.","Select a model to load its OpenRouter providers.":"Select a model to load its OpenRouter providers.","Excluded OpenRouter providers will be skipped by discount routing and OpenRouter fallbacks.":"Excluded OpenRouter providers will be skipped by discount routing and OpenRouter fallbacks.","Auto detect protocols":"Auto detect protocols","Auto detect protocols description":"When enabled, CCR probes the endpoint while editing and uses the detected protocols and models to update this provider. Turn it off to keep manually selected protocols and custom model IDs unchanged.","Auto detect protocols info":"Auto detect protocols info","Available models":"Available models","Available after saving":"Available after saving",Automatic:"Automatic","Add credentials":"Add credentials","Add the API key CCR will use for model requests.":"Add the API key CCR will use for model requests.","A real model request succeeded with the selected provider settings.":"A real model request succeeded with the selected provider settings.",Check:"Check","Check Connection":"Check Connection","Check results":"Check results","Checking connection":"Checking connection","Choose a provider preset or endpoint, enter an API key, and add at least one model.":"Choose a provider preset or endpoint, enter an API key, and add at least one model.","Choose a provider endpoint so CCR can detect compatible protocols.":"Choose a provider endpoint so CCR can detect compatible protocols.","Choose an agent, model, and required profile settings.":"Choose an agent, model, and required profile settings.","Choose how this provider authenticates model requests.":"Choose how this provider authenticates model requests.","Choose provider":"Choose provider","Choose the models that should be available through this provider.":"Choose the models that should be available through this provider.","Click Check Connection to verify connectivity with a real model request.":"Click Check Connection to verify connectivity with a real model request.","Compatible API protocols were found automatically.":"Compatible API protocols were found automatically.","Compatible API protocols were found automatically. You can turn off auto detection in Advanced settings and select protocols manually.":"Compatible API protocols were found automatically. You can turn off auto detection in Advanced settings and select protocols manually.","Configure a provider before creating an agent profile.":"Configure a provider before creating an agent profile.","Configure at least one enabled provider model before saving an agent profile.":"Configure at least one enabled provider model before saving an agent profile.",Configuration:"Configuration","Credential method":"Credential method","Connection verified":"Connection verified","CCR is checking which API protocols this endpoint supports.":"CCR is checking which API protocols this endpoint supports.","CCR is checking this provider. Wait for the check to finish before continuing.":"CCR is checking this provider. Wait for the check to finish before continuing.","CCR is sending a limited real model request.":"CCR is sending a limited real model request.","CCR management service is unavailable. Make sure the CCR app or ccr ui command is running, then retry.":"CCR management service is unavailable. Make sure the CCR app or ccr ui command is running, then retry.","Connect a provider in four small steps.":"Connect a provider in four small steps.","Create profiles that tell each agent which model and entry mode to use.":"Create profiles that tell each agent which model and entry mode to use.","CCR scanned this computer for Claude Code, Codex, Grok CLI, OpenCode CLI, and ZCode login states. Click Import to add one as a gateway provider.":"CCR scanned this computer for Claude Code, Codex, Grok CLI, OpenCode CLI, and ZCode login states. Click Import to add one as a gateway provider.",Detected:"Detected","Detecting protocols":"Detecting protocols","Enter API endpoint, API key, and at least one model to enable connectivity check.":"Enter API endpoint, API key, and at least one model to enable connectivity check.","Endpoint and identity":"Endpoint and identity","Finish the provider and agent profile steps before entering the app.":"Finish the provider and agent profile steps before entering the app.","Generated output is limited to 1 token for connectivity checks.":"Generated output is limited to 1 token for connectivity checks.","Gateway service":"Gateway service","Grok CLI profiles use CCR scope and CLI entry mode.":"Grok CLI profiles use CCR scope and CLI entry mode.","Allowed model list":"Allowed model list","Allowed models":"Allowed models","Import local agent login":"Import local agent login","Import local agent provider":"Import local agent provider","In progress":"In progress","Kimi profiles need a default model and an allowed model list.":"Kimi profiles need a default model and an allowed model list.","ChatGPT login detected. Click Import to add it as a gateway provider.":"ChatGPT login detected. Click Import to add it as a gateway provider.","Claude Code login detected. Click Import to add it as a gateway provider.":"Claude Code login detected. Click Import to add it as a gateway provider.","Claude Code login was detected, but no usable access token was found.":"Claude Code login was detected, but no usable access token was found.","Codex auth file was found, but no usable token was detected.":"Codex auth file was found, but no usable token was detected.","Claude Code credential file was found, but no usable OAuth token was detected.":"Claude Code credential file was found, but no usable OAuth token was detected.","Grok CLI login detected. Click Import to add it as a gateway provider.":"Grok CLI login detected. Click Import to add it as a gateway provider.","Grok CLI login was detected, but no usable access token was found.":"Grok CLI login was detected, but no usable access token was found.","Grok CLI login was detected, but the access token is expired. Run grok login again, then rescan.":"Grok CLI login was detected, but the access token is expired. Run grok login again, then rescan.","Kimi CLI login detected. Click Import to add it as a gateway provider.":"Kimi CLI login detected. Click Import to add it as a gateway provider.","Kimi CLI provider API key detected. Click Import to add it as a gateway provider.":"Kimi CLI provider API key detected. Click Import to add it as a gateway provider.","Kimi CLI login was detected, but no usable OAuth token was found. Run /login in Kimi CLI, then rescan.":"Kimi CLI login was detected, but no usable OAuth token was found. Run /login in Kimi CLI, then rescan.","Kimi CLI provider was detected, but no usable API key was found.":"Kimi CLI provider was detected, but no usable API key was found.","Kilo CLI":"Kilo CLI","Kilo model":"Kilo model","Kimi model":"Kimi model","Kimi model is required.":"Kimi model is required.",Pi:"Pi","Pi model":"Pi model",Workbuddy:"Workbuddy","Workbuddy model":"Workbuddy model","OpenCode CLI credential was found, but no usable API key was detected.":"OpenCode CLI credential was found, but no usable API key was detected.","OpenCode CLI login detected. Click Import to add it as a gateway provider.":"OpenCode CLI login detected. Click Import to add it as a gateway provider.","OpenCode CLI public models detected. No login is required.":"OpenCode CLI public models detected. No login is required.","CCR scanned this computer for local Claude Code, Codex, Grok CLI, Kimi CLI, OpenCode CLI, and ZCode providers. Click Import to add one as a gateway provider.":"CCR scanned this computer for local Claude Code, Codex, Grok CLI, Kimi CLI, OpenCode CLI, and ZCode providers. Click Import to add one as a gateway provider.",Locked:"Locked",Manual:"Manual","Local agent login will be connected after saving this provider.":"Local agent login will be connected after saving this provider.","Local login provider":"Local login provider","Launch actions":"Launch actions","Management actions":"Management actions","Models to check":"Models to check",model:"model",models:"models","Fable model":"Fable model","Haiku model":"Haiku model","Model overrides are optional; empty fields keep Claude Code defaults.":"Model overrides are optional; empty fields keep Claude Code defaults.",Optional:"Optional","Opus model":"Opus model",Required:"Required","Sonnet model":"Sonnet model",Next:"Next","Next step":"Next step","Available model IDs":"Available model IDs",Added:"Added","Added models":"Added models","Add custom model":"Add custom model","Cancel custom model":"Cancel custom model","Click a model to edit settings":"Click a model to edit settings","Custom model":"Custom model","Loading provider models":"Loading provider models","Model already added":"Model already added","Models detected from this provider":"Models detected from this provider","No models added":"No models added","No provider models":"No provider models","Refresh provider models":"Refresh provider models","Refreshing provider models":"Refreshing provider models","This provider did not return a model list. Add model IDs with Custom model.":"This provider did not return a model list. Add model IDs with Custom model.","No available models":"No available models","No local login state was found for this agent.":"No local login state was found for this agent.","No providers":"No providers","Not found":"Not found","Not verified yet":"Not verified yet","Needs models":"Needs models","Needs protocol":"Needs protocol","No unavailable models":"No unavailable models","OpenCode profiles can target CLI, APP, or both entry modes.":"OpenCode profiles can target CLI, APP, or both entry modes.","Optional health check":"Optional health check","Pick models":"Pick models","Pick a preset provider or use a custom compatible API endpoint.":"Pick a preset provider or use a custom compatible API endpoint.",Previous:"Previous","Previous step":"Previous step","Profile name is required.":"Profile name is required.","Provider setup":"Provider setup","Pool keys":"Pool keys","Provider ID and Provider name identify the routed provider in Codex.":"Provider ID and Provider name identify the routed provider in Codex.","Provider ID is required.":"Provider ID is required.","Provider name is required.":"Provider name is required.","Protocols detected":"Protocols detected",Ready:"Ready","Ready to test":"Ready to test","Run a real model request before relying on this provider.":"Run a real model request before relying on this provider.","Optional. Check Connection sends a real model request and may consume provider credits.":"Optional. Check Connection sends a real model request and may consume provider credits.","Select at least one protocol.":"Select at least one protocol.","Select at least one available model.":"Select at least one available model.","Select default model":"Select default model","Select model":"Select model","Select models":"Select models","Search added models":"Search added models","Search provider models":"Search provider models",Service:"Service","Service failed to start":"Service failed to start","Scanning local agent logins":"Scanning local agent logins","Save this agent profile to continue.":"Save this agent profile to continue.","Save this provider to continue.":"Save this provider to continue.","Secret used for requests":"Secret used for requests","Send a request from your agent, then confirm it appears in Logs.":"Send a request from your agent, then confirm it appears in Logs.","Setup readiness":"Setup readiness","Show API key":"Show API key","Show models":"Show models","Hide API key":"Hide API key","Hide models":"Hide models","Use one key for every request.":"Use one key for every request.","Use multiple API keys with optional priorities, weights, and limits.":"Use multiple API keys with optional priorities, weights, and limits.","Use multiple keys with optional limits.":"Use multiple keys with optional limits.",Monitor:"Monitor",Setup:"Setup",Step:"Step",Start:"Start","Start check":"Start check",Stop:"Stop",Workspace:"Workspace","The gateway is configured. Start the service from the toolbar when you are ready to test traffic.":"The gateway is configured. Start the service from the toolbar when you are ready to test traffic.","The imported local agent login is connected when this provider is saved.":"The imported local agent login is connected when this provider is saved.","This check sends real model requests with your provider API key and may consume account balance.":"This check sends real model requests with your provider API key and may consume account balance.",Usable:"Usable","Verify connection":"Verify connection","Waiting for provider details":"Waiting for provider details","Waiting for required fields":"Waiting for required fields","API endpoint, API key, and at least one model are required before verification.":"API endpoint, API key, and at least one model are required before verification.","10 / page":"10 / page","25 / page":"25 / page","50 / page":"50 / page","100 / page":"100 / page","Clear filters":"Clear filters","Clear filters or broaden the search to find more request logs.":"Clear filters or broaden the search to find more request logs.","Default model is required.":"Default model is required.","Default model is required when allowed model list is set.":"Default model is required when allowed model list is set.","Enable at least one provider model before saving this profile.":"Enable at least one provider model before saving this profile.","Enable request logs":"Enable request logs","Environment variable rows need valid keys.":"Environment variable rows need valid keys.","Idle seconds must be between 30 and 86400.":"Idle seconds must be between 30 and 86400.","No request logs match the current filters.":"No request logs match the current filters.","No request logs yet.":"No request logs yet.","Session not found or outside the selected range":"Session not found or outside the selected range","Models, paths, routing, bot, compact, and env":"Models, paths, routing, bot, compact, and env","Paths, routing, bot, compact, and env":"Paths, routing, bot, compact, and env","Paths, bot, compact, and env":"Paths, bot, compact, and env","Enhanced route":"Enhanced route","Enhanced route description Claude Code":"CCR built-in Claude Code routing optimizes requests to third-party models for this profile.","Enhanced route description Codex":"CCR built-in Codex routing optimizes requests to third-party models for this profile.","Enhanced route off":"Enhanced route off","Request logs are off":"Request logs are off","Request logs record gateway requests and make payload inspection available.":"Request logs record gateway requests and make payload inspection available.","Select an existing bot or turn Bot off.":"Select an existing bot or turn Bot off.","Select a route node to inspect routing operations":"Select a route node to inspect routing operations","Select a route node to inspect its operations.":"Select a route node to inspect its operations.","Send a request through CCR, then refresh this page to inspect it.":"Send a request through CCR, then refresh this page to inspect it.",providers:"providers","ZCode login detected. Click Import to add it as a gateway provider.":"ZCode login detected. Click Import to add it as a gateway provider.","ZCode profiles use APP entry mode.":"ZCode profiles use APP entry mode.","ZCode login was detected, but its local credential is encrypted and cannot be imported automatically.":"ZCode login was detected, but its local credential is encrypted and cannot be imported automatically.","ZCode login was detected, but no usable provider API key was found in ZCode config.":"ZCode login was detected, but no usable provider API key was found in ZCode config.","ZCode provider API key detected in local ZCode config. Click Import to add it as a gateway provider.":"ZCode provider API key detected in local ZCode config. Click Import to add it as a gateway provider.","Unavailable models":"Unavailable models","Account Balance":"Account Balance","Account Usage":"Account Usage","Account component":"Account component","All accounts":"All accounts","All credentials":"All credentials","Last updated":"Last updated","Analysis is limited to the newest":"Analysis is limited to the newest",of:"of","requests in the selected range.":"requests in the selected range.","requests.":"requests.","Refresh account":"Refresh account","Refreshing account":"Refreshing account","Add widget":"Add widget","Analysis component":"Analysis component",Arc:"Arc",Area:"Area",Auto:"Auto","Average latency":"Average latency",Bar:"Bar",Bars:"Bars","Breakdown component":"Breakdown component",Card:"Card",Cards:"Cards","Change widget type":"Change widget type","Client Analysis":"Client Analysis","Component properties":"Component properties",Components:"Components","Component category":"Component category",Compact:"Compact",Composed:"Composed","Client or provider":"Client or provider",Data:"Data",Done:"Done",Donut:"Donut","Drag cards to arrange":"Drag cards to arrange","Drag to move":"Drag to move","Edit widgets":"Edit widgets",Full:"Full","Header component":"Header component",Large:"Large",Line:"Line",Medium:"Medium",Metric:"Metric","Metric component":"Metric component","Model Distribution":"Model Distribution","Model distribution":"Model distribution","Move down":"Move down","Move up":"Move up","Nested rings":"Nested rings","No model activity":"No model activity","No widget selected":"No widget selected","No widgets configured":"No widgets configured","Overview layout":"Overview layout",Overview:"Overview",Other:"Other",Pie:"Pie","Provider Analysis":"Provider Analysis","Provider component":"Provider component",Preview:"Preview","Requests, tokens, cost":"Requests, tokens, cost","Remove widget":"Remove widget","Reset layout":"Reset layout","Move account card":"Move account card","Resize account card":"Resize account card","Close fullscreen JSON viewer":"Close fullscreen JSON viewer","Fullscreen JSON viewer":"Fullscreen JSON viewer","Open fullscreen JSON viewer":"Open fullscreen JSON viewer","Resize column width":"Resize column width","Resize widget height":"Resize widget height","Resize widget size":"Resize widget size","Resize widget width":"Resize widget width",Ring:"Ring",Semicircle:"Semicircle",Small:"Small",Stacked:"Stacked","Status component":"Status component","Status timeline":"Status timeline",Style:"Style",Table:"Table",Timeline:"Timeline","Token distribution":"Token distribution","Token or model distribution":"Token or model distribution","Token mix, rings, model share":"Token mix, rings, model share","Token mix component":"Token mix component","Trend component":"Trend component","Usage over time":"Usage over time",Widget:"Widget","Widget size":"Widget size",Wide:"Wide","Share cards":"Share cards","Share card":"Share card","Save social-ready cards as PNG images":"Save social-ready cards as PNG images","Social media PNG cards":"Social media PNG cards","PNG export":"PNG export","Save image":"Save image",Saving:"Saving","Export failed":"Export failed","AI Usage Wrapped":"AI Usage Wrapped","CCR Route Map":"CCR Route Map","Model Leaderboard":"Model Leaderboard","AI Fuel Cockpit":"AI Fuel Cockpit","Token Calendar Poster":"Token Calendar Poster","Spend Receipt":"Spend Receipt","tokens routed through CCR":"tokens routed through CCR","Top model":"Top model","Top provider":"Top provider","No provider activity":"No provider activity","Peak day":"Peak day","Generated by CCR":"Generated by CCR",Range:"Range","Virtual model":"Fusion","Virtual Models":"Fusion","Add Virtual Model":"Add Fusion","Add virtual model":"Add Fusion","Edit Virtual Model":"Edit Fusion","Edit virtual model":"Edit Fusion","Fusion combines a model with another model or tools into a new model.":"Fusion combines a model with another model or tools into a new model.","Fusion example":"Example: GLM 5.2 + GLM 5V Turbo = GLM 5.2V","Vision tool configuration":"Vision tool configuration","Choose a configured gateway model for image understanding.":"Choose a configured gateway model for image understanding.","Vision model":"Vision model","Vision fallback model":"Vision fallback model","Vision model is required.":"Vision model is required.","No vision fallback models configured":"No vision fallback models configured","Web search configuration":"Web search configuration","Search provider":"Search provider","In-app Browser":"In-app Browser","Provider configuration":"Provider configuration","Search engine":"Search engine","Safe search":"Safe search",Language:"Language",Country:"Country","Advanced variables":"Advanced variables",Default:"Default",Moderate:"Moderate",Strict:"Strict",Off:"Off","Add tool":"Add tool","Add variable":"Add variable","Add custom MCP":"Add custom MCP","Add custom MCP tool":"Add custom MCP tool","Custom MCP tool":"Custom MCP tool","Discover tools":"Discover tools","Import MCP JSON":"Import MCP JSON","MCP JSON":"MCP JSON","MCP tools":"MCP tools","MCP server":"MCP server","MCP server name already exists.":"MCP server name already exists.",Arguments:"Arguments","Working directory":"Working directory","API key env":"API key env",APP_PATH:"APP_PATH",CLAUDE_APP_PATH:"CLAUDE_APP_PATH",CHATGPT_APP_PATH:"CHATGPT_APP_PATH",OPENCODE_APP_PATH:"OPENCODE_APP_PATH",WORKBUDDY_APP_PATH:"WORKBUDDY_APP_PATH","Drop the app here or paste the executable path":"Drop the app here or paste the executable path","Tool name":"Tool name","Third-party tool environment":"Third-party tool environment","Environment variables":"Environment variables","Tool name is required.":"Tool name is required.","Environment variable keys are required when values are set.":"Environment variable keys are required when values are set.","MCP tool discovery is available in the Electron app.":"MCP tool discovery is available in the Electron app.","No MCP servers found in JSON.":"No MCP servers found in JSON.","No MCP servers configured":"No MCP servers configured","No tools discovered":"No tools discovered","No tools available":"No tools available","Select tool":"Select tool","Tool discovery failed":"Tool discovery failed","Image recognition":"Image recognition","Image recognition and Web Search":"Image recognition and Web Search","Generic image understanding tool for OCR, screenshot analysis, chart reading, UI comparison, error diagnosis, and other multi-image tasks.":"Generic image understanding tool for OCR, screenshot analysis, chart reading, UI comparison, error diagnosis, and other multi-image tasks.","Generic web search tool supporting Brave, Bing, Google CSE, Serper, SerpAPI, Tavily, and Exa.":"Generic web search tool supporting Brave, Bing, Google CSE, Serper, SerpAPI, Tavily, and Exa.","Generic web search tool supporting hidden in-app browser search plus Brave, Bing, Google CSE, Serper, SerpAPI, Tavily, and Exa.":"Generic web search tool supporting hidden in-app browser search plus Brave, Bing, Google CSE, Serper, SerpAPI, Tavily, and Exa.","Image generation":"Image generation","Video generation":"Video generation","Generate and edit images with a media-capable provider model.":"Generate and edit images with a media-capable provider model.","Generate and manage asynchronous videos with a media-capable provider model.":"Generate and manage asynchronous videos with a media-capable provider model.","Image model":"Image model","Video model":"Video model","Image fallback model":"Image fallback model","Video fallback model":"Video fallback model","No image fallback models configured":"No image fallback models configured","No video fallback models configured":"No video fallback models configured","API models reuse the selected provider's endpoint and credentials.":"API models reuse the selected provider's endpoint and credentials.","CCR routes media through the selected ai-gateway provider. Imported Grok Agents reuse their existing login automatically.":"CCR routes media through the selected ai-gateway provider. Imported Grok Agents reuse their existing login automatically.","Image generation model is required.":"Image generation model is required.","Video generation model is required.":"Video generation model is required.","Web Search":"Web Search","New model":"New model","New model is required.":"New model is required.","Base model is required.":"Base model is required.","Tool is required.":"Tool is required.","No matching virtual models":"No matching Fusion profiles","No virtual models configured":"No Fusion profiles configured","Remove virtual model":"Remove Fusion","Search virtual models":"Search Fusion",Virtual:"Fusion","Virtual models":"Fusion","Header\u4E2D\u672A\u6536\u5230Authorization\u53C2\u6570\uFF0C\u65E0\u6CD5\u8FDB\u884C\u8EAB\u4EFD\u9A8C\u8BC1\u3002":"Missing Authorization header, so authentication could not be performed."}},zh:{navigation:{onboarding:"\u4E0A\u624B\u5F15\u5BFC","api-keys":"API \u5BC6\u94A5",extensions:"\u6269\u5C55",logs:"\u65E5\u5FD7",networking:"\u7F51\u7EDC",observability:"\u89C2\u6D4B",overview:"\u6982\u89C8",profile:"Agent \u914D\u7F6E\u6863\u6848",providers:"\u4F9B\u5E94\u5546",models:"\u6A21\u578B",routing:"\u5168\u5C40\u8DEF\u7531",server:"\u670D\u52A1","virtual-models":"Fusion"},settings:{agentAnalysis:"Agent \u89C2\u6D4B",agentAnalysisDescription:"\u8BB0\u5F55\u89C2\u6D4B\u9875\u6240\u9700\u7684\u8BF7\u6C42\u5143\u6570\u636E\u3002",appearance:"\u5916\u89C2",bots:"Bot \u7BA1\u7406",button:"\u8BBE\u7F6E",close:"\u5173\u95ED",data:"\u6570\u636E",done:"\u5B8C\u6210",general:"\u901A\u7528",language:"\u8BED\u8A00",languageChinese:"\u4E2D\u6587",languageEnglish:"\u82F1\u6587",languageSystem:"\u8DDF\u968F\u7CFB\u7EDF",launchAtLogin:"\u5F00\u673A\u81EA\u542F",launchAtLoginDescription:"\u767B\u5F55\u7CFB\u7EDF\u540E\u81EA\u52A8\u6253\u5F00 Claude Code Router\u3002",observability:"\u65E5\u5FD7\u4E0E\u89C2\u6D4B",proxy:"\u4EE3\u7406",requestLogs:"\u8BF7\u6C42\u65E5\u5FD7",requestLogsDescription:"\u8BB0\u5F55\u7F51\u5173\u8BF7\u6C42\u5E76\u663E\u793A\u65E5\u5FD7\u9875\u3002",theme:"\u4E3B\u9898",themeDark:"\u6697\u8272",themeLight:"\u4EAE\u8272",themeSystem:"\u8DDF\u968F\u7CFB\u7EDF",toolHub:"ToolHub",toolHubBrowserAutomation:"\u5185\u7F6E\u6D4F\u89C8\u5668\u81EA\u52A8\u5316",toolHubBrowserAutomationDescription:"\u901A\u8FC7 ToolHub \u66B4\u9732 CCR Desktop \u7684\u5185\u7F6E\u6D4F\u89C8\u5668\u81EA\u52A8\u5316\u5DE5\u5177\u3002",toolHubDescription:"\u5C06\u5DF2\u914D\u7F6E\u7684 MCP servers \u4EA4\u7ED9 ToolHub\uFF0C\u7531\u6A21\u578B\u8D1F\u8D23\u68C0\u7D22\u9700\u8981\u7684\u5DE5\u5177\u3002",toolHubEnabled:"\u542F\u7528 ToolHub",toolHubEnabledDescription:"\u5411 Agent \u66B4\u9732\u7D27\u51D1\u7684 ToolHub MCP\uFF0C\u800C\u4E0D\u662F\u6240\u6709\u5DF2\u914D\u7F6E MCP \u5DE5\u5177\u3002",toolHubMaxTools:"\u6700\u5927\u5DE5\u5177\u6570",toolHubModel:"\u68C0\u7D22\u6A21\u578B",toolHubModelPlaceholder:"\u9009\u62E9\u5DF2\u914D\u7F6E\u6A21\u578B",toolHubTimeout:"\u8D85\u65F6\u6BEB\u79D2",tray:"Tray",trayBalanceProgressAccount:"\u8D26\u6237",trayBalanceProgressData:"\u6570\u636E",trayBalanceProgressNoData:"\u6682\u65E0\u53EF\u7528\u8D26\u6237\u6570\u636E\uFF0C\u8BF7\u5148\u4E3A\u4F9B\u5E94\u5546\u542F\u7528\u8D26\u6237\u76D1\u63A7\u3002",trayBalanceProgressRequired:"\u8BF7\u9009\u62E9\u8D26\u6237\u548C\u6570\u636E\u540E\u542F\u7528\u4F59\u989D\u8FDB\u5EA6\u6761\u3002",trayIcon:"\u6258\u76D8\u5C0F\u7CBE\u7075",trayIconCyan:"\u6674\u5C9A",trayIconOrange:"\u6696\u9633",trayIconProgress:"\u4F59\u989D\u8FDB\u5EA6\u6761",trayIconRandom:"\u968F\u673A",trayIconViolet:"\u661F\u6F9C",trayComponentAccount:"\u8D26\u6237\u6307\u6807",trayComponentArc:"\u5F27\u5F62",trayComponentArea:"\u9762\u79EF\u56FE",trayComponentBar:"\u67F1\u72B6\u56FE",trayComponentBars:"\u6A2A\u6761",trayComponentCards:"\u5361\u7247",trayComponentCompact:"\u7D27\u51D1",trayComponentDonut:"\u73AF\u5F62\u56FE",trayComponentFlow:"\u8D8B\u52BF\u56FE",trayComponentGauges:"\u4EEA\u8868\u76D8",trayComponentLine:"\u6298\u7EBF\u56FE",trayComponentList:"\u5217\u8868",trayComponentModelShare:"\u6A21\u578B\u5360\u6BD4",trayComponentPie:"\u997C\u56FE",trayComponentPills:"\u80F6\u56CA",trayComponentRing:"\u5706\u73AF",trayComponentRings:"\u5706\u73AF",trayComponentSparkline:"\u8FF7\u4F60\u6298\u7EBF",trayComponentStacked:"\u5806\u53E0",trayComponentStats:"\u6307\u6807",trayComponentStyles:"\u7EC4\u4EF6\u6837\u5F0F",trayComponentEnabled:"\u542F\u7528\u7EC4\u4EF6",trayComponentProperties:"\u7EC4\u4EF6\u5C5E\u6027",trayComponentStyle:"\u6837\u5F0F",trayComponents:"\u7EC4\u4EF6\u533A",trayComponentTokenMix:"Token \u6784\u6210",trayModuleActivity:"Token \u6D3B\u8DC3\u5EA6",trayModuleAccount:"\u8D26\u6237\u4F59\u989D",trayModuleFooter:"\u5E95\u90E8\u64CD\u4F5C",trayModuleHeader:"\u6807\u9898\u548C\u72B6\u6001",trayModuleModelShare:"\u6A21\u578B\u5360\u6BD4",trayModuleRings:"\u73AF\u5F62\u6307\u6807",trayModuleSourceTabs:"\u4F9B\u5E94\u5546\u5207\u6362",trayModuleStats:"Token \u6307\u6807",trayModuleTokenFlow:"Token \u8D8B\u52BF\u56FE",trayModuleTokenMix:"Token \u6784\u6210",trayPreview:"\u9884\u89C8",trayPreviewEmpty:"\u672A\u542F\u7528 Tray \u6A21\u5757",trayProgressTarget:"\u8FDB\u5EA6\u76EE\u6807",trayWindowModules:"Tray \u7A97\u53E3\u6A21\u5757",title:"\u8BBE\u7F6E"},sidebar:{collapse:"\u6536\u8D77\u4FA7\u8FB9\u680F",expand:"\u5C55\u5F00\u4FA7\u8FB9\u680F",primaryNavigation:"\u4E3B\u5BFC\u822A"},text:{"24h":"24 \u5C0F\u65F6","7d":"7 \u5929","30d":"30 \u5929",Agent:"Agent","A provider is required before profiles can route traffic.":"\u9700\u8981\u5148\u914D\u7F6E\u4F9B\u5E94\u5546\uFF0C\u914D\u7F6E\u6863\u6848\u624D\u80FD\u8DEF\u7531\u8BF7\u6C42\u3002","A real model request succeeded with the selected provider settings.":"\u5DF2\u4F7F\u7528\u5F53\u524D\u4F9B\u5E94\u5546\u8BBE\u7F6E\u6210\u529F\u5B8C\u6210\u4E00\u6B21\u771F\u5B9E\u6A21\u578B\u8BF7\u6C42\u3002","Add or verify a model provider.":"\u6DFB\u52A0\u6216\u786E\u8BA4\u6A21\u578B\u4F9B\u5E94\u5546\u3002","CCR compact for Claude Code":"Claude Code \u4F7F\u7528 CCR \u538B\u7F29","Use CCR context archive when Claude Code runs /compact.":"Claude Code \u6267\u884C /compact \u65F6\u6539\u7528 CCR \u4E0A\u4E0B\u6587\u5F52\u6863\u3002","Context archive and MCP access will be enabled for this compact mode.":"\u5C06\u4E3A\u6B64\u538B\u7F29\u6A21\u5F0F\u542F\u7528\u4E0A\u4E0B\u6587\u5F52\u6863\u548C MCP \u8BBF\u95EE\u3002","Agent Analysis":"Agent \u5206\u6790","Agent access":"Agent \u63A5\u5165","Agent Mix":"Agent \u5206\u5E03","Agent profile":"Agent \u914D\u7F6E\u6863\u6848","Agent profiles":"Agent \u914D\u7F6E\u6863\u6848","All agents":"\u5168\u90E8 Agent","All models":"\u5168\u90E8\u6A21\u578B","All providers":"\u5168\u90E8\u4F9B\u5E94\u5546","API key":"API \u5BC6\u94A5","API key created":"API \u5BC6\u94A5\u5DF2\u521B\u5EFA","API keys database":"API \u5BC6\u94A5\u6570\u636E\u5E93","Copy this key now. It may not be shown again.":"\u8BF7\u73B0\u5728\u590D\u5236\u4FDD\u5B58\u8FD9\u4E2A\u5BC6\u94A5\uFF0C\u4E4B\u540E\u53EF\u80FD\u4E0D\u4F1A\u518D\u6B21\u5B8C\u6574\u663E\u793A\u3002",Add:"\u6DFB\u52A0","Add env variable":"\u6DFB\u52A0\u73AF\u5883\u53D8\u91CF","Add header":"\u6DFB\u52A0\u8BF7\u6C42\u5934","Add API Key":"\u6DFB\u52A0 API \u5BC6\u94A5","Add API key":"\u6DFB\u52A0 API \u5BC6\u94A5","Add key":"\u6DFB\u52A0 Key","Add credentials":"\u6DFB\u52A0\u51ED\u636E","Add the API key CCR will use for model requests.":"\u586B\u5199 CCR \u53D1\u8D77\u6A21\u578B\u8BF7\u6C42\u65F6\u4F7F\u7528\u7684 API Key\u3002","Add limit":"\u6DFB\u52A0\u9650\u5236","Add parameter":"\u6DFB\u52A0\u53C2\u6570","Add Profile":"\u6DFB\u52A0\u914D\u7F6E","Add profile":"\u6DFB\u52A0\u914D\u7F6E","Add Provider":"\u6DFB\u52A0\u4F9B\u5E94\u5546","Add provider":"\u6DFB\u52A0\u4F9B\u5E94\u5546","Add bot":"\u6DFB\u52A0 Bot","Add new bot":"\u6DFB\u52A0\u65B0 Bot","Add Routing Rule":"\u6DFB\u52A0\u8DEF\u7531\u89C4\u5219","Add routing rule":"\u6DFB\u52A0\u8DEF\u7531\u89C4\u5219","Advanced Settings...":"\u9AD8\u7EA7\u8BBE\u7F6E...",Advanced:"\u9AD8\u7EA7","Advanced key options":"Key \u9AD8\u7EA7\u9009\u9879","Advanced settings":"\u9AD8\u7EA7\u8BBE\u7F6E","Advanced settings need attention":"\u9AD8\u7EA7\u8BBE\u7F6E\u9700\u8981\u5904\u7406",Always:"\u59CB\u7EC8",Alias:"\u522B\u540D","Alias is required.":"\u522B\u540D\u4E0D\u80FD\u4E3A\u7A7A\u3002",Applied:"\u5DF2\u5E94\u7528","App only":"\u4EC5 App","API endpoint, API key, and at least one model are required before verification.":"\u9A8C\u8BC1\u524D\u9700\u8981 API \u5730\u5740\u3001API Key \u548C\u81F3\u5C11\u4E00\u4E2A\u6A21\u578B\u3002","10 / page":"10 / \u9875","25 / page":"25 / \u9875","50 / page":"50 / \u9875","100 / page":"100 / \u9875",Args:"\u53C2\u6570","API Keys":"API \u5BC6\u94A5","API key included":"\u5DF2\u5305\u542B API \u5BC6\u94A5","API key not included":"\u672A\u5305\u542B API \u5BC6\u94A5","API key persistence is only available in the Electron app.":"API Key \u6301\u4E45\u5316\u4EC5\u5728 Electron App \u4E2D\u53EF\u7528\u3002","Acknowledge events":"\u786E\u8BA4\u4E8B\u4EF6","Auth type":"\u8BA4\u8BC1\u7C7B\u578B","Auth method":"\u8BA4\u8BC1\u65B9\u5F0F","Auto start integration":"\u81EA\u52A8\u542F\u52A8\u96C6\u6210","Base URL":"\u57FA\u7840 URL",Bot:"Bot","Bot name, platform, and required authentication fields are required.":"Bot \u540D\u79F0\u3001\u5E73\u53F0\u548C\u5FC5\u586B\u8BA4\u8BC1\u5B57\u6BB5\u4E0D\u80FD\u4E3A\u7A7A\u3002","Bot gateway path":"Bot \u7F51\u5173\u8DEF\u5F84","Weixin iLink":"\u5FAE\u4FE1",WeCom:"\u4F01\u4E1A\u5FAE\u4FE1",Feishu:"\u98DE\u4E66",DingTalk:"\u9489\u9489","QR Login":"\u626B\u7801\u767B\u5F55","Weixin Login":"\u5FAE\u4FE1\u767B\u5F55","Weixin QR code":"\u5FAE\u4FE1\u4E8C\u7EF4\u7801","QR login is available in the Electron app.":"\u626B\u7801\u767B\u5F55\u4EC5\u5728 Electron App \u4E2D\u53EF\u7528\u3002","QR window is available in the Electron app.":"\u4E8C\u7EF4\u7801\u7A97\u53E3\u4EC5\u5728 Electron App \u4E2D\u53EF\u7528\u3002","QR scan timed out.":"\u626B\u7801\u8D85\u65F6\u3002","QR scan observation failed.":"\u626B\u7801\u72B6\u6001\u89C2\u6D4B\u5931\u8D25\u3002","QR scan observation ended unexpectedly.":"\u626B\u7801\u72B6\u6001\u89C2\u6D4B\u5F02\u5E38\u7ED3\u675F\u3002","Preparing Weixin login.":"\u6B63\u5728\u51C6\u5907\u5FAE\u4FE1\u767B\u5F55\u3002","QR login canceled.":"\u626B\u7801\u767B\u5F55\u5DF2\u53D6\u6D88\u3002","Weixin login requires a web login URL.":"\u5FAE\u4FE1\u767B\u5F55\u9700\u8981\u7F51\u9875\u5F62\u5F0F\u7684\u767B\u5F55\u5730\u5740\u3002","Generate QR code":"\u751F\u6210\u4E8C\u7EF4\u7801","Generating QR code":"\u6B63\u5728\u751F\u6210\u4E8C\u7EF4\u7801","Open QR window":"\u6253\u5F00\u4E8C\u7EF4\u7801\u7A97\u53E3","Scan the QR code in Weixin.":"\u8BF7\u4F7F\u7528\u5FAE\u4FE1\u626B\u63CF\u4E8C\u7EF4\u7801\u3002","Scan with Weixin to connect this bot.":"\u4F7F\u7528\u5FAE\u4FE1\u626B\u7801\u8FDE\u63A5\u8FD9\u4E2A Bot\u3002","Scan with Weixin in the opened window.":"\u8BF7\u5728\u6253\u5F00\u7684\u7A97\u53E3\u4E2D\u4F7F\u7528\u5FAE\u4FE1\u626B\u7801\u3002","Weixin login window closed, confirming login status.":"\u5FAE\u4FE1\u767B\u5F55\u7A97\u53E3\u5DF2\u5173\u95ED\uFF0C\u6B63\u5728\u786E\u8BA4\u767B\u5F55\u72B6\u6001\u3002","Waiting for QR code":"\u7B49\u5F85\u751F\u6210\u4E8C\u7EF4\u7801","Waiting for scan":"\u7B49\u5F85\u626B\u7801","Scanned, confirm on phone":"\u5DF2\u626B\u7801\uFF0C\u8BF7\u5728\u624B\u673A\u4E0A\u786E\u8BA4","Verification required":"\u9700\u8981\u9A8C\u8BC1\u7801",Connected:"\u5DF2\u8FDE\u63A5","QR code expired":"\u4E8C\u7EF4\u7801\u5DF2\u8FC7\u671F","Already connected":"\u5DF2\u8FDE\u63A5\u8FC7","QR login failed":"\u626B\u7801\u767B\u5F55\u5931\u8D25",Regenerate:"\u91CD\u65B0\u751F\u6210","Bot Token":"Bot Token","Account ID":"\u8D26\u53F7 ID","User ID":"\u7528\u6237 ID","Corp ID":"\u4F01\u4E1A ID","Agent ID":"Agent ID",Secret:"Secret","Signing Secret":"Signing Secret","App Token":"App Token","OAuth 2.0":"OAuth 2.0","OAuth Bot Token":"OAuth Bot Token","OAuth Access Token":"OAuth Access Token","Application ID":"\u5E94\u7528 ID","Public Key":"\u516C\u94A5","Channel Access Token":"Channel Access Token","Channel Secret":"Channel Secret","App ID":"App ID","App Secret":"App Secret","Verification Token":"Verification Token",Domain:"Domain","App Key":"App Key","Robot Code":"Robot Code",Optional:"\u53EF\u9009",Required:"\u5FC5\u586B",Auto:"\u81EA\u52A8","Auto fetch latest models":"\u81EA\u52A8\u62C9\u53D6\u6700\u65B0\u6A21\u578B","Poll the provider models endpoint every 10 minutes and add newly discovered models automatically.":"\u6BCF 10 \u5206\u949F\u8BF7\u6C42\u4E00\u6B21\u4F9B\u5E94\u5546 models \u63A5\u53E3\uFF0C\u5E76\u81EA\u52A8\u52A0\u5165\u65B0\u53D1\u73B0\u7684\u6A21\u578B\u3002","OpenRouter discount routing":"OpenRouter \u6298\u6263\u8DEF\u7531","Automatically choose the cheapest live OpenRouter provider endpoint when savings exceed estimated cache loss.":"\u5F53\u8282\u7701\u91D1\u989D\u8D85\u8FC7\u9884\u4F30\u7F13\u5B58\u5931\u6548\u635F\u5931\u65F6\uFF0C\u81EA\u52A8\u9009\u62E9\u6700\u4FBF\u5B9C\u7684 OpenRouter \u5B9E\u65F6\u4F9B\u5E94\u5546\u7AEF\u70B9\u3002","Provider blacklist":"\u4F9B\u5E94\u5546\u9ED1\u540D\u5355","No providers blocked":"\u672A\u5C4F\u853D\u4F9B\u5E94\u5546",blocked:"\u5DF2\u5C4F\u853D","Clear blacklist":"\u6E05\u7A7A\u9ED1\u540D\u5355","Refresh providers":"\u5237\u65B0\u4F9B\u5E94\u5546","Loading providers":"\u6B63\u5728\u52A0\u8F7D\u4F9B\u5E94\u5546","No providers found":"\u672A\u627E\u5230\u4F9B\u5E94\u5546",Quantization:"\u91CF\u5316",Uptime:"\u53EF\u7528\u7387",Yesterday:"\u6628\u65E5","Enter an OpenRouter API key to load providers.":"\u8BF7\u8F93\u5165 OpenRouter API key \u540E\u52A0\u8F7D\u4F9B\u5E94\u5546\u3002","Select a model to load its OpenRouter providers.":"\u8BF7\u9009\u62E9\u6A21\u578B\u4EE5\u52A0\u8F7D\u5B83\u7684 OpenRouter \u4F9B\u5E94\u5546\u3002","Excluded OpenRouter providers will be skipped by discount routing and OpenRouter fallbacks.":"\u9ED1\u540D\u5355\u4E2D\u7684 OpenRouter \u4F9B\u5E94\u5546\u4F1A\u88AB\u6298\u6263\u8DEF\u7531\u548C OpenRouter fallback \u8DF3\u8FC7\u3002","Auto detect protocols":"\u81EA\u52A8\u63A2\u6D4B\u534F\u8BAE","Auto detect protocols description":"\u5F00\u542F\u540E\uFF0CCCR \u4F1A\u5728\u7F16\u8F91\u65F6\u63A2\u6D4B\u63A5\u53E3\uFF0C\u5E76\u7528\u63A2\u6D4B\u5230\u7684\u534F\u8BAE\u548C\u6A21\u578B\u66F4\u65B0\u6B64\u4F9B\u5E94\u5546\u3002\u5173\u95ED\u540E\uFF0C\u624B\u52A8\u9009\u62E9\u7684\u534F\u8BAE\u548C\u81EA\u5B9A\u4E49\u6A21\u578B ID \u4F1A\u4FDD\u6301\u4E0D\u53D8\u3002","Auto detect protocols info":"\u81EA\u52A8\u63A2\u6D4B\u534F\u8BAE\u8BF4\u660E",Automatic:"\u81EA\u52A8",Back:"\u8FD4\u56DE",Backup:"\u5907\u4EFD",Cache:"\u7F13\u5B58","Cache rate":"\u7F13\u5B58\u7387","Cache ratio":"\u7F13\u5B58\u7387","Cache tokens":"\u7F13\u5B58 Token","Cache write":"\u7F13\u5B58\u5199\u5165",Cancel:"\u53D6\u6D88",Channel:"\u9891\u9053",Check:"\u68C0\u67E5","Check Connection":"\u68C0\u6D4B\u8FDE\u901A\u6027","Checking connection":"\u6B63\u5728\u68C0\u6D4B\u8FDE\u901A\u6027","Check for updates":"\u68C0\u67E5\u66F4\u65B0","Checking for updates":"\u6B63\u5728\u68C0\u67E5\u66F4\u65B0","Capture network":"\u6355\u83B7\u7F51\u7EDC","Connection verified":"\u8FDE\u901A\u6027\u5DF2\u9A8C\u8BC1",Conversation:"\u5BF9\u8BDD",Action:"\u64CD\u4F5C","Available after saving":"\u4FDD\u5B58\u540E\u53EF\u7528","Check trust":"\u68C0\u67E5\u4FE1\u4EFB","Choose where each agent uses CCR.":"\u9009\u62E9\u6BCF\u4E2A Agent \u5728\u54EA\u91CC\u4F7F\u7528 CCR\u3002","Choose provider":"\u9009\u62E9\u4F9B\u5E94\u5546","Choose a provider endpoint so CCR can detect compatible protocols.":"\u9009\u62E9\u4F9B\u5E94\u5546\u7AEF\u70B9\u540E\uFF0CCCR \u624D\u80FD\u63A2\u6D4B\u517C\u5BB9\u534F\u8BAE\u3002","Choose the models that should be available through this provider.":"\u9009\u62E9\u8FD9\u4E2A\u4F9B\u5E94\u5546\u5BF9\u5916\u53EF\u7528\u7684\u6A21\u578B\u3002","Connect a provider in four small steps.":"\u901A\u8FC7 4 \u4E2A\u5C0F\u6B65\u9AA4\u63A5\u5165\u4E00\u4E2A\u4F9B\u5E94\u5546\u3002","Built-in":"\u5185\u7F6E","Identifies the Claude Code user-agent to provide deep Claude Code integration.":"\u901A\u8FC7\u8BC6\u522B Claude Code \u7684 user-agent\uFF0C\u5B9E\u73B0\u5BF9 Claude Code \u7684\u6DF1\u5EA6\u9002\u914D\u3002","Identifies the Codex user-agent to provide deep Codex integration.":"\u901A\u8FC7\u8BC6\u522B Codex \u7684 user-agent\uFF0C\u5B9E\u73B0\u5BF9 Codex \u7684\u6DF1\u5EA6\u9002\u914D\u3002","Click Check Connection to verify connectivity with a real model request.":"\u70B9\u51FB\u68C0\u6D4B\u8FDE\u901A\u6027\uFF0C\u7528\u4E00\u6B21\u771F\u5B9E\u6A21\u578B\u8BF7\u6C42\u9A8C\u8BC1\u662F\u5426\u53EF\u7528\u3002","Click Add to create one":"\u70B9\u51FB\u6DFB\u52A0\u521B\u5EFA\u4E00\u9879","Click Install to add one":"\u70B9\u51FB\u5B89\u88C5\u6DFB\u52A0\u4E00\u9879",Client:"\u5BA2\u6237\u7AEF","Client Analysis":"\u5BA2\u6237\u7AEF\u5206\u6790","Client Signals":"\u5BA2\u6237\u7AEF\u4FE1\u53F7","Claude Code":"Claude Code",CLI:"CLI",APP:"APP","CLI & APP":"CLI \u548C APP","CLI command":"CLI \u547D\u4EE4",Close:"\u5173\u95ED","Close dialog":"\u5173\u95ED\u5F39\u7A97",Code:"\u4EE3\u7801",Codex:"Codex","Codex model":"Codex \u6A21\u578B","Grok CLI":"Grok CLI","Grok CLI profiles use CCR scope and CLI entry mode.":"Grok CLI \u914D\u7F6E\u6863\u6848\u56FA\u5B9A\u4F7F\u7528 CCR \u4F5C\u7528\u8303\u56F4\u548C CLI \u5165\u53E3\u6A21\u5F0F\u3002","Grok model":"Grok \u6A21\u578B","Kimi CLI":"Kimi CLI","Kilo CLI":"Kilo CLI","Kilo model":"Kilo \u6A21\u578B","Kimi profiles need a default model and an allowed model list.":"Kimi \u914D\u7F6E\u6863\u6848\u9700\u8981\u4E00\u4E2A\u9ED8\u8BA4\u6A21\u578B\u548C\u53EF\u7528\u6A21\u578B\u5217\u8868\u3002","Kimi model":"Kimi \u6A21\u578B","Kimi model is required.":"Kimi \u6A21\u578B\u4E0D\u80FD\u4E3A\u7A7A\u3002","Allowed model list":"\u5141\u8BB8\u6A21\u578B\u5217\u8868","Allowed models":"\u5141\u8BB8\u6A21\u578B",Pi:"Pi","Pi model":"Pi \u6A21\u578B",Workbuddy:"Workbuddy","Workbuddy model":"Workbuddy \u6A21\u578B",OpenCode:"OpenCode","OpenCode model":"OpenCode \u6A21\u578B","CLI only":"\u4EC5 CLI",Concurrency:"\u5E76\u53D1",Condition:"\u6761\u4EF6","Node.js script":"Node.js \u811A\u672C","Rule type":"\u89C4\u5219\u7C7B\u578B","Node.js route script file":"Node.js \u8DEF\u7531\u811A\u672C\u6587\u4EF6","Choose file":"\u9009\u62E9\u6587\u4EF6","Choose a provider preset or endpoint, enter an API key, and add at least one model.":"\u9009\u62E9\u4F9B\u5E94\u5546\u9884\u8BBE\u6216\u7AEF\u70B9\uFF0C\u586B\u5199 API Key\uFF0C\u5E76\u81F3\u5C11\u6DFB\u52A0\u4E00\u4E2A\u6A21\u578B\u3002","Choose an agent, model, and required profile settings.":"\u9009\u62E9 Agent\u3001\u6A21\u578B\u548C\u5FC5\u586B\u7684\u914D\u7F6E\u6863\u6848\u8BBE\u7F6E\u3002","Choose how this provider authenticates model requests.":"\u9009\u62E9\u8FD9\u4E2A\u4F9B\u5E94\u5546\u5982\u4F55\u8BA4\u8BC1\u6A21\u578B\u8BF7\u6C42\u3002","Compatible API protocols were found automatically.":"\u5DF2\u81EA\u52A8\u627E\u5230\u517C\u5BB9\u7684 API \u534F\u8BAE\u3002","Compatible API protocols were found automatically. You can turn off auto detection in Advanced settings and select protocols manually.":"\u5DF2\u81EA\u52A8\u627E\u5230\u517C\u5BB9\u7684 API \u534F\u8BAE\u3002\u4F60\u53EF\u4EE5\u5728\u9AD8\u7EA7\u8BBE\u7F6E\u4E2D\u5173\u95ED\u81EA\u52A8\u68C0\u6D4B\uFF0C\u5E76\u624B\u52A8\u9009\u62E9\u534F\u8BAE\u3002","Timeout (ms)":"\u8D85\u65F6\uFF08\u6BEB\u79D2\uFF09","Test request JSON":"\u6D4B\u8BD5\u8BF7\u6C42 JSON",Validate:"\u6821\u9A8C","Test script":"\u8BD5\u8DD1\u811A\u672C","Script validation passed":"\u811A\u672C\u6821\u9A8C\u901A\u8FC7",Matched:"\u5DF2\u5339\u914D","Not matched":"\u672A\u5339\u914D","Gateway API is unavailable":"\u7F51\u5173 API \u4E0D\u53EF\u7528","Sample must be a JSON object with an object body":"\u6D4B\u8BD5\u6837\u4F8B\u5FC5\u987B\u662F\u5305\u542B\u5BF9\u8C61\u7C7B\u578B body \u7684 JSON \u5BF9\u8C61","Sample headers must be a JSON object containing string or string-array values":"\u6D4B\u8BD5\u8BF7\u6C42 headers \u5FC5\u987B\u662F JSON \u5BF9\u8C61\uFF0C\u4E14\u503C\u53EA\u80FD\u662F\u5B57\u7B26\u4E32\u6216\u5B57\u7B26\u4E32\u6570\u7EC4","Selecting a local script file requires CCR Desktop. Enter the server-local path manually when using the web UI.":"\u9009\u62E9\u672C\u5730\u811A\u672C\u6587\u4EF6\u9700\u8981\u4F7F\u7528 CCR \u684C\u9762\u7248\uFF1B\u4F7F\u7528 Web UI \u65F6\u8BF7\u624B\u52A8\u8F93\u5165\u670D\u52A1\u5668\u672C\u5730\u8DEF\u5F84\u3002","Conversation type":"\u4F1A\u8BDD\u7C7B\u578B",Mode:"\u6A21\u5F0F","Match value":"\u5339\u914D\u503C","Claude Design":"Claude Design","Claude Design model":"Claude Design \u6A21\u578B","Claude Design routes":"Claude Design \u8DEF\u7531",Configure:"\u914D\u7F6E","Configure a provider before creating an agent profile.":"\u8BF7\u5148\u914D\u7F6E\u4F9B\u5E94\u5546\uFF0C\u518D\u521B\u5EFA Agent \u914D\u7F6E\u6863\u6848\u3002","Configure at least one enabled provider model before saving an agent profile.":"\u8BF7\u5148\u914D\u7F6E\u81F3\u5C11\u4E00\u4E2A\u5DF2\u542F\u7528\u7684\u4F9B\u5E94\u5546\u6A21\u578B\uFF0C\u518D\u4FDD\u5B58 Agent \u914D\u7F6E\u6863\u6848\u3002","Configure provider":"\u914D\u7F6E\u4F9B\u5E94\u5546","Configure Extension":"\u914D\u7F6E\u6269\u5C55","Configure extension":"\u914D\u7F6E\u6269\u5C55","Configure plugin":"\u914D\u7F6E\u63D2\u4EF6","Configure plugin route":"\u914D\u7F6E\u63D2\u4EF6\u8DEF\u7531","Configure Routing":"\u914D\u7F6E\u8DEF\u7531","Configure multiple provider API keys for this supplier.":"\u4E3A\u8FD9\u4E2A\u4F9B\u5E94\u5546\u914D\u7F6E\u591A\u4E2A\u4E0A\u6E38 API Key\u3002",Configuration:"\u914D\u7F6E\u6458\u8981",Copy:"\u590D\u5236","Clear filters":"\u6E05\u7A7A\u7B5B\u9009","Clear filters or broaden the search to find more request logs.":"\u8BF7\u6E05\u7A7A\u7B5B\u9009\u6216\u653E\u5BBD\u641C\u7D22\u6761\u4EF6\u6765\u67E5\u627E\u66F4\u591A\u8BF7\u6C42\u65E5\u5FD7\u3002","Create integration":"\u521B\u5EFA\u96C6\u6210",Credential:"\u51ED\u636E","Credential method":"\u51ED\u636E\u65B9\u5F0F","Credential chain":"\u51ED\u636E\u94FE","Credential pool":"\u51ED\u636E\u6C60","Credential saturated":"\u51ED\u636E\u5DF2\u9971\u548C","Credentials JSON":"\u51ED\u636E JSON",Continue:"\u7EE7\u7EED","Custom config path":"\u81EA\u5B9A\u4E49\u914D\u7F6E\u8DEF\u5F84","Core gateway":"\u6838\u5FC3\u7F51\u5173",Cost:"\u6210\u672C","Estimated cost":"\u4F30\u7B97\u6210\u672C","Connect agent":"\u63A5\u5165 Agent","Create profiles that tell each agent which model and entry mode to use.":"\u521B\u5EFA\u914D\u7F6E\u6863\u6848\uFF0C\u6307\u5B9A\u6BCF\u4E2A Agent \u4F7F\u7528\u7684\u6A21\u578B\u548C\u5165\u53E3\u6A21\u5F0F\u3002","Create a profile for your agent.":"\u4E3A\u4F60\u7684 Agent \u521B\u5EFA\u914D\u7F6E\u6863\u6848\u3002","Cursor model":"Cursor \u6A21\u578B","Cursor Proxy routes":"Cursor Proxy \u8DEF\u7531",Custom:"\u81EA\u5B9A\u4E49",Delete:"\u5220\u9664","Delete bot":"\u5220\u9664 Bot","Delete Extension":"\u5220\u9664\u6269\u5C55","Delete Profile":"\u5220\u9664 Agent \u914D\u7F6E","Delete Provider":"\u5220\u9664\u4F9B\u5E94\u5546","Delete Routing Rule":"\u5220\u9664\u8DEF\u7531\u89C4\u5219","Delete this bot?":"\u5220\u9664\u8FD9\u4E2A Bot\uFF1F","Delete this extension from the configuration?":"\u4ECE\u914D\u7F6E\u4E2D\u5220\u9664\u8FD9\u4E2A\u6269\u5C55\uFF1F","Delete this agent profile from the configuration?":"\u4ECE\u914D\u7F6E\u4E2D\u5220\u9664\u8FD9\u4E2A Agent \u914D\u7F6E\u6863\u6848\uFF1F","Delete this provider from the configuration?":"\u4ECE\u914D\u7F6E\u4E2D\u5220\u9664\u8FD9\u4E2A\u4F9B\u5E94\u5546\uFF1F","Delete this routing rule from the configuration?":"\u4ECE\u914D\u7F6E\u4E2D\u5220\u9664\u8FD9\u6761\u8DEF\u7531\u89C4\u5219\uFF1F",Dependencies:"\u4F9D\u8D56","Default target model":"\u9ED8\u8BA4\u76EE\u6807\u6A21\u578B","Default failure handling":"\u9ED8\u8BA4\u6545\u969C\u5904\u7406","Default on failure":"\u9ED8\u8BA4\u5931\u8D25\u5904\u7406",Description:"\u63CF\u8FF0","CCR scanned this computer for Claude Code, Codex, Grok CLI, OpenCode CLI, and ZCode login states. Click Import to add one as a gateway provider.":"CCR \u5DF2\u626B\u63CF\u672C\u673A\u7684 Claude Code\u3001Codex\u3001Grok CLI\u3001OpenCode CLI \u548C ZCode \u767B\u5F55\u6001\u3002\u70B9\u51FB\u5BFC\u5165\u5373\u53EF\u6DFB\u52A0\u4E3A\u7F51\u5173\u4F9B\u5E94\u5546\u3002","CCR is checking this provider. Wait for the check to finish before continuing.":"CCR \u6B63\u5728\u68C0\u67E5\u8FD9\u4E2A\u4F9B\u5E94\u5546\uFF0C\u8BF7\u7B49\u5F85\u68C0\u67E5\u7ED3\u675F\u540E\u518D\u7EE7\u7EED\u3002","CCR is checking which API protocols this endpoint supports.":"CCR \u6B63\u5728\u68C0\u67E5\u8FD9\u4E2A\u7AEF\u70B9\u652F\u6301\u54EA\u4E9B API \u534F\u8BAE\u3002","CCR is sending a limited real model request.":"CCR \u6B63\u5728\u53D1\u9001\u4E00\u6B21\u53D7\u9650\u7684\u771F\u5B9E\u6A21\u578B\u8BF7\u6C42\u3002","CCR management service is unavailable. Make sure the CCR app or ccr ui command is running, then retry.":"\u65E0\u6CD5\u8FDE\u63A5 CCR \u7BA1\u7406\u670D\u52A1\u3002\u8BF7\u786E\u8BA4 CCR App \u6216 ccr ui \u547D\u4EE4\u6B63\u5728\u8FD0\u884C\uFF0C\u7136\u540E\u91CD\u8BD5\u3002",Detected:"\u5DF2\u68C0\u6D4B","Detecting protocols":"\u6B63\u5728\u63A2\u6D4B\u534F\u8BAE","Enter API endpoint, API key, and at least one model to enable connectivity check.":"\u586B\u5199 API \u5730\u5740\u3001API Key \u548C\u81F3\u5C11\u4E00\u4E2A\u6A21\u578B\u540E\uFF0C\u624D\u53EF\u68C0\u6D4B\u8FDE\u901A\u6027\u3002","Finish the provider and agent profile steps before entering the app.":"\u8BF7\u5148\u5B8C\u6210\u4F9B\u5E94\u5546\u548C Agent \u914D\u7F6E\u6863\u6848\u6B65\u9AA4\uFF0C\u518D\u8FDB\u5165\u5E94\u7528\u3002","Import local agent login":"\u5BFC\u5165\u672C\u673A Agent \u767B\u5F55\u6001","Import local agent provider":"\u5BFC\u5165\u672C\u673A Agent \u4F9B\u5E94\u5546","In progress":"\u8FDB\u884C\u4E2D","ChatGPT login detected. Click Import to add it as a gateway provider.":"\u5DF2\u68C0\u6D4B\u5230 ChatGPT \u767B\u5F55\u6001\u3002\u70B9\u51FB\u5BFC\u5165\u5373\u53EF\u6DFB\u52A0\u4E3A\u7F51\u5173\u4F9B\u5E94\u5546\u3002","Claude Code login detected. Click Import to add it as a gateway provider.":"\u5DF2\u68C0\u6D4B\u5230 Claude Code \u767B\u5F55\u6001\u3002\u70B9\u51FB\u5BFC\u5165\u5373\u53EF\u6DFB\u52A0\u4E3A\u7F51\u5173\u4F9B\u5E94\u5546\u3002","Claude Code login was detected, but no usable access token was found.":"\u5DF2\u68C0\u6D4B\u5230 Claude Code \u767B\u5F55\u6001\uFF0C\u4F46\u6CA1\u6709\u627E\u5230\u53EF\u7528\u7684 access token\u3002","Codex auth file was found, but no usable token was detected.":"\u5DF2\u627E\u5230 Codex \u8BA4\u8BC1\u6587\u4EF6\uFF0C\u4F46\u6CA1\u6709\u68C0\u6D4B\u5230\u53EF\u7528 token\u3002","Claude Code credential file was found, but no usable OAuth token was detected.":"\u5DF2\u627E\u5230 Claude Code \u51ED\u636E\u6587\u4EF6\uFF0C\u4F46\u6CA1\u6709\u68C0\u6D4B\u5230\u53EF\u7528 OAuth token\u3002","Grok CLI login detected. Click Import to add it as a gateway provider.":"\u5DF2\u68C0\u6D4B\u5230 Grok CLI \u767B\u5F55\u6001\u3002\u70B9\u51FB\u5BFC\u5165\u5373\u53EF\u6DFB\u52A0\u4E3A\u7F51\u5173\u4F9B\u5E94\u5546\u3002","Grok CLI login was detected, but no usable access token was found.":"\u5DF2\u68C0\u6D4B\u5230 Grok CLI \u767B\u5F55\u6001\uFF0C\u4F46\u6CA1\u6709\u627E\u5230\u53EF\u7528\u7684 access token\u3002","Grok CLI login was detected, but the access token is expired. Run grok login again, then rescan.":"\u5DF2\u68C0\u6D4B\u5230 Grok CLI \u767B\u5F55\u6001\uFF0C\u4F46 access token \u5DF2\u8FC7\u671F\u3002\u8BF7\u91CD\u65B0\u8FD0\u884C grok login\uFF0C\u7136\u540E\u91CD\u65B0\u626B\u63CF\u3002","Kimi CLI login detected. Click Import to add it as a gateway provider.":"\u5DF2\u68C0\u6D4B\u5230 Kimi CLI \u767B\u5F55\u6001\u3002\u70B9\u51FB\u5BFC\u5165\u5373\u53EF\u6DFB\u52A0\u4E3A\u7F51\u5173\u4F9B\u5E94\u5546\u3002","Kimi CLI provider API key detected. Click Import to add it as a gateway provider.":"\u5DF2\u68C0\u6D4B\u5230 Kimi CLI \u4F9B\u5E94\u5546 API Key\u3002\u70B9\u51FB\u5BFC\u5165\u5373\u53EF\u6DFB\u52A0\u4E3A\u7F51\u5173\u4F9B\u5E94\u5546\u3002","Kimi CLI login was detected, but no usable OAuth token was found. Run /login in Kimi CLI, then rescan.":"\u5DF2\u68C0\u6D4B\u5230 Kimi CLI \u767B\u5F55\u6001\uFF0C\u4F46\u6CA1\u6709\u627E\u5230\u53EF\u7528\u7684 OAuth token\u3002\u8BF7\u5728 Kimi CLI \u4E2D\u8FD0\u884C /login\uFF0C\u7136\u540E\u91CD\u65B0\u626B\u63CF\u3002","Kimi CLI provider was detected, but no usable API key was found.":"\u5DF2\u68C0\u6D4B\u5230 Kimi CLI \u4F9B\u5E94\u5546\uFF0C\u4F46\u6CA1\u6709\u627E\u5230\u53EF\u7528\u7684 API Key\u3002","OpenCode CLI credential was found, but no usable API key was detected.":"\u5DF2\u627E\u5230 OpenCode CLI \u51ED\u636E\uFF0C\u4F46\u6CA1\u6709\u68C0\u6D4B\u5230\u53EF\u7528\u7684 API key\u3002","OpenCode CLI login detected. Click Import to add it as a gateway provider.":"\u5DF2\u68C0\u6D4B\u5230 OpenCode CLI \u767B\u5F55\u6001\u3002\u70B9\u51FB\u5BFC\u5165\u5373\u53EF\u6DFB\u52A0\u4E3A\u7F51\u5173\u4F9B\u5E94\u5546\u3002","OpenCode CLI public models detected. No login is required.":"\u5DF2\u68C0\u6D4B\u5230 OpenCode CLI \u516C\u5171\u6A21\u578B\uFF0C\u65E0\u9700\u767B\u5F55\u5373\u53EF\u5BFC\u5165\u3002","CCR scanned this computer for local Claude Code, Codex, Grok CLI, Kimi CLI, OpenCode CLI, and ZCode providers. Click Import to add one as a gateway provider.":"CCR \u5DF2\u626B\u63CF\u672C\u673A\u7684 Claude Code\u3001Codex\u3001Grok CLI\u3001Kimi CLI\u3001OpenCode CLI \u548C ZCode \u4F9B\u5E94\u5546\u3002\u70B9\u51FB\u5BFC\u5165\u5373\u53EF\u6DFB\u52A0\u4E3A\u7F51\u5173\u4F9B\u5E94\u5546\u3002",Locked:"\u5DF2\u52A0\u5BC6","Local agent login will be connected after saving this provider.":"\u4FDD\u5B58\u8FD9\u4E2A\u4F9B\u5E94\u5546\u540E\u4F1A\u63A5\u5165\u672C\u673A Agent \u767B\u5F55\u6001\u3002","Local login provider":"\u672C\u673A\u767B\u5F55\u6001\u4F9B\u5E94\u5546","Launch actions":"\u542F\u52A8\u64CD\u4F5C","Management actions":"\u7BA1\u7406\u64CD\u4F5C","Model overrides are optional; empty fields keep Claude Code defaults.":"\u6A21\u578B\u8BBE\u7F6E\u662F\u53EF\u9009\u9879\uFF1B\u7559\u7A7A\u4F1A\u4FDD\u7559 Claude Code \u9ED8\u8BA4\u8BBE\u7F6E\u3002","Display name":"\u663E\u793A\u540D\u79F0","Double click to copy":"\u53CC\u51FB\u590D\u5236",Duration:"\u6301\u7EED\u65F6\u95F4",Edit:"\u7F16\u8F91","Edit bot":"\u7F16\u8F91 Bot","Edit API Key":"\u7F16\u8F91 API \u5BC6\u94A5","Edit API key":"\u7F16\u8F91 API \u5BC6\u94A5","Edit Profile":"\u7F16\u8F91\u914D\u7F6E","Edit Provider":"\u7F16\u8F91\u4F9B\u5E94\u5546","Edit provider":"\u7F16\u8F91\u4F9B\u5E94\u5546","Edit Routing Rule":"\u7F16\u8F91\u8DEF\u7531\u89C4\u5219","Edit rule":"\u7F16\u8F91\u89C4\u5219","Effect scope":"\u4F5C\u7528\u8303\u56F4",Enable:"\u542F\u7528","Enable at least one provider model before saving this profile.":"\u8BF7\u5148\u542F\u7528\u81F3\u5C11\u4E00\u4E2A\u4F9B\u5E94\u5546\u6A21\u578B\uFF0C\u518D\u4FDD\u5B58\u8FD9\u4E2A\u914D\u7F6E\u6863\u6848\u3002","Enable provider":"\u542F\u7528\u4F9B\u5E94\u5546","Enable request logs":"\u542F\u7528\u8BF7\u6C42\u65E5\u5FD7",Enabled:"\u542F\u7528","Disable provider":"\u505C\u7528\u4F9B\u5E94\u5546",Endpoint:"\u7AEF\u70B9","Entry mode":"\u5165\u53E3\u6A21\u5F0F","Environment variables":"\u73AF\u5883\u53D8\u91CF","Environment variable rows need valid keys.":"\u73AF\u5883\u53D8\u91CF\u884C\u9700\u8981\u586B\u5199\u6709\u6548\u7684 Key\u3002","Endpoint Health":"\u7AEF\u70B9\u5065\u5EB7","Endpoint information":"\u7AEF\u70B9\u4FE1\u606F","HTTP status":"HTTP \u72B6\u6001\u7801","Expiration is required.":"\u8FC7\u671F\u65F6\u95F4\u4E0D\u80FD\u4E3A\u7A7A\u3002","Let's start":"\u5F00\u59CB\u5427",Error:"\u9519\u8BEF","Error message":"\u9519\u8BEF\u4FE1\u606F",Errors:"\u9519\u8BEF\u6570","Failed requests":"\u5931\u8D25\u8BF7\u6C42","Failed to save profile before copying.":"\u590D\u5236\u524D\u4FDD\u5B58\u914D\u7F6E\u6863\u6848\u5931\u8D25\u3002","Failed to save profile before opening.":"\u6253\u5F00\u524D\u4FDD\u5B58\u914D\u7F6E\u6863\u6848\u5931\u8D25\u3002",Expiration:"\u8FC7\u671F\u65F6\u95F4","Expires at":"\u8FC7\u671F\u4E8E","Exact model":"\u7CBE\u786E\u6A21\u578B",Extensions:"\u6269\u5C55",Fallback:"\u515C\u5E95","Fallback chain":"\u56DE\u9000\u94FE","Fallback model":"\u56DE\u9000\u6A21\u578B","Fallback target":"\u5931\u8D25\u964D\u7EA7\u76EE\u6807","Fallback targets":"\u5931\u8D25\u964D\u7EA7\u76EE\u6807","Failure handling":"\u6545\u969C\u5904\u7406","Forward agent messages":"\u8F6C\u53D1 Agent \u6D88\u606F","Full content":"\u5B8C\u6574\u5185\u5BB9","Full content unavailable":"\u65E0\u6CD5\u8BFB\u53D6\u5B8C\u6574\u5185\u5BB9","Bot only forwards messages when opening the APP from CCR. CLI does not forward messages yet.":"Bot\u4EC5\u5728\u4F7F\u7528CCR\u6253\u5F00APP\u7684\u60C5\u51B5\u4E0B\u624D\u4F1A\u8F6C\u53D1\u6D88\u606F\uFF0Ccli\u76EE\u524D\u4E0D\u4F1A\u8F6C\u53D1\u6D88\u606F","Messages are forwarded only when using the corresponding app.":"\u4EC5\u5728\u4F7F\u7528\u5BF9\u5E94 App \u65F6\u624D\u4F1A\u8F6C\u53D1\u6D88\u606F\u3002","First enabled":"\u9996\u4E2A\u542F\u7528\u89C4\u5219","Least utilized":"\u4F7F\u7528\u7387\u6700\u4F4E","Gateway conversation ID":"\u7F51\u5173\u4F1A\u8BDD ID","Gateway surface":"\u7F51\u5173\u8FD0\u884C\u9762","Generated config":"\u751F\u6210\u914D\u7F6E","Generated path":"\u751F\u6210\u8DEF\u5F84",Group:"\u7FA4\u7EC4",Handoff:"\u63A5\u529B","Handoff target scan is available in the Electron app.":"\u63A5\u529B\u76EE\u6807\u626B\u63CF\u4EC5\u5728 Electron App \u4E2D\u53EF\u7528\u3002","Phone presence targets are experimental and do not affect runtime handoff yet. Handoff currently uses screen lock and idle time.":"\u624B\u673A\u5728\u573A\u76EE\u6807\u4ECD\u4E3A\u5B9E\u9A8C\u529F\u80FD\uFF0C\u5F53\u524D\u4E0D\u4F1A\u53C2\u4E0E\u8FD0\u884C\u65F6\u63A5\u529B\u5224\u65AD\uFF1B\u63A5\u529B\u76EE\u524D\u4F7F\u7528\u9501\u5C4F\u4E0E\u7A7A\u95F2\u65F6\u95F4\u3002",Headers:"\u8BF7\u6C42\u5934","Header rows require keys.":"\u8BF7\u6C42\u5934\u884C\u5FC5\u987B\u586B\u5199 Key\u3002","Fetch usage":"\u83B7\u53D6\u7528\u91CF","Fetch manifest":"\u62C9\u53D6 manifest","Hide advanced settings":"\u6536\u8D77\u9AD8\u7EA7\u8BBE\u7F6E","Add browser header template":"\u6DFB\u52A0\u6D4F\u89C8\u5668\u8BF7\u6C42\u5934\u6A21\u677F","Browser header templates":"\u6D4F\u89C8\u5668\u8BF7\u6C42\u5934\u6A21\u677F","Browser header template rows require keys.":"\u6D4F\u89C8\u5668\u8BF7\u6C42\u5934\u6A21\u677F\u884C\u5FC5\u987B\u586B\u5199 Key\u3002","Browser request":"\u6D4F\u89C8\u5668\u8BF7\u6C42","Browser login URL":"\u6D4F\u89C8\u5668\u767B\u5F55 URL","Browser login URL must use http or https.":"\u6D4F\u89C8\u5668\u767B\u5F55 URL \u5FC5\u987B\u4F7F\u7528 http \u6216 https\u3002","Browser login URL or usage request URL is required.":"\u8BF7\u586B\u5199\u6D4F\u89C8\u5668\u767B\u5F55 URL \u6216\u7528\u91CF\u8BF7\u6C42 URL\u3002","Browser request uses CCR Desktop's built-in browser login state. Sign in in the in-app browser before testing.":"\u6D4F\u89C8\u5668\u8BF7\u6C42\u4F1A\u4F7F\u7528 CCR Desktop \u5185\u7F6E\u6D4F\u89C8\u5668\u7684\u767B\u5F55\u6001\u3002\u6D4B\u8BD5\u524D\u8BF7\u5148\u5728\u5185\u7F6E\u6D4F\u89C8\u5668\u4E2D\u767B\u5F55\u3002","Browser storage origin":"\u6D4F\u89C8\u5668\u5B58\u50A8 Origin","Browser storage origin must use http or https.":"\u6D4F\u89C8\u5668\u5B58\u50A8 Origin \u5FC5\u987B\u4F7F\u7528 http \u6216 https\u3002","Browser timeout ms":"\u6D4F\u89C8\u5668\u8D85\u65F6\uFF08\u6BEB\u79D2\uFF09","Built-in browser is unavailable.":"\u5185\u7F6E\u6D4F\u89C8\u5668\u4E0D\u53EF\u7528\u3002","Chrome import":"Chrome \u5BFC\u5165","Chrome import started. If the page did not open in Chrome, copy the extension import URL into the Chrome extension popup.":"\u5DF2\u542F\u52A8 Chrome \u5BFC\u5165\u3002\u5982\u679C\u9875\u9762\u6CA1\u6709\u5728 Chrome \u4E2D\u6253\u5F00\uFF0C\u8BF7\u590D\u5236\u6269\u5C55\u5BFC\u5165 URL \u5230 Chrome \u6269\u5C55\u5F39\u7A97\u3002","Chrome login import is unavailable.":"Chrome \u767B\u5F55\u6001\u5BFC\u5165\u4E0D\u53EF\u7528\u3002","Confirmation page URL copied.":"\u5DF2\u590D\u5236\u786E\u8BA4\u9875 URL\u3002","Copy import URL":"\u590D\u5236\u5BFC\u5165 URL","Copy page URL":"\u590D\u5236\u9875\u9762 URL","Do not send credentials":"\u4E0D\u53D1\u9001\u51ED\u636E","Extension import URL copied.":"\u5DF2\u590D\u5236\u6269\u5C55\u5BFC\u5165 URL\u3002","Fetch credentials":"Fetch \u51ED\u636E\u6A21\u5F0F","HTTP JSON request":"HTTP JSON \u8BF7\u6C42",Host:"\u4E3B\u673A",ID:"ID",Import:"\u5BFC\u5165","Import Provider":"\u5BFC\u5165\u4F9B\u5E94\u5546","Import Provider Manifest":"\u5BFC\u5165\u4F9B\u5E94\u5546 Manifest","Import JSON":"\u5BFC\u5165 JSON","Imported provider":"\u5DF2\u5BFC\u5165\u4F9B\u5E94\u5546","Invalid JSON.":"JSON \u65E0\u6548\u3002","Image content":"\u56FE\u50CF\u5185\u5BB9",Images:"\u56FE\u50CF","Idle seconds":"\u7A7A\u95F2\u79D2\u6570","Idle seconds must be between 30 and 86400.":"\u7A7A\u95F2\u79D2\u6570\u5FC5\u987B\u5728 30 \u5230 86400 \u4E4B\u95F4\u3002",Input:"\u8F93\u5165","Input tokens":"\u8F93\u5165 Token","Integration ID":"\u96C6\u6210 ID",Install:"\u5B89\u88C5","Install and restart":"\u5B89\u88C5\u5E76\u91CD\u542F",App:"App","Install Extension":"\u5B89\u88C5\u6269\u5C55","Install extension":"\u5B89\u88C5\u6269\u5C55","Install CA":"\u5B89\u88C5 CA",Key:"\u952E",keys:"\u4E2A Key","Keep Claude Code default":"\u4FDD\u6301 Claude Code \u9ED8\u8BA4\u503C","Keep default":"\u4FDD\u6301\u9ED8\u8BA4\u503C","Keep embedded request model":"\u4FDD\u7559\u8BF7\u6C42\u5185\u6A21\u578B",Label:"\u6807\u7B7E","Last apply":"\u4E0A\u6B21\u5E94\u7528","Last checked":"\u4E0A\u6B21\u68C0\u67E5","Last request":"\u6700\u8FD1\u8BF7\u6C42","Last seen":"\u6700\u8FD1\u6D3B\u8DC3","Legacy profile table":"\u65E7\u7248\u914D\u7F6E\u6863\u6848\u8868",Limit:"\u9650\u5236","Limits JSON":"\u9650\u5236 JSON",Limits:"\u9650\u5236",Loading:"\u52A0\u8F7D\u4E2D",Local:"\u672C\u5730",Logs:"\u65E5\u5FD7","Long context":"\u957F\u4E0A\u4E0B\u6587","Long threshold":"\u957F\u4E0A\u4E0B\u6587\u9608\u503C","Max concurrency":"\u6700\u5927\u5E76\u53D1","Max concurrent":"\u6700\u5927\u5E76\u53D1","Manage bots used by agent profiles.":"\u7BA1\u7406 Agent \u914D\u7F6E\u4E2D\u53EF\u9009\u62E9\u7684 Bot\u3002","API key database":"API \u5BC6\u94A5\u6570\u636E\u5E93","App surface":"App \u8FD0\u884C\u9762","Config database":"\u914D\u7F6E\u6570\u636E\u5E93","Configuration is stored in SQLite. The legacy JSON file is only read once for migration.":"\u914D\u7F6E\u5DF2\u5B58\u50A8\u5728 SQLite \u4E2D\uFF0C\u65E7 JSON \u6587\u4EF6\u53EA\u4F1A\u5728\u8FC1\u79FB\u65F6\u8BFB\u53D6\u4E00\u6B21\u3002","Data export is only available in the Electron app.":"\u6570\u636E\u5BFC\u51FA\u4EC5\u5728 Electron \u5E94\u7528\u4E2D\u53EF\u7528\u3002",Export:"\u5BFC\u51FA","Export data":"\u5BFC\u51FA\u6570\u636E","Export current configuration and SQLite data into a single JSON backup file. The export contains API keys and should be stored securely.":"\u5C06\u5F53\u524D\u914D\u7F6E\u548C SQLite \u6570\u636E\u5BFC\u51FA\u4E3A\u5355\u4E2A JSON \u5907\u4EFD\u6587\u4EF6\u3002\u5BFC\u51FA\u5185\u5BB9\u5305\u542B API \u5BC6\u94A5\uFF0C\u8BF7\u59A5\u5584\u4FDD\u5B58\u3002",Exported:"\u5DF2\u5BFC\u51FA",Exporting:"\u6B63\u5728\u5BFC\u51FA","Request log database":"\u8BF7\u6C42\u65E5\u5FD7\u6570\u636E\u5E93",Method:"\u65B9\u6CD5",Model:"\u6A21\u578B","Default model":"\u9ED8\u8BA4\u6A21\u578B","Default model is required.":"\u9ED8\u8BA4\u6A21\u578B\u4E0D\u80FD\u4E3A\u7A7A\u3002","Default model is required when allowed model list is set.":"\u8BBE\u7F6E\u5141\u8BB8\u6A21\u578B\u5217\u8868\u65F6\u9ED8\u8BA4\u6A21\u578B\u4E0D\u80FD\u4E3A\u7A7A\u3002","Model descriptions":"\u6A21\u578B\u63CF\u8FF0","Model override":"\u9ED8\u8BA4\u6A21\u578B","Model routing":"\u6A21\u578B\u8DEF\u7531","Model prefix":"\u6A21\u578B\u524D\u7F00",Models:"\u6A21\u578B","Fable model":"Fable \u6A21\u578B","Opus model":"Opus \u6A21\u578B","Sonnet model":"Sonnet \u6A21\u578B","Haiku model":"Haiku \u6A21\u578B","Describe model strengths, tradeoffs, and best-fit tasks.":"\u63CF\u8FF0\u6A21\u578B\u4F18\u52BF\u3001\u53D6\u820D\u548C\u6700\u9002\u5408\u7684\u4EFB\u52A1\u3002","Module path":"\u6A21\u5757\u8DEF\u5F84",Name:"\u540D\u79F0",Networking:"\u7F51\u7EDC",Never:"\u6C38\u4E0D","No API keys":"\u6682\u65E0 API \u5BC6\u94A5","No agent activity":"\u6682\u65E0 Agent \u884C\u4E3A\u6570\u636E","No client signals":"\u6682\u65E0\u5BA2\u6237\u7AEF\u4FE1\u53F7","No client usage yet":"\u6682\u65E0\u5BA2\u6237\u7AEF\u7528\u91CF","No endpoint activity":"\u6682\u65E0\u7AEF\u70B9\u6D3B\u52A8","No errors":"\u6682\u65E0\u9519\u8BEF","No provider presets found":"\u6CA1\u6709\u5339\u914D\u7684\u9884\u8BBE\u4F9B\u5E94\u5546","No provider usage yet":"\u6682\u65E0\u4F9B\u5E94\u5546\u7528\u91CF","No provider yet":"\u8FD8\u6CA1\u6709\u4F9B\u5E94\u5546","No requests captured yet":"\u6682\u65E0\u8BF7\u6C42\u8BB0\u5F55","No request logs match the current filters.":"\u6CA1\u6709\u7B26\u5408\u5F53\u524D\u7B5B\u9009\u6761\u4EF6\u7684\u8BF7\u6C42\u65E5\u5FD7\u3002","No request logs yet.":"\u8FD8\u6CA1\u6709\u8BF7\u6C42\u65E5\u5FD7\u3002","No bots configured":"\u5C1A\u672A\u914D\u7F6E Bot","No data":"\u65E0\u6570\u636E","No route activity":"\u6682\u65E0\u8DEF\u7531\u6D3B\u52A8","No targets found":"\u672A\u53D1\u73B0\u76EE\u6807",No:"\u5426",None:"\u65E0","Not configured":"\u672A\u914D\u7F6E","Not running":"\u672A\u8FD0\u884C","Agent profiles are disabled.":"Agent \u914D\u7F6E\u6863\u6848\u5DF2\u5173\u95ED\u3002",Open:"\u6253\u5F00","Open Agent":"\u6253\u5F00Agent","Open CA":"\u6253\u5F00 CA","Open Profile":"\u6253\u5F00\u914D\u7F6E","Only opened from CCR":"\u4EC5\u4ECE CCR \u6253\u5F00","Open profiles":"\u67E5\u770B\u914D\u7F6E\u6863\u6848","Open providers":"\u67E5\u770B\u4F9B\u5E94\u5546",Output:"\u8F93\u51FA","Output tokens":"\u8F93\u51FA Token",Observability:"\u53EF\u89C2\u6D4B",Off:"\u5173\u95ED","On failure":"\u5931\u8D25\u65F6",Onboarding:"\u4E0A\u624B\u5F15\u5BFC",P50:"P50",P95:"P95",P99:"P99",Parameters:"\u53C2\u6570",Path:"\u8DEF\u5F84",Platform:"\u5E73\u53F0","Platform conversation ID":"\u5E73\u53F0\u4F1A\u8BDD ID","Phone Bluetooth target":"\u624B\u673A\u84DD\u7259\u76EE\u6807","Phone Wi-Fi target":"\u624B\u673A Wi-Fi \u76EE\u6807",Plugin:"\u63D2\u4EF6","Plugin app is not configured or enabled.":"\u63D2\u4EF6 App \u672A\u914D\u7F6E\u6216\u672A\u542F\u7528\u3002","Plugin apps can be opened from the Electron app.":"\u63D2\u4EF6 App \u4EC5\u53EF\u5728 Electron App \u4E2D\u6253\u5F00\u3002","Provider surface":"Provider \u8FD0\u884C\u9762","Profile model unset":"\u672A\u8BBE\u7F6E\u914D\u7F6E\u6863\u6848\u6A21\u578B","Enable a Claude Code profile before enabling this built-in route.":"\u8BF7\u5148\u542F\u7528\u4E00\u4E2A Claude Code \u914D\u7F6E\u6863\u6848\uFF0C\u518D\u542F\u7528\u6B64\u5185\u7F6E\u8DEF\u7531\u3002","Enable a Codex profile before enabling this built-in route.":"\u8BF7\u5148\u542F\u7528\u4E00\u4E2A Codex \u914D\u7F6E\u6863\u6848\uFF0C\u518D\u542F\u7528\u6B64\u5185\u7F6E\u8DEF\u7531\u3002","Set a model on the Claude Code profile before enabling this built-in route.":"\u8BF7\u5148\u4E3A Claude Code \u914D\u7F6E\u6863\u6848\u8BBE\u7F6E\u6A21\u578B\uFF0C\u518D\u542F\u7528\u6B64\u5185\u7F6E\u8DEF\u7531\u3002","Set a model on the Codex profile before enabling this built-in route.":"\u8BF7\u5148\u4E3A Codex \u914D\u7F6E\u6863\u6848\u8BBE\u7F6E\u6A21\u578B\uFF0C\u518D\u542F\u7528\u6B64\u5185\u7F6E\u8DEF\u7531\u3002",Surfaces:"\u8FD0\u884C\u9762","Plugin apps must be a JSON array.":"\u63D2\u4EF6 App \u5FC5\u987B\u662F JSON \u6570\u7EC4\u3002","Plugin app URL cannot be protocol-relative.":"\u63D2\u4EF6 App URL \u4E0D\u80FD\u662F\u534F\u8BAE\u76F8\u5BF9 URL\u3002","Plugin app URL must be an http(s) URL or a CCR gateway path.":"\u63D2\u4EF6 App URL \u5FC5\u987B\u662F http(s) URL \u6216 CCR \u7F51\u5173\u8DEF\u5F84\u3002","Plugin app URL must be valid.":"\u63D2\u4EF6 App URL \u5FC5\u987B\u6709\u6548\u3002","Open plugin app":"\u6253\u5F00\u63D2\u4EF6 App","Plugin config JSON":"\u63D2\u4EF6\u914D\u7F6E JSON","Plugin config must be a JSON object.":"\u63D2\u4EF6\u914D\u7F6E\u5FC5\u987B\u662F JSON \u5BF9\u8C61\u3002","Plugin core gateway JSON":"\u63D2\u4EF6 Core Gateway JSON","Plugin core gateway must be a JSON object.":"\u63D2\u4EF6 Core Gateway \u5FC5\u987B\u662F JSON \u5BF9\u8C61\u3002","Plugin permissions JSON":"\u63D2\u4EF6\u6743\u9650 JSON","Plugin proxy JSON":"\u63D2\u4EF6\u4EE3\u7406 JSON","Plugin proxy must be a JSON object.":"\u63D2\u4EF6\u4EE3\u7406\u5FC5\u987B\u662F JSON \u5BF9\u8C61\u3002","Plugins that load JavaScript must declare trusted-code permission.":"\u52A0\u8F7D JavaScript \u7684\u63D2\u4EF6\u5FC5\u987B\u58F0\u660E trusted-code \u6743\u9650\u3002","Local plugin selection is available in the Electron app.":"\u672C\u5730\u63D2\u4EF6\u9009\u62E9\u4EC5\u5728 Electron App \u4E2D\u53EF\u7528\u3002","Plugin route":"\u63D2\u4EF6\u8DEF\u7531","Plugin Settings":"\u63D2\u4EF6\u8BBE\u7F6E",Port:"\u7AEF\u53E3",Process:"\u8FDB\u7A0B",Protocol:"\u534F\u8BAE","Protocol details":"\u534F\u8BAE\u8BE6\u60C5","Protocol detection details":"\u534F\u8BAE\u68C0\u6D4B\u8BE6\u60C5","Protocols detected":"\u534F\u8BAE\u5DF2\u63A2\u6D4B","External core":"\u5916\u90E8 Core","External provider link":"\u5916\u90E8\u4F9B\u5E94\u5546\u94FE\u63A5",Provider:"\u4F9B\u5E94\u5546","Provider ID and Provider name identify the routed provider in Codex.":"Provider ID \u548C Provider name \u7528\u4E8E\u5728 Codex \u4E2D\u8BC6\u522B\u88AB\u8DEF\u7531\u7684\u4F9B\u5E94\u5546\u3002","Provider Analysis":"\u4F9B\u5E94\u5546\u5206\u6790","Provider credential JSON did not contain any API keys.":"\u4F9B\u5E94\u5546\u51ED\u636E JSON \u4E2D\u6CA1\u6709\u53EF\u7528 API Key\u3002","Provider credential JSON is invalid.":"\u4F9B\u5E94\u5546\u51ED\u636E JSON \u65E0\u6548\u3002","Provider credential JSON must be an array or object.":"\u4F9B\u5E94\u5546\u51ED\u636E JSON \u5FC5\u987B\u662F\u6570\u7EC4\u6216\u5BF9\u8C61\u3002","Provider credential limits JSON is invalid.":"\u4F9B\u5E94\u5546\u51ED\u636E\u9650\u5236 JSON \u65E0\u6548\u3002","Provider credential limits must be a JSON object.":"\u4F9B\u5E94\u5546\u51ED\u636E\u9650\u5236\u5FC5\u987B\u662F JSON \u5BF9\u8C61\u3002","Provider credential priority must be a positive number.":"\u4F9B\u5E94\u5546\u51ED\u636E\u4F18\u5148\u7EA7\u5FC5\u987B\u662F\u6B63\u6570\u3002","Provider credential rows require API keys.":"\u4F9B\u5E94\u5546\u51ED\u636E\u884C\u5FC5\u987B\u586B\u5199 API Key\u3002","Provider credential rows require names.":"\u4F9B\u5E94\u5546\u51ED\u636E\u884C\u5FC5\u987B\u586B\u5199\u540D\u79F0\u3002","Provider credential weight must be a positive number.":"\u4F9B\u5E94\u5546\u51ED\u636E\u6743\u91CD\u5FC5\u987B\u662F\u6B63\u6570\u3002","Provider ID":"\u4F9B\u5E94\u5546 ID","Provider ID is required.":"\u4F9B\u5E94\u5546 ID \u4E0D\u80FD\u4E3A\u7A7A\u3002","Provider link failed":"\u4F9B\u5E94\u5546\u94FE\u63A5\u5931\u8D25","Provider middleware":"\u4F9B\u5E94\u5546\u4E2D\u95F4\u4EF6","Provider name":"\u4F9B\u5E94\u5546\u540D\u79F0","Provider name is required.":"\u4F9B\u5E94\u5546\u540D\u79F0\u4E0D\u80FD\u4E3A\u7A7A\u3002","Provider name and Base URL are required.":"\u4F9B\u5E94\u5546\u540D\u79F0\u548C\u57FA\u7840 URL \u4E0D\u80FD\u4E3A\u7A7A\u3002","Provider name already exists.":"\u4F9B\u5E94\u5546\u540D\u79F0\u5DF2\u5B58\u5728\u3002","Provider ready":"\u4F9B\u5E94\u5546\u5DF2\u5C31\u7EEA","Provider plugin":"\u4F9B\u5E94\u5546\u63D2\u4EF6","Provider website":"\u4F9B\u5E94\u5546\u7F51\u7AD9","Open provider website":"\u6253\u5F00\u4F9B\u5E94\u5546\u7F51\u7AD9",Providers:"\u4F9B\u5E94\u5546","Do not use proxy":"\u4E0D\u4F7F\u7528\u4EE3\u7406",Proxy:"\u4EE3\u7406","Proxy mode":"\u4EE3\u7406\u6A21\u5F0F","Proxy server":"\u4EE3\u7406\u670D\u52A1\u5668","Proxy source":"\u4EE3\u7406\u6765\u6E90","Use custom proxy":"\u4F7F\u7528\u81EA\u5B9A\u4E49\u4EE3\u7406","Use system proxy":"\u4F7F\u7528\u7CFB\u7EDF\u4EE3\u7406","Preset provider":"\u9884\u8BBE\u4F9B\u5E94\u5546",Profile:"\u914D\u7F6E","Profile actions":"\u914D\u7F6E\u64CD\u4F5C","Profile name":"\u914D\u7F6E\u6863\u6848\u540D\u79F0","Profile name is required.":"\u914D\u7F6E\u6863\u6848\u540D\u79F0\u4E0D\u80FD\u4E3A\u7A7A\u3002","Profile name and required target settings are missing.":"\u8BF7\u586B\u5199\u914D\u7F6E\u6863\u6848\u540D\u79F0\u548C\u5FC5\u9700\u7684\u63A5\u5165\u76EE\u6807\u8BBE\u7F6E\u3002","Profile name, required target settings, and environment variable keys are required.":"\u8BF7\u586B\u5199\u914D\u7F6E\u6863\u6848\u540D\u79F0\u3001\u5FC5\u9700\u7684\u63A5\u5165\u76EE\u6807\u8BBE\u7F6E\u548C\u73AF\u5883\u53D8\u91CF Key\u3002","Profile no longer exists.":"\u914D\u7F6E\u6863\u6848\u5DF2\u4E0D\u5B58\u5728\u3002","Profile opening is only available in the Electron app.":"\u914D\u7F6E\u6863\u6848\u6253\u5F00\u529F\u80FD\u4EC5\u5728 Electron App \u4E2D\u53EF\u7528\u3002","Profile stopping is only available in the Electron app.":"\u914D\u7F6E\u6863\u6848\u505C\u6B62\u529F\u80FD\u4EC5\u5728 Electron App \u4E2D\u53EF\u7528\u3002","Profile ready":"\u914D\u7F6E\u6863\u6848\u5DF2\u5C31\u7EEA",Password:"\u5BC6\u7801","Partial failure":"\u90E8\u5206\u5931\u8D25","Recent Errors":"\u6700\u8FD1\u9519\u8BEF","Recent Requests":"\u6700\u8FD1\u8BF7\u6C42",Refresh:"\u5237\u65B0","Refresh observability":"\u5237\u65B0\u53EF\u89C2\u6D4B","Refresh request logs":"\u5237\u65B0\u8BF7\u6C42\u65E5\u5FD7","Refresh network captures":"\u5237\u65B0\u7F51\u7EDC\u6355\u83B7",Remove:"\u79FB\u9664","Remove API key":"\u79FB\u9664 API \u5BC6\u94A5","Remove extension":"\u79FB\u9664\u6269\u5C55","Remove limit":"\u79FB\u9664\u9650\u5236","Remove provider":"\u79FB\u9664\u4F9B\u5E94\u5546","Remove profile":"\u79FB\u9664\u914D\u7F6E\u6863\u6848","Remove rule":"\u79FB\u9664\u89C4\u5219","Replace existing provider":"\u66FF\u6362\u5DF2\u6709\u4F9B\u5E94\u5546",Request:"\u8BF7\u6C42","Request action":"\u8BF7\u6C42\u52A8\u4F5C","Request ID":"\u8BF7\u6C42 ID","Request logs database":"\u8BF7\u6C42\u65E5\u5FD7\u6570\u636E\u5E93","Request logs are off":"\u8BF7\u6C42\u65E5\u5FD7\u5DF2\u5173\u95ED","Request logs record gateway requests and make payload inspection available.":"\u8BF7\u6C42\u65E5\u5FD7\u4F1A\u8BB0\u5F55\u7F51\u5173\u8BF7\u6C42\uFF0C\u5E76\u652F\u6301\u67E5\u770B\u8BF7\u6C42/\u54CD\u5E94\u8F7D\u8377\u3002","Request timeout ms":"\u8BF7\u6C42\u8D85\u65F6 ms",Requests:"\u8BF7\u6C42","requests in the selected range.":"\u6761\u5F53\u524D\u8303\u56F4\u5185\u7684\u8BF7\u6C42\u3002","requests.":"\u6761\u8BF7\u6C42\u3002","Rewrite request parameters":"\u6539\u5199\u8BF7\u6C42\u53C2\u6570",Set:"\u8BBE\u7F6E","Append to array":"\u8FFD\u52A0\u5230\u6570\u7EC4","Prepend to array":"\u63D2\u5165\u5230\u6570\u7EC4\u5F00\u5934","Remove from array":"\u4ECE\u6570\u7EC4\u79FB\u9664","Replace in array":"\u66FF\u6362\u6570\u7EC4\u5143\u7D20","starts with":"\u5F00\u5934\u5339\u914D",contains:"\u5305\u542B","contains deep":"\u6DF1\u5EA6\u5305\u542B","not contains":"\u4E0D\u5305\u542B",Attempt:"\u5C1D\u8BD5","Final attempt":"\u6700\u7EC8\u5C1D\u8BD5","Next retry wait":"\u4E0B\u6B21\u91CD\u8BD5\u7B49\u5F85",Retries:"\u91CD\u8BD5\u6B21\u6570",Retry:"\u7EE7\u7EED\u91CD\u8BD5","Retry attempts":"\u91CD\u8BD5\u5C1D\u8BD5","Weighted order":"\u6309\u6743\u91CD\u6392\u5E8F","Models, paths, routing, bot, compact, and env":"\u6A21\u578B\u3001\u8DEF\u5F84\u3001\u8DEF\u7531\u3001Bot\u3001\u538B\u7F29\u548C\u73AF\u5883\u53D8\u91CF","Paths, routing, bot, compact, and env":"\u8DEF\u5F84\u3001\u8DEF\u7531\u3001Bot\u3001\u538B\u7F29\u548C\u73AF\u5883\u53D8\u91CF","Paths, bot, compact, and env":"\u8DEF\u5F84\u3001Bot\u3001\u538B\u7F29\u548C\u73AF\u5883\u53D8\u91CF","Ready to route":"\u53EF\u4EE5\u5F00\u59CB\u8DEF\u7531","Enhanced route":"\u589E\u5F3A\u8DEF\u7531","Enhanced route description Claude Code":"CCR \u5185\u7F6E\u7684 Claude Code \u8DEF\u7531\u4F1A\u9488\u5BF9\u8BE5\u914D\u7F6E\u4F7F\u7528\u4E09\u65B9\u6A21\u578B\u65F6\u7684\u8BF7\u6C42\u505A\u4F18\u5316\u3002","Enhanced route description Codex":"CCR \u5185\u7F6E\u7684 Codex \u8DEF\u7531\u4F1A\u9488\u5BF9\u8BE5\u914D\u7F6E\u4F7F\u7528\u4E09\u65B9\u6A21\u578B\u65F6\u7684\u8BF7\u6C42\u505A\u4F18\u5316\u3002","Enhanced route off":"\u589E\u5F3A\u8DEF\u7531\u5DF2\u5173\u95ED","Restart proxy":"\u91CD\u542F\u4EE3\u7406",Route:"\u8DEF\u7531","Route graph":"\u8DEF\u7531\u94FE\u8DEF\u56FE","Route hops":"\u8DEF\u7531\u8282\u70B9","Route node":"\u8DEF\u7531\u8282\u70B9","Route trace":"\u8DEF\u7531\u8F68\u8FF9","Route Observability":"\u8DEF\u7531\u53EF\u89C2\u6D4B","Routing disabled":"\u8DEF\u7531\u672A\u542F\u7528",route:"\u6761\u8DEF\u7531",routes:"\u6761\u8DEF\u7531","View route graph":"\u67E5\u770B\u8DEF\u7531\u94FE\u8DEF\u56FE","Hover a node to inspect routing operations":"\u5C06\u9F20\u6807\u60AC\u505C\u5728\u8282\u70B9\u4E0A\u67E5\u770B\u8DEF\u7531\u64CD\u4F5C","Hover over a route node to inspect its operations.":"\u5C06\u9F20\u6807\u60AC\u505C\u5728\u8DEF\u7531\u8282\u70B9\u4E0A\u67E5\u770B\u64CD\u4F5C\u8BE6\u60C5\u3002","Select a route node to inspect routing operations":"\u9009\u62E9\u8DEF\u7531\u8282\u70B9\u67E5\u770B\u8DEF\u7531\u64CD\u4F5C","Select a route node to inspect its operations.":"\u9009\u62E9\u8DEF\u7531\u8282\u70B9\u67E5\u770B\u64CD\u4F5C\u8BE6\u60C5\u3002","Routing operations":"\u8DEF\u7531\u64CD\u4F5C","No request fields changed":"\u6CA1\u6709\u8BF7\u6C42\u5B57\u6BB5\u53D8\u66F4","Not recorded":"\u672A\u8BB0\u5F55","Not present":"\u4E0D\u5B58\u5728","This hop was truncated":"\u6B64\u8DEF\u7531\u8282\u70B9\u5DF2\u622A\u65AD",Decision:"\u51B3\u7B56",Complete:"\u5B8C\u6574",Partial:"\u90E8\u5206",hops:"\u4E2A\u8282\u70B9",attempts:"\u6B21\u5C1D\u8BD5",ingress:"\u63A5\u5165",compatibility:"\u517C\u5BB9\u5904\u7406",routing:"\u8DEF\u7531",capability:"\u80FD\u529B\u5339\u914D",enrichment:"\u8BF7\u6C42\u589E\u5F3A",planning:"\u56DE\u9000\u89C4\u5212",attempt:"\u8C03\u7528\u5C1D\u8BD5",core:"\u6838\u5FC3\u7F51\u5173",outcome:"\u7ED3\u679C",error:"\u9519\u8BEF",noop:"\u65E0\u53D8\u66F4","Receive request":"\u63A5\u6536\u8BF7\u6C42","Rewrite gateway headers":"\u91CD\u5199\u7F51\u5173\u8BF7\u6C42\u5934","Read model from request path":"\u4ECE\u8BF7\u6C42\u8DEF\u5F84\u8BFB\u53D6\u6A21\u578B","Select target model":"\u9009\u62E9\u76EE\u6807\u6A21\u578B","Enrich Claude Code request":"\u589E\u5F3A Claude Code \u8BF7\u6C42","Enrich agent request":"\u589E\u5F3A Agent \u8BF7\u6C42","Apply request rewrite":"\u5E94\u7528\u8BF7\u6C42\u6539\u5199","Apply selected model":"\u5199\u5165\u76EE\u6807\u6A21\u578B","Write routing result":"\u5199\u5165\u8DEF\u7531\u7ED3\u679C","Match provider capabilities":"\u5339\u914D\u4F9B\u5E94\u5546\u80FD\u529B","Remove content-length header":"\u79FB\u9664 Content-Length \u8BF7\u6C42\u5934","Build model fallback chain":"\u751F\u6210\u6A21\u578B\u56DE\u9000\u94FE","Build upstream request":"\u6784\u5EFA\u4E0A\u6E38\u8BF7\u6C42","Record upstream result":"\u8BB0\u5F55\u4E0A\u6E38\u8C03\u7528\u7ED3\u679C","Convert Cursor request":"\u8F6C\u6362 Cursor \u8BF7\u6C42","Convert apply_patch calls":"\u8F6C\u6362 apply_patch \u8C03\u7528","Resolve Claude Code model":"\u89E3\u6790 Claude Code \u6A21\u578B","Resolve Claude App model":"\u89E3\u6790 Claude App \u6A21\u578B","Inject web search results":"\u6CE8\u5165\u7F51\u9875\u641C\u7D22\u7ED3\u679C","Inject web search continuation":"\u6CE8\u5165\u7F51\u9875\u641C\u7D22\u7EED\u63A5\u4E0A\u4E0B\u6587","Call custom router":"\u8C03\u7528\u81EA\u5B9A\u4E49\u8DEF\u7531",add:"\u65B0\u589E",replace:"\u66FF\u6362",remove:"\u79FB\u9664",Rules:"\u89C4\u5219",Save:"\u4FDD\u5B58","Screen lock":"\u9501\u5C4F","Search API keys":"\u641C\u7D22 API \u5BC6\u94A5","Search extensions":"\u641C\u7D22\u6269\u5C55","Search models":"\u641C\u7D22\u6A21\u578B","Search network captures":"\u641C\u7D22\u7F51\u7EDC\u6355\u83B7","Search providers":"\u641C\u7D22\u4F9B\u5E94\u5546","Search providers or models":"\u641C\u7D22\u4F9B\u5E94\u5546\u6216\u6A21\u578B","Search request logs":"\u641C\u7D22\u8BF7\u6C42\u65E5\u5FD7","Search routing rules":"\u641C\u7D22\u8DEF\u7531\u89C4\u5219","Select account":"\u9009\u62E9\u8D26\u6237","Select an existing bot or turn Bot off.":"\u8BF7\u9009\u62E9\u5DF2\u6709 Bot\uFF0C\u6216\u5173\u95ED Bot\u3002","Select at least one available model.":"\u8BF7\u81F3\u5C11\u9009\u62E9\u4E00\u4E2A\u53EF\u7528\u6A21\u578B\u3002","Select default model":"\u9009\u62E9\u9ED8\u8BA4\u6A21\u578B","Select bot":"\u9009\u62E9 Bot","Select data":"\u9009\u62E9\u6570\u636E","Send a request through CCR, then refresh this page to inspect it.":"\u901A\u8FC7 CCR \u53D1\u9001\u4E00\u6B21\u8BF7\u6C42\uFF0C\u7136\u540E\u5237\u65B0\u6B64\u9875\u9762\u67E5\u770B\u65E5\u5FD7\u3002",Server:"\u670D\u52A1","Startup timeout ms":"\u542F\u52A8\u8D85\u65F6 ms","State directory":"\u72B6\u6001\u76EE\u5F55","Account component":"\u8D26\u6237\u7EC4\u4EF6","All accounts":"\u6240\u6709\u8D26\u6237","All credentials":"\u5168\u90E8\u51ED\u636E","Last updated":"\u4E0A\u6B21\u66F4\u65B0","Analysis is limited to the newest":"\u5206\u6790\u7ED3\u679C\u4EC5\u5305\u542B\u6700\u65B0\u7684",of:"/","Refresh account":"\u5237\u65B0\u8D26\u6237","Refreshing account":"\u6B63\u5728\u5237\u65B0\u8D26\u6237","Add widget":"\u6DFB\u52A0\u7EC4\u4EF6","Analysis component":"\u5206\u6790\u7EC4\u4EF6",Arc:"\u5F27\u5F62",Area:"\u9762\u79EF\u56FE","Average latency":"\u5E73\u5747\u5EF6\u8FDF",Bar:"\u67F1\u72B6\u56FE",Bars:"\u6A2A\u6761","Breakdown component":"\u6784\u6210\u7EC4\u4EF6",Card:"\u5361\u7247",Cards:"\u5361\u7247","Change widget type":"\u5207\u6362\u7EC4\u4EF6\u7C7B\u578B","Client or provider":"\u5BA2\u6237\u7AEF\u6216\u4F9B\u5E94\u5546","Component properties":"\u7EC4\u4EF6\u5C5E\u6027",Components:"\u7EC4\u4EF6","Component category":"\u7EC4\u4EF6\u7C7B\u578B",Compact:"\u7D27\u51D1",Composed:"\u7EC4\u5408\u56FE",Data:"\u6570\u636E",Done:"\u5B8C\u6210",Donut:"\u73AF\u5F62\u56FE","Edit widgets":"\u7F16\u8F91\u7EC4\u4EF6",Activity:"\u6D3B\u8DC3\u5EA6","Activity component":"\u6D3B\u8DC3\u5EA6\u7EC4\u4EF6","Avg / day":"\u65E5\u5747","Avg / week":"\u5468\u5747",F:"\u4E94",Full:"\u6574\u884C","Header component":"\u6807\u9898\u7EC4\u4EF6",Heatmap:"\u70ED\u529B\u56FE",Large:"\u5927",Less:"\u5C11",Line:"\u6298\u7EBF\u56FE","Longest streak":"\u6700\u957F\u8FDE\u7EED",M:"\u4E00",Medium:"\u4E2D",Metric:"\u6307\u6807","Metric component":"\u6307\u6807\u7EC4\u4EF6","Model Distribution":"\u6A21\u578B\u5206\u5E03","Model distribution":"\u6A21\u578B\u5206\u5E03","Nested rings":"\u5185\u5916\u5706","No widget selected":"\u672A\u9009\u62E9\u7EC4\u4EF6","No widgets configured":"\u672A\u914D\u7F6E\u7EC4\u4EF6","Overview layout":"\u6982\u89C8\u5E03\u5C40",Overview:"\u6982\u89C8",Other:"\u5176\u4ED6",Pie:"\u997C\u56FE","Provider component":"\u4F9B\u5E94\u5546\u7EC4\u4EF6","Remove widget":"\u79FB\u9664\u7EC4\u4EF6",Preview:"\u9884\u89C8","Requests, tokens, cost":"\u8BF7\u6C42\u3001Token\u3001\u6210\u672C",Result:"\u7ED3\u679C","Reset layout":"\u91CD\u7F6E\u5E03\u5C40","Move account card":"\u79FB\u52A8\u8D26\u6237\u5361\u7247","Resize account card":"\u8C03\u6574\u8D26\u6237\u5361\u7247\u5C3A\u5BF8","Close fullscreen JSON viewer":"\u5173\u95ED\u5168\u5C4F JSON \u67E5\u770B\u5668","Fullscreen JSON viewer":"\u5168\u5C4F JSON \u67E5\u770B\u5668","Open fullscreen JSON viewer":"\u5168\u5C4F\u67E5\u770B JSON","Resize column width":"\u8C03\u6574\u5217\u5BBD","Resize widget height":"\u8C03\u6574\u7EC4\u4EF6\u9AD8\u5EA6","Resize widget size":"\u8C03\u6574\u7EC4\u4EF6\u5927\u5C0F","Resize widget width":"\u8C03\u6574\u7EC4\u4EF6\u5BBD\u5EA6",Ring:"\u5706\u73AF",Semicircle:"\u534A\u5706",Small:"\u5C0F",Stacked:"\u5806\u53E0","Status component":"\u72B6\u6001\u7EC4\u4EF6","Status timeline":"\u72B6\u6001\u65F6\u95F4\u7EBF",Style:"\u6837\u5F0F",Table:"\u8868\u683C",Timeline:"\u65F6\u95F4\u7EBF","Token activity":"Token \u6D3B\u8DC3\u5EA6","Token activity heatmap":"Token \u6D3B\u8DC3\u5EA6\u70ED\u529B\u56FE","Token distribution":"Token \u5206\u5E03","Token or model distribution":"Token \u6216\u6A21\u578B\u5206\u5E03","Token mix, rings, model share":"Token \u6784\u6210\u3001\u73AF\u5F62\u6307\u6807\u3001\u6A21\u578B\u5360\u6BD4","Token mix component":"Token \u6784\u6210\u7EC4\u4EF6","Trend component":"\u8D8B\u52BF\u7EC4\u4EF6","Usage over time":"\u6309\u65F6\u95F4\u67E5\u770B\u7528\u91CF",Weight:"\u6743\u91CD",Widget:"\u7EC4\u4EF6","Widget size":"\u7EC4\u4EF6\u5927\u5C0F",Wide:"\u5BBD","Share cards":"\u5206\u4EAB\u5361\u7247","Share card":"\u5206\u4EAB\u5361\u7247","Save social-ready cards as PNG images":"\u5C06\u9002\u5408\u793E\u4EA4\u5A92\u4F53\u53D1\u5E03\u7684\u5361\u7247\u4FDD\u5B58\u4E3A PNG \u56FE\u7247","Social media PNG cards":"\u9002\u5408\u793E\u4EA4\u5A92\u4F53\u53D1\u5E03\u7684 PNG \u5361\u7247","PNG export":"PNG \u5BFC\u51FA","Save image":"\u4FDD\u5B58\u56FE\u7247",Saving:"\u6B63\u5728\u4FDD\u5B58","Export failed":"\u5BFC\u51FA\u5931\u8D25","AI Usage Wrapped":"AI \u7528\u91CF\u5E74\u62A5","CCR Route Map":"CCR \u8DEF\u7531\u56FE","Model Leaderboard":"\u6A21\u578B\u6392\u884C\u699C","AI Fuel Cockpit":"AI \u71C3\u6599\u4EEA\u8868","Token Calendar Poster":"Token \u65E5\u5386\u6D77\u62A5","Spend Receipt":"\u6D88\u8D39\u5C0F\u7968","tokens routed through CCR":"\u901A\u8FC7 CCR \u8DEF\u7531\u7684 Token","Top model":"\u6700\u9AD8\u9891\u6A21\u578B","Top provider":"\u6700\u9AD8\u9891\u4F9B\u5E94\u5546","No provider activity":"\u6682\u65E0\u4F9B\u5E94\u5546\u6D3B\u52A8","Peak day":"\u5CF0\u503C\u65E5\u671F","Generated by CCR":"\u7531 CCR \u751F\u6210",Range:"\u8303\u56F4",W:"\u4E09",Yes:"\u662F","Set as default provider":"\u8BBE\u4E3A\u9ED8\u8BA4\u4F9B\u5E94\u5546","Show credential settings":"\u663E\u793A\u51ED\u636E\u914D\u7F6E",Text:"\u6587\u672C",Session:"\u4F1A\u8BDD","Session Detail":"\u4F1A\u8BDD\u8BE6\u60C5","Session Records":"\u4F1A\u8BDD\u8BB0\u5F55","Session Requests":"\u4F1A\u8BDD\u8BF7\u6C42","Session Trajectory":"\u4F1A\u8BDD\u8F68\u8FF9",Sessions:"\u4F1A\u8BDD","Clear session":"\u6E05\u9664\u4F1A\u8BDD","Loading session metrics":"\u6B63\u5728\u52A0\u8F7D\u4F1A\u8BDD\u6307\u6807","Session not found or outside the selected range":"\u672A\u627E\u5230\u8BE5\u4F1A\u8BDD\uFF0C\u6216\u5B83\u4E0D\u5728\u5F53\u524D\u65F6\u95F4\u8303\u56F4\u5185","Trace Detail":"\u94FE\u8DEF\u8BE6\u60C5","Trace duration":"\u94FE\u8DEF\u8017\u65F6","Trace runs":"\u94FE\u8DEF\u8282\u70B9","Call chain":"\u8C03\u7528\u94FE\u8DEF",Runs:"\u8282\u70B9",Run:"\u8282\u70B9",Round:"\u8F6E\u6B21",Rounds:"\u8F6E\u6B21",Turns:"\u8F6E\u6B21",Calls:"\u8C03\u7528",LLM:"LLM","LLM calls":"LLM \u8C03\u7528","No trace runs":"\u6682\u65E0\u94FE\u8DEF\u8282\u70B9","No conversation messages":"\u6682\u65E0\u5BF9\u8BDD\u6D88\u606F","No trajectory events":"\u6682\u65E0\u4F1A\u8BDD\u8F68\u8FF9","No matching events":"\u65E0\u5339\u914D\u8F68\u8FF9","No model activity":"\u6682\u65E0\u6A21\u578B\u6D3B\u52A8","No session records":"\u6682\u65E0\u4F1A\u8BDD\u8BB0\u5F55","No session requests":"\u6682\u65E0\u4F1A\u8BDD\u8BF7\u6C42","Show all sessions":"\u663E\u793A\u6240\u6709\u4F1A\u8BDD","Open details":"\u6253\u5F00\u8BE6\u60C5","Collapse details":"\u6536\u8D77\u8BE6\u60C5","View details":"\u67E5\u770B\u8BE6\u60C5",Search:"\u641C\u7D22",Summary:"\u6458\u8981",Raw:"\u539F\u59CB",Assistant:"AI",Context:"\u4E0A\u4E0B\u6587",Developer:"\u5F00\u53D1\u8005",System:"\u7CFB\u7EDF",User:"\u7528\u6237","Request Log":"\u8BF7\u6C42\u65E5\u5FD7","Request log detail is unavailable.":"\u8BF7\u6C42\u65E5\u5FD7\u8BE6\u60C5\u4E0D\u53EF\u7528\u3002","Request log not found.":"\u672A\u627E\u5230\u8BF7\u6C42\u65E5\u5FD7\u3002","Request Timing":"\u8BF7\u6C42\u8017\u65F6","Total duration":"\u603B\u8017\u65F6",Offset:"\u504F\u79FB",Status:"\u72B6\u6001","Status codes":"\u72B6\u6001\u7801",Stream:"\u6D41\u5F0F",Streaming:"\u6D41\u5F0F","Non-streaming":"\u975E\u6D41\u5F0F",Started:"\u5F00\u59CB\u65F6\u95F4","Source truncated":"\u6E90\u6570\u636E\u5DF2\u622A\u65AD","User sent":"\u7528\u6237\u53D1\u9001","AI returned":"AI \u8FD4\u56DE","Model reply":"\u6A21\u578B\u56DE\u590D",Details:"\u8BE6\u60C5",Subagent:"\u5B50\u4EE3\u7406","Subagent Routing":"Subagent \u8DEF\u7531","Subagent calls":"Subagent \u8C03\u7528",Subagents:"\u5B50\u4EE3\u7406",Success:"\u6210\u529F","Success rate":"\u6210\u529F\u7387","System proxy":"\u7CFB\u7EDF\u4EE3\u7406","System default":"\u7CFB\u7EDF\u9ED8\u8BA4",Target:"\u76EE\u6807","Tenant ID":"\u79DF\u6237 ID","Target model":"\u76EE\u6807\u6A21\u578B","Target model is required.":"\u76EE\u6807\u6A21\u578B\u4E0D\u80FD\u4E3A\u7A7A\u3002",Thread:"\u7EBF\u7A0B","Thread ID":"\u7EBF\u7A0B ID",Thinking:"\u601D\u8003",Token:"Token","Token Mix":"Token \u6784\u6210",Total:"\u603B\u8BA1","Total tokens":"\u603B Token",Username:"\u7528\u6237\u540D",Today:"\u4ECA\u5929","Token threshold":"Token \u9608\u503C",Truncated:"\u5DF2\u622A\u65AD",Tokens:"Token",tokens:"Token",day:"\u5929",days:"\u5929",Tool:"\u5DE5\u5177","Tool Usage":"\u5DE5\u5177\u4F7F\u7528","Tool calls":"\u5DE5\u5177\u8C03\u7528","Tool parameters":"\u5DE5\u5177\u53C2\u6570","Tool result":"\u5DE5\u5177\u7ED3\u679C",Tools:"\u5DE5\u5177","Top tools":"\u9AD8\u9891\u5DE5\u5177",Routes:"\u8DEF\u7531",Timeout:"\u8D85\u65F6",Type:"\u7C7B\u578B",UA:"UA",Unset:"\u672A\u8BBE\u7F6E",URL:"URL","URL is required.":"URL \u4E0D\u80FD\u4E3A\u7A7A\u3002","Usage mode":"\u7528\u91CF\u6A21\u5F0F","Usage request URL":"\u7528\u91CF\u8BF7\u6C42 URL","Usage request URL is required.":"\u7528\u91CF\u8BF7\u6C42 URL \u4E0D\u80FD\u4E3A\u7A7A\u3002","Usage request URL must use http or https.":"\u7528\u91CF\u8BF7\u6C42 URL \u5FC5\u987B\u4F7F\u7528 http \u6216 https\u3002","Usage database":"\u7528\u91CF\u6570\u636E\u5E93","Usage Trend":"\u7528\u91CF\u8D8B\u52BF","User idle":"\u7528\u6237\u7A7A\u95F2","Insert example":"\u63D2\u5165\u793A\u4F8B","Insert New API user balance":"\u63D2\u5165 New API \u7528\u6237\u4F59\u989D","New API user ID":"New API \u7528\u6237 ID","Virtual model":"Fusion","Virtual Models":"Fusion","Add MCP Server":"\u6DFB\u52A0 MCP \u670D\u52A1","Add MCP server":"\u6DFB\u52A0 MCP \u670D\u52A1","Add Virtual Model":"\u6DFB\u52A0 Fusion","Add virtual model":"\u6DFB\u52A0 Fusion","Append instructions":"\u8FFD\u52A0\u6307\u4EE4","At least one match alias, prefix, or suffix is required.":"\u81F3\u5C11\u9700\u8981\u4E00\u4E2A\u5339\u914D\u522B\u540D\u3001\u524D\u7F00\u6216\u540E\u7F00\u3002","Allow client tools":"\u5141\u8BB8\u5BA2\u6237\u7AEF\u5DE5\u5177","Base model":"\u57FA\u7840\u6A21\u578B","Base model mode":"\u57FA\u7840\u6A21\u578B\u6A21\u5F0F","Client tools":"\u5BA2\u6237\u7AEF\u5DE5\u5177","Client-visible":"\u5BA2\u6237\u7AEF\u53EF\u89C1",Clients:"\u5BA2\u6237\u7AEF",Command:"\u547D\u4EE4","Command is required.":"\u547D\u4EE4\u4E0D\u80FD\u4E3A\u7A7A\u3002","Decorate only":"\u4EC5\u88C5\u9970","Decorate only mode cannot use internal tools.":"\u4EC5\u88C5\u9970\u6A21\u5F0F\u4E0D\u80FD\u4F7F\u7528\u5185\u90E8\u5DE5\u5177\u3002","Description template":"\u63CF\u8FF0\u6A21\u677F","Display name template":"\u663E\u793A\u540D\u79F0\u6A21\u677F","Edit MCP Server":"\u7F16\u8F91 MCP \u670D\u52A1","Edit MCP server":"\u7F16\u8F91 MCP \u670D\u52A1","Edit Virtual Model":"\u7F16\u8F91 Fusion","Edit virtual model":"\u7F16\u8F91 Fusion","Exact aliases":"\u7CBE\u786E\u522B\u540D","Exact aliases require a fixed model or original request model.":"\u7CBE\u786E\u522B\u540D\u9700\u8981\u56FA\u5B9A\u6A21\u578B\u6216\u539F\u59CB\u8BF7\u6C42\u6A21\u578B\u3002","Execution mode":"\u6267\u884C\u6A21\u5F0F","Expose in models":"\u66B4\u9732\u5230\u6A21\u578B\u5217\u8868","Fixed base model":"\u56FA\u5B9A\u57FA\u7840\u6A21\u578B","Fixed base model is required.":"\u5FC5\u987B\u9009\u62E9\u56FA\u5B9A\u57FA\u7840\u6A21\u578B\u3002","Fixed model":"\u56FA\u5B9A\u6A21\u578B","Injected tool names":"\u6CE8\u5165\u5DE5\u5177\u540D","Injected tools":"\u6CE8\u5165\u5DE5\u5177","Input schema JSON":"\u8F93\u5165 schema JSON",Internal:"\u5185\u90E8","Invalid input schema JSON for":"\u8F93\u5165 schema JSON \u65E0\u6548\uFF1A","Invalid tool choice JSON.":"Tool choice JSON \u65E0\u6548\u3002","Key is required.":"Key \u4E0D\u80FD\u4E3A\u7A7A\u3002",Materialize:"\u7269\u5316","MCP servers":"MCP \u670D\u52A1","MCP tools":"MCP \u5DE5\u5177",Match:"\u5339\u914D","Match type":"\u5339\u914D\u65B9\u5F0F","Match multimodal":"\u5339\u914D\u591A\u6A21\u6001","Match web search":"\u5339\u914D\u7F51\u9875\u641C\u7D22","Max tool calls":"\u6700\u5927\u5DE5\u5177\u8C03\u7528","Max tool calls must be greater than zero.":"\u6700\u5927\u5DE5\u5177\u8C03\u7528\u5FC5\u987B\u5927\u4E8E 0\u3002","Fusion combines a model with another model or tools into a new model.":"\u5C06\u6A21\u578B\u548C\u6A21\u578B/\u5DE5\u5177\u7EC4\u5408\u8D77\u6765\u6210\u4E3A\u4E00\u4E2A\u65B0\u7684\u6A21\u578B\u3002","Fusion example":"\u4F8B\u5982\uFF1AGLM 5.2 + GLM 5V Turbo = GLM 5.2V","Vision tool configuration":"\u89C6\u89C9\u5DE5\u5177\u914D\u7F6E","Choose a configured gateway model for image understanding.":"\u9009\u62E9\u5DF2\u914D\u7F6E\u7684\u7F51\u5173\u6A21\u578B\u4F5C\u4E3A\u56FE\u7247\u7406\u89E3\u6A21\u578B\u3002","Vision model":"\u89C6\u89C9\u6A21\u578B","Vision fallback model":"\u5907\u7528\u89C6\u89C9\u6A21\u578B","Vision model is required.":"\u5FC5\u987B\u9009\u62E9\u89C6\u89C9\u6A21\u578B\u3002","No vision fallback models configured":"\u672A\u914D\u7F6E\u5907\u7528\u89C6\u89C9\u6A21\u578B","Web search configuration":"Web Search \u914D\u7F6E","Search provider":"\u641C\u7D22\u7C7B\u578B","In-app Browser":"\u5185\u7F6E\u6D4F\u89C8\u5668","Provider configuration":"\u7C7B\u578B\u914D\u7F6E","Search engine":"\u641C\u7D22\u5F15\u64CE","Safe search":"\u5B89\u5168\u641C\u7D22",Language:"\u8BED\u8A00","Bot language":"Bot \u8BED\u8A00","Maximum turn time (minutes)":"\u5355\u6B21\u8FD0\u884C\u6700\u957F\u65F6\u95F4\uFF08\u5206\u949F\uFF09","Session idle reset (minutes, 0 disables)":"\u4F1A\u8BDD\u7A7A\u95F2\u91CD\u7F6E\uFF08\u5206\u949F\uFF0C0 \u4E3A\u5173\u95ED\uFF09","Long message chunk size":"\u957F\u6D88\u606F\u5206\u7247\u5B57\u7B26\u6570","Maximum attachment size (MB)":"\u9644\u4EF6\u5927\u5C0F\u4E0A\u9650\uFF08MB\uFF09","Stream replies and progress":"\u6D41\u5F0F\u56DE\u590D\u4E0E\u8FDB\u5EA6","Send and receive attachments":"\u6536\u53D1\u9644\u4EF6","Allow Agent shell tools":"\u5141\u8BB8 Agent \u4F7F\u7528 Shell \u5DE5\u5177","Controls Agent tool permission; it does not add a Bot shell command.":"\u4EC5\u63A7\u5236 Agent \u5DE5\u5177\u6743\u9650\uFF0C\u4E0D\u4F1A\u589E\u52A0 Bot Shell \u547D\u4EE4\u3002","Local App":"\u672C\u673A App",Starting:"\u6B63\u5728\u8FDE\u63A5","Bot activity":"Bot \u52A8\u6001","Last event":"\u6700\u540E\u4E8B\u4EF6","Waiting for messages":"\u7B49\u5F85\u6D88\u606F",pending:"\u5F85\u53D1\u9001",Country:"\u56FD\u5BB6/\u5730\u533A","Advanced variables":"\u9AD8\u7EA7\u53D8\u91CF",Default:"\u9ED8\u8BA4",Moderate:"\u4E2D\u7B49",Strict:"\u4E25\u683C","Add tool":"\u6DFB\u52A0\u5DE5\u5177","Add variable":"\u6DFB\u52A0\u53D8\u91CF","Add custom MCP":"\u6DFB\u52A0\u81EA\u5B9A\u4E49 MCP","Add custom MCP tool":"\u6DFB\u52A0\u81EA\u5B9A\u4E49 MCP \u5DE5\u5177","Custom MCP tool":"\u81EA\u5B9A\u4E49 MCP \u5DE5\u5177","Discover tools":"\u53D1\u73B0\u5DE5\u5177","Import MCP JSON":"\u5BFC\u5165 MCP JSON","MCP JSON":"MCP JSON","MCP server":"MCP \u670D\u52A1","MCP server name already exists.":"MCP \u670D\u52A1\u540D\u79F0\u5DF2\u5B58\u5728\u3002",Arguments:"\u53C2\u6570","Working directory":"\u5DE5\u4F5C\u76EE\u5F55","API key env":"API Key \u73AF\u5883\u53D8\u91CF",APP_PATH:"APP_PATH",CLAUDE_APP_PATH:"CLAUDE_APP_PATH",CHATGPT_APP_PATH:"CHATGPT_APP_PATH",OPENCODE_APP_PATH:"OPENCODE_APP_PATH",WORKBUDDY_APP_PATH:"WORKBUDDY_APP_PATH","Drop the app here or paste the executable path":"\u62D6\u52A8\u5E94\u7528\u5230\u8FD9\u91CC\uFF0C\u6216\u7C98\u8D34\u53EF\u6267\u884C\u6587\u4EF6\u8DEF\u5F84","Third-party tool environment":"\u4E09\u65B9\u5DE5\u5177\u73AF\u5883\u53D8\u91CF","Environment variable keys are required when values are set.":"\u8BBE\u7F6E\u53D8\u91CF\u503C\u65F6\u5FC5\u987B\u586B\u5199\u53D8\u91CF\u540D\u3002","MCP tool discovery is available in the Electron app.":"MCP \u5DE5\u5177\u53D1\u73B0\u4EC5\u5728 Electron App \u4E2D\u53EF\u7528\u3002","No MCP servers found in JSON.":"JSON \u4E2D\u672A\u627E\u5230 MCP \u670D\u52A1\u3002","Image recognition":"\u56FE\u7247\u8BC6\u522B","Image recognition and Web Search":"\u56FE\u7247\u8BC6\u522B\u548C Web Search","Generic image understanding tool for OCR, screenshot analysis, chart reading, UI comparison, error diagnosis, and other multi-image tasks.":"\u901A\u7528\u56FE\u7247\u7406\u89E3\u5DE5\u5177\uFF0C\u652F\u6301 OCR\u3001\u622A\u56FE\u5206\u6790\u3001\u56FE\u8868\u89E3\u8BFB\u3001UI \u5BF9\u6BD4\u3001\u9519\u8BEF\u8BCA\u65AD\u7B49\u591A\u56FE\u4EFB\u52A1\u3002","Generic web search tool supporting Brave, Bing, Google CSE, Serper, SerpAPI, Tavily, and Exa.":"\u901A\u7528\u7F51\u7EDC\u641C\u7D22\u5DE5\u5177\uFF0C\u652F\u6301 Brave\u3001Bing\u3001Google CSE\u3001Serper\u3001SerpAPI\u3001Tavily\u3001Exa\u3002","Generic web search tool supporting hidden in-app browser search plus Brave, Bing, Google CSE, Serper, SerpAPI, Tavily, and Exa.":"\u901A\u7528\u7F51\u7EDC\u641C\u7D22\u5DE5\u5177\uFF0C\u652F\u6301\u9690\u85CF\u5185\u7F6E\u6D4F\u89C8\u5668\u641C\u7D22\uFF0C\u4EE5\u53CA Brave\u3001Bing\u3001Google CSE\u3001Serper\u3001SerpAPI\u3001Tavily\u3001Exa\u3002","Image generation":"\u56FE\u7247\u751F\u6210","Video generation":"\u89C6\u9891\u751F\u6210","Generate and edit images with a media-capable provider model.":"\u4F7F\u7528\u652F\u6301\u5A92\u4F53\u534F\u8BAE\u7684\u4F9B\u5E94\u5546\u6A21\u578B\u751F\u6210\u548C\u7F16\u8F91\u56FE\u7247\u3002","Generate and manage asynchronous videos with a media-capable provider model.":"\u4F7F\u7528\u652F\u6301\u5A92\u4F53\u534F\u8BAE\u7684\u4F9B\u5E94\u5546\u6A21\u578B\u751F\u6210\u5E76\u7BA1\u7406\u5F02\u6B65\u89C6\u9891\u4EFB\u52A1\u3002","Image model":"\u56FE\u7247\u6A21\u578B","Video model":"\u89C6\u9891\u6A21\u578B","Image fallback model":"\u5907\u7528\u56FE\u7247\u6A21\u578B","Video fallback model":"\u5907\u7528\u89C6\u9891\u6A21\u578B","No image fallback models configured":"\u672A\u914D\u7F6E\u5907\u7528\u56FE\u7247\u6A21\u578B","No video fallback models configured":"\u672A\u914D\u7F6E\u5907\u7528\u89C6\u9891\u6A21\u578B","API models reuse the selected provider's endpoint and credentials.":"API \u6A21\u578B\u590D\u7528\u6240\u9009\u4F9B\u5E94\u5546\u7684\u5730\u5740\u548C\u51ED\u636E\u3002","CCR routes media through the selected ai-gateway provider. Imported Grok Agents reuse their existing login automatically.":"CCR \u901A\u8FC7 ai-gateway \u8DEF\u7531\u5230\u6240\u9009\u5A92\u4F53\u4F9B\u5E94\u5546\uFF1B\u5BFC\u5165\u7684 Grok Agent \u4F1A\u81EA\u52A8\u590D\u7528\u73B0\u6709\u767B\u5F55\u6001\u3002","Image generation model is required.":"\u8BF7\u9009\u62E9\u56FE\u7247\u751F\u6210\u6A21\u578B\u3002","Video generation model is required.":"\u8BF7\u9009\u62E9\u89C6\u9891\u751F\u6210\u6A21\u578B\u3002","Web Search":"\u7F51\u9875\u641C\u7D22","New model":"\u65B0\u6A21\u578B","New model is required.":"\u65B0\u6A21\u578B\u4E0D\u80FD\u4E3A\u7A7A\u3002","Base model is required.":"\u57FA\u7840\u6A21\u578B\u4E0D\u80FD\u4E3A\u7A7A\u3002","Tool is required.":"\u5FC5\u987B\u9009\u62E9\u5DE5\u5177\u3002","No matching virtual models":"\u6CA1\u6709\u5339\u914D\u7684 Fusion","No MCP servers configured":"\u672A\u914D\u7F6E MCP \u670D\u52A1","No tools discovered":"\u672A\u53D1\u73B0\u5DE5\u5177","No tools available":"\u65E0\u53EF\u9009\u5DE5\u5177","No tools configured":"\u672A\u914D\u7F6E\u5DE5\u5177","No virtual models configured":"\u5C1A\u672A\u914D\u7F6E Fusion","Original request model":"\u539F\u59CB\u8BF7\u6C42\u6A21\u578B","Adapt image requests":"\u9002\u914D\u56FE\u50CF\u8BF7\u6C42","Adapt web search":"\u9002\u914D\u7F51\u9875\u641C\u7D22",Prefixes:"\u524D\u7F00",Prefix:"\u524D\u7F00","Prefix is required.":"\u524D\u7F00\u4E0D\u80FD\u4E3A\u7A7A\u3002","Prepend instructions":"\u524D\u7F6E\u6307\u4EE4","Protocol version":"\u534F\u8BAE\u7248\u672C","Remove MCP server":"\u79FB\u9664 MCP \u670D\u52A1","Remove tool":"\u79FB\u9664\u5DE5\u5177","Remove model":"\u79FB\u9664\u6A21\u578B","Remove virtual model":"\u79FB\u9664 Fusion","Replace instructions":"\u66FF\u6362\u6307\u4EE4","Request timeout":"\u8BF7\u6C42\u8D85\u65F6","Request timeout must be at least 100 ms.":"\u8BF7\u6C42\u8D85\u65F6\u81F3\u5C11\u4E3A 100 ms\u3002","Search virtual models":"\u641C\u7D22 Fusion","Select tool":"\u9009\u62E9\u5DE5\u5177","Startup timeout":"\u542F\u52A8\u8D85\u65F6","Startup timeout must be at least 100 ms.":"\u542F\u52A8\u8D85\u65F6\u81F3\u5C11\u4E3A 100 ms\u3002","Stdio message mode":"Stdio \u6D88\u606F\u6A21\u5F0F","Strip alias prefix":"\u79FB\u9664\u522B\u540D\u524D\u7F00","Strip alias suffix":"\u79FB\u9664\u522B\u540D\u540E\u7F00",Suffixes:"\u540E\u7F00",Suffix:"\u540E\u7F00","Suffix is required.":"\u540E\u7F00\u4E0D\u80FD\u4E3A\u7A7A\u3002","Tool choice":"Tool choice","Tool discovery failed":"\u5DE5\u5177\u53D1\u73B0\u5931\u8D25","Tool loop":"\u5DE5\u5177\u5FAA\u73AF","Tool name":"\u5DE5\u5177\u540D\u79F0","Tool name is required.":"\u5DE5\u5177\u540D\u79F0\u4E0D\u80FD\u4E3A\u7A7A\u3002","Tool names must be unique.":"\u5DE5\u5177\u540D\u79F0\u4E0D\u80FD\u91CD\u590D\u3002",Transport:"\u4F20\u8F93",Unavailable:"\u4E0D\u53EF\u7528",Visibility:"\u53EF\u89C1\u6027","WebSocket URL":"WebSocket URL","WebSocket URL is required.":"WebSocket URL \u4E0D\u80FD\u4E3A\u7A7A\u3002","Env must use KEY=VALUE lines or a JSON object.":"Env \u5FC5\u987B\u4F7F\u7528 KEY=VALUE \u884C\u6216 JSON object\u3002","Env rows require keys.":"\u73AF\u5883\u53D8\u91CF\u884C\u5FC5\u987B\u586B\u5199 Key\u3002","Headers must use KEY=VALUE lines or a JSON object.":"Headers \u5FC5\u987B\u4F7F\u7528 KEY=VALUE \u884C\u6216 JSON object\u3002",Value:"\u503C","Web search":"\u7F51\u9875\u641C\u7D22","Browser apps JSON":"\u6D4F\u89C8\u5668 App JSON",Account:"\u8D26\u6237","Account Balance":"\u8D26\u6237\u4F59\u989D","Account Usage":"\u8D26\u6237\u7528\u91CF","Account balance connectors":"\u8D26\u6237\u4F59\u989D\u8FDE\u63A5\u5668","Add at least one account connector or disable account balance.":"\u8BF7\u81F3\u5C11\u6DFB\u52A0\u4E00\u4E2A\u8D26\u6237\u8FDE\u63A5\u5668\uFF0C\u6216\u5173\u95ED\u8D26\u6237\u4F59\u989D\u3002",Balance:"\u4F59\u989D","Balance field":"\u4F59\u989D\u5B57\u6BB5","Balance remaining field":"\u4F59\u989D\u5269\u4F59\u5B57\u6BB5","Balance rem":"\u4F59\u989D\u5269\u4F59","Balance total":"\u4F59\u989D\u603B\u989D","Balance total field":"\u4F59\u989D\u603B\u989D\u5B57\u6BB5","Balance unit":"\u4F59\u989D\u5355\u4F4D","Balance used":"\u4F59\u989D\u5DF2\u7528","Balance used field":"\u4F59\u989D\u5DF2\u7528\u5B57\u6BB5",Body:"\u8BF7\u6C42\u4F53","Cash balance":"\u73B0\u91D1\u4F59\u989D","Charge balance":"\u5145\u503C\u4F59\u989D","Connectors JSON":"\u8FDE\u63A5\u5668 JSON","Copy provider plugin link":"\u590D\u5236\u4F9B\u5E94\u5546\u63D2\u4EF6\u94FE\u63A5","Credit balance":"\u4FE1\u7528\u4F59\u989D","CCR will fetch this HTTPS manifest with strict safety checks before showing provider details.":"CCR \u4F1A\u5728\u4E25\u683C\u5B89\u5168\u68C0\u67E5\u540E\u62C9\u53D6\u8FD9\u4E2A HTTPS manifest\uFF0C\u518D\u5C55\u793A\u4F9B\u5E94\u5546\u8BE6\u60C5\u3002","Current balance":"\u5F53\u524D\u4F59\u989D","Each plugin app requires name and url.":"\u6BCF\u4E2A\u63D2\u4EF6 App \u90FD\u9700\u8981 name \u548C url\u3002",Wrapper:"\u5305\u88C5\u670D\u52A1","Wrapper runtime":"\u5305\u88C5\u8FD0\u884C\u65F6","Wrapper plugin":"\u5305\u88C5\u63D2\u4EF6","5h quota":"5 \u5C0F\u65F6\u989D\u5EA6","Granted balance":"\u8D60\u9001\u4F59\u989D","Individual limit":"\u4E2A\u4EBA\u989D\u5EA6","Lifetime tokens":"\u7D2F\u8BA1 Token","Manual resets":"\u4E3B\u52A8\u91CD\u7F6E\u6B21\u6570","Monthly budget":"\u6708\u5EA6\u9884\u7B97","Peak daily tokens":"\u65E5\u5CF0\u503C Token","Primary quota":"\u4E3B\u989D\u5EA6","Secondary quota":"\u526F\u989D\u5EA6","Topped-up balance":"\u5145\u503C\u4F59\u989D","Total credits":"\u603B\u989D\u5EA6","Total usage":"\u603B\u7528\u91CF","Voucher balance":"\u4EE3\u91D1\u5238\u4F59\u989D","Weekly quota":"\u5468\u989D\u5EA6",expired:"\u5DF2\u8FC7\u671F","expires in":"\u5269\u4F59",resets:"\u6B21",All:"\u5168\u90E8","API endpoint":"API \u5730\u5740",Active:"\u751F\u6548\u4E2D",Available:"\u53EF\u7528","CA certificate":"CA \u8BC1\u4E66",Capability:"\u80FD\u529B","Checking CA certificate...":"\u6B63\u5728\u68C0\u67E5 CA \u8BC1\u4E66...","Check Trust":"\u68C0\u67E5\u4FE1\u4EFB","Choose folder":"\u9009\u62E9\u76EE\u5F55",Clear:"\u6E05\u9664","Clear network captures":"\u6E05\u9664\u7F51\u7EDC\u6355\u83B7",Collapse:"\u6536\u8D77","Collapse models":"\u6536\u8D77\u6A21\u578B",Copied:"\u5DF2\u590D\u5236","Copied API key":"\u5DF2\u590D\u5236 API \u5BC6\u94A5","Copy API key":"\u590D\u5236 API \u5BC6\u94A5","Model settings":"\u6A21\u578B\u8BBE\u7F6E","Context, pricing, reasoning, web search, and image":"\u4E0A\u4E0B\u6587\u3001\u4EF7\u683C\u3001\u63A8\u7406\u3001\u7F51\u9875\u641C\u7D22\u4E0E\u56FE\u7247","Context, pricing, reasoning, Fast Mode, web search, and image":"\u4E0A\u4E0B\u6587\u3001\u4EF7\u683C\u3001\u63A8\u7406\u3001Fast Mode\u3001\u7F51\u9875\u641C\u7D22\u4E0E\u56FE\u7247","Context window (tokens)":"\u4E0A\u4E0B\u6587\u7A97\u53E3\uFF08Token\uFF09","Custom pricing":"\u81EA\u5B9A\u4E49\u4EF7\u683C",Pricing:"\u4EF7\u683C",Preset:"\u9884\u8BBE","Cache read":"\u7F13\u5B58\u8BFB\u53D6","Cache write 5m":"\u7F13\u5B58\u5199\u5165 5 \u5206\u949F","Cache write 1h":"\u7F13\u5B58\u5199\u5165 1 \u5C0F\u65F6","Input and output prices are both required to override catalog pricing.":"\u5FC5\u987B\u540C\u65F6\u586B\u5199\u8F93\u5165\u4E0E\u8F93\u51FA\u4EF7\u683C\uFF0C\u624D\u80FD\u8986\u76D6\u76EE\u5F55\u4EF7\u683C\u3002","Reasoning levels":"\u63A8\u7406\u6863\u4F4D",Low:"\u4F4E",High:"\u9AD8","Extra high":"\u8D85\u9AD8",Max:"\u6700\u9AD8",Ultra:"\u6781\u81F4","Select every reasoning effort supported by this model.":"\u8BF7\u9009\u62E9\u8BE5\u6A21\u578B\u652F\u6301\u7684\u5168\u90E8\u63A8\u7406\u6863\u4F4D\u3002","Fast Mode":"Fast Mode","Declare whether Codex app should expose the Speed control for this model.":"\u58F0\u660E Codex app \u662F\u5426\u5E94\u8BE5\u4E3A\u8BE5\u6A21\u578B\u663E\u793A Speed \u63A7\u4EF6\u3002","Declare whether the model provides native web search.":"\u58F0\u660E\u8BE5\u6A21\u578B\u662F\u5426\u539F\u751F\u63D0\u4F9B\u7F51\u9875\u641C\u7D22\u3002",Image:"\u56FE\u7247","Declare whether the model accepts image input.":"\u58F0\u660E\u8BE5\u6A21\u578B\u662F\u5426\u652F\u6301\u56FE\u7247\u8F93\u5165\u3002","Use automatic detection":"\u4F7F\u7528\u81EA\u52A8\u68C0\u6D4B","Use preset":"\u4F7F\u7528\u9884\u8BBE","Press Enter to add custom model":"\u6309\u4E0B\u56DE\u8F66\u6DFB\u52A0\u81EA\u5B9A\u4E49\u6A21\u578B","Detected automatically":"\u5DF2\u81EA\u52A8\u68C0\u6D4B","Detected compatibility":"\u68C0\u6D4B\u5230\u7684\u517C\u5BB9\u65B9\u5F0F","Detected endpoint":"\u68C0\u6D4B\u5230\u7684\u5730\u5740","Detecting icon":"\u6B63\u5728\u68C0\u6D4B\u56FE\u6807","Detecting provider":"\u6B63\u5728\u68C0\u6D4B\u4F9B\u5E94\u5546",Disabled:"\u5DF2\u7981\u7528",Docs:"\u6587\u6863","Edit description":"\u7F16\u8F91\u63CF\u8FF0",Effective:"\u751F\u6548",Expand:"\u5C55\u5F00","Expand models":"\u5C55\u5F00\u6A21\u578B",Expired:"\u5DF2\u8FC7\u671F",Expires:"\u8FC7\u671F",Filter:"\u7B5B\u9009","Filter agent":"\u7B5B\u9009 Agent","Filter request log model":"\u7B5B\u9009\u8BF7\u6C42\u65E5\u5FD7\u6A21\u578B","Filter request log provider":"\u7B5B\u9009\u8BF7\u6C42\u65E5\u5FD7\u4F9B\u5E94\u5546","Filter request log status":"\u7B5B\u9009\u8BF7\u6C42\u65E5\u5FD7\u72B6\u6001","Full reset":"\u5B8C\u6574\u91CD\u7F6E",Daily:"\u6BCF\u5929",Monthly:"\u6BCF\u6708",Weekly:"\u6BCF\u5468",Yearly:"\u6BCF\u5E74",hour:"\u5C0F\u65F6",hr:"\u5C0F\u65F6",min:"\u5206\u949F",minute:"\u5206\u949F",month:"\u4E2A\u6708",week:"\u5468",Invalid:"\u65E0\u6548","Manual install":"\u624B\u52A8\u5B89\u88C5","Manual install command":"\u624B\u52A8\u5B89\u88C5\u547D\u4EE4",Manual:"\u624B\u52A8","Manifest URL":"Manifest URL",Marketplace:"\u5E02\u573A",Added:"\u5DF2\u6DFB\u52A0","Added models":"\u5DF2\u6DFB\u52A0\u6A21\u578B","Add custom model":"\u6DFB\u52A0\u81EA\u5B9A\u4E49\u6A21\u578B","Cancel custom model":"\u53D6\u6D88\u81EA\u5B9A\u4E49\u6A21\u578B","Click a model to edit settings":"\u70B9\u51FB\u6A21\u578B\u7F16\u8F91\u8BBE\u7F6E","Custom model":"\u81EA\u5B9A\u4E49\u6A21\u578B","Model already added":"\u6A21\u578B\u5DF2\u6DFB\u52A0","Model name":"\u6A21\u578B\u540D\u79F0","Models are required. Ask the provider to include models=... in the link.":"\u9700\u8981\u6A21\u578B\u5217\u8868\u3002\u8BF7\u8BA9\u4F9B\u5E94\u5546\u5728\u94FE\u63A5\u4E2D\u52A0\u5165 models=...\u3002","Models will be detected automatically.":"\u6A21\u578B\u4F1A\u81EA\u52A8\u63A2\u6D4B\u3002","Models detected from this provider":"\u4ECE\u8BE5\u4F9B\u5E94\u5546\u68C0\u6D4B\u5230\u7684\u6A21\u578B",More:"\u66F4\u591A","Provider models":"\u4F9B\u5E94\u5546\u6A21\u578B","Refresh provider models":"\u5237\u65B0\u4F9B\u5E94\u5546\u6A21\u578B","Refreshing provider models":"\u6B63\u5728\u5237\u65B0\u4F9B\u5E94\u5546\u6A21\u578B","Runtime provider":"\u8FD0\u884C\u65F6\u4F9B\u5E94\u5546","Used in Agent routing prompts":"\u7528\u4E8E Agent \u8DEF\u7531\u63D0\u793A\u8BCD","Read only":"\u53EA\u8BFB","Search all models":"\u641C\u7D22\u5168\u90E8\u6A21\u578B",Source:"\u6765\u6E90",Virtual:"Fusion","Virtual models":"Fusion","No models available":"\u6682\u65E0\u53EF\u7528\u6A21\u578B","No supported account usage endpoint is available for this provider. Configure an HTTP JSON connector or disable account balance.":"\u8BE5\u4F9B\u5E94\u5546\u6682\u65E0\u53EF\u7528\u7684\u8D26\u6237\u7528\u91CF\u7AEF\u70B9\u3002\u8BF7\u914D\u7F6E HTTP JSON \u8FDE\u63A5\u5668\uFF0C\u6216\u5173\u95ED\u8D26\u6237\u4F59\u989D\u8BFB\u53D6\u3002",Direct:"\u76F4\u8FDE","Drag cards to arrange":"\u62D6\u52A8\u5361\u7247\u6392\u5E8F","Drag to move":"\u62D6\u52A8\u6392\u5E8F",Move:"\u79FB\u52A8","Move down":"\u4E0B\u79FB","Move up":"\u4E0A\u79FB","Network capture is paused":"\u7F51\u7EDC\u6355\u83B7\u5DF2\u6682\u505C","No API keys configured":"\u672A\u914D\u7F6E API \u5BC6\u94A5","Available models":"\u53EF\u7528\u6A21\u578B","No body":"\u65E0\u6B63\u6587","No extensions installed":"\u672A\u5B89\u88C5\u6269\u5C55","No limits configured":"\u672A\u914D\u7F6E\u9650\u5236","No matching API keys":"\u6CA1\u6709\u5339\u914D\u7684 API \u5BC6\u94A5","No matching captures":"\u6CA1\u6709\u5339\u914D\u7684\u6355\u83B7","No matching extensions":"\u6CA1\u6709\u5339\u914D\u7684\u6269\u5C55","No matching models":"\u6CA1\u6709\u5339\u914D\u7684\u6A21\u578B","No matching providers":"\u6CA1\u6709\u5339\u914D\u7684\u4F9B\u5E94\u5546","No matching routing rules":"\u6CA1\u6709\u5339\u914D\u7684\u8DEF\u7531\u89C4\u5219","No account balance connectors configured":"\u672A\u914D\u7F6E\u8D26\u6237\u4F59\u989D\u8FDE\u63A5\u5668","No available models":"\u6CA1\u6709\u53EF\u7528\u6A21\u578B","No models added":"\u672A\u6DFB\u52A0\u6A21\u578B","No provider models":"\u6CA1\u6709\u4F9B\u5E94\u5546\u6A21\u578B","This provider did not return a model list. Add model IDs with Custom model.":"\u8BE5\u4F9B\u5E94\u5546\u672A\u8FD4\u56DE\u6A21\u578B\u5217\u8868\uFF0C\u8BF7\u4F7F\u7528\u201C\u81EA\u5B9A\u4E49\u6A21\u578B\u201D\u624B\u52A8\u6DFB\u52A0\u6A21\u578B ID\u3002","No protocol detection yet":"\u5C1A\u672A\u68C0\u6D4B\u534F\u8BAE","No response fields":"\u6CA1\u6709\u54CD\u5E94\u5B57\u6BB5","No unavailable models":"\u6CA1\u6709\u4E0D\u53EF\u7528\u6A21\u578B","Gateway service":"\u7F51\u5173\u670D\u52A1","Name is required.":"\u540D\u79F0\u4E0D\u80FD\u4E3A\u7A7A\u3002","No usage data available.":"\u6682\u65E0\u53EF\u7528\u91CF\u6570\u636E\u3002",Next:"\u4E0B\u4E00\u6B65","OpenAI Chat":"OpenAI Chat","OpenAI Responses":"OpenAI Responses","Anthropic Messages":"Anthropic Messages","Gemini Generate":"Gemini \u751F\u6210","Gemini Interactions":"Gemini Interactions","Model required before protocol verification.":"\u9700\u8981\u5148\u586B\u5199\u6A21\u578B\uFF0C\u624D\u80FD\u9A8C\u8BC1\u534F\u8BAE\u3002","No endpoint candidates available.":"\u6CA1\u6709\u53EF\u7528\u7684\u7AEF\u70B9\u5019\u9009\u3002","Request failed.":"\u8BF7\u6C42\u5931\u8D25\u3002","Select or enter at least one model.":"\u8BF7\u9009\u62E9\u6216\u8F93\u5165\u81F3\u5C11\u4E00\u4E2A\u6A21\u578B\u3002","Enter at least one model.":"\u8BF7\u8F93\u5165\u81F3\u5C11\u4E00\u4E2A\u6A21\u578B\u3002","Generated output is limited to 1 token for connectivity checks.":"\u8FDE\u901A\u6027\u68C0\u6D4B\u4F1A\u628A\u751F\u6210\u8F93\u51FA\u9650\u5236\u4E3A 1 \u4E2A token\u3002","Endpoint and identity":"\u7AEF\u70B9\u4E0E\u540D\u79F0","Check results":"\u68C0\u6D4B\u7ED3\u679C","Models to check":"\u8981\u68C0\u6D4B\u7684\u6A21\u578B","Available model IDs":"\u53EF\u7528\u6A21\u578B ID","Raw connector JSON":"\u539F\u59CB\u8FDE\u63A5\u5668 JSON","Remote provider manifest":"\u8FDC\u7A0B\u4F9B\u5E94\u5546 Manifest","Refresh interval ms":"\u5237\u65B0\u95F4\u9694\uFF08\u6BEB\u79D2\uFF09","Response fields":"\u54CD\u5E94\u5B57\u6BB5","Manual reset credit":"\u4E3B\u52A8\u91CD\u7F6E\u6B21\u6570","Choose a reset card":"\u9009\u62E9\u4E00\u5F20\u91CD\u7F6E\u5361","Use the arrows to switch between available reset credits.":"\u4F7F\u7528\u5DE6\u53F3\u7BAD\u5934\u5207\u6362\u53EF\u7528\u7684\u91CD\u7F6E\u6B21\u6570\u3002","Card number":"\u5361\u53F7","Reset type":"\u91CD\u7F6E\u7C7B\u578B","Valid thru":"\u6709\u6548\u671F","Previous reset card":"\u4E0A\u4E00\u5F20\u91CD\u7F6E\u5361","Next reset card":"\u4E0B\u4E00\u5F20\u91CD\u7F6E\u5361","Reset card":"\u91CD\u7F6E\u5361","Reset this card":"\u4F7F\u7528\u6B64\u5361\u91CD\u7F6E","Launch reset":"\u53D1\u5C04\u91CD\u7F6E",Reset:"\u91CD\u7F6E","Reset complete":"\u91CD\u7F6E\u5B8C\u6210","Reset is unavailable.":"\u91CD\u7F6E\u4E0D\u53EF\u7528\u3002","Reset manual credit":"\u91CD\u7F6E\u4E3B\u52A8\u6B21\u6570",Resetting:"\u6B63\u5728\u91CD\u7F6E","Usage reset":"\u7528\u91CF\u91CD\u7F6E",Used:"\u5DF2\u4F7F\u7528","Select at least one protocol.":"\u8BF7\u81F3\u5C11\u9009\u62E9\u4E00\u4E2A\u534F\u8BAE\u3002","Select at least one usage response field.":"\u8BF7\u81F3\u5C11\u9009\u62E9\u4E00\u4E2A\u7528\u91CF\u54CD\u5E94\u5B57\u6BB5\u3002","Showing first response fields only.":"\u4EC5\u663E\u793A\u524D\u9762\u7684\u54CD\u5E94\u5B57\u6BB5\u3002","Standard usage endpoint":"\u6807\u51C6\u7528\u91CF\u7AEF\u70B9","Standard usage endpoint will try provider-hosted CCR account endpoints.":"\u6807\u51C6\u7528\u91CF\u7AEF\u70B9\u4F1A\u5C1D\u8BD5\u4F9B\u5E94\u5546\u6258\u7BA1\u7684 CCR \u8D26\u6237\u7AEF\u70B9\u3002","Sub limit":"\u8BA2\u9605\u4E0A\u9650","Sub rem":"\u8BA2\u9605\u5269\u4F59","Start check":"\u5F00\u59CB\u68C0\u6D4B","Subscription limit field":"\u8BA2\u9605\u4E0A\u9650\u5B57\u6BB5","Subscription remaining field":"\u8BA2\u9605\u5269\u4F59\u5B57\u6BB5","Subscription reset field":"\u8BA2\u9605\u91CD\u7F6E\u5B57\u6BB5","Subscription unit":"\u8BA2\u9605\u5355\u4F4D","Status field":"\u72B6\u6001\u5B57\u6BB5","Message field":"\u6D88\u606F\u5B57\u6BB5","Add an http-json or webcontent-json connector to test.":"\u8BF7\u6DFB\u52A0\u4E00\u4E2A http-json \u6216 webcontent-json \u8FDE\u63A5\u5668\u7528\u4E8E\u6D4B\u8BD5\u3002","Supports standard, http-json, plugin, and local-estimate connectors.":"\u652F\u6301 standard\u3001http-json\u3001plugin \u548C local-estimate \u8FDE\u63A5\u5668\u3002","Supports standard, http-json, webcontent-json, plugin, and local-estimate connectors.":"\u652F\u6301 standard\u3001http-json\u3001webcontent-json\u3001plugin \u548C local-estimate \u8FDE\u63A5\u5668\u3002","Switch to HTTP JSON request to configure method, URL, headers, body, and response fields.":"\u5207\u6362\u5230 HTTP JSON \u8BF7\u6C42\u5373\u53EF\u914D\u7F6E method\u3001URL\u3001header\u3001body \u548C\u54CD\u5E94\u5B57\u6BB5\u3002","Import from Chrome":"\u4ECE Chrome \u5BFC\u5165","Include cookies":"\u643A\u5E26 Cookie",imported:"\u5DF2\u5BFC\u5165","Open login browser":"\u6253\u5F00\u767B\u5F55\u6D4F\u89C8\u5668","Origin used to read browser storage before fetching the usage URL.":"\u8BFB\u53D6\u6D4F\u89C8\u5668\u5B58\u50A8\u65F6\u4F7F\u7528\u7684 Origin\uFF0C\u7136\u540E\u518D\u8BF7\u6C42\u7528\u91CF URL\u3002","Same-origin only":"\u4EC5\u540C\u6E90",skipped:"\u5DF2\u8DF3\u8FC7","Test browser request":"\u6D4B\u8BD5\u6D4F\u89C8\u5668\u8BF7\u6C42","Test first JSON connector":"\u6D4B\u8BD5\u7B2C\u4E00\u4E2A JSON \u8FDE\u63A5\u5668","Test usage request":"\u6D4B\u8BD5\u7528\u91CF\u8BF7\u6C42","This check sends real model requests with your provider API key and may consume account balance.":"\u672C\u6B21\u68C0\u6D4B\u4F1A\u4F7F\u7528\u4F60\u7684\u4F9B\u5E94\u5546 API Key \u53D1\u8D77\u771F\u5B9E\u6A21\u578B\u8BF7\u6C42\uFF0C\u53EF\u80FD\u6D88\u8017\u8D26\u6237\u4F59\u989D\u3002","Use ${localStorage.token} or ${sessionStorage.token} in values.":"\u503C\u4E2D\u53EF\u4F7F\u7528 ${localStorage.token} \u6216 ${sessionStorage.token}\u3002","Use omit for token headers when the API returns Access-Control-Allow-Origin: *.":"\u5F53 API \u8FD4\u56DE Access-Control-Allow-Origin: * \u4E14\u4F7F\u7528 token \u8BF7\u6C42\u5934\u65F6\uFF0C\u8BF7\u4F7F\u7528\u4E0D\u53D1\u9001\u51ED\u636E\u3002","The gateway is configured. Start the service from the toolbar when you are ready to test traffic.":"\u7F51\u5173\u5DF2\u7ECF\u914D\u7F6E\u597D\u3002\u51C6\u5907\u6D4B\u8BD5\u8BF7\u6C42\u65F6\uFF0C\u8BF7\u4ECE\u5DE5\u5177\u680F\u542F\u52A8\u670D\u52A1\u3002","The imported local agent login is connected when this provider is saved.":"\u5BFC\u5165\u7684\u672C\u673A Agent \u767B\u5F55\u6001\u4F1A\u5728\u4FDD\u5B58\u4F9B\u5E94\u5546\u540E\u63A5\u5165\u3002","Unavailable models":"\u4E0D\u53EF\u7528\u6A21\u578B",Usable:"\u53EF\u7528","Verify connection":"\u9A8C\u8BC1\u8FDE\u901A\u6027","Waiting for provider details":"\u7B49\u5F85\u4F9B\u5E94\u5546\u4FE1\u606F","Waiting for required fields":"\u7B49\u5F85\u5FC5\u586B\u5B57\u6BB5","No marketplace extensions":"\u5E02\u573A\u6682\u65E0\u6269\u5C55","No fallback models configured":"\u672A\u914D\u7F6E\u56DE\u9000\u6A21\u578B","No fallback targets configured":"\u672A\u914D\u7F6E\u5931\u8D25\u964D\u7EA7\u76EE\u6807","No models configured":"\u672A\u914D\u7F6E\u6A21\u578B","No local login state was found for this agent.":"\u672A\u627E\u5230\u8FD9\u4E2A Agent \u7684\u672C\u673A\u767B\u5F55\u6001\u3002","No providers":"\u65E0\u4F9B\u5E94\u5546","No provider credentials configured":"\u672A\u914D\u7F6E\u4F9B\u5E94\u5546\u51ED\u636E","No request rewrite":"\u4E0D\u6539\u5199\u8BF7\u6C42","Not found":"\u672A\u627E\u5230","Not verified yet":"\u5C1A\u672A\u9A8C\u8BC1","Needs models":"\u7F3A\u5C11\u6A21\u578B","Needs protocol":"\u7F3A\u5C11\u534F\u8BAE","OpenCode profiles can target CLI, APP, or both entry modes.":"OpenCode \u914D\u7F6E\u6863\u6848\u53EF\u4EE5\u9009\u62E9 CLI\u3001APP \u6216\u4E24\u8005\u5165\u53E3\u6A21\u5F0F\u3002","Optional health check":"\u53EF\u9009\u5065\u5EB7\u68C0\u67E5","Other / custom API endpoint":"\u5176\u4ED6 / \u81EA\u5B9A\u4E49 API \u5730\u5740",Pending:"\u7B49\u5F85\u4E2D","Pick models":"\u9009\u62E9\u6A21\u578B","Pick a preset provider or use a custom compatible API endpoint.":"\u9009\u62E9\u4F9B\u5E94\u5546\u9884\u8BBE\uFF0C\u6216\u4F7F\u7528\u81EA\u5B9A\u4E49\u517C\u5BB9 API \u7AEF\u70B9\u3002",Priority:"\u4F18\u5148\u7EA7","Priority only":"\u4EC5\u6309\u4F18\u5148\u7EA7","Priority spillover":"\u4F18\u5148\u7EA7\u6EA2\u51FA",Ready:"\u53EF\u5BFC\u5165","Ready to test":"\u53EF\u6D4B\u8BD5","Pool keys":"\u6C60\u5185 Key","Run a real model request before relying on this provider.":"\u4F7F\u7528\u524D\u5EFA\u8BAE\u5148\u8FD0\u884C\u4E00\u6B21\u771F\u5B9E\u6A21\u578B\u8BF7\u6C42\u9A8C\u8BC1\u3002","Optional. Check Connection sends a real model request and may consume provider credits.":"\u53EF\u9009\u3002\u8FDE\u63A5\u68C0\u67E5\u4F1A\u53D1\u9001\u4E00\u6B21\u771F\u5B9E\u6A21\u578B\u8BF7\u6C42\uFF0C\u53EF\u80FD\u6D88\u8017\u4F9B\u5E94\u5546\u989D\u5EA6\u3002","Scanning local agent logins":"\u6B63\u5728\u626B\u63CF\u672C\u673A Agent \u767B\u5F55\u6001","Save this agent profile to continue.":"\u4FDD\u5B58\u8FD9\u4E2A Agent \u914D\u7F6E\u6863\u6848\u540E\u7EE7\u7EED\u3002","Save this provider to continue.":"\u4FDD\u5B58\u8FD9\u4E2A\u4F9B\u5E94\u5546\u540E\u7EE7\u7EED\u3002","Secret used for requests":"\u8BF7\u6C42\u4F7F\u7528\u7684\u5BC6\u94A5","Send a request from your agent, then confirm it appears in Logs.":"\u4ECE Agent \u53D1\u9001\u4E00\u6B21\u8BF7\u6C42\uFF0C\u7136\u540E\u5230\u65E5\u5FD7\u91CC\u786E\u8BA4\u5B83\u5DF2\u7ECF\u51FA\u73B0\u3002","Setup readiness":"\u914D\u7F6E\u5C31\u7EEA\u72B6\u6001","Show API key":"\u663E\u793A API key","Show models":"\u663E\u793A\u6A21\u578B","Hide API key":"\u9690\u85CF API key","Hide models":"\u6536\u8D77\u6A21\u578B","Use one key for every request.":"\u6240\u6709\u8BF7\u6C42\u4F7F\u7528\u540C\u4E00\u4E2A Key\u3002","Use multiple API keys with optional priorities, weights, and limits.":"\u4F7F\u7528\u591A\u4E2A API Key\uFF0C\u5E76\u53EF\u8BBE\u7F6E\u4F18\u5148\u7EA7\u3001\u6743\u91CD\u548C\u9650\u989D\u3002","Use multiple keys with optional limits.":"\u4F7F\u7528\u591A\u4E2A Key\uFF0C\u53EF\u9009\u9650\u989D\u3002","Loading provider models":"\u6B63\u5728\u52A0\u8F7D\u4F9B\u5E94\u5546\u6A21\u578B","Select model":"\u9009\u62E9\u6A21\u578B","Select models":"\u9009\u62E9\u6A21\u578B","Search added models":"\u641C\u7D22\u5DF2\u6DFB\u52A0\u6A21\u578B","Search provider models":"\u641C\u7D22\u4F9B\u5E94\u5546\u6A21\u578B",Monitor:"\u76D1\u63A7",Setup:"\u8BBE\u7F6E\u6D41\u7A0B","Select preset provider":"\u9009\u62E9 \u9884\u8BBE\u4F9B\u5E94\u5546",providers:"\u4F9B\u5E94\u5546",Workspace:"\u5DE5\u4F5C\u53F0","ZCode login detected. Click Import to add it as a gateway provider.":"\u5DF2\u68C0\u6D4B\u5230 ZCode \u767B\u5F55\u6001\u3002\u70B9\u51FB\u5BFC\u5165\u5373\u53EF\u6DFB\u52A0\u4E3A\u7F51\u5173\u4F9B\u5E94\u5546\u3002","ZCode profiles use APP entry mode.":"ZCode \u914D\u7F6E\u6863\u6848\u56FA\u5B9A\u4F7F\u7528 APP \u5165\u53E3\u6A21\u5F0F\u3002","ZCode login was detected, but its local credential is encrypted and cannot be imported automatically.":"\u5DF2\u68C0\u6D4B\u5230 ZCode \u767B\u5F55\u6001\uFF0C\u4F46\u672C\u673A\u51ED\u636E\u5DF2\u52A0\u5BC6\uFF0C\u65E0\u6CD5\u81EA\u52A8\u5BFC\u5165\u3002","ZCode login was detected, but no usable provider API key was found in ZCode config.":"\u5DF2\u68C0\u6D4B\u5230 ZCode \u767B\u5F55\u6001\uFF0C\u4F46 ZCode \u914D\u7F6E\u4E2D\u6CA1\u6709\u627E\u5230\u53EF\u7528\u7684\u4F9B\u5E94\u5546 API key\u3002","ZCode provider API key detected in local ZCode config. Click Import to add it as a gateway provider.":"\u5DF2\u5728\u672C\u673A ZCode \u914D\u7F6E\u4E2D\u68C0\u6D4B\u5230\u4F9B\u5E94\u5546 API key\u3002\u70B9\u51FB\u5BFC\u5165\u5373\u53EF\u6DFB\u52A0\u4E3A\u7F51\u5173\u4F9B\u5E94\u5546\u3002","Kimi API (China)":"Kimi API\uFF08\u56FD\u5185\uFF09","Kimi API (Global)":"Kimi API\uFF08\u6D77\u5916\uFF09","Kimi Code - Coding Plan":"Kimi Code - Coding Plan","Xiaomi MiMo":"\u5C0F\u7C73 MiMo","Xiaomi Token Plan (China)":"MiMo \u5957\u9910\uFF08\u56FD\u5185\uFF09","Xiaomi Token Plan (Europe)":"MiMo \u5957\u9910\uFF08\u6B27\u6D32\uFF09","Xiaomi Token Plan (Singapore)":"MiMo \u5957\u9910\uFF08\u65B0\u52A0\u5761\uFF09","Zhipu AI (China)":"\u667A\u8C31 AI (\u56FD\u5185)","Zhipu AI (China) - Coding Plan":"\u667A\u8C31 AI (\u56FD\u5185) - Coding Plan","Zhipu AI (China) - General Endpoint":"\u667A\u8C31 AI (\u56FD\u5185) - \u901A\u7528\u7AEF\u70B9","Z.ai (Global)":"Z.ai (\u56FD\u5916)","Z.ai (Global) - Coding Plan":"Z.ai (\u56FD\u5916) - Coding Plan","Z.ai (Global) - General Endpoint":"Z.ai (\u56FD\u5916) - \u901A\u7528\u7AEF\u70B9","After you enter the API endpoint and key, the system will automatically detect supported protocols and available models.":"\u586B\u5199 API \u5730\u5740\u548C\u5BC6\u94A5\u540E\uFF0C\u7CFB\u7EDF\u4F1A\u81EA\u52A8\u63A2\u6D4B\u652F\u6301\u7684\u534F\u8BAE\u548C\u53EF\u7528\u6A21\u578B\u3002","Enter a model manually if automatic detection does not return a model list.":"\u5982\u679C\u81EA\u52A8\u68C0\u6D4B\u6CA1\u6709\u8FD4\u56DE\u6A21\u578B\u5217\u8868\uFF0C\u53EF\u4EE5\u624B\u52A8\u8F93\u5165\u6A21\u578B\u540D\u79F0\u3002","No network captures":"\u6682\u65E0\u7F51\u7EDC\u6355\u83B7","No plugin routes configured":"\u672A\u914D\u7F6E\u63D2\u4EF6\u8DEF\u7531","No profiles for this agent":"\u5F53\u524D Agent \u672A\u914D\u7F6E\u6863\u6848","No profiles configured":"\u5C1A\u672A\u914D\u7F6E\u6863\u6848","No providers configured":"\u672A\u914D\u7F6E\u4F9B\u5E94\u5546","No query parameters":"\u65E0\u67E5\u8BE2\u53C2\u6570","No request headers":"\u65E0\u8BF7\u6C42\u5934","Next step":"\u4E0B\u4E00\u6B65","No response headers":"\u65E0\u54CD\u5E94\u5934","No recent agent requests":"\u6682\u65E0\u6700\u8FD1 Agent \u8BF7\u6C42","No session activity":"\u6682\u65E0\u4F1A\u8BDD\u6D3B\u52A8","No subagent calls":"\u6682\u65E0 Subagent \u8C03\u7528","No tool calls":"\u6682\u65E0\u5DE5\u5177\u8C03\u7528","No routing rules configured":"\u672A\u914D\u7F6E\u8DEF\u7531\u89C4\u5219","No updates available":"\u5F53\u524D\u5DF2\u662F\u6700\u65B0\u7248\u672C","Not installed":"\u672A\u5B89\u88C5","Not set":"\u672A\u8BBE\u7F6E","Pause capture":"\u6682\u505C\u6355\u83B7","Pause network capture":"\u6682\u505C\u7F51\u7EDC\u6355\u83B7","Pause service":"\u6682\u505C\u670D\u52A1","Previous page":"\u4E0A\u4E00\u9875",Previous:"\u4E0A\u4E00\u6B65","Previous step":"\u4E0A\u4E00\u6B65","Provider setup":"\u4F9B\u5E94\u5546\u8BBE\u7F6E","Profile routes":"\u914D\u7F6E\u7EA7\u8DEF\u7531","Profile routing":"\u914D\u7F6E\u7EA7\u8DEF\u7531","Proxy not running":"\u4EE3\u7406\u672A\u8FD0\u884C","Proxy status":"\u4EE3\u7406\u72B6\u6001","Proxy CA certificate is trusted.":"Proxy CA \u8BC1\u4E66\u5DF2\u4FE1\u4EFB\u3002","Proxy CA certificate is not trusted.":"Proxy CA \u8BC1\u4E66\u672A\u88AB\u4FE1\u4EFB\u3002","Proxy CA certificate is not trusted:":"Proxy CA \u8BC1\u4E66\u672A\u88AB\u4FE1\u4EFB\uFF1A","Proxy CA certificate is not installed. Install the CA certificate before enabling proxy mode.":"Proxy CA \u8BC1\u4E66\u5C1A\u672A\u5B89\u88C5\u3002\u542F\u7528\u4EE3\u7406\u6A21\u5F0F\u524D\u8BF7\u5148\u5B89\u88C5 CA \u8BC1\u4E66\u3002","Proxy CA certificate and private key do not match. Recreate the proxy CA certificate, trust the new CA, then restart proxy mode.":"Proxy CA \u8BC1\u4E66\u548C\u79C1\u94A5\u4E0D\u5339\u914D\u3002\u8BF7\u91CD\u65B0\u521B\u5EFA Proxy CA \u8BC1\u4E66\uFF0C\u4FE1\u4EFB\u65B0\u7684 CA\uFF0C\u7136\u540E\u91CD\u542F\u4EE3\u7406\u6A21\u5F0F\u3002","Proxy CA certificate is installed in the macOS System keychain.":"Proxy CA \u8BC1\u4E66\u5DF2\u5B89\u88C5\u5230 macOS \u7CFB\u7EDF\u94A5\u5319\u4E32\u3002","Proxy CA certificate is installed only in the login keychain. Install it into the macOS System keychain so Chrome can trust HTTPS proxy certificates.":"Proxy CA \u8BC1\u4E66\u53EA\u5B89\u88C5\u5728\u767B\u5F55\u94A5\u5319\u4E32\u4E2D\u3002\u8BF7\u5B89\u88C5\u5230 macOS \u7CFB\u7EDF\u94A5\u5319\u4E32\uFF0CChrome \u624D\u80FD\u4FE1\u4EFB HTTPS \u4EE3\u7406\u8BC1\u4E66\u3002","Proxy CA certificate is not installed in the macOS System keychain. Install and trust this exact CA certificate before enabling HTTPS proxying.":"Proxy CA \u8BC1\u4E66\u5C1A\u672A\u5B89\u88C5\u5230 macOS \u7CFB\u7EDF\u94A5\u5319\u4E32\u3002\u542F\u7528 HTTPS \u4EE3\u7406\u524D\uFF0C\u8BF7\u5B89\u88C5\u5E76\u4FE1\u4EFB\u8FD9\u4EFD CA \u8BC1\u4E66\u3002","Proxy CA certificate could not be read. Reinstall the CA certificate.":"\u65E0\u6CD5\u8BFB\u53D6 Proxy CA \u8BC1\u4E66\u3002\u8BF7\u91CD\u65B0\u5B89\u88C5 CA \u8BC1\u4E66\u3002","Proxy CA certificate is trusted by the system trust store.":"Proxy CA \u8BC1\u4E66\u5DF2\u88AB\u7CFB\u7EDF\u4FE1\u4EFB\u5B58\u50A8\u4FE1\u4EFB\u3002","Certificate detection is available in the Electron app.":"\u8BC1\u4E66\u68C0\u6D4B\u4EC5\u5728 Electron App \u4E2D\u53EF\u7528\u3002","Certificate install is available in the Electron app.":"\u8BC1\u4E66\u5B89\u88C5\u4EC5\u5728 Electron App \u4E2D\u53EF\u7528\u3002","Proxy certificate detection is available in the Electron app.":"\u4EE3\u7406\u8BC1\u4E66\u68C0\u6D4B\u4EC5\u5728 Electron App \u4E2D\u53EF\u7528\u3002","Install and trust the proxy CA certificate before enabling proxy mode.":"\u542F\u7528\u4EE3\u7406\u6A21\u5F0F\u524D\uFF0C\u8BF7\u5148\u5B89\u88C5\u5E76\u4FE1\u4EFB Proxy CA \u8BC1\u4E66\u3002","Certificate installed and trusted. Proxy mode enabled.":"\u8BC1\u4E66\u5DF2\u5B89\u88C5\u5E76\u4FE1\u4EFB\uFF0C\u4EE3\u7406\u6A21\u5F0F\u5DF2\u542F\u7528\u3002","Certificate installed into the macOS System keychain.":"\u8BC1\u4E66\u5DF2\u5B89\u88C5\u5230 macOS \u7CFB\u7EDF\u94A5\u5319\u4E32\u3002","Certificate installed into the current user's Root store.":"\u8BC1\u4E66\u5DF2\u5B89\u88C5\u5230\u5F53\u524D\u7528\u6237\u7684\u6839\u8BC1\u4E66\u5B58\u50A8\u3002","Automatic certificate install is not supported on this platform. Import the CA file into the system trust store manually.":"\u5F53\u524D\u5E73\u53F0\u4E0D\u652F\u6301\u81EA\u52A8\u5B89\u88C5\u8BC1\u4E66\u3002\u8BF7\u624B\u52A8\u5C06 CA \u6587\u4EF6\u5BFC\u5165\u7CFB\u7EDF\u4FE1\u4EFB\u5B58\u50A8\u3002","Certificate installation was cancelled. Install the CA into the macOS System keychain to use HTTPS proxying.":"\u8BC1\u4E66\u5B89\u88C5\u5DF2\u53D6\u6D88\u3002\u8981\u4F7F\u7528 HTTPS \u4EE3\u7406\uFF0C\u8BF7\u5C06 CA \u5B89\u88C5\u5230 macOS \u7CFB\u7EDF\u94A5\u5319\u4E32\u3002","macOS did not allow CCR to request administrator authorization:":"macOS \u672A\u5141\u8BB8 CCR \u8BF7\u6C42\u7BA1\u7406\u5458\u6388\u6743\uFF1A","Opened Terminal installer:":"\u5DF2\u6253\u5F00\u7EC8\u7AEF\u5B89\u88C5\u5668\uFF1A","Could not open Terminal installer:":"\u65E0\u6CD5\u6253\u5F00\u7EC8\u7AEF\u5B89\u88C5\u5668\uFF1A","Click Install CA and approve the administrator prompt to install it into the System keychain.":"\u70B9\u51FB\u201C\u5B89\u88C5 CA\u201D\uFF0C\u5E76\u5728\u7BA1\u7406\u5458\u63D0\u793A\u4E2D\u6279\u51C6\u5B89\u88C5\u5230\u7CFB\u7EDF\u94A5\u5319\u4E32\u3002","If trust is still not detected, open Keychain Access > System and find the CCR MITM Proxy certificate.":"\u5982\u679C\u4ECD\u672A\u68C0\u6D4B\u5230\u4FE1\u4EFB\uFF0C\u8BF7\u6253\u5F00\u201C\u94A5\u5319\u4E32\u8BBF\u95EE\u201D>\u201C\u7CFB\u7EDF\u201D\uFF0C\u627E\u5230 CCR MITM Proxy \u8BC1\u4E66\u3002","Open Trust, set When using this certificate to Always Trust, then restart the browser or client.":"\u5C55\u5F00\u201C\u4FE1\u4EFB\u201D\uFF0C\u5C06\u201C\u4F7F\u7528\u6B64\u8BC1\u4E66\u65F6\u201D\u8BBE\u4E3A\u201C\u59CB\u7EC8\u4FE1\u4EFB\u201D\uFF0C\u7136\u540E\u91CD\u542F\u6D4F\u89C8\u5668\u6216\u5BA2\u6237\u7AEF\u3002","Return here and click Check Trust.":"\u8FD4\u56DE\u8FD9\u91CC\u5E76\u70B9\u51FB\u201C\u68C0\u67E5\u4FE1\u4EFB\u201D\u3002","Click Install CA, or open the CA file and import it manually.":"\u70B9\u51FB\u201C\u5B89\u88C5 CA\u201D\uFF0C\u6216\u6253\u5F00 CA \u6587\u4EF6\u5E76\u624B\u52A8\u5BFC\u5165\u3002","Place it under Current User > Trusted Root Certification Authorities > Certificates.":"\u5C06\u5B83\u653E\u5230\u201C\u5F53\u524D\u7528\u6237\u201D>\u201C\u53D7\u4FE1\u4EFB\u7684\u6839\u8BC1\u4E66\u9881\u53D1\u673A\u6784\u201D>\u201C\u8BC1\u4E66\u201D\u4E0B\u3002","Restart the browser or client.":"\u91CD\u542F\u6D4F\u89C8\u5668\u6216\u5BA2\u6237\u7AEF\u3002","Open the CA file and import it into your OS or browser trust store.":"\u6253\u5F00 CA \u6587\u4EF6\uFF0C\u5E76\u5C06\u5B83\u5BFC\u5165\u64CD\u4F5C\u7CFB\u7EDF\u6216\u6D4F\u89C8\u5668\u7684\u4FE1\u4EFB\u5B58\u50A8\u3002","For Firefox, Java, Python, Node, or other clients with a private CA store, import the CA there as well.":"\u5BF9\u4E8E Firefox\u3001Java\u3001Python\u3001Node \u6216\u5176\u4ED6\u4F7F\u7528\u72EC\u7ACB CA \u5B58\u50A8\u7684\u5BA2\u6237\u7AEF\uFF0C\u4E5F\u9700\u8981\u5728\u90A3\u91CC\u5BFC\u5165\u8FD9\u4EFD CA\u3002","Resume capture":"\u7EE7\u7EED\u6355\u83B7","Resume network capture":"\u7EE7\u7EED\u7F51\u7EDC\u6355\u83B7","Resize list/detail":"\u8C03\u6574\u5217\u8868/\u8BE6\u60C5","Resize request and response panels":"\u8C03\u6574\u8BF7\u6C42\u548C\u54CD\u5E94\u9762\u677F","Resize request list and detail panels":"\u8C03\u6574\u8BF7\u6C42\u5217\u8868\u548C\u8BE6\u60C5\u9762\u677F","Resize request/response":"\u8C03\u6574\u8BF7\u6C42/\u54CD\u5E94",Response:"\u54CD\u5E94","Refresh targets":"\u5237\u65B0\u76EE\u6807","Restart Proxy":"\u91CD\u542F\u4EE3\u7406","Proxy restart is available in the Electron app.":"\u4EE3\u7406\u91CD\u542F\u4EC5\u5728 Electron App \u4E2D\u53EF\u7528\u3002","Select provider":"\u9009\u62E9\u4F9B\u5E94\u5546","Select a scanned target":"\u9009\u62E9\u626B\u63CF\u5230\u7684\u76EE\u6807",Selected:"\u5DF2\u9009\u62E9",Service:"\u670D\u52A1","Service failed to start":"\u670D\u52A1\u542F\u52A8\u5931\u8D25","Service control is available in the Electron app.":"\u670D\u52A1\u63A7\u5236\u4EC5\u5728 Electron App \u4E2D\u53EF\u7528\u3002","Scanning targets":"\u6B63\u5728\u626B\u63CF\u76EE\u6807","Service status":"\u670D\u52A1\u72B6\u6001",Step:"\u6B65\u9AA4",Start:"\u542F\u52A8","Start service":"\u542F\u52A8\u670D\u52A1",Stop:"\u505C\u6B62","Start using CCR.":"\u5F00\u59CB\u4F7F\u7528 CCR\u3002","API Service":"API \u670D\u52A1 (API Service)",Availability:"\u53EF\u7528\u6027",Current:"\u5F53\u524D","Current version":"\u5F53\u524D\u7248\u672C","Current model":"\u5F53\u524D\u6A21\u578B",Degraded:"\u964D\u7EA7",Gateway:"\u7F51\u5173",Healthy:"\u6B63\u5E38",Idle:"\u672A\u542F\u7528","Network capture":"\u7F51\u7EDC\u6355\u83B7","Proxy Service":"\u4EE3\u7406\u670D\u52A1","System status":"\u7CFB\u7EDF\u72B6\u6001","System Proxy":"\u7CFB\u7EDF\u4EE3\u7406","Available version":"\u53EF\u7528\u7248\u672C","Latest version":"\u6700\u65B0\u7248\u672C","Download update":"\u4E0B\u8F7D\u66F4\u65B0","Downloading update":"\u6B63\u5728\u4E0B\u8F7D\u66F4\u65B0","Retry download":"\u91CD\u65B0\u4E0B\u8F7D","Feed URL":"\u66F4\u65B0\u6E90","Online updates":"\u5728\u7EBF\u66F4\u65B0","Release notes":"\u66F4\u65B0\u8BF4\u660E","Update available":"\u53D1\u73B0\u65B0\u7248\u672C","Update downloaded":"\u66F4\u65B0\u5DF2\u4E0B\u8F7D","Update downloaded. Restart to finish updating.":"\u66F4\u65B0\u5DF2\u4E0B\u8F7D\uFF0C\u8BF7\u91CD\u542F\u5E94\u7528\u4EE5\u5B8C\u6210\u7248\u672C\u66F4\u65B0\u3002","Update failed":"\u66F4\u65B0\u5931\u8D25","Update check complete":"\u68C0\u67E5\u5B8C\u6210","Update ready to install":"\u66F4\u65B0\u5DF2\u51C6\u5907\u5B89\u88C5","Updates are only available in packaged builds.":"\u5728\u7EBF\u66F4\u65B0\u4EC5\u5728\u6253\u5305\u540E\u7684\u5E94\u7528\u4E2D\u53EF\u7528\u3002","Downloaded update failed code-signature validation. Download the latest installer manually, or try again after the package is re-signed.":"\u4E0B\u8F7D\u7684\u66F4\u65B0\u5305\u672A\u901A\u8FC7\u4EE3\u7801\u7B7E\u540D\u6821\u9A8C\u3002\u8BF7\u624B\u52A8\u4E0B\u8F7D\u5B89\u88C5\u6700\u65B0\u7248\u672C\uFF0C\u6216\u7B49\u5F85\u66F4\u65B0\u5305\u91CD\u65B0\u7B7E\u540D\u540E\u518D\u8BD5\u3002","After deletion, this bot data cannot be recovered.":"\u5220\u9664\u540E\u6570\u636E\u4E0D\u53EF\u6062\u590D\u3002","This bot is being used by the following agents and cannot be deleted.":"\u5F53\u524D Bot \u6B63\u5728\u88AB\u4EE5\u4E0B Agent \u4F7F\u7528\uFF0C\u4E0D\u80FD\u5220\u9664\u3002","{count} agent profiles use this bot":"{count} \u4E2A Agent \u4F7F\u7528\u4E2D","This provider link came from an external website. Review details before importing.":"\u8FD9\u4E2A\u4F9B\u5E94\u5546\u94FE\u63A5\u6765\u81EA\u5916\u90E8\u7F51\u7AD9\u3002\u5BFC\u5165\u524D\u8BF7\u786E\u8BA4\u4E0B\u9762\u7684\u5185\u5BB9\u3002","Welcome to CCR":"\u6B22\u8FCE\u4F7F\u7528CCR",Trusted:"\u5DF2\u4FE1\u4EFB","Small fast model":"\u5C0F\u6A21\u578B",Unknown:"\u672A\u77E5",Unlimited:"\u65E0\u9650\u5236",Unnamed:"\u672A\u547D\u540D","Unnamed provider":"\u672A\u547D\u540D\u4F9B\u5E94\u5546","Unnamed rule":"\u672A\u547D\u540D\u89C4\u5219",Untrusted:"\u672A\u4FE1\u4EFB",body:"\u6B63\u6587",active:"\u5DF2\u542F\u7528",capturing:"\u6355\u83B7\u4E2D",decoded:"\u5DF2\u89E3\u7801",disabled:"\u5DF2\u7981\u7528",enabled:"\u5DF2\u542F\u7528",header:"\u6807\u5934",inactive:"\u672A\u542F\u7528",model:"\u6A21\u578B",models:"\u6A21\u578B",meters:"\u6307\u6807","not running":"\u672A\u8FD0\u884C",ok:"\u6B63\u5E38",paused:"\u5DF2\u6682\u505C",provider:"\u4F9B\u5E94\u5546",query:"\u67E5\u8BE2",raw:"\u539F\u59CB",req:"\u8BF7\u6C42",rule:"\u89C4\u5219",starting:"\u542F\u52A8\u4E2D",stopped:"\u5DF2\u505C\u6B62",summary:"\u6458\u8981",truncated:"\u5DF2\u622A\u65AD",unsupported:"\u4E0D\u652F\u6301",restored:"\u5DF2\u6062\u590D",up:"\u4E0A",down:"\u4E0B","per day":"\u6BCF\u5929","per hour":"\u6BCF\u5C0F\u65F6","per minute":"\u6BCF\u5206\u949F",running:"\u8FD0\u884C\u4E2D"}}},Ot=(0,S.createContext)(qe.en);function g(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function c(e){return typeof e=="string"&&e.trim()?e.trim():void 0}function ae(e){if(!e||!e.text&&e.sizeBytes===0)return{text:"No body"};if(e.encoding==="base64")return{text:e.text||"No body"};let t=e.text||"",n=G(t);if(n!==void 0){let r=Ue(n);return{json:r,text:JSON.stringify(r,null,2)}}let o=Be(t);if(o.length>0){let r=Ge(o);return{json:r,text:JSON.stringify(r,null,2)}}return{text:t||"No body"}}function B(e,t){let n=t.trim().toLowerCase();if(!n)return e;let r=e.split(/\r?\n/).filter(i=>i.toLowerCase().includes(n));return r.length>0?r.join(`
|
|
2
|
+
`):"No matching lines"}function G(e){try{return JSON.parse(e)}catch{return}}function Be(e){let t=[];for(let n of e.split(/\r?\n/)){let o=n.trim(),r=o.startsWith("data:")?o.slice(5).trim():o.startsWith("{")||o.startsWith("[")?o:"";if(!r||r==="[DONE]")continue;let i=G(r);i!==void 0&&t.push(i)}return t}function Ge(e){let t=I(e);return{...q(t)??{},streamed_data:e}}function Ue(e){if(Array.isArray(e)){let r=q(I(e));return r?{...r,streamed_data:e}:e}if(!g(e)||!Array.isArray(e.streamed_data))return e;let t=q(I(e.streamed_data));if(!t)return e;let{streamed_data:n,...o}=e;return{...t,...o,streamed_data:n}}function I(e){let t=[];for(let n of e)Array.isArray(n)?t.push(...I(n)):t.push(n);return t}function q(e){return Fe(e)??et(e)??it(e)??dt(e)}var We=new Set(["content","output_text","reasoning","reasoning_content","reasoning_text","refusal","text","thinking"]);function Fe(e){let t=new Map,n,o,r,i,d=!1,a,s,p;for(let m of e)g(m)&&(o??=c(m.id),r??=c(m.model),i??=c(m.object),a??=c(m.service_tier),s??=c(m.system_fingerprint),n===void 0&&typeof m.created=="number"&&Number.isFinite(m.created)&&(n=m.created),g(m.usage)&&(p=m.usage),Array.isArray(m.choices)&&(d=!0,m.choices.forEach((y,pe)=>Ke(y,t,pe))));if(!d)return;let l={};o&&(l.id=o);let C=Xe(i);return C&&(l.object=C),n!==void 0&&(l.created=n),r&&(l.model=r),s&&(l.system_fingerprint=s),a&&(l.service_tier=a),l.choices=Array.from(t.values()).sort((m,y)=>m.order-y.order).map(je),p!==void 0&&(l.usage=p),l}function Ke(e,t,n){if(!g(e))return;let o=yt(e.index)??`position:${n}`,r=Ve(t,o,e.index??n);e.finish_reason!==void 0&&e.finish_reason!==null&&(r.finishReason=e.finish_reason),e.logprobs!==void 0&&e.logprobs!==null&&(r.logprobs=e.logprobs),typeof e.text=="string"&&se(r,"text",e.text),re(e.delta,r),re(e.message,r)}function re(e,t){if(!g(e))return;let n=c(e.role);n&&(t.role=n);for(let[o,r]of Object.entries(e))if(!(o==="role"||o==="tool_calls"||o==="function_call")){if(typeof r=="string"&&We.has(o)){se(t,o,r);continue}r!=null&&t.deltaValues.set(o,r)}ze(e.tool_calls,t),$e(e.function_call,t)}function Ve(e,t,n){let o=e.get(t);if(o)return o;let r={deltaTextParts:new Map,deltaValues:new Map,functionArgumentsParts:[],index:h(n)??t,order:e.size,toolCallIndexKeys:new Map,toolCallOrder:[],toolCalls:new Map};return e.set(t,r),r}function se(e,t,n){let o=e.deltaTextParts.get(t)??[];o.push(n),e.deltaTextParts.set(t,o)}function $e(e,t){if(!g(e))return;let n=c(e.name);n&&(t.functionName=n);let o=e.arguments??e.parameters??e.input;typeof o=="string"?t.functionArgumentsParts.push(o):o!=null&&(t.functionArgumentsValue=o)}function ze(e,t){Array.isArray(e)&&e.forEach((n,o)=>{if(!g(n))return;let r=h(n.index),i=r===void 0?void 0:`index:${r}`,d=c(n.id)||c(n.call_id)||c(n.tool_call_id),a=i?t.toolCallIndexKeys.get(i):void 0,s=d||a||i||`position:${o}`;d&&i?s=He(t,i,d):i&&!a&&t.toolCallIndexKeys.set(i,s);let p=Je(t,s);d&&(p.id=d),r!==void 0&&(p.index=r);let l=c(n.type);l&&(p.type=l);let C=g(n.function)?n.function:void 0,m=c(C?.name)||c(n.name);m&&(p.functionName=m);let y=C?C.arguments??C.parameters??C.input:void 0;typeof y=="string"?p.functionArgumentsParts.push(y):y!=null&&(p.functionArgumentsValue=y)})}function He(e,t,n){let o=e.toolCallIndexKeys.get(t)??t;if(e.toolCallIndexKeys.set(t,n),o===n||!e.toolCalls.has(o))return n;let r=e.toolCalls.get(o);if(r){e.toolCalls.delete(o),e.toolCalls.set(n,r);let i=e.toolCallOrder.indexOf(o);i>=0&&(e.toolCallOrder[i]=n)}return n}function Je(e,t){let n=e.toolCalls.get(t);if(n)return n;let o={functionArgumentsParts:[],order:e.toolCallOrder.length};return e.toolCalls.set(t,o),e.toolCallOrder.push(t),o}function je(e){let t={index:e.index,delta:Ye(e)};return e.logprobs!==void 0&&(t.logprobs=e.logprobs),e.finishReason!==void 0&&(t.finish_reason=e.finishReason),t}function Ye(e){let t={};e.role&&(t.role=e.role);for(let[r,i]of e.deltaTextParts)t[r]=i.join("");for(let[r,i]of e.deltaValues)t[r]===void 0&&(t[r]=i);let n=Ze(e);n.length>0&&(t.tool_calls=n);let o=Qe(e);return o&&(t.function_call=o),t}function Ze(e){return e.toolCallOrder.map(t=>e.toolCalls.get(t)).filter(t=>!!t).sort((t,n)=>t.order-n.order).map(t=>{let n={};t.index!==void 0&&(n.index=t.index),t.id&&(n.id=t.id),t.type&&(n.type=t.type);let o={};return t.functionName&&(o.name=t.functionName),t.functionArgumentsParts.length>0?o.arguments=t.functionArgumentsParts.join(""):t.functionArgumentsValue!==void 0&&(o.arguments=t.functionArgumentsValue),Object.keys(o).length>0&&(n.function=o),n})}function Qe(e){let t={};return e.functionName&&(t.name=e.functionName),e.functionArgumentsParts.length>0?t.arguments=e.functionArgumentsParts.join(""):e.functionArgumentsValue!==void 0&&(t.arguments=e.functionArgumentsValue),Object.keys(t).length>0?t:void 0}function Xe(e){if(e)return e.endsWith(".chunk")?e.slice(0,-6):e}function et(e){let t=new Map,n={},o=!1;for(let a of e){if(!g(a))continue;let s=c(a.type),p=g(a.response)?a.response:void 0;if((s?.startsWith("response.")||p)&&(o=!0),p&&(n={...n,...p}),s==="response.output_item.added"||s==="response.output_item.done"){tt(a.item,t,a.output_index);continue}if(s==="response.content_part.added"||s==="response.content_part.done"){de(a.part,t,a.output_index,a.content_index);continue}if(s==="response.output_text.delta"||s==="response.refusal.delta"){let l=P(t,a.output_index,a.content_index);typeof a.delta=="string"&&(s==="response.refusal.delta"?(l.type="refusal",l.refusalParts.push(a.delta)):(l.type=l.type||"output_text",l.textParts.push(a.delta)));continue}if(s==="response.output_text.done"||s==="response.refusal.done"){let l=P(t,a.output_index,a.content_index);s==="response.refusal.done"?(l.type="refusal",typeof a.refusal=="string"&&(l.refusalValue=a.refusal)):(l.type=l.type||"output_text",typeof a.text=="string"&&(l.textValue=a.text));continue}if(s==="response.reasoning_text.delta"||s==="response.reasoning_summary_text.delta"){let l=P(t,a.output_index,a.content_index);typeof a.delta=="string"&&(l.type=s==="response.reasoning_summary_text.delta"?"summary_text":"reasoning_text",l.textParts.push(a.delta));continue}if(s==="response.reasoning_text.done"||s==="response.reasoning_summary_text.done"){let l=P(t,a.output_index,a.content_index);l.type=s==="response.reasoning_summary_text.done"?"summary_text":"reasoning_text",typeof a.text=="string"&&(l.textValue=a.text);continue}if(s==="response.function_call_arguments.delta"||s==="response.function_call_arguments.done"){let l=U(t,a.output_index);l.type=l.type||"function_call",typeof a.delta=="string"&&l.argumentsParts.push(a.delta),typeof a.arguments=="string"&&(l.argumentsValue=a.arguments)}}if(!o)return;let r={...n};r.object||(r.object="response");let i=Array.from(t.values()).sort((a,s)=>a.order-s.order).map(ot);i.length>0&&(r.output=i);let d=rt(i.length>0?i:r.output);return d&&(r.output_text=d),r}function tt(e,t,n){if(!g(e))return;let o=U(t,e.output_index??n);o.id=c(e.id)||o.id,o.callId=c(e.call_id)||o.callId,o.name=c(e.name)||o.name,o.role=c(e.role)||o.role,o.status=c(e.status)||o.status,o.type=c(e.type)||o.type;for(let[r,i]of Object.entries(e))["arguments","call_id","content","id","name","output_index","role","status","type"].includes(r)||i!=null&&(o.extras[r]=i);(typeof e.arguments=="string"||e.arguments!==void 0&&e.arguments!==null)&&(o.argumentsValue=e.arguments),Array.isArray(e.content)&&e.content.forEach((r,i)=>de(r,t,o.outputIndex,i))}function de(e,t,n,o){if(!g(e))return;let r=P(t,n,e.content_index??o);r.type=c(e.type)||r.type,typeof e.text=="string"&&(r.textValue=e.text),typeof e.refusal=="string"&&(r.refusalValue=e.refusal),e.annotations!==void 0&&e.annotations!==null&&(r.annotations=e.annotations);for(let[i,d]of Object.entries(e))["annotations","content_index","refusal","text","type"].includes(i)||d!=null&&(r.extras[i]=d)}function U(e,t){let n=h(t)??e.size,o=String(n),r=e.get(o);if(r)return r;let i={argumentsParts:[],content:new Map,extras:{},order:e.size,outputIndex:n};return e.set(o,i),i}function P(e,t,n){let o=U(e,t),r=h(n)??o.content.size,i=String(r),d=o.content.get(i);if(d)return d;let a={extras:{},index:r,order:o.content.size,refusalParts:[],textParts:[]};return o.content.set(i,a),a}function ot(e){let t={...e.extras};e.id&&(t.id=e.id),e.type&&(t.type=e.type),e.status&&(t.status=e.status),e.role&&(t.role=e.role),e.callId&&(t.call_id=e.callId),e.name&&(t.name=e.name);let n=Array.from(e.content.values()).sort((o,r)=>o.order-r.order).map(nt);return n.length>0&&(t.content=n),e.argumentsParts.length>0?t.arguments=e.argumentsParts.join(""):e.argumentsValue!==void 0&&(t.arguments=e.argumentsValue),t}function nt(e){let t={...e.extras};e.type&&(t.type=e.type);let n=e.textValue??(e.textParts.length>0?e.textParts.join(""):void 0);n!==void 0&&(t.text=n);let o=e.refusalValue??(e.refusalParts.length>0?e.refusalParts.join(""):void 0);return o!==void 0&&(t.refusal=o),e.annotations!==void 0&&(t.annotations=e.annotations),t}function rt(e){if(!Array.isArray(e))return;let t=[];for(let n of e)if(!(!g(n)||!Array.isArray(n.content)))for(let o of n.content)g(o)&&c(o.type)==="output_text"&&typeof o.text=="string"&&t.push(o.text);return t.join("")}function it(e){let t=new Map,n={},o=!1,r;for(let a of e){if(!g(a))continue;let s=c(a.type);if(s&&["content_block_delta","content_block_start","content_block_stop","message_delta","message_start","message_stop","ping"].includes(s)&&(o=!0),s==="message_start"&&g(a.message)){n={...n,...a.message},g(a.message.usage)&&(r={...r??{},...a.message.usage}),Array.isArray(a.message.content)&&a.message.content.forEach((p,l)=>ie(t,p,l));continue}if(s==="content_block_start"){ie(t,a.content_block,a.index);continue}if(s==="content_block_delta"&&g(a.delta)){at(t,a.delta,a.index);continue}s==="message_delta"&&(g(a.delta)&&(n={...n,...a.delta}),g(a.usage)&&(r={...r??{},...a.usage}))}if(!o)return;let i={...n};i.type=c(i.type)||"message",i.role=c(i.role)||"assistant";let d=Array.from(t.values()).sort((a,s)=>a.order-s.order).map(st);return d.length>0&&(i.content=d),r&&(i.usage=r),i}function ie(e,t,n){if(!g(t))return;let o=le(e,n);o.id=c(t.id)||o.id,o.name=c(t.name)||o.name,o.type=c(t.type)||o.type,typeof t.text=="string"&&o.textParts.push(t.text),typeof t.thinking=="string"&&o.thinkingParts.push(t.thinking),t.input!==void 0&&t.input!==null&&(o.inputValue=t.input);for(let[r,i]of Object.entries(t))["id","input","name","text","thinking","type"].includes(r)||i!=null&&(o.extras[r]=i)}function at(e,t,n){let o=le(e,n),r=c(t.type);if(r==="text_delta"&&typeof t.text=="string"){o.type=o.type||"text",o.textParts.push(t.text);return}if(r==="thinking_delta"&&typeof t.thinking=="string"){o.type=o.type||"thinking",o.thinkingParts.push(t.thinking);return}if(r==="input_json_delta"&&typeof t.partial_json=="string"){o.inputJsonParts.push(t.partial_json);return}if(r==="signature_delta"&&typeof t.signature=="string"){o.signature=t.signature;return}for(let[i,d]of Object.entries(t))i!=="type"&&d!==void 0&&d!==null&&(o.extras[i]=d)}function le(e,t){let n=h(t)??e.size,o=String(n),r=e.get(o);if(r)return r;let i={extras:{},index:n,inputJsonParts:[],order:e.size,textParts:[],thinkingParts:[]};return e.set(o,i),i}function st(e){let t={...e.extras},n=e.type||(e.inputJsonParts.length>0||e.inputValue!==void 0?"tool_use":"text");return t.type=n,e.id&&(t.id=e.id),e.name&&(t.name=e.name),e.textParts.length>0&&(t.text=e.textParts.join("")),e.thinkingParts.length>0&&(t.thinking=e.thinkingParts.join("")),e.signature&&(t.signature=e.signature),e.inputJsonParts.length>0?t.input=ft(e.inputJsonParts.join("")):e.inputValue!==void 0&&(t.input=e.inputValue),t}function dt(e){let t=new Map,n=!1,o,r,i,d;for(let s of e)g(s)&&((Array.isArray(s.candidates)||g(s.usageMetadata))&&(n=!0),o=c(s.modelVersion)||o,i=c(s.responseId)||i,s.promptFeedback!==void 0&&s.promptFeedback!==null&&(r=s.promptFeedback),g(s.usageMetadata)&&(d=s.usageMetadata),Array.isArray(s.candidates)&&s.candidates.forEach((p,l)=>lt(t,p,l)));if(!n)return;let a={candidates:Array.from(t.values()).sort((s,p)=>s.order-p.order).map(gt)};return d!==void 0&&(a.usageMetadata=d),o&&(a.modelVersion=o),i&&(a.responseId=i),r!==void 0&&(a.promptFeedback=r),a}function lt(e,t,n){if(!g(t))return;let o=ct(e,t.index??n);o.finishReason=c(t.finishReason)||o.finishReason,g(t.content)&&(o.contentRole=c(t.content.role)||o.contentRole,Array.isArray(t.content.parts)&&t.content.parts.forEach((r,i)=>ut(o,r,i)));for(let[r,i]of Object.entries(t))["content","finishReason","index"].includes(r)||i!=null&&(o.extras[r]=i)}function ut(e,t,n){if(!g(t))return;let o=pt(e,n);typeof t.text=="string"&&o.textParts.push(t.text);for(let[r,i]of Object.entries(t))r!=="text"&&i!=null&&(o.extras[r]=i)}function ct(e,t){let n=h(t)??e.size,o=String(n),r=e.get(o);if(r)return r;let i={extras:{},index:n,order:e.size,parts:new Map};return e.set(o,i),i}function pt(e,t){let n=h(t)??e.parts.size,o=String(n),r=e.parts.get(o);if(r)return r;let i={extras:{},index:n,order:e.parts.size,textParts:[]};return e.parts.set(o,i),i}function gt(e){let t={...e.extras,index:e.index},n=Array.from(e.parts.values()).sort((o,r)=>o.order-r.order).map(mt);return(n.length>0||e.contentRole)&&(t.content={parts:n,...e.contentRole?{role:e.contentRole}:{}}),e.finishReason&&(t.finishReason=e.finishReason),t}function mt(e){let t={...e.extras};return e.textParts.length>0&&(t.text=e.textParts.join("")),t}function ft(e){let t=e.trim();return!t||!t.startsWith("{")&&!t.startsWith("[")?e:G(t)??e}function h(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"&&e.trim())return e.trim()}function yt(e){let t=h(e);return t===void 0?void 0:String(t)}var T=256*1024,M=160*1024;function Ct(e,t=T){return e?!!e.preview||Math.max(e.sizeBytes,e.text.length)>t:!1}function ue(e,t=M){if(!e||!e.text&&e.sizeBytes===0)return"No body";let n=e.text||"";if(!n)return"Body text is not loaded.";if(n.length<=t)return n;let o=Math.max(0,Math.floor(t*.65)),r=Math.max(0,t-o),i=Math.max(0,n.length-o-r),d=n.slice(0,o),a=r>0?n.slice(-r):"";return[d,"",`... ${i} characters omitted from preview ...`,"",a].join(`
|
|
3
|
+
`)}function ce(e,t,n=T,o=M){let r=Ct(e,n),i=r&&t!=="full",a=(i&&(e?.text?.length??0)>o?{text:ue(e,o)}:void 0)??ae(e);return{...i&&a.json===void 0?{text:ue(e,o)}:a,large:r,preview:i,sourceSizeBytes:e?.sizeBytes??0}}var O=self,w;O.onmessage=e=>{let t=e.data;try{if(t.kind==="format"){O.postMessage(ht(t));return}O.postMessage(bt(t))}catch(n){O.postMessage({bodyKey:"bodyKey"in t?t.bodyKey:void 0,id:t.id,kind:"error",message:n instanceof Error?n.message:String(n),mode:"mode"in t?t.mode:void 0,operation:t.kind})}};function ht(e){let t=e.largeTextThreshold??T,n=e.previewTextLimit??M,{large:o,preview:r,sourceSizeBytes:i,...d}=ce(e.body,e.mode,t,n),a=B(d.text,e.query);return w={...d,bodyKey:e.bodyKey,large:o,mode:e.mode,preview:r,sourceSizeBytes:i},{...d,bodyKey:e.bodyKey,formattedTextLength:d.text.length,id:e.id,kind:"format-result",large:o,mode:e.mode,ok:!0,preview:r,query:e.query,sourceSizeBytes:i,visible:a}}function bt(e){if(!w||w.bodyKey!==e.bodyKey||w.mode!==e.mode)throw new Error("Formatted body cache is not available.");return{bodyKey:e.bodyKey,id:e.id,kind:"filter-result",mode:e.mode,ok:!0,query:e.query,visible:B(w.text,e.query)}}
|