@axiom-lattice/gateway 6.0.1 → 6.1.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/dist/embed/{embed-page-AgentDetailSideApp-JYVZKSUU.js → embed-page-AgentDetailSideApp-2UFH4RJG.js} +1 -1
- package/dist/embed/{embed-page-AgentGovernanceWorkbench-SD2EHW2B.js → embed-page-AgentGovernanceWorkbench-3JOSRW2V.js} +1 -1
- package/dist/embed/{embed-page-MessageGraph-GLQXKAVC.js → embed-page-MessageGraph-SPB75EHC.js} +1 -1
- package/dist/embed/{embed-page-ReactChart-74MHCE2K.js → embed-page-ReactChart-EE4A5WKS.js} +1 -1
- package/dist/embed/{embed-page-SkillFlow-NDAK3GAD.js → embed-page-SkillFlow-H2ARZGEX.js} +1 -1
- package/dist/embed/{embed-page-TasksSideApp-DA4LUTMD.js → embed-page-TasksSideApp-BQMOLOUF.js} +1 -1
- package/dist/embed/{embed-page-TeamWorkspace-DUB3L6V6.js → embed-page-TeamWorkspace-QXMRVXWU.js} +1 -1
- package/dist/embed/{embed-page-TopologyRuntimeView-NFBHAICN.js → embed-page-TopologyRuntimeView-OSV75P6Y.js} +1 -1
- package/dist/embed/{embed-page-WorkflowAutomationView-43YGTXGF.js → embed-page-WorkflowAutomationView-KJ6HJ5UT.js} +1 -1
- package/dist/embed/{embed-page-chunk-UHH575CK.js → embed-page-chunk-DBUC6J4G.js} +1 -1
- package/dist/embed/{embed-page-chunk-C4ZV4IXK.js → embed-page-chunk-E6F5YZBR.js} +1 -1
- package/dist/embed/{embed-page-chunk-BVSC3MSO.js → embed-page-chunk-FGKHXQAJ.js} +1 -1
- package/dist/embed/{embed-page-chunk-2PFKLMTR.js → embed-page-chunk-GSCVATOA.js} +1 -1
- package/dist/embed/{embed-page-chunk-GKHIPXZ2.js → embed-page-chunk-IIEDLN7W.js} +1 -1
- package/dist/embed/{embed-page-chunk-P477ZTUO.js → embed-page-chunk-U4XSGC4Y.js} +163 -163
- package/dist/embed/{embed-page-chunk-DWIBLGBW.js → embed-page-chunk-VXWRPT33.js} +1 -1
- package/dist/embed/{embed-page-en-S4MXFPIU.js → embed-page-en-X6B6RVNL.js} +1 -1
- package/dist/embed/{embed-page-zh-SSMSF5LE.js → embed-page-zh-EQ5X2M32.js} +1 -1
- package/dist/embed/embed-page.js +1 -1
- package/dist/index.d.mts +43 -8
- package/dist/index.d.ts +43 -8
- package/dist/index.js +1117 -365
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +907 -148
- package/dist/index.mjs.map +1 -1
- package/package.json +7 -7
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{M as G,a as pe,b as ce,r as me,sb as he,ta as fe,tb as be,ua as q,wa as Ae,ya as ge}from"./embed-page-chunk-
|
|
1
|
+
import{M as G,a as pe,b as ce,r as me,sb as he,ta as fe,tb as be,ua as q,wa as Ae,ya as ge}from"./embed-page-chunk-U4XSGC4Y.js";import{B as ue,a as S,e as v,f as ne,g as oe,n as ae,r as L,s as ie,t as se,u as de,x as le}from"./embed-page-chunk-GSCVATOA.js";import{a as M}from"./embed-page-chunk-QV7QAJ4N.js";import{i as Q,j as Ne,k as Oe,l as je,m as Fe}from"./embed-page-chunk-QULNM5O2.js";import{M as te,va as re}from"./embed-page-chunk-MHGVD4EV.js";import{a as ee}from"./embed-page-chunk-R5QL57JJ.js";import{c as T,f as R}from"./embed-page-chunk-QBTAJ2YI.js";var Ie=T(O=>{"use strict";Object.defineProperty(O,"__esModule",{value:!0});O.default=void 0;var it={items_per_page:"\u6761/\u9875",jump_to:"\u8DF3\u81F3",jump_to_confirm:"\u786E\u5B9A",page:"\u9875",prev_page:"\u4E0A\u4E00\u9875",next_page:"\u4E0B\u4E00\u9875",prev_5:"\u5411\u524D 5 \u9875",next_5:"\u5411\u540E 5 \u9875",prev_3:"\u5411\u524D 3 \u9875",next_3:"\u5411\u540E 3 \u9875",page_size:"\u9875\u7801"},Qt=O.default=it});var _e=T(j=>{"use strict";var st=Ne().default;Object.defineProperty(j,"__esModule",{value:!0});j.default=void 0;var Pe=st(Oe()),dt=je(),lt=(0,Pe.default)((0,Pe.default)({},dt.commonLocale),{},{locale:"zh_CN",today:"\u4ECA\u5929",now:"\u6B64\u523B",backToToday:"\u8FD4\u56DE\u4ECA\u5929",ok:"\u786E\u5B9A",timeSelect:"\u9009\u62E9\u65F6\u95F4",dateSelect:"\u9009\u62E9\u65E5\u671F",weekSelect:"\u9009\u62E9\u5468",clear:"\u6E05\u9664",week:"\u5468",month:"\u6708",year:"\u5E74",previousMonth:"\u4E0A\u4E2A\u6708 (\u7FFB\u9875\u4E0A\u952E)",nextMonth:"\u4E0B\u4E2A\u6708 (\u7FFB\u9875\u4E0B\u952E)",monthSelect:"\u9009\u62E9\u6708\u4EFD",yearSelect:"\u9009\u62E9\u5E74\u4EFD",decadeSelect:"\u9009\u62E9\u5E74\u4EE3",previousYear:"\u4E0A\u4E00\u5E74 (Control\u952E\u52A0\u5DE6\u65B9\u5411\u952E)",nextYear:"\u4E0B\u4E00\u5E74 (Control\u952E\u52A0\u53F3\u65B9\u5411\u952E)",previousDecade:"\u4E0A\u4E00\u5E74\u4EE3",nextDecade:"\u4E0B\u4E00\u5E74\u4EE3",previousCentury:"\u4E0A\u4E00\u4E16\u7EAA",nextCentury:"\u4E0B\u4E00\u4E16\u7EAA",yearFormat:"YYYY\u5E74",cellDateFormat:"D",monthBeforeYear:!1}),Yt=j.default=lt});var V=T(F=>{"use strict";Object.defineProperty(F,"__esModule",{value:!0});F.default=void 0;var pt={placeholder:"\u8BF7\u9009\u62E9\u65F6\u95F4",rangePlaceholder:["\u5F00\u59CB\u65F6\u95F4","\u7ED3\u675F\u65F6\u95F4"]},Zt=F.default=pt});var Y=T(H=>{"use strict";var We=Q().default;Object.defineProperty(H,"__esModule",{value:!0});H.default=void 0;var ct=We(_e()),ut=We(V()),Le={lang:Object.assign({placeholder:"\u8BF7\u9009\u62E9\u65E5\u671F",yearPlaceholder:"\u8BF7\u9009\u62E9\u5E74\u4EFD",quarterPlaceholder:"\u8BF7\u9009\u62E9\u5B63\u5EA6",monthPlaceholder:"\u8BF7\u9009\u62E9\u6708\u4EFD",weekPlaceholder:"\u8BF7\u9009\u62E9\u5468",rangePlaceholder:["\u5F00\u59CB\u65E5\u671F","\u7ED3\u675F\u65E5\u671F"],rangeYearPlaceholder:["\u5F00\u59CB\u5E74\u4EFD","\u7ED3\u675F\u5E74\u4EFD"],rangeMonthPlaceholder:["\u5F00\u59CB\u6708\u4EFD","\u7ED3\u675F\u6708\u4EFD"],rangeQuarterPlaceholder:["\u5F00\u59CB\u5B63\u5EA6","\u7ED3\u675F\u5B63\u5EA6"],rangeWeekPlaceholder:["\u5F00\u59CB\u5468","\u7ED3\u675F\u5468"]},ct.default),timePickerLocale:Object.assign({},ut.default)};Le.lang.ok="\u786E\u5B9A";var tr=H.default=Le});var xe=T(B=>{"use strict";var mt=Q().default;Object.defineProperty(B,"__esModule",{value:!0});B.default=void 0;var ft=mt(Y()),nr=B.default=ft.default});var ve=T(X=>{"use strict";var z=Q().default;Object.defineProperty(X,"__esModule",{value:!0});X.default=void 0;var At=z(Ie()),gt=z(xe()),ht=z(Y()),bt=z(V()),y="${label}\u4E0D\u662F\u4E00\u4E2A\u6709\u6548\u7684${type}",yt={locale:"zh-cn",Pagination:At.default,DatePicker:ht.default,TimePicker:bt.default,Calendar:gt.default,global:{placeholder:"\u8BF7\u9009\u62E9",close:"\u5173\u95ED"},Table:{filterTitle:"\u7B5B\u9009",filterConfirm:"\u786E\u5B9A",filterReset:"\u91CD\u7F6E",filterEmptyText:"\u65E0\u7B5B\u9009\u9879",filterCheckAll:"\u5168\u9009",filterSearchPlaceholder:"\u5728\u7B5B\u9009\u9879\u4E2D\u641C\u7D22",emptyText:"\u6682\u65E0\u6570\u636E",selectAll:"\u5168\u9009\u5F53\u9875",selectInvert:"\u53CD\u9009\u5F53\u9875",selectNone:"\u6E05\u7A7A\u6240\u6709",selectionAll:"\u5168\u9009\u6240\u6709",sortTitle:"\u6392\u5E8F",expand:"\u5C55\u5F00\u884C",collapse:"\u5173\u95ED\u884C",triggerDesc:"\u70B9\u51FB\u964D\u5E8F",triggerAsc:"\u70B9\u51FB\u5347\u5E8F",cancelSort:"\u53D6\u6D88\u6392\u5E8F"},Modal:{okText:"\u786E\u5B9A",cancelText:"\u53D6\u6D88",justOkText:"\u77E5\u9053\u4E86"},Tour:{Next:"\u4E0B\u4E00\u6B65",Previous:"\u4E0A\u4E00\u6B65",Finish:"\u7ED3\u675F\u5BFC\u89C8"},Popconfirm:{cancelText:"\u53D6\u6D88",okText:"\u786E\u5B9A"},Transfer:{titles:["",""],searchPlaceholder:"\u8BF7\u8F93\u5165\u641C\u7D22\u5185\u5BB9",itemUnit:"\u9879",itemsUnit:"\u9879",remove:"\u5220\u9664",selectCurrent:"\u5168\u9009\u5F53\u9875",removeCurrent:"\u5220\u9664\u5F53\u9875",selectAll:"\u5168\u9009\u6240\u6709",deselectAll:"\u53D6\u6D88\u5168\u9009",removeAll:"\u5220\u9664\u5168\u90E8",selectInvert:"\u53CD\u9009\u5F53\u9875"},Upload:{uploading:"\u6587\u4EF6\u4E0A\u4F20\u4E2D",removeFile:"\u5220\u9664\u6587\u4EF6",uploadError:"\u4E0A\u4F20\u9519\u8BEF",previewFile:"\u9884\u89C8\u6587\u4EF6",downloadFile:"\u4E0B\u8F7D\u6587\u4EF6"},Empty:{description:"\u6682\u65E0\u6570\u636E"},Icon:{icon:"\u56FE\u6807"},Text:{edit:"\u7F16\u8F91",copy:"\u590D\u5236",copied:"\u590D\u5236\u6210\u529F",expand:"\u5C55\u5F00",collapse:"\u6536\u8D77"},Form:{optional:"\uFF08\u53EF\u9009\uFF09",defaultValidateMessages:{default:"\u5B57\u6BB5\u9A8C\u8BC1\u9519\u8BEF${label}",required:"\u8BF7\u8F93\u5165${label}",enum:"${label}\u5FC5\u987B\u662F\u5176\u4E2D\u4E00\u4E2A[${enum}]",whitespace:"${label}\u4E0D\u80FD\u4E3A\u7A7A\u5B57\u7B26",date:{format:"${label}\u65E5\u671F\u683C\u5F0F\u65E0\u6548",parse:"${label}\u4E0D\u80FD\u8F6C\u6362\u4E3A\u65E5\u671F",invalid:"${label}\u662F\u4E00\u4E2A\u65E0\u6548\u65E5\u671F"},types:{string:y,method:y,array:y,object:y,number:y,date:y,boolean:y,integer:y,float:y,regexp:y,email:y,url:y,hex:y},string:{len:"${label}\u987B\u4E3A${len}\u4E2A\u5B57\u7B26",min:"${label}\u6700\u5C11${min}\u4E2A\u5B57\u7B26",max:"${label}\u6700\u591A${max}\u4E2A\u5B57\u7B26",range:"${label}\u987B\u5728${min}-${max}\u5B57\u7B26\u4E4B\u95F4"},number:{len:"${label}\u5FC5\u987B\u7B49\u4E8E${len}",min:"${label}\u6700\u5C0F\u503C\u4E3A${min}",max:"${label}\u6700\u5927\u503C\u4E3A${max}",range:"${label}\u987B\u5728${min}-${max}\u4E4B\u95F4"},array:{len:"\u987B\u4E3A${len}\u4E2A${label}",min:"\u6700\u5C11${min}\u4E2A${label}",max:"\u6700\u591A${max}\u4E2A${label}",range:"${label}\u6570\u91CF\u987B\u5728${min}-${max}\u4E4B\u95F4"},pattern:{mismatch:"${label}\u4E0E\u6A21\u5F0F\u4E0D\u5339\u914D${pattern}"}}},Image:{preview:"\u9884\u89C8"},QRCode:{expired:"\u4E8C\u7EF4\u7801\u8FC7\u671F",refresh:"\u70B9\u51FB\u5237\u65B0",scanned:"\u5DF2\u626B\u63CF"},ColorPicker:{presetEmpty:"\u6682\u65E0",transparent:"\u65E0\u8272",singleColor:"\u5355\u8272",gradientColor:"\u6E10\u53D8\u8272"}},ar=X.default=yt});var qe=T((sr,Me)=>{"use strict";Me.exports=ve()});var u=R(ee());var g=class extends Error{code;retryable;status;constructor(r,t,n,a){super(t),this.name="AgentWebAppRuntimeClientError",this.code=r,this.retryable=n,this.status=a}};function k(){return new g("STREAM_FAILED","Stream failed",!0)}var He=new Set(["WEB_APP_NOT_FOUND","WEB_APP_DISABLED","USER_ID_REQUIRED","INVALID_USER_ID","PROJECT_NOT_ALLOWED","PROJECT_SELECTOR_DISABLED","MODEL_NOT_ALLOWED","FEATURE_DISABLED","THREAD_NOT_FOUND","STREAM_CONFLICT","STREAM_FAILED","INVALID_REQUEST","INTERNAL_ERROR"]);function I(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function w(e,r){return Object.keys(e).length===r.length&&r.every(n=>n in e)}function Be(e){return I(e)&&w(e,["code","message","retryable"])&&typeof e.code=="string"&&He.has(e.code)&&typeof e.message=="string"&&typeof e.retryable=="boolean"}function ze(e){if(!I(e))return!1;let r=e.data===void 0?["id","type","prompt"]:["id","type","prompt","data"];return w(e,r)&&typeof e.id=="string"&&typeof e.type=="string"&&typeof e.prompt=="string"&&(e.data===void 0||I(e.data))}var Xe=new Set([S.HUMAN,S.AI,S.TOOL,S.INTERRUPT,S.MESSAGE_COMPLETED,S.MESSAGE_FAILED,S.THREAD_IDLE]);function Ke(e,r){let t;try{t=JSON.parse(e)}catch{throw k()}if(!I(t)||typeof t.type!="string")throw k();if(Xe.has(t.type)||t.type==="error"&&I(t.data)&&!I(t.error)){let n=oe(t,r);return n.length===0?[]:n}switch(t.type){case"message.delta":if(w(t,["type","text"])&&typeof t.text=="string")return[t];break;case"message.completed":if(w(t,["type","messageId"])&&typeof t.messageId=="string")return[t];break;case"tool.started":if(w(t,["type","id","name"])&&typeof t.id=="string"&&typeof t.name=="string")return[t];break;case"tool.completed":if(w(t,["type","id"])&&typeof t.id=="string")return[t];break;case"interrupt.created":if(w(t,["type","interrupt"])&&ze(t.interrupt))return[t];break;case"genui.render":if(w(t,["type","block"])&&v(t.block))return[t];break;case"error":if(w(t,["type","error"])&&Be(t.error))return[t];break;case"stream.completed":if(w(t,["type"]))return[t];break}throw k()}function Ge(e){return e instanceof Error&&e.name==="AbortError"}async function ye(e,r){let t=ne({allowGenUI:!0,allowInterrupts:!0}),n=e.getReader(),a=new TextDecoder,o="",i=!1,d=!1;try{for(;!i;){let l;try{l=await n.read()}catch(p){if(Ge(p))return;throw k()}l.done&&(d=!0);try{o+=a.decode(l.value,{stream:!l.done})}catch{throw k()}let C=o.split(/\r?\n\r?\n/);o=l.done?"":C.pop()??"";for(let p of C){let A=p.split(/\r?\n/).filter(m=>m==="data"||m.startsWith("data:")).map(m=>m==="data"?"":m.slice(5).replace(/^ /,""));if(A.length!==0){for(let m of Ke(A.join(`
|
|
2
2
|
`),t))if(await r(m),i=m.type==="stream.completed",i)break;if(i)break}}if(l.done)break}if(!i)throw k()}finally{if(!d)try{await n.cancel()}catch{}n.releaseLock()}}var Qe=new Set(["WEB_APP_NOT_FOUND","WEB_APP_DISABLED","USER_ID_REQUIRED","INVALID_USER_ID","PROJECT_NOT_ALLOWED","PROJECT_SELECTOR_DISABLED","MODEL_NOT_ALLOWED","FEATURE_DISABLED","THREAD_NOT_FOUND","STREAM_CONFLICT","STREAM_FAILED","INVALID_REQUEST","INTERNAL_ERROR"]);function f(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function h(e,r,t=[]){let n=Object.keys(e);return r.every(a=>a in e)&&n.every(a=>r.includes(a)||t.includes(a))}function s(e){return typeof e=="string"}function D(e){if(!f(e)||!h(e,["id","projectId","createdAt","updatedAt"],["label"])||!s(e.id)||!s(e.projectId)||e.label!==void 0&&!s(e.label)||!s(e.createdAt)||!s(e.updatedAt))return;let r=new Date(e.createdAt),t=new Date(e.updatedAt);if(!(Number.isNaN(r.getTime())||Number.isNaN(t.getTime())))return{id:e.id,projectId:e.projectId,...e.label===void 0?{}:{label:e.label},createdAt:r,updatedAt:t}}function Ce(e){if(!f(e)||e.success!==!1||!f(e.error))return!1;let r=e.error;return h(e,["success","error"])&&h(r,["code","message","retryable"])&&typeof r.code=="string"&&Qe.has(r.code)&&typeof r.message=="string"&&typeof r.retryable=="boolean"}function Ve(e){if(!f(e))return!1;let r=["projectSelector","modelSelector","threadManagement","attachments","hitl","genUI"];return h(e,r,["files"])&&r.every(t=>typeof e[t]=="boolean")&&(e.files===void 0||typeof e.files=="boolean")}function Ye(e){return Array.isArray(e)&&e.length<=6&&e.every(r=>f(r)&&h(r,["label","text"])&&s(r.label)&&r.label.length>=1&&r.label.length<=40&&s(r.text)&&r.text.length>=1&&r.text.length<=500)}function Je(e){return f(e)&&h(e,[],["title","welcomeMessage","primaryColor","quickPrompts"])&&(e.title===void 0||s(e.title))&&(e.welcomeMessage===void 0||s(e.welcomeMessage))&&(e.primaryColor===void 0||s(e.primaryColor))&&(e.quickPrompts===void 0||Ye(e.quickPrompts))}function Ze(e){if(!f(e)||!h(e,["webApp","projects","models"],["thread"])||!f(e.webApp))return;let r=e.webApp;if(!h(r,["id","name","assistant","defaultProjectId","features","appearance","identityAssurance"],["description","defaultModelKey"])||!s(r.id)||!s(r.name)||!s(r.defaultProjectId)||r.description!==void 0&&!s(r.description)||r.defaultModelKey!==void 0&&!s(r.defaultModelKey)||r.identityAssurance!=="unverified"||!f(r.assistant)||!h(r.assistant,["id","name"],["description"])||!s(r.assistant.id)||!s(r.assistant.name)||r.assistant.description!==void 0&&!s(r.assistant.description)||!Ve(r.features)||!Je(r.appearance)||!Array.isArray(e.projects)||!e.projects.every(n=>f(n)&&h(n,["id","name"])&&s(n.id)&&s(n.name))||!Array.isArray(e.models)||!e.models.every(n=>f(n)&&h(n,["key","label"])&&s(n.key)&&s(n.label)))return;let t=e.thread===void 0?void 0:D(e.thread);if(!(e.thread!==void 0&&!t))return{...e,...t?{thread:t}:{}}}function et(e){if(!f(e)||!h(e,["records","total"])||!Array.isArray(e.records)||typeof e.total!="number")return;let r=e.records.map(D);return r.every(t=>t!==void 0)?{records:r,total:e.total}:void 0}function tt(e){return f(e)&&s(e.id)&&(e.role==="human"||e.role==="ai")&&(e.content===void 0||s(e.content)||Array.isArray(e.content)&&e.content.every(r=>v(r)!==void 0))}function rt(e){return f(e)&&h(e,["messages"])&&Array.isArray(e.messages)&&e.messages.every(tt)?e:void 0}function nt(e){return f(e)&&h(e,["ref","name","mimeType","size"])&&s(e.ref)&&s(e.name)&&s(e.mimeType)&&typeof e.size=="number"?e:void 0}function we(e,r){return t=>f(t)&&h(t,e)&&r(t)?t:void 0}var U=class{constructor(r){this.options=r;this.baseUrl=`${r.gatewayUrl.replace(/\/+$/,"")}/api/web-apps/${encodeURIComponent(r.webAppId)}/runtime`,this.fetchImplementation=r.fetch??globalThis.fetch.bind(globalThis),this.translate=r.translate}baseUrl;fetchImplementation;translate;async bootstrap(r={},t){return this.request("bootstrap",Ze,{query:r,signal:t})}async listThreads(r={},t){return this.request("threads",et,{query:r,signal:t})}async createThread(r={},t){return this.request("threads",D,{method:"POST",body:r,signal:t})}async updateThread(r,t,n){return this.request(`threads/${encodeURIComponent(r)}`,D,{method:"PATCH",body:t,signal:n})}async deleteThread(r,t={},n){await this.request(`threads/${encodeURIComponent(r)}`,we(["id"],a=>s(a.id)),{method:"DELETE",query:t,signal:n})}async getMessages(r,t={},n){return this.request(`threads/${encodeURIComponent(r)}/messages`,rt,{query:t,signal:n})}async streamMessage(r,t,n,a){return this.streamRequest(`threads/${encodeURIComponent(r)}/messages/stream`,t,n,a)}async resumeInterrupt(r,t,n,a,o){return this.streamRequest(`threads/${encodeURIComponent(r)}/interrupts/${encodeURIComponent(t)}/resume`,n,a,o)}async streamRequest(r,t,n,a){let o;try{o=await this.fetchRequest(r,{method:"POST",body:t,signal:a})}catch(i){throw Ee(i)||i instanceof g?i:new g("STREAM_FAILED",this.translate?.("integration.error.streamFailed")??"Stream failed",!0)}if(o.ok||await this.throwResponseError(o),!o.body||!o.headers.get("content-type")?.toLowerCase().includes("text/event-stream")){if(o.body)try{await o.body.cancel()}catch{}throw new g("STREAM_FAILED",this.translate?.("integration.error.streamFailed")??"Stream failed",!0,o.status)}await ye(o.body,n)}async abort(r,t={},n){await this.request(`threads/${encodeURIComponent(r)}/abort`,we(["aborted"],a=>typeof a.aborted=="boolean"),{method:"POST",query:t,signal:n})}async uploadAttachment(r,t,n={},a){let o=new FormData,i=typeof File<"u"&&t instanceof File?t.name:"attachment";return o.append("file",t,i),this.request(`threads/${encodeURIComponent(r)}/attachments`,nt,{method:"POST",query:n,body:o,signal:a})}async request(r,t,n={}){let a;try{a=await this.fetchRequest(r,n)}catch(d){throw Ee(d)||d instanceof g?d:new g("INTERNAL_ERROR",this.translate?.("integration.error.requestFailed")??"Request failed",!0)}let o;try{o=await a.json()}catch{throw this.internalError(a.status)}if(Ce(o))throw new g(o.error.code,o.error.message,o.error.retryable,a.status);if(!a.ok||!f(o)||!h(o,["success","data"])||o.success!==!0)throw this.internalError(a.status);let i=t(o.data);if(i===void 0)throw this.internalError(a.status);return i}async fetchRequest(r,t){let n=await this.options.identityProvider.getIdentity(t.signal),a=new URL(`${this.baseUrl}/${r}`);for(let[d,l]of Object.entries(t.query??{}))l!==void 0&&a.searchParams.set(d,l);let o=new Headers;n.bearerToken!==void 0?o.set("Authorization",`Bearer ${n.bearerToken}`):o.set("X-Axiom-External-User-Id",n.externalUserId??"");let i;return t.body instanceof FormData?i=t.body:t.body!==void 0&&(o.set("Content-Type","application/json"),i=JSON.stringify(t.body)),this.fetchImplementation(a,{method:t.method??"GET",headers:o,body:i,signal:t.signal,credentials:"omit"})}async throwResponseError(r){let t;try{t=await r.json()}catch{throw this.internalError(r.status)}throw Ce(t)?new g(t.error.code,t.error.message,t.error.retryable,r.status):this.internalError(r.status)}internalError(r){return new g("INTERNAL_ERROR",this.translate?.("integration.error.invalidServerResponse")??"Invalid server response",!1,r)}};function Ee(e){return typeof e=="object"&&e!==null&&"name"in e&&e.name==="AbortError"}var $=R(ee());var P=R(M());function Re(){let e=L(),{createThread:r}=q(),{menuCollapsed:t,setMenuCollapsed:n}=Ae();(0,$.useEffect)(()=>{t===void 0&&n(!0)},[t,n]);let a=(0,$.useCallback)(async()=>{try{await r(e("integration.sidebar.newThread"))}catch(p){console.error("Failed to create new thread:",p)}},[r,e]),o=t??!0,i={id:"new-analysis",builtin:"new-analysis",type:"action",name:e("integration.sidebar.newThread"),icon:(0,P.jsx)(me,{size:20}),order:0},d={id:"thread-history-toggle",type:"action",name:e("integration.sidebar.history"),icon:(0,P.jsx)(G,{size:20}),order:1},l={id:"thread-history",builtin:"thread-history",type:"drawer",name:e("integration.sidebar.history"),icon:(0,P.jsx)(G,{size:20}),order:1,title:e("integration.sidebar.historyTitle"),width:320,inline:!0,inlineDefaultExpanded:!0,content:(0,P.jsx)(he,{})},C=[i,...o?[d]:[l]];return(0,P.jsx)(ge,{items:C,showBranding:!1,showToggle:!0,showNewAnalysis:!1,defaultExpanded:!o,collapsed:o,onCollapsedChange:n,onNewAnalysis:a,onItemClick:p=>{p.type==="action"&&p.builtin==="new-analysis"?a():p.type==="action"&&p.id==="thread-history-toggle"&&n(!1)}},o?"agent-chat-sidebar-collapsed":"agent-chat-sidebar-expanded")}function Se(e){if(typeof window>"u"||typeof XMLHttpRequest>"u")return()=>{};let r=`${e.gatewayUrl.replace(/\/+$/,"")}/api/web-apps/${encodeURIComponent(e.webAppId)}/runtime/`,t=XMLHttpRequest.prototype.open,n=XMLHttpRequest.prototype.send,a=new WeakMap;return XMLHttpRequest.prototype.open=function(i,d){a.set(this,String(d)),t.call(this,i,d,!0)},XMLHttpRequest.prototype.send=function(i){let d=a.get(this)??"";if(!d.startsWith(r)||!/\/sandbox\/uploadfile$/.test(d)){n.call(this,i);return}if(e.identity.mode==="unverified"){this.setRequestHeader("X-Axiom-External-User-Id",e.identity.userId),n.call(this,i);return}e.identity.tokenProvider().then(l=>{this.setRequestHeader("Authorization",`Bearer ${l}`),n.call(this,i)}).catch(()=>{n.call(this,i)})},()=>{XMLHttpRequest.prototype.open=t,XMLHttpRequest.prototype.send=n}}var ot=/^#[0-9A-Fa-f]{6}$/;function at(e){return typeof e=="string"&&ot.test(e)}function Te(e){return at(e)?e:void 0}function N(e,r){let t=parseInt(e.replace("#",""),16),n=Math.round(2.55*r),a=(t>>16)+n,o=(t>>8&255)+n,i=(t&255)+n;return"#"+(16777216+(a<255?a<1?0:a:255)*65536+(o<255?o<1?0:o:255)*256+(i<255?i<1?0:i:255)).toString(16).slice(1)}function ke(e){if(e!==void 0)return{token:{colorPrimary:e,colorPrimaryHover:N(e,20),colorPrimaryActive:N(e,-15),colorPrimaryBg:N(e,45)+"20"}}}var De=R(Fe()),Ue=R(qe()),c=R(M()),Ct={"en-US":De.default,"zh-CN":Ue.default};function wt(e,r){let t=J(e.welcome),n=J(r.title),a=t??J(r.welcomeMessage),o=e.quickPrompts??r.quickPrompts??[],i=Te(r.primaryColor);return{...n!==void 0?{title:n}:{},...a!==void 0?{welcome:a}:{},quickPrompts:o,...i!==void 0?{primaryColor:i}:{}}}function J(e){return typeof e=="string"&&e.length>0?e:void 0}function Et(e){if(!e.gatewayUrl.trim())throw new Error("AgentChatApp requires gatewayUrl");try{new URL(e.gatewayUrl)}catch{throw new Error("AgentChatApp gatewayUrl must be a valid URL")}if(!e.webAppId.trim())throw new Error("AgentChatApp requires webAppId");if(e.identity.mode==="unverified"){if(!e.identity.userId.trim())throw new Error("AgentChatApp requires identity.userId")}else if(typeof e.identity.tokenProvider!="function")throw new Error("AgentChatApp requires identity.tokenProvider");if(!e.fetch&&typeof globalThis.fetch!="function")throw new Error("AgentChatApp requires a fetch implementation")}function Rt(e,r){return e instanceof g?e:new g("INTERNAL_ERROR",r("integration.error.requestFailed"),!0)}function St(e){return e.mode==="unverified"?`unverified:${e.userId}`:"verified:token"}function Tr(e){Et(e);let r=`${e.gatewayUrl}\0${e.webAppId}\0${St(e.identity)}`,t=e.storageKey??ie,n=(0,u.useMemo)(()=>e.locale??se(t)??"en-US",[e.locale,t]);return(0,c.jsx)(de,{locale:n,storageKey:t,onLocaleChange:e.onLocaleChange,children:(0,c.jsx)(Tt,{...e,locale:n},r)})}function Tt({gatewayUrl:e,webAppId:r,identity:t,onError:n,onChatReady:a,onChatMessage:o,fetch:i,className:d,welcome:l,quickPrompts:C,locale:p="en-US"}){let A=L(),[m,E]=(0,u.useState)({status:"loading"}),x=(0,u.useRef)(t);x.current=t;let _=(0,u.useRef)(n);_.current=n;let W=(0,u.useRef)();return W.current||(W.current=new U({gatewayUrl:e,webAppId:r,identityProvider:{getIdentity:async()=>{let b=x.current;if(b.mode!=="verified")return{externalUserId:b.userId};try{return{bearerToken:await b.tokenProvider()}}catch{throw new g("USER_ID_REQUIRED",A("integration.error.identityTokenFailed"),!0)}}},translate:A,...i?{fetch:i}:{}})),(0,u.useEffect)(()=>Se({gatewayUrl:e,webAppId:r,identity:t}),[e,r,t]),(0,u.useEffect)(()=>{let b=!1,$e=W.current;return(async()=>{try{let K=await $e.bootstrap({});if(b)return;E({status:"ready",bootstrap:K})}catch(K){if(b)return;let Z=Rt(K,A);E({status:"error",error:Z}),_.current?.(Z)}})(),()=>{b=!0}},[]),m.status==="loading"?(0,c.jsx)("div",{className:d}):m.status==="error"?(0,c.jsxs)("div",{className:d,role:"alert",children:[(0,c.jsx)("strong",{children:A("integration.chat.loadFailed")}),(0,c.jsx)("div",{children:m.error.code}),(0,c.jsx)("button",{type:"button",onClick:()=>E({status:"loading"}),children:A("common.retry")})]}):(0,c.jsx)(It,{className:d,gatewayUrl:e,webAppId:r,identity:t,bootstrap:m.bootstrap,onChatReady:a,onChatMessage:o,welcome:l,quickPrompts:C,locale:p})}function kt(e){return{id:e.id,name:e.name,...e.description!==void 0?{description:e.description}:{},graphDefinition:void 0,createdAt:new Date(0),updatedAt:new Date(0)}}function It({gatewayUrl:e,webAppId:r,identity:t,bootstrap:n,onChatReady:a,onChatMessage:o,className:i,welcome:d,quickPrompts:l,locale:C="en-US"}){let p=(0,u.useMemo)(()=>kt(n.webApp.assistant),[n.webApp.assistant]),A=(0,u.useMemo)(()=>wt({welcome:d,quickPrompts:l},n.webApp.appearance),[d,l,n.webApp.appearance]),m=(0,u.useMemo)(()=>ke(A.primaryColor),[A.primaryColor]),E=(0,u.useMemo)(()=>t.mode==="unverified"?{mode:"unverified",userId:t.userId}:{mode:"verified",tokenProvider:t.tokenProvider},[t]),x=(0,u.useCallback)(b=>new ae({gatewayUrl:e,webAppId:r,identity:E,assistantId:b.assistantId,transport:b.transport,...b.timeout!==void 0?{timeout:b.timeout}:{},...b.headers!==void 0?{headers:b.headers}:{}}),[e,r,E]),_=(0,u.useMemo)(()=>({baseURL:`${e.replace(/\/$/,"")}/api/web-apps/${r}/runtime`,apiKey:"",transport:"sse",assistantId:p.id,enableSkillSlot:!1,enableDatabaseSlot:!1,enableAgentSlot:!1,enableMetricsDataSourceSlot:!1,enableModelSelector:!1,enableWorkspace:!1,enableCustomMenu:!1,showSideMenu:!1,enableAssistantCreation:!1,enableAssistantEditing:!1,enableThreadCreation:!0,enableThreadList:!0}),[p.id,e,r]),W=(0,u.useMemo)(()=>({assistants:[p],currentAssistant:p,isLoading:!1,error:null,listAssistants:async()=>{},getAssistant:async()=>p,createAssistant:async()=>{throw new Error("Not implemented in a Web App")},updateAssistant:async()=>{throw new Error("Not implemented in a Web App")},deleteAssistant:async()=>{},selectAssistant:async()=>{},clearCurrentAssistant:()=>{},refresh:async()=>{}}),[p]);return(0,c.jsx)(te,{theme:m,locale:Ct[C],children:(0,c.jsx)(le,{config:{baseURL:_.baseURL,apiKey:"",assistantId:"__BASE__",transport:"sse"},createClient:x,children:(0,c.jsx)(ue,{initialConfig:_,persistToLocalStorage:!1,children:(0,c.jsx)(pe.Provider,{value:W,children:(0,c.jsx)(fe,{children:(0,c.jsx)(Pt,{className:i,onChatReady:a,onChatMessage:o,title:A.title,welcome:A.welcome,quickPrompts:A.quickPrompts})})})})})})}function Pt({className:e,onChatReady:r,onChatMessage:t,title:n,welcome:a,quickPrompts:o=[]}){let i=L(),{threadId:d}=q(),{currentAssistant:l}=ce();if(!l)return null;let C=d??"";if(!C)return(0,c.jsx)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%"},children:(0,c.jsx)(re,{tip:i("integration.chat.creatingConversation")})});let p=n??a,A=n!==void 0&&a!==void 0?a:"";return(0,c.jsx)("div",{className:e,children:(0,c.jsx)(be,{thread_id:C,assistant_id:l.id,name:l.name,description:l.description,menu:(0,c.jsx)(Re,{}),showProjectSelector:!1,showSkillSlot:!1,showDatabaseSlot:!1,showAgentSlot:!1,showMetricsDataSourceSlot:!1,headerRight:null,emptyStateGreeting:p?(0,c.jsx)("span",{children:p}):void 0,emptyStateQuestion:A,senderPromptsItems:o.length>0?o.map((m,E)=>({key:`quick-${E}`,label:m.label,description:m.text})):void 0,showSkillPrompts:!1,showQuickAnalysis:!1,onChatReady:r,onChatMessage:t})})}export{ot as a,Tr as b};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./embed-page-chunk-QBTAJ2YI.js";var o={"auth.login.title":"Welcome Back","auth.login.subtitle":"Sign in to your account","auth.login.submit":"Sign In","auth.login.forgotPassword":"Forgot password?","auth.login.noAccount":"Don't have an account?","auth.login.createOne":"Create one","auth.register.title":"Create Account","auth.register.subtitle":"Start your journey with us","auth.register.submit":"Create Account","auth.register.hasAccount":"Already have an account?","auth.register.success":"Account created successfully","auth.changePassword.title":"Change Password","auth.changePassword.submit":"Change Password","auth.changePassword.success":"Password changed successfully","auth.changePassword.failed":"Failed to change password","auth.changePassword.currentRequired":"Please enter current password","auth.changePassword.newRequired":"Please enter new password","auth.changePassword.confirmRequired":"Please confirm new password","auth.changePassword.tooShort":"Password must be at least 6 characters","auth.field.email":"Email","auth.field.password":"Password","auth.field.fullName":"Full name","auth.field.confirmPassword":"Confirm password","auth.field.currentPassword":"Current password","auth.field.newPassword":"New password","auth.field.confirmNewPassword":"Confirm new password","auth.field.name":"Name","auth.field.description":"Description","auth.field.logoUrl":"Logo URL","auth.tenant.title":"Select Your Tenant","auth.tenant.selectTitle":"Select Tenant","auth.tenant.chooseDescription":"Choose a tenant to continue","auth.tenant.description":"Welcome, {{name}}! Choose a tenant to continue","auth.tenant.empty.title":"Welcome, {{name}}!","auth.tenant.empty.noAccess":"You don't have access to any tenants yet.","auth.tenant.empty.contactAdmin":"Please contact your administrator to be assigned to a tenant.","auth.tenant.searchPlaceholder":"Search tenant...","auth.tenant.searchAriaLabel":"Search tenants","auth.tenant.noMatch":"No tenants match","auth.tenant.noMatchHint":"Try a different search.","auth.tenant.showAll":"Show all tenants","auth.tenant.noWorkspaces":"No workspaces available","auth.tenant.noWorkspacesHint":"Contact your administrator to be added to a tenant.","auth.tenant.countOne":"tenant","auth.tenant.countOther":"tenants","auth.tenant.logout":"Log Out","auth.tenant.editTitle":"Edit Tenant","auth.tenantSettings.title":"Tenant Settings","auth.tenantSettings.general":"General","auth.tenantSettings.save":"Save Settings","auth.tenantSettings.updated":"Tenant updated","auth.tenantSettings.updateFailed":"Failed to update tenant","auth.tenantSettings.namePlaceholder":"Tenant name","auth.tenantSettings.nameRequired":"Tenant name is required","auth.tenantSettings.descriptionPlaceholder":"Brief description","auth.tenantSettings.logoUrlHelp":"e.g. https://example.com/logo.png or data:image/png;base64,iVBORw...","auth.tenantSettings.coordinatorMentionLabel":"Coordinator mention name","auth.tenantSettings.coordinatorMentionHelp":"Handle for the room coordinator bot (e.g. @room-coordinator). Lowercase; 2\u201332 chars; letters/digits/_/-, starting with a letter. Applies to newly created group rooms.","auth.tenantSettings.coordinatorMentionInvalid":"Lowercase; 2\u201332 chars; start with a letter","auth.user.profile":"Profile","auth.user.settings":"Settings","auth.user.changePassword":"Change password","auth.user.logout":"Log out","auth.user.notifications":"Notifications","auth.user.language":"Language","auth.user.editTenant":"Edit Tenant","auth.user.switchTenant":"Switch Tenant","auth.user.currentWorkspace":"Current Workspace","auth.user.loggingOut":"Logging out...","auth.protected.title":"Authentication Required","auth.protected.description":"Please log in to access this page.","auth.notifications.on":"On","auth.notifications.off":"Off","auth.tenantLogo.alt":"{{name}} logo","auth.tenantLogo.altFallback":"Tenant logo","auth.appSwitcher.title":"Switch App","auth.appSwitcher.search":"Search apps","auth.appSwitcher.empty":"No apps registered","auth.appSwitcher.current":"Current","auth.modelProviders.title":"Model Providers","auth.modelProviders.add":"Add Provider","auth.modelProviders.apiKey":"API Key","auth.modelProviders.baseUrl":"Base URL","auth.modelProviders.modelName":"Model Name","auth.modelProviders.edit":"Edit Provider","auth.modelProviders.deleteTitle":"Delete model provider","auth.modelProviders.loadFailed":"Failed to load model providers","auth.modelProviders.empty":"No model providers","auth.modelProviders.emptyHint":'Click "Add Provider" to connect an upstream',"auth.modelProviders.namePlaceholder":"e.g., openai-prod","auth.modelProviders.nameHelp":"Unique within this tenant. Shown as the model key prefix.","auth.modelProviders.displayName":"Display Name","auth.modelProviders.displayNamePlaceholder":"e.g., OpenAI (production)","auth.modelProviders.baseUrlPlaceholder":"e.g., https://api.openai.com/v1","auth.modelProviders.baseUrlHelp":"The base address only \u2014 not a full endpoint path such as /v1/models or /v1/chat/completions; the gateway appends the path itself. Any OpenAI-compatible upstream works, including a self-hosted vLLM or Ollama on a private address.","auth.modelProviders.testLatency":"Test latency","auth.modelProviders.listModels":"List models","auth.modelProviders.enabledCount":"{{enabled}} / {{total}} enabled","auth.modelProviders.keyConfigured":"Configured \u2014 not shown","auth.modelProviders.keyReplacedOnSave":"The new key replaces the stored one on save.","auth.modelProviders.keyStoredOnServer":"A key is stored on the server and is never sent back.","auth.modelProviders.keyStoredOnServerHint":"A key is stored on the server (ends in {{hint}}) and is never sent back.","auth.modelProviders.replaceKey":"Replace key","auth.modelProviders.keyNotStored":"Optional. Leave blank for a server that needs no authentication \u2014 a self-hosted Ollama, vLLM or LM Studio, for example. Stored encrypted and never sent back to the browser.","auth.modelProviders.requestProtocol":"Request protocol","auth.modelProviders.requestProtocolHelp":"Decides the route and the request body. Chat Completions posts messages to /v1/chat/completions; the Responses API posts input to /v1/responses. Getting it wrong shows up as unrecognised parameters, a missing route, or endless retries.","auth.modelProviders.styleChatCompletions":"Chat Completions (/v1/chat/completions)","auth.modelProviders.styleResponses":"Responses (/v1/responses)","auth.modelProviders.saveProvider":"Save provider","auth.modelProviders.createProvider":"Create provider","auth.modelProviders.templateHint":"Pick a service to prefill its base URL, or Custom to fill everything in yourself. Every field stays editable afterwards.","auth.modelProviders.templateCustom":"Custom","auth.modelProviders.templateOllama":"Ollama (local)","auth.modelProviders.templateVllm":"vLLM (local)","auth.modelProviders.templateLmstudio":"LM Studio (local)","auth.modelProviders.syncApiModels":"Sync API models","auth.modelProviders.saveSelection":"Save selection","auth.modelProviders.selectAllNew":"Select all new","auth.modelProviders.clear":"Clear","auth.modelProviders.newSelected":"{{selected}} of {{total}} new selected","auth.modelProviders.droppedBanner":"{{count}} dropped upstream \u2014 kept and flagged, not deleted","auth.modelProviders.droppedUpstream":"dropped upstream","auth.modelProviders.configured":"configured","auth.modelProviders.readingUpstream":"Reading the upstream model list\u2026","auth.modelProviders.noModelsYet":'No models yet. Use "Sync API models" to pull the list, or add one by hand.',"auth.modelProviders.remove":"Remove","auth.modelProviders.removeModelTitle":'Remove "{{modelId}}"?',"auth.modelProviders.referencesStopResolving":"Any agent or eval configuration referencing it will stop resolving.","auth.modelProviders.referencesStopResolvingPlural":"Any agent or eval configuration referencing them will stop resolving.","auth.modelProviders.removeDefaultModel":"This is the tenant's default model. Make another model the default first, then remove this one.","auth.modelProviders.removed":"Model removed","auth.modelProviders.removeFailed":"Failed to remove model","auth.modelProviders.models":"Models","auth.modelProviders.modelsFor":"Models \u2014 {{name}}","auth.modelProviders.modelsAdded":"{{count}} model(s) added","auth.modelProviders.modelsAddedTo":"{{count}} model(s) added to {{name}}","auth.modelProviders.noNewModels":"No new models to add","auth.modelProviders.noNewModelsFor":"No new models for {{name}}","auth.modelProviders.saveModelsFailed":"Failed to save models","auth.modelProviders.nameAndBaseUrlRequired":"Name and Base URL are required","auth.modelProviders.replacementKeyRequired":"Enter the replacement key, or cancel the replacement","auth.modelProviders.created":"Model provider created","auth.modelProviders.updated":"Model provider updated","auth.modelProviders.deleted":"Model provider deleted","auth.modelProviders.saveFailed":"Failed to save model provider","auth.modelProviders.updateFailed":"Failed to update provider","auth.modelProviders.deleteFailed":"Failed to delete model provider","auth.modelProviders.probeFailed":"Probe failed","auth.modelProviders.modelCount":"{{count}} models ({{enabled}} enabled)","auth.modelProviders.disabledSuffix":" \xB7 disabled","auth.modelProviders.deleteConfirm":"Delete {{name}}?","auth.modelProviders.deleteAlsoModels":"This also deletes the {{count}} models it provides.","auth.modelProviders.probeFailure.authFailed":"The upstream rejected these credentials (401/403). Check the API key is correct, current, and allowed to call this service.","auth.modelProviders.probeFailure.unreachable":"The base URL is unreachable. Usually a typo, or a full endpoint path pasted where the base address belongs.","auth.modelProviders.probeFailure.redirectBlocked":"The upstream redirected. Enter the final address directly \u2014 the gateway does not follow redirects.","auth.modelProviders.probeFailure.timeout":"The upstream did not respond in time. The service may be down, or the link slow.","auth.modelProviders.probeFailure.rateLimited":"The upstream rate limited the request (429). Try again shortly.","auth.modelProviders.probeFailure.invalidResponse":"The upstream answered, but not with a model list. Confirm the address serves an OpenAI-compatible /v1/models.","auth.modelProviders.probeFailure.generic":"Check the base URL and API key, and that the request protocol matches what the upstream serves.","auth.modelProviders.visionTitle":"Vision","auth.modelProviders.visionEnabled":"Enabled","auth.modelProviders.visionDisabled":"Disabled","auth.modelProviders.visionHelp":"Reads images. Agents refuse to open image files with a model that does not have this on.","auth.modelProviders.visionTurnOn":"Turn on","auth.modelProviders.visionTurnOff":"Turn off","auth.modelProviders.visionAriaOn":"Reads images. Click to turn off.","auth.modelProviders.visionAriaOff":"No image support. Click to enable.","auth.modelProviders.visionMarked":"Model marked as reading images","auth.modelProviders.visionCleared":"Image support cleared","auth.modelProviders.visionUpdateFailed":"Failed to update model","auth.modelProviders.addModel":"Add model","auth.modelProviders.editModel":"Edit model","auth.modelProviders.modelIdLabel":"Model ID","auth.modelProviders.modelIdHelp":'Exactly as the upstream names it \u2014 a mismatch surfaces later as "model not found". It is sent as typed: an upstream that publishes no list gives nothing to check it against.',"auth.modelProviders.extraConfigLabel":"Extra config","auth.modelProviders.extraConfigHelp":"A JSON object merged over the provider's settings \u2014 temperature, maxTokens, modelKwargs and so on. Empty means no per-model config. It cannot change where the request goes: the provider's address and credential always win.","auth.modelProviders.modelIdRequired":"Model ID is required","auth.modelProviders.extraInvalidJson":"Extra config is not valid JSON","auth.modelProviders.extraNotObject":"Extra config must be a JSON object","auth.modelProviders.modelAdded":"Model added","auth.modelProviders.modelUpdated":"Model updated","auth.modelProviders.modelSaveFailed":"Failed to save model","auth.modelProviders.badgeDefault":"default","auth.modelProviders.badgeCustomConfig":"custom config","auth.modelProviders.ariaEnabled":"Enabled","auth.modelProviders.ariaEditModelConfig":"Edit model config","auth.modelProviders.ariaRemoveModel":"Remove {{modelId}}","auth.modelProviders.ariaDefaultNotRemovable":"Default model cannot be removed","auth.modelProviders.defaultModelTitle":"Default model","auth.modelProviders.defaultModelHelp":"Used wherever something needs a model and none is chosen: an agent with no model configured, the personal assistant, an eval run with no judge model, and reading an image.","auth.modelProviders.defaultModelPlaceholder":"Not set \u2014 the deployment's default model is used","auth.modelProviders.defaultModelEmpty":"Add a provider and its models first","auth.modelProviders.defaultModelUpdated":"Default model updated","auth.modelProviders.defaultModelFailed":"Failed to set the default model","auth.error.passwordMismatch":"Passwords do not match","auth.error.registerFailed":"Registration failed","auth.error.invalidCredentials":"Invalid email or password","auth.error.generic":"Something went wrong. Please try again.","auth.error.loginFailed":"Login failed","auth.error.unauthorized":"Unauthorized","auth.error.selectTenantFailed":"Failed to select tenant","auth.error.fetchTenantsFailed":"Failed to fetch tenants","auth.error.fetchUsersFailed":"Failed to fetch users","auth.error.refreshUserFailed":"Failed to refresh user","auth.error.changePasswordFailed":"Failed to change password","auth.success.registered":"Registration successful!"},a={messages:o};export{a as default,o as messages};
|
|
1
|
+
import"./embed-page-chunk-QBTAJ2YI.js";var o={"auth.login.title":"Welcome Back","auth.login.subtitle":"Sign in to your account","auth.login.submit":"Sign In","auth.login.forgotPassword":"Forgot password?","auth.login.noAccount":"Don't have an account?","auth.login.createOne":"Create one","auth.register.title":"Create Account","auth.register.subtitle":"Start your journey with us","auth.register.submit":"Create Account","auth.register.hasAccount":"Already have an account?","auth.register.success":"Account created successfully","auth.changePassword.title":"Change Password","auth.changePassword.submit":"Change Password","auth.changePassword.success":"Password changed successfully","auth.changePassword.failed":"Failed to change password","auth.changePassword.currentRequired":"Please enter current password","auth.changePassword.newRequired":"Please enter new password","auth.changePassword.confirmRequired":"Please confirm new password","auth.changePassword.tooShort":"Password must be at least 6 characters","auth.field.email":"Email","auth.field.password":"Password","auth.field.fullName":"Full name","auth.field.confirmPassword":"Confirm password","auth.field.currentPassword":"Current password","auth.field.newPassword":"New password","auth.field.confirmNewPassword":"Confirm new password","auth.field.name":"Name","auth.field.description":"Description","auth.field.logoUrl":"Logo URL","auth.tenant.title":"Select Your Tenant","auth.tenant.selectTitle":"Select Tenant","auth.tenant.chooseDescription":"Choose a tenant to continue","auth.tenant.description":"Welcome, {{name}}! Choose a tenant to continue","auth.tenant.empty.title":"Welcome, {{name}}!","auth.tenant.empty.noAccess":"You don't have access to any tenants yet.","auth.tenant.empty.contactAdmin":"Please contact your administrator to be assigned to a tenant.","auth.tenant.searchPlaceholder":"Search tenant...","auth.tenant.searchAriaLabel":"Search tenants","auth.tenant.noMatch":"No tenants match","auth.tenant.noMatchHint":"Try a different search.","auth.tenant.showAll":"Show all tenants","auth.tenant.noWorkspaces":"No workspaces available","auth.tenant.noWorkspacesHint":"Contact your administrator to be added to a tenant.","auth.tenant.countOne":"tenant","auth.tenant.countOther":"tenants","auth.tenant.logout":"Log Out","auth.tenant.editTitle":"Edit Tenant","auth.tenantSettings.title":"Tenant Settings","auth.tenantSettings.general":"General","auth.tenantSettings.save":"Save Settings","auth.tenantSettings.updated":"Tenant updated","auth.tenantSettings.updateFailed":"Failed to update tenant","auth.tenantSettings.namePlaceholder":"Tenant name","auth.tenantSettings.nameRequired":"Tenant name is required","auth.tenantSettings.descriptionPlaceholder":"Brief description","auth.tenantSettings.logoUrlHelp":"e.g. https://example.com/logo.png or data:image/png;base64,iVBORw...","auth.tenantSettings.coordinatorMentionLabel":"Coordinator mention name","auth.tenantSettings.coordinatorMentionHelp":"Handle for the room coordinator bot (e.g. @room-coordinator). Lowercase; 2\u201332 chars; letters/digits/_/-, starting with a letter. Applies to newly created group rooms.","auth.tenantSettings.coordinatorMentionInvalid":"Lowercase; 2\u201332 chars; start with a letter","auth.user.profile":"Profile","auth.user.settings":"Settings","auth.user.changePassword":"Change password","auth.user.logout":"Log out","auth.user.notifications":"Notifications","auth.user.language":"Language","auth.user.editTenant":"Edit Tenant","auth.user.switchTenant":"Switch Tenant","auth.user.currentWorkspace":"Current Workspace","auth.user.loggingOut":"Logging out...","auth.protected.title":"Authentication Required","auth.protected.description":"Please log in to access this page.","auth.notifications.on":"On","auth.notifications.off":"Off","auth.tenantLogo.alt":"{{name}} logo","auth.tenantLogo.altFallback":"Tenant logo","auth.appSwitcher.title":"Switch App","auth.appSwitcher.search":"Search apps","auth.appSwitcher.empty":"No apps registered","auth.appSwitcher.current":"Current","auth.modelProviders.title":"Model Providers","auth.modelProviders.add":"Add Provider","auth.modelProviders.apiKey":"API Key","auth.modelProviders.baseUrl":"Base URL","auth.modelProviders.modelName":"Model Name","auth.modelProviders.edit":"Edit Provider","auth.modelProviders.deleteTitle":"Delete model provider","auth.modelProviders.loadFailed":"Failed to load model providers","auth.modelProviders.empty":"No model providers","auth.modelProviders.emptyHint":'Click "Add Provider" to connect an upstream',"auth.modelProviders.namePlaceholder":"e.g., openai-prod","auth.modelProviders.nameHelp":"Unique within this tenant. Shown as the model key prefix.","auth.modelProviders.displayName":"Display Name","auth.modelProviders.displayNamePlaceholder":"e.g., OpenAI (production)","auth.modelProviders.baseUrlPlaceholder":"e.g., https://api.openai.com/v1","auth.modelProviders.baseUrlHelp":"The base address only \u2014 not a full endpoint path such as /v1/models or /v1/chat/completions; the gateway appends the path itself. Any OpenAI-compatible upstream works, including a self-hosted vLLM or Ollama on a private address.","auth.modelProviders.testLatency":"Test latency","auth.modelProviders.listModels":"List models","auth.modelProviders.enabledCount":"{{enabled}} / {{total}} enabled","auth.modelProviders.keyConfigured":"Configured \u2014 not shown","auth.modelProviders.keyReplacedOnSave":"The new key replaces the stored one on save.","auth.modelProviders.keyStoredOnServer":"A key is stored on the server and is never sent back.","auth.modelProviders.keyStoredOnServerHint":"A key is stored on the server (ends in {{hint}}) and is never sent back.","auth.modelProviders.replaceKey":"Replace key","auth.modelProviders.keyNotStored":"Optional. Leave blank for a server that needs no authentication \u2014 a self-hosted Ollama, vLLM or LM Studio, for example. Stored encrypted and never sent back to the browser.","auth.modelProviders.requestProtocol":"Request protocol","auth.modelProviders.requestProtocolHelp":"Decides the route and the request body. Chat Completions posts messages to /v1/chat/completions; the Responses API posts input to /v1/responses. Getting it wrong shows up as unrecognised parameters, a missing route, or endless retries.","auth.modelProviders.styleChatCompletions":"Chat Completions (/v1/chat/completions)","auth.modelProviders.styleResponses":"Responses (/v1/responses)","auth.modelProviders.saveProvider":"Save provider","auth.modelProviders.createProvider":"Create provider","auth.modelProviders.templateHint":"Pick a service to prefill its base URL, or Custom to fill everything in yourself. Every field stays editable afterwards.","auth.modelProviders.templateCustom":"Custom","auth.modelProviders.templateOllama":"Ollama (local)","auth.modelProviders.templateVllm":"vLLM (local)","auth.modelProviders.templateLmstudio":"LM Studio (local)","auth.modelProviders.syncApiModels":"Sync API models","auth.modelProviders.saveSelection":"Save selection","auth.modelProviders.selectAllNew":"Select all new","auth.modelProviders.clear":"Clear","auth.modelProviders.newSelected":"{{selected}} of {{total}} new selected","auth.modelProviders.droppedBanner":"{{count}} dropped upstream \u2014 kept and flagged, not deleted","auth.modelProviders.droppedUpstream":"dropped upstream","auth.modelProviders.configured":"configured","auth.modelProviders.readingUpstream":"Reading the upstream model list\u2026","auth.modelProviders.noModelsYet":'No models yet. Use "Sync API models" to pull the list, or add one by hand.',"auth.modelProviders.remove":"Remove","auth.modelProviders.removeModelTitle":'Remove "{{modelId}}"?',"auth.modelProviders.referencesStopResolving":"Any agent or eval configuration referencing it will stop resolving.","auth.modelProviders.referencesStopResolvingPlural":"Any agent or eval configuration referencing them will stop resolving.","auth.modelProviders.removeDefaultModel":"This is the tenant's default model. Make another model the default first, then remove this one.","auth.modelProviders.removed":"Model removed","auth.modelProviders.removeFailed":"Failed to remove model","auth.modelProviders.models":"Models","auth.modelProviders.modelsFor":"Models \u2014 {{name}}","auth.modelProviders.modelsAdded":"{{count}} model(s) added","auth.modelProviders.modelsAddedTo":"{{count}} model(s) added to {{name}}","auth.modelProviders.noNewModels":"No new models to add","auth.modelProviders.noNewModelsFor":"No new models for {{name}}","auth.modelProviders.saveModelsFailed":"Failed to save models","auth.modelProviders.nameAndBaseUrlRequired":"Name and Base URL are required","auth.modelProviders.replacementKeyRequired":"Enter the replacement key, or cancel the replacement","auth.modelProviders.created":"Model provider created","auth.modelProviders.updated":"Model provider updated","auth.modelProviders.deleted":"Model provider deleted","auth.modelProviders.saveFailed":"Failed to save model provider","auth.modelProviders.updateFailed":"Failed to update provider","auth.modelProviders.deleteFailed":"Failed to delete model provider","auth.modelProviders.probeFailed":"Probe failed","auth.modelProviders.modelCount":"{{count}} models ({{enabled}} enabled)","auth.modelProviders.disabledSuffix":" \xB7 disabled","auth.modelProviders.deleteConfirm":"Delete {{name}}?","auth.modelProviders.deleteAlsoModels":"This also deletes the {{count}} models it provides.","auth.modelProviders.probeFailure.authFailed":"The upstream rejected these credentials (401/403). Check the API key is correct, current, and allowed to call this service.","auth.modelProviders.probeFailure.unreachable":"The base URL is unreachable. Usually a typo, or a full endpoint path pasted where the base address belongs.","auth.modelProviders.probeFailure.redirectBlocked":"The upstream redirected. Enter the final address directly \u2014 the gateway does not follow redirects.","auth.modelProviders.probeFailure.timeout":"The upstream did not respond in time. The service may be down, or the link slow.","auth.modelProviders.probeFailure.rateLimited":"The upstream rate limited the request (429). Try again shortly.","auth.modelProviders.probeFailure.invalidResponse":"The upstream answered, but not with a model list. Confirm the address serves an OpenAI-compatible /v1/models.","auth.modelProviders.probeFailure.generic":"Check the base URL and API key, and that the request protocol matches what the upstream serves.","auth.modelProviders.visionTitle":"Vision","auth.modelProviders.visionEnabled":"Enabled","auth.modelProviders.visionDisabled":"Disabled","auth.modelProviders.visionHelp":"Reads images. Agents refuse to open image files with a model that does not have this on.","auth.modelProviders.visionTurnOn":"Turn on","auth.modelProviders.visionTurnOff":"Turn off","auth.modelProviders.visionAriaOn":"Reads images. Click to turn off.","auth.modelProviders.visionAriaOff":"No image support. Click to enable.","auth.modelProviders.visionMarked":"Model marked as reading images","auth.modelProviders.visionCleared":"Image support cleared","auth.modelProviders.visionUpdateFailed":"Failed to update model","auth.modelProviders.thinkingTitle":"Thinking","auth.modelProviders.thinkingOn":"On","auth.modelProviders.thinkingOff":"Off","auth.modelProviders.thinkingHelp":"Whether the model reasons before answering. Models added here start with it off; turn it on for a model that should.","auth.modelProviders.thinkingTurnOn":"Enable thinking","auth.modelProviders.thinkingTurnOff":"Disable thinking","auth.modelProviders.thinkingAriaOn":"Thinking is on. Click to disable.","auth.modelProviders.thinkingAriaOff":"Thinking is off. Click to enable.","auth.modelProviders.thinkingMarked":"Thinking enabled for this model","auth.modelProviders.thinkingCleared":"Thinking disabled for this model","auth.modelProviders.thinkingUpdateFailed":"Failed to update model","auth.modelProviders.kindLabel":"Model type","auth.modelProviders.kindChat":"Chat","auth.modelProviders.kindEmbedding":"Embedding","auth.modelProviders.kindAsr":"Speech recognition","auth.modelProviders.kindHelp":"Chat models answer prompts and appear in the agent model pickers. Embedding models power collections; speech models transcribe audio. They live in one catalog but are never offered to the wrong picker.","auth.modelProviders.embeddingTestAria":"Run one embedding request against this model","auth.modelProviders.embeddingTestOk":"Embedding OK \u2014 {{dimensions}} dimensions in {{latency}}ms","auth.modelProviders.embeddingTestNoVector":"Reached in {{latency}}ms, but the response carried no vector","auth.modelProviders.embeddingTestFailed":"Embedding test failed{{reason}}","auth.modelProviders.addModel":"Add model","auth.modelProviders.editModel":"Edit model","auth.modelProviders.modelIdLabel":"Model ID","auth.modelProviders.modelIdHelp":'Exactly as the upstream names it \u2014 a mismatch surfaces later as "model not found". It is sent as typed: an upstream that publishes no list gives nothing to check it against.',"auth.modelProviders.extraConfigLabel":"Extra config","auth.modelProviders.extraConfigHelp":"A JSON object merged over the provider's settings \u2014 temperature, maxTokens, modelKwargs and so on. Empty means no per-model config. It cannot change where the request goes: the provider's address and credential always win.","auth.modelProviders.modelIdRequired":"Model ID is required","auth.modelProviders.extraInvalidJson":"Extra config is not valid JSON","auth.modelProviders.extraNotObject":"Extra config must be a JSON object","auth.modelProviders.modelAdded":"Model added","auth.modelProviders.modelUpdated":"Model updated","auth.modelProviders.modelSaveFailed":"Failed to save model","auth.modelProviders.badgeDefault":"default","auth.modelProviders.badgeCustomConfig":"custom config","auth.modelProviders.ariaEnabled":"Enabled","auth.modelProviders.ariaEditModelConfig":"Edit model config","auth.modelProviders.ariaRemoveModel":"Remove {{modelId}}","auth.modelProviders.ariaDefaultNotRemovable":"Default model cannot be removed","auth.modelProviders.defaultModelTitle":"Default model","auth.modelProviders.defaultModelHelp":"Used wherever something needs a model and none is chosen: an agent with no model configured, the personal assistant, an eval run with no judge model, and reading an image.","auth.modelProviders.defaultModelPlaceholder":"Not set \u2014 the deployment's default model is used","auth.modelProviders.defaultModelEmpty":"Add a provider and its models first","auth.modelProviders.defaultModelUpdated":"Default model updated","auth.modelProviders.defaultModelFailed":"Failed to set the default model","auth.error.passwordMismatch":"Passwords do not match","auth.error.registerFailed":"Registration failed","auth.error.invalidCredentials":"Invalid email or password","auth.error.generic":"Something went wrong. Please try again.","auth.error.loginFailed":"Login failed","auth.error.unauthorized":"Unauthorized","auth.error.selectTenantFailed":"Failed to select tenant","auth.error.fetchTenantsFailed":"Failed to fetch tenants","auth.error.fetchUsersFailed":"Failed to fetch users","auth.error.refreshUserFailed":"Failed to refresh user","auth.error.changePasswordFailed":"Failed to change password","auth.success.registered":"Registration successful!"},a={messages:o};export{a as default,o as messages};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./embed-page-chunk-QBTAJ2YI.js";var o={"auth.login.title":"\u6B22\u8FCE\u56DE\u6765","auth.login.subtitle":"\u767B\u5F55\u4F60\u7684\u8D26\u53F7","auth.login.submit":"\u767B\u5F55","auth.login.forgotPassword":"\u5FD8\u8BB0\u5BC6\u7801\uFF1F","auth.login.noAccount":"\u8FD8\u6CA1\u6709\u8D26\u53F7\uFF1F","auth.login.createOne":"\u7ACB\u5373\u6CE8\u518C","auth.register.title":"\u521B\u5EFA\u8D26\u53F7","auth.register.subtitle":"\u5F00\u542F\u4F60\u7684\u4F7F\u7528\u4E4B\u65C5","auth.register.submit":"\u521B\u5EFA\u8D26\u53F7","auth.register.hasAccount":"\u5DF2\u7ECF\u6709\u8D26\u53F7\u4E86\uFF1F","auth.register.success":"\u8D26\u53F7\u521B\u5EFA\u6210\u529F","auth.changePassword.title":"\u4FEE\u6539\u5BC6\u7801","auth.changePassword.submit":"\u4FEE\u6539\u5BC6\u7801","auth.changePassword.success":"\u5BC6\u7801\u4FEE\u6539\u6210\u529F","auth.changePassword.failed":"\u4FEE\u6539\u5BC6\u7801\u5931\u8D25","auth.changePassword.currentRequired":"\u8BF7\u8F93\u5165\u5F53\u524D\u5BC6\u7801","auth.changePassword.newRequired":"\u8BF7\u8F93\u5165\u65B0\u5BC6\u7801","auth.changePassword.confirmRequired":"\u8BF7\u518D\u6B21\u8F93\u5165\u65B0\u5BC6\u7801","auth.changePassword.tooShort":"\u5BC6\u7801\u81F3\u5C11\u9700\u8981 6 \u4E2A\u5B57\u7B26","auth.field.email":"\u90AE\u7BB1","auth.field.password":"\u5BC6\u7801","auth.field.fullName":"\u59D3\u540D","auth.field.confirmPassword":"\u786E\u8BA4\u5BC6\u7801","auth.field.currentPassword":"\u5F53\u524D\u5BC6\u7801","auth.field.newPassword":"\u65B0\u5BC6\u7801","auth.field.confirmNewPassword":"\u786E\u8BA4\u65B0\u5BC6\u7801","auth.field.name":"\u540D\u79F0","auth.field.description":"\u63CF\u8FF0","auth.field.logoUrl":"Logo URL","auth.tenant.title":"\u9009\u62E9\u79DF\u6237","auth.tenant.selectTitle":"\u9009\u62E9\u79DF\u6237","auth.tenant.chooseDescription":"\u8BF7\u9009\u62E9\u8981\u7EE7\u7EED\u7684\u79DF\u6237","auth.tenant.description":"\u6B22\u8FCE\uFF0C{{name}}\uFF01\u8BF7\u9009\u62E9\u8981\u8FDB\u5165\u7684\u79DF\u6237","auth.tenant.empty.title":"\u6B22\u8FCE\uFF0C{{name}}\uFF01","auth.tenant.empty.noAccess":"\u4F60\u8FD8\u6CA1\u6709\u4EFB\u4F55\u79DF\u6237\u7684\u8BBF\u95EE\u6743\u9650\u3002","auth.tenant.empty.contactAdmin":"\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458\u4E3A\u4F60\u5206\u914D\u79DF\u6237\u3002","auth.tenant.searchPlaceholder":"\u641C\u7D22\u79DF\u6237...","auth.tenant.searchAriaLabel":"\u641C\u7D22\u79DF\u6237","auth.tenant.noMatch":"\u6CA1\u6709\u5339\u914D\u7684\u79DF\u6237","auth.tenant.noMatchHint":"\u6362\u4E2A\u5173\u952E\u8BCD\u8BD5\u8BD5\u3002","auth.tenant.showAll":"\u663E\u793A\u5168\u90E8\u79DF\u6237","auth.tenant.noWorkspaces":"\u6682\u65E0\u53EF\u7528\u5DE5\u4F5C\u533A","auth.tenant.noWorkspacesHint":"\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458\u5C06\u4F60\u52A0\u5165\u67D0\u4E2A\u79DF\u6237\u3002","auth.tenant.countOne":"\u4E2A\u79DF\u6237","auth.tenant.countOther":"\u4E2A\u79DF\u6237","auth.tenant.logout":"\u9000\u51FA\u767B\u5F55","auth.tenant.editTitle":"\u7F16\u8F91\u79DF\u6237","auth.tenantSettings.title":"\u79DF\u6237\u8BBE\u7F6E","auth.tenantSettings.general":"\u901A\u7528","auth.tenantSettings.save":"\u4FDD\u5B58\u8BBE\u7F6E","auth.tenantSettings.updated":"\u79DF\u6237\u5DF2\u66F4\u65B0","auth.tenantSettings.updateFailed":"\u66F4\u65B0\u79DF\u6237\u5931\u8D25","auth.tenantSettings.namePlaceholder":"\u79DF\u6237\u540D\u79F0","auth.tenantSettings.nameRequired":"\u8BF7\u8F93\u5165\u79DF\u6237\u540D\u79F0","auth.tenantSettings.descriptionPlaceholder":"\u7B80\u8981\u63CF\u8FF0","auth.tenantSettings.logoUrlHelp":"\u4F8B\u5982 https://example.com/logo.png \u6216 data:image/png;base64,iVBORw...","auth.tenantSettings.coordinatorMentionLabel":"\u534F\u8C03\u8005\u63D0\u53CA\u540D","auth.tenantSettings.coordinatorMentionHelp":"\u7FA4\u804A\u534F\u8C03\u673A\u5668\u4EBA\u4F7F\u7528\u7684\u6807\u8BC6\uFF08\u4F8B\u5982 @room-coordinator\uFF09\u3002\u5C0F\u5199\uFF1B2\u201332 \u4E2A\u5B57\u7B26\uFF1B\u4EC5\u9650\u5B57\u6BCD/\u6570\u5B57/_/-\uFF0C\u4EE5\u5B57\u6BCD\u5F00\u5934\u3002\u4EC5\u5BF9\u65B0\u521B\u5EFA\u7684\u7FA4\u7EC4\u623F\u95F4\u751F\u6548\u3002","auth.tenantSettings.coordinatorMentionInvalid":"\u5C0F\u5199\uFF1B2\u201332 \u4E2A\u5B57\u7B26\uFF1B\u4EE5\u5B57\u6BCD\u5F00\u5934","auth.user.profile":"\u4E2A\u4EBA\u8D44\u6599","auth.user.settings":"\u8BBE\u7F6E","auth.user.changePassword":"\u4FEE\u6539\u5BC6\u7801","auth.user.logout":"\u9000\u51FA\u767B\u5F55","auth.user.notifications":"\u901A\u77E5","auth.user.language":"\u8BED\u8A00","auth.user.editTenant":"\u7F16\u8F91\u79DF\u6237","auth.user.switchTenant":"\u5207\u6362\u79DF\u6237","auth.user.currentWorkspace":"\u5F53\u524D\u5DE5\u4F5C\u533A","auth.user.loggingOut":"\u6B63\u5728\u9000\u51FA\u767B\u5F55...","auth.protected.title":"\u9700\u8981\u767B\u5F55","auth.protected.description":"\u8BF7\u767B\u5F55\u540E\u8BBF\u95EE\u6B64\u9875\u9762\u3002","auth.notifications.on":"\u5F00\u542F","auth.notifications.off":"\u5173\u95ED","auth.tenantLogo.alt":"{{name}} \u7684\u6807\u5FD7","auth.tenantLogo.altFallback":"\u79DF\u6237\u6807\u5FD7","auth.appSwitcher.title":"\u5207\u6362\u5E94\u7528","auth.appSwitcher.search":"\u641C\u7D22\u5E94\u7528","auth.appSwitcher.empty":"\u6682\u65E0\u5DF2\u6CE8\u518C\u7684\u5E94\u7528","auth.appSwitcher.current":"\u5F53\u524D","auth.modelProviders.title":"\u6A21\u578B\u670D\u52A1\u5546","auth.modelProviders.add":"\u6DFB\u52A0\u670D\u52A1\u5546","auth.modelProviders.apiKey":"API Key","auth.modelProviders.baseUrl":"Base URL","auth.modelProviders.modelName":"\u6A21\u578B\u540D\u79F0","auth.modelProviders.edit":"\u7F16\u8F91\u670D\u52A1\u5546","auth.modelProviders.deleteTitle":"\u5220\u9664\u6A21\u578B\u670D\u52A1\u5546","auth.modelProviders.loadFailed":"\u52A0\u8F7D\u6A21\u578B\u670D\u52A1\u5546\u5931\u8D25","auth.modelProviders.empty":"\u6682\u65E0\u6A21\u578B\u670D\u52A1\u5546","auth.modelProviders.emptyHint":"\u70B9\u51FB\u300C\u6DFB\u52A0\u670D\u52A1\u5546\u300D\u63A5\u5165\u4E00\u4E2A\u4E0A\u6E38","auth.modelProviders.namePlaceholder":"\u4F8B\u5982 openai-prod","auth.modelProviders.nameHelp":"\u5728\u672C\u79DF\u6237\u5185\u552F\u4E00\u3002\u4F1A\u4F5C\u4E3A\u6A21\u578B key \u7684\u524D\u7F00\u5C55\u793A\u3002","auth.modelProviders.displayName":"\u663E\u793A\u540D\u79F0","auth.modelProviders.displayNamePlaceholder":"\u4F8B\u5982 OpenAI (production)","auth.modelProviders.baseUrlPlaceholder":"\u4F8B\u5982 https://api.openai.com/v1","auth.modelProviders.baseUrlHelp":"\u53EA\u586B\u57FA\u7840\u5730\u5740 \u2014 \u4E0D\u8981\u586B /v1/models \u6216 /v1/chat/completions \u8FD9\u7C7B\u5B8C\u6574\u7AEF\u70B9\u8DEF\u5F84\uFF1B\u7F51\u5173\u4F1A\u81EA\u884C\u62FC\u63A5\u8DEF\u5F84\u3002\u4EFB\u4F55\u517C\u5BB9 OpenAI \u7684\u4E0A\u6E38\u90FD\u53EF\u4EE5\uFF0C\u5305\u62EC\u79C1\u6709\u5730\u5740\u4E0A\u81EA\u5EFA\u7684 vLLM \u6216 Ollama\u3002","auth.modelProviders.testLatency":"\u6D4B\u8BD5\u5EF6\u8FDF","auth.modelProviders.listModels":"\u5217\u51FA\u6A21\u578B","auth.modelProviders.enabledCount":"\u5DF2\u542F\u7528 {{enabled}} / {{total}}","auth.modelProviders.keyConfigured":"\u5DF2\u914D\u7F6E \u2014 \u4E0D\u5C55\u793A","auth.modelProviders.keyReplacedOnSave":"\u4FDD\u5B58\u540E\u65B0\u5BC6\u94A5\u4F1A\u66FF\u6362\u5DF2\u5B58\u50A8\u7684\u5BC6\u94A5\u3002","auth.modelProviders.keyStoredOnServer":"\u670D\u52A1\u5668\u5DF2\u5B58\u50A8\u4E00\u4E2A\u5BC6\u94A5\uFF0C\u4E14\u4E0D\u4F1A\u56DE\u4F20\u3002","auth.modelProviders.keyStoredOnServerHint":"\u670D\u52A1\u5668\u5DF2\u5B58\u50A8\u4E00\u4E2A\u5BC6\u94A5\uFF08\u4EE5 {{hint}} \u7ED3\u5C3E\uFF09\uFF0C\u4E14\u4E0D\u4F1A\u56DE\u4F20\u3002","auth.modelProviders.replaceKey":"\u66FF\u6362\u5BC6\u94A5","auth.modelProviders.keyNotStored":"\u53EF\u9009\u3002\u65E0\u9700\u8BA4\u8BC1\u7684\u670D\u52A1\u53EF\u7559\u7A7A \u2014\u2014 \u4F8B\u5982\u81EA\u5EFA\u7684 Ollama\u3001vLLM \u6216 LM Studio\u3002\u52A0\u5BC6\u5B58\u50A8\uFF0C\u4E14\u4E0D\u4F1A\u56DE\u4F20\u7ED9\u6D4F\u89C8\u5668\u3002","auth.modelProviders.requestProtocol":"\u8BF7\u6C42\u534F\u8BAE","auth.modelProviders.requestProtocolHelp":"\u51B3\u5B9A\u8BF7\u6C42\u7684\u8DEF\u7531\u548C\u8BF7\u6C42\u4F53\u3002Chat Completions \u4F1A\u628A messages \u53D1\u5230 /v1/chat/completions\uFF1BResponses API \u4F1A\u628A input \u53D1\u5230 /v1/responses\u3002\u9009\u9519\u4F1A\u8868\u73B0\u4E3A\u53C2\u6570\u65E0\u6CD5\u8BC6\u522B\u3001\u8DEF\u7531\u4E0D\u5B58\u5728\uFF0C\u6216\u65E0\u9650\u91CD\u8BD5\u3002","auth.modelProviders.styleChatCompletions":"Chat Completions\uFF08/v1/chat/completions\uFF09","auth.modelProviders.styleResponses":"Responses\uFF08/v1/responses\uFF09","auth.modelProviders.saveProvider":"\u4FDD\u5B58\u670D\u52A1\u5546","auth.modelProviders.createProvider":"\u521B\u5EFA\u670D\u52A1\u5546","auth.modelProviders.templateHint":"\u9009\u62E9\u4E00\u4E2A\u670D\u52A1\u5546\u4EE5\u9884\u586B\u5176 Base URL\uFF0C\u6216\u9009\u62E9\u300C\u81EA\u5B9A\u4E49\u300D\u81EA\u884C\u586B\u5199\u5168\u90E8\u5185\u5BB9\u3002\u4E4B\u540E\u6BCF\u4E2A\u5B57\u6BB5\u90FD\u4ECD\u53EF\u7F16\u8F91\u3002","auth.modelProviders.templateCustom":"\u81EA\u5B9A\u4E49","auth.modelProviders.templateOllama":"Ollama\uFF08\u672C\u5730\uFF09","auth.modelProviders.templateVllm":"vLLM\uFF08\u672C\u5730\uFF09","auth.modelProviders.templateLmstudio":"LM Studio\uFF08\u672C\u5730\uFF09","auth.modelProviders.syncApiModels":"\u540C\u6B65 API \u6A21\u578B","auth.modelProviders.saveSelection":"\u4FDD\u5B58\u9009\u62E9","auth.modelProviders.selectAllNew":"\u5168\u9009\u65B0\u589E\u9879","auth.modelProviders.clear":"\u6E05\u7A7A","auth.modelProviders.newSelected":"\u5DF2\u9009 {{selected}} / {{total}} \u4E2A\u65B0\u589E\u9879","auth.modelProviders.droppedBanner":"{{count}} \u4E2A\u5DF2\u4ECE\u4E0A\u6E38\u4E0B\u67B6 \u2014 \u4FDD\u7559\u5E76\u6807\u8BB0\uFF0C\u4E0D\u5220\u9664","auth.modelProviders.droppedUpstream":"\u5DF2\u4ECE\u4E0A\u6E38\u4E0B\u67B6","auth.modelProviders.configured":"\u5DF2\u914D\u7F6E","auth.modelProviders.readingUpstream":"\u6B63\u5728\u8BFB\u53D6\u4E0A\u6E38\u6A21\u578B\u5217\u8868\u2026","auth.modelProviders.noModelsYet":"\u6682\u65E0\u6A21\u578B\u3002\u4F7F\u7528\u300C\u540C\u6B65 API \u6A21\u578B\u300D\u62C9\u53D6\u5217\u8868\uFF0C\u6216\u624B\u52A8\u6DFB\u52A0\u4E00\u4E2A\u3002","auth.modelProviders.remove":"\u79FB\u9664","auth.modelProviders.removeModelTitle":"\u79FB\u9664\u300C{{modelId}}\u300D\uFF1F","auth.modelProviders.referencesStopResolving":"\u4EFB\u4F55\u5F15\u7528\u5B83\u7684\u667A\u80FD\u4F53\u6216\u8BC4\u6D4B\u914D\u7F6E\u90FD\u5C06\u65E0\u6CD5\u89E3\u6790\u3002","auth.modelProviders.referencesStopResolvingPlural":"\u4EFB\u4F55\u5F15\u7528\u5B83\u4EEC\u7684\u667A\u80FD\u4F53\u6216\u8BC4\u6D4B\u914D\u7F6E\u90FD\u5C06\u65E0\u6CD5\u89E3\u6790\u3002","auth.modelProviders.removeDefaultModel":"\u8FD9\u662F\u8BE5\u79DF\u6237\u7684\u9ED8\u8BA4\u6A21\u578B\u3002\u8BF7\u5148\u5C06\u9ED8\u8BA4\u6A21\u578B\u6539\u4E3A\u5176\u5B83\u6A21\u578B\uFF0C\u518D\u79FB\u9664\u5B83\u3002","auth.modelProviders.removed":"\u6A21\u578B\u5DF2\u79FB\u9664","auth.modelProviders.removeFailed":"\u79FB\u9664\u6A21\u578B\u5931\u8D25","auth.modelProviders.models":"\u6A21\u578B","auth.modelProviders.modelsFor":"\u6A21\u578B \u2014 {{name}}","auth.modelProviders.modelsAdded":"\u5DF2\u6DFB\u52A0 {{count}} \u4E2A\u6A21\u578B","auth.modelProviders.modelsAddedTo":"\u5DF2\u5411 {{name}} \u6DFB\u52A0 {{count}} \u4E2A\u6A21\u578B","auth.modelProviders.noNewModels":"\u6CA1\u6709\u65B0\u589E\u6A21\u578B","auth.modelProviders.noNewModelsFor":"{{name}} \u6CA1\u6709\u65B0\u589E\u6A21\u578B","auth.modelProviders.saveModelsFailed":"\u4FDD\u5B58\u6A21\u578B\u5931\u8D25","auth.modelProviders.nameAndBaseUrlRequired":"\u540D\u79F0\u548C Base URL \u4E3A\u5FC5\u586B\u9879","auth.modelProviders.replacementKeyRequired":"\u8BF7\u8F93\u5165\u66FF\u6362\u7528\u7684\u5BC6\u94A5\uFF0C\u6216\u53D6\u6D88\u66FF\u6362","auth.modelProviders.created":"\u6A21\u578B\u670D\u52A1\u5546\u5DF2\u521B\u5EFA","auth.modelProviders.updated":"\u6A21\u578B\u670D\u52A1\u5546\u5DF2\u66F4\u65B0","auth.modelProviders.deleted":"\u6A21\u578B\u670D\u52A1\u5546\u5DF2\u5220\u9664","auth.modelProviders.saveFailed":"\u4FDD\u5B58\u6A21\u578B\u670D\u52A1\u5546\u5931\u8D25","auth.modelProviders.updateFailed":"\u66F4\u65B0\u670D\u52A1\u5546\u5931\u8D25","auth.modelProviders.deleteFailed":"\u5220\u9664\u6A21\u578B\u670D\u52A1\u5546\u5931\u8D25","auth.modelProviders.probeFailed":"\u63A2\u6D4B\u5931\u8D25","auth.modelProviders.modelCount":"{{count}} \u4E2A\u6A21\u578B\uFF08\u5DF2\u542F\u7528 {{enabled}} \u4E2A\uFF09","auth.modelProviders.disabledSuffix":" \xB7 \u5DF2\u7981\u7528","auth.modelProviders.deleteConfirm":"\u5220\u9664 {{name}}\uFF1F","auth.modelProviders.deleteAlsoModels":"\u8FD9\u4E5F\u4F1A\u5220\u9664\u5B83\u63D0\u4F9B\u7684 {{count}} \u4E2A\u6A21\u578B\u3002","auth.modelProviders.probeFailure.authFailed":"\u4E0A\u6E38\u62D2\u7EDD\u4E86\u8FD9\u7EC4\u51ED\u636E\uFF08401/403\uFF09\u3002\u8BF7\u68C0\u67E5 API Key \u662F\u5426\u6B63\u786E\u3001\u6709\u6548\uFF0C\u4E14\u6709\u6743\u8C03\u7528\u8BE5\u670D\u52A1\u3002","auth.modelProviders.probeFailure.unreachable":"\u65E0\u6CD5\u8BBF\u95EE\u8BE5 Base URL\u3002\u901A\u5E38\u662F\u62FC\u5199\u9519\u8BEF\uFF0C\u6216\u628A\u5B8C\u6574\u7AEF\u70B9\u8DEF\u5F84\u586B\u5230\u4E86\u57FA\u7840\u5730\u5740\u7684\u4F4D\u7F6E\u3002","auth.modelProviders.probeFailure.redirectBlocked":"\u4E0A\u6E38\u8FD4\u56DE\u4E86\u91CD\u5B9A\u5411\u3002\u8BF7\u76F4\u63A5\u586B\u5199\u6700\u7EC8\u5730\u5740 \u2014 \u7F51\u5173\u4E0D\u4F1A\u8DDF\u968F\u91CD\u5B9A\u5411\u3002","auth.modelProviders.probeFailure.timeout":"\u4E0A\u6E38\u672A\u53CA\u65F6\u54CD\u5E94\u3002\u670D\u52A1\u53EF\u80FD\u5DF2\u4E0D\u53EF\u7528\uFF0C\u6216\u7F51\u7EDC\u8F83\u6162\u3002","auth.modelProviders.probeFailure.rateLimited":"\u4E0A\u6E38\u5BF9\u8BF7\u6C42\u505A\u4E86\u9650\u6D41\uFF08429\uFF09\u3002\u8BF7\u7A0D\u540E\u91CD\u8BD5\u3002","auth.modelProviders.probeFailure.invalidResponse":"\u4E0A\u6E38\u6709\u54CD\u5E94\uFF0C\u4F46\u8FD4\u56DE\u7684\u4E0D\u662F\u6A21\u578B\u5217\u8868\u3002\u8BF7\u786E\u8BA4\u8BE5\u5730\u5740\u63D0\u4F9B\u517C\u5BB9 OpenAI \u7684 /v1/models\u3002","auth.modelProviders.probeFailure.generic":"\u8BF7\u68C0\u67E5 Base URL \u548C API Key\uFF0C\u5E76\u786E\u8BA4\u8BF7\u6C42\u534F\u8BAE\u4E0E\u4E0A\u6E38\u63D0\u4F9B\u7684\u534F\u8BAE\u4E00\u81F4\u3002","auth.modelProviders.visionTitle":"\u89C6\u89C9\u7406\u89E3","auth.modelProviders.visionEnabled":"\u5DF2\u5F00\u542F","auth.modelProviders.visionDisabled":"\u672A\u5F00\u542F","auth.modelProviders.visionHelp":"\u5177\u5907\u56FE\u50CF\u7406\u89E3\u80FD\u529B\u3002\u672A\u5F00\u542F\u65F6\uFF0C\u667A\u80FD\u4F53\u5728\u63A5\u6536\u56FE\u7247\u3001\u8BBE\u8BA1\u7A3F\u6216\u622A\u5C4F\u65F6\u4F1A\u76F4\u63A5\u62D2\u7EDD\u6267\u884C\u3002","auth.modelProviders.visionTurnOn":"\u5F00\u542F\u89C6\u89C9","auth.modelProviders.visionTurnOff":"\u5173\u95ED\u89C6\u89C9","auth.modelProviders.visionAriaOn":"\u5DF2\u5F00\u542F\u89C6\u89C9\u3002\u70B9\u51FB\u5173\u95ED\u3002","auth.modelProviders.visionAriaOff":"\u672A\u5F00\u542F\u89C6\u89C9\u3002\u70B9\u51FB\u5F00\u542F\u3002","auth.modelProviders.visionMarked":"\u5DF2\u6807\u8BB0\u4E3A\u53EF\u8BFB\u56FE","auth.modelProviders.visionCleared":"\u5DF2\u6E05\u9664\u8BFB\u56FE\u80FD\u529B","auth.modelProviders.visionUpdateFailed":"\u66F4\u65B0\u6A21\u578B\u5931\u8D25","auth.modelProviders.addModel":"\u6DFB\u52A0\u6A21\u578B","auth.modelProviders.editModel":"\u7F16\u8F91\u6A21\u578B","auth.modelProviders.modelIdLabel":"\u6A21\u578B ID","auth.modelProviders.modelIdHelp":"\u5FC5\u987B\u4E0E\u4E0A\u6E38\u547D\u540D\u5B8C\u5168\u4E00\u81F4 \u2014\u2014 \u4E0D\u4E00\u81F4\u4F1A\u5728\u8C03\u7528\u65F6\u62A5\u300Cmodel not found\u300D\u3002\u5B83\u6309\u539F\u6837\u53D1\u9001\uFF1A\u4E0D\u63D0\u4F9B\u6A21\u578B\u5217\u8868\u7684\u4E0A\u6E38\u6CA1\u6709\u53EF\u4F9B\u6821\u9A8C\u7684\u4F9D\u636E\u3002","auth.modelProviders.extraConfigLabel":"\u989D\u5916\u914D\u7F6E","auth.modelProviders.extraConfigHelp":"\u4F1A\u5408\u5E76\u5230\u670D\u52A1\u5546\u914D\u7F6E\u4E4B\u4E0A\u7684 JSON \u5BF9\u8C61 \u2014\u2014 temperature\u3001maxTokens\u3001modelKwargs \u7B49\u3002\u7559\u7A7A\u8868\u793A\u4E0D\u505A\u6A21\u578B\u7EA7\u914D\u7F6E\u3002\u5B83\u4E0D\u80FD\u6539\u53D8\u8BF7\u6C42\u53BB\u5411\uFF1A\u670D\u52A1\u5546\u7684\u5730\u5740\u4E0E\u51ED\u636E\u59CB\u7EC8\u4F18\u5148\u3002","auth.modelProviders.modelIdRequired":"\u6A21\u578B ID \u4E3A\u5FC5\u586B\u9879","auth.modelProviders.extraInvalidJson":"\u989D\u5916\u914D\u7F6E\u4E0D\u662F\u5408\u6CD5\u7684 JSON","auth.modelProviders.extraNotObject":"\u989D\u5916\u914D\u7F6E\u5FC5\u987B\u662F JSON \u5BF9\u8C61","auth.modelProviders.modelAdded":"\u6A21\u578B\u5DF2\u6DFB\u52A0","auth.modelProviders.modelUpdated":"\u6A21\u578B\u5DF2\u66F4\u65B0","auth.modelProviders.modelSaveFailed":"\u4FDD\u5B58\u6A21\u578B\u5931\u8D25","auth.modelProviders.badgeDefault":"\u9ED8\u8BA4","auth.modelProviders.badgeCustomConfig":"\u81EA\u5B9A\u4E49\u914D\u7F6E","auth.modelProviders.ariaEnabled":"\u5DF2\u542F\u7528","auth.modelProviders.ariaEditModelConfig":"\u7F16\u8F91\u6A21\u578B\u914D\u7F6E","auth.modelProviders.ariaRemoveModel":"\u79FB\u9664 {{modelId}}","auth.modelProviders.ariaDefaultNotRemovable":"\u9ED8\u8BA4\u6A21\u578B\u4E0D\u53EF\u79FB\u9664","auth.modelProviders.defaultModelTitle":"\u9ED8\u8BA4\u6A21\u578B","auth.modelProviders.defaultModelHelp":"\u5728\u9700\u8981\u6A21\u578B\u4F46\u672A\u6307\u5B9A\u65F6\u4F7F\u7528\uFF1A\u672A\u914D\u7F6E\u6A21\u578B\u7684\u667A\u80FD\u4F53\u3001\u4E2A\u4EBA\u52A9\u624B\u3001\u672A\u6307\u5B9A\u8BC4\u59D4\u6A21\u578B\u7684\u8BC4\u6D4B\u8FD0\u884C\uFF0C\u4EE5\u53CA\u8BFB\u53D6\u56FE\u7247\u3002","auth.modelProviders.defaultModelPlaceholder":"\u672A\u8BBE\u7F6E \u2014\u2014 \u5C06\u4F7F\u7528\u90E8\u7F72\u7EA7\u9ED8\u8BA4\u6A21\u578B","auth.modelProviders.defaultModelEmpty":"\u8BF7\u5148\u6DFB\u52A0\u670D\u52A1\u5546\u53CA\u5176\u6A21\u578B","auth.modelProviders.defaultModelUpdated":"\u9ED8\u8BA4\u6A21\u578B\u5DF2\u66F4\u65B0","auth.modelProviders.defaultModelFailed":"\u8BBE\u7F6E\u9ED8\u8BA4\u6A21\u578B\u5931\u8D25","auth.error.passwordMismatch":"\u4E24\u6B21\u8F93\u5165\u7684\u5BC6\u7801\u4E0D\u4E00\u81F4","auth.error.registerFailed":"\u6CE8\u518C\u5931\u8D25","auth.error.invalidCredentials":"\u90AE\u7BB1\u6216\u5BC6\u7801\u9519\u8BEF","auth.error.generic":"\u51FA\u9519\u4E86\uFF0C\u8BF7\u91CD\u8BD5\u3002","auth.error.loginFailed":"\u767B\u5F55\u5931\u8D25","auth.error.unauthorized":"\u672A\u6388\u6743","auth.error.selectTenantFailed":"\u9009\u62E9\u79DF\u6237\u5931\u8D25","auth.error.fetchTenantsFailed":"\u83B7\u53D6\u79DF\u6237\u5217\u8868\u5931\u8D25","auth.error.fetchUsersFailed":"\u83B7\u53D6\u7528\u6237\u5217\u8868\u5931\u8D25","auth.error.refreshUserFailed":"\u5237\u65B0\u7528\u6237\u4FE1\u606F\u5931\u8D25","auth.error.changePasswordFailed":"\u4FEE\u6539\u5BC6\u7801\u5931\u8D25","auth.success.registered":"\u6CE8\u518C\u6210\u529F\uFF01"},a={messages:o};export{a as default,o as messages};
|
|
1
|
+
import"./embed-page-chunk-QBTAJ2YI.js";var o={"auth.login.title":"\u6B22\u8FCE\u56DE\u6765","auth.login.subtitle":"\u767B\u5F55\u4F60\u7684\u8D26\u53F7","auth.login.submit":"\u767B\u5F55","auth.login.forgotPassword":"\u5FD8\u8BB0\u5BC6\u7801\uFF1F","auth.login.noAccount":"\u8FD8\u6CA1\u6709\u8D26\u53F7\uFF1F","auth.login.createOne":"\u7ACB\u5373\u6CE8\u518C","auth.register.title":"\u521B\u5EFA\u8D26\u53F7","auth.register.subtitle":"\u5F00\u542F\u4F60\u7684\u4F7F\u7528\u4E4B\u65C5","auth.register.submit":"\u521B\u5EFA\u8D26\u53F7","auth.register.hasAccount":"\u5DF2\u7ECF\u6709\u8D26\u53F7\u4E86\uFF1F","auth.register.success":"\u8D26\u53F7\u521B\u5EFA\u6210\u529F","auth.changePassword.title":"\u4FEE\u6539\u5BC6\u7801","auth.changePassword.submit":"\u4FEE\u6539\u5BC6\u7801","auth.changePassword.success":"\u5BC6\u7801\u4FEE\u6539\u6210\u529F","auth.changePassword.failed":"\u4FEE\u6539\u5BC6\u7801\u5931\u8D25","auth.changePassword.currentRequired":"\u8BF7\u8F93\u5165\u5F53\u524D\u5BC6\u7801","auth.changePassword.newRequired":"\u8BF7\u8F93\u5165\u65B0\u5BC6\u7801","auth.changePassword.confirmRequired":"\u8BF7\u518D\u6B21\u8F93\u5165\u65B0\u5BC6\u7801","auth.changePassword.tooShort":"\u5BC6\u7801\u81F3\u5C11\u9700\u8981 6 \u4E2A\u5B57\u7B26","auth.field.email":"\u90AE\u7BB1","auth.field.password":"\u5BC6\u7801","auth.field.fullName":"\u59D3\u540D","auth.field.confirmPassword":"\u786E\u8BA4\u5BC6\u7801","auth.field.currentPassword":"\u5F53\u524D\u5BC6\u7801","auth.field.newPassword":"\u65B0\u5BC6\u7801","auth.field.confirmNewPassword":"\u786E\u8BA4\u65B0\u5BC6\u7801","auth.field.name":"\u540D\u79F0","auth.field.description":"\u63CF\u8FF0","auth.field.logoUrl":"Logo URL","auth.tenant.title":"\u9009\u62E9\u79DF\u6237","auth.tenant.selectTitle":"\u9009\u62E9\u79DF\u6237","auth.tenant.chooseDescription":"\u8BF7\u9009\u62E9\u8981\u7EE7\u7EED\u7684\u79DF\u6237","auth.tenant.description":"\u6B22\u8FCE\uFF0C{{name}}\uFF01\u8BF7\u9009\u62E9\u8981\u8FDB\u5165\u7684\u79DF\u6237","auth.tenant.empty.title":"\u6B22\u8FCE\uFF0C{{name}}\uFF01","auth.tenant.empty.noAccess":"\u4F60\u8FD8\u6CA1\u6709\u4EFB\u4F55\u79DF\u6237\u7684\u8BBF\u95EE\u6743\u9650\u3002","auth.tenant.empty.contactAdmin":"\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458\u4E3A\u4F60\u5206\u914D\u79DF\u6237\u3002","auth.tenant.searchPlaceholder":"\u641C\u7D22\u79DF\u6237...","auth.tenant.searchAriaLabel":"\u641C\u7D22\u79DF\u6237","auth.tenant.noMatch":"\u6CA1\u6709\u5339\u914D\u7684\u79DF\u6237","auth.tenant.noMatchHint":"\u6362\u4E2A\u5173\u952E\u8BCD\u8BD5\u8BD5\u3002","auth.tenant.showAll":"\u663E\u793A\u5168\u90E8\u79DF\u6237","auth.tenant.noWorkspaces":"\u6682\u65E0\u53EF\u7528\u5DE5\u4F5C\u533A","auth.tenant.noWorkspacesHint":"\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458\u5C06\u4F60\u52A0\u5165\u67D0\u4E2A\u79DF\u6237\u3002","auth.tenant.countOne":"\u4E2A\u79DF\u6237","auth.tenant.countOther":"\u4E2A\u79DF\u6237","auth.tenant.logout":"\u9000\u51FA\u767B\u5F55","auth.tenant.editTitle":"\u7F16\u8F91\u79DF\u6237","auth.tenantSettings.title":"\u79DF\u6237\u8BBE\u7F6E","auth.tenantSettings.general":"\u901A\u7528","auth.tenantSettings.save":"\u4FDD\u5B58\u8BBE\u7F6E","auth.tenantSettings.updated":"\u79DF\u6237\u5DF2\u66F4\u65B0","auth.tenantSettings.updateFailed":"\u66F4\u65B0\u79DF\u6237\u5931\u8D25","auth.tenantSettings.namePlaceholder":"\u79DF\u6237\u540D\u79F0","auth.tenantSettings.nameRequired":"\u8BF7\u8F93\u5165\u79DF\u6237\u540D\u79F0","auth.tenantSettings.descriptionPlaceholder":"\u7B80\u8981\u63CF\u8FF0","auth.tenantSettings.logoUrlHelp":"\u4F8B\u5982 https://example.com/logo.png \u6216 data:image/png;base64,iVBORw...","auth.tenantSettings.coordinatorMentionLabel":"\u534F\u8C03\u8005\u63D0\u53CA\u540D","auth.tenantSettings.coordinatorMentionHelp":"\u7FA4\u804A\u534F\u8C03\u673A\u5668\u4EBA\u4F7F\u7528\u7684\u6807\u8BC6\uFF08\u4F8B\u5982 @room-coordinator\uFF09\u3002\u5C0F\u5199\uFF1B2\u201332 \u4E2A\u5B57\u7B26\uFF1B\u4EC5\u9650\u5B57\u6BCD/\u6570\u5B57/_/-\uFF0C\u4EE5\u5B57\u6BCD\u5F00\u5934\u3002\u4EC5\u5BF9\u65B0\u521B\u5EFA\u7684\u7FA4\u7EC4\u623F\u95F4\u751F\u6548\u3002","auth.tenantSettings.coordinatorMentionInvalid":"\u5C0F\u5199\uFF1B2\u201332 \u4E2A\u5B57\u7B26\uFF1B\u4EE5\u5B57\u6BCD\u5F00\u5934","auth.user.profile":"\u4E2A\u4EBA\u8D44\u6599","auth.user.settings":"\u8BBE\u7F6E","auth.user.changePassword":"\u4FEE\u6539\u5BC6\u7801","auth.user.logout":"\u9000\u51FA\u767B\u5F55","auth.user.notifications":"\u901A\u77E5","auth.user.language":"\u8BED\u8A00","auth.user.editTenant":"\u7F16\u8F91\u79DF\u6237","auth.user.switchTenant":"\u5207\u6362\u79DF\u6237","auth.user.currentWorkspace":"\u5F53\u524D\u5DE5\u4F5C\u533A","auth.user.loggingOut":"\u6B63\u5728\u9000\u51FA\u767B\u5F55...","auth.protected.title":"\u9700\u8981\u767B\u5F55","auth.protected.description":"\u8BF7\u767B\u5F55\u540E\u8BBF\u95EE\u6B64\u9875\u9762\u3002","auth.notifications.on":"\u5F00\u542F","auth.notifications.off":"\u5173\u95ED","auth.tenantLogo.alt":"{{name}} \u7684\u6807\u5FD7","auth.tenantLogo.altFallback":"\u79DF\u6237\u6807\u5FD7","auth.appSwitcher.title":"\u5207\u6362\u5E94\u7528","auth.appSwitcher.search":"\u641C\u7D22\u5E94\u7528","auth.appSwitcher.empty":"\u6682\u65E0\u5DF2\u6CE8\u518C\u7684\u5E94\u7528","auth.appSwitcher.current":"\u5F53\u524D","auth.modelProviders.title":"\u6A21\u578B\u670D\u52A1\u5546","auth.modelProviders.add":"\u6DFB\u52A0\u670D\u52A1\u5546","auth.modelProviders.apiKey":"API Key","auth.modelProviders.baseUrl":"Base URL","auth.modelProviders.modelName":"\u6A21\u578B\u540D\u79F0","auth.modelProviders.edit":"\u7F16\u8F91\u670D\u52A1\u5546","auth.modelProviders.deleteTitle":"\u5220\u9664\u6A21\u578B\u670D\u52A1\u5546","auth.modelProviders.loadFailed":"\u52A0\u8F7D\u6A21\u578B\u670D\u52A1\u5546\u5931\u8D25","auth.modelProviders.empty":"\u6682\u65E0\u6A21\u578B\u670D\u52A1\u5546","auth.modelProviders.emptyHint":"\u70B9\u51FB\u300C\u6DFB\u52A0\u670D\u52A1\u5546\u300D\u63A5\u5165\u4E00\u4E2A\u4E0A\u6E38","auth.modelProviders.namePlaceholder":"\u4F8B\u5982 openai-prod","auth.modelProviders.nameHelp":"\u5728\u672C\u79DF\u6237\u5185\u552F\u4E00\u3002\u4F1A\u4F5C\u4E3A\u6A21\u578B key \u7684\u524D\u7F00\u5C55\u793A\u3002","auth.modelProviders.displayName":"\u663E\u793A\u540D\u79F0","auth.modelProviders.displayNamePlaceholder":"\u4F8B\u5982 OpenAI (production)","auth.modelProviders.baseUrlPlaceholder":"\u4F8B\u5982 https://api.openai.com/v1","auth.modelProviders.baseUrlHelp":"\u53EA\u586B\u57FA\u7840\u5730\u5740 \u2014 \u4E0D\u8981\u586B /v1/models \u6216 /v1/chat/completions \u8FD9\u7C7B\u5B8C\u6574\u7AEF\u70B9\u8DEF\u5F84\uFF1B\u7F51\u5173\u4F1A\u81EA\u884C\u62FC\u63A5\u8DEF\u5F84\u3002\u4EFB\u4F55\u517C\u5BB9 OpenAI \u7684\u4E0A\u6E38\u90FD\u53EF\u4EE5\uFF0C\u5305\u62EC\u79C1\u6709\u5730\u5740\u4E0A\u81EA\u5EFA\u7684 vLLM \u6216 Ollama\u3002","auth.modelProviders.testLatency":"\u6D4B\u8BD5\u5EF6\u8FDF","auth.modelProviders.listModels":"\u5217\u51FA\u6A21\u578B","auth.modelProviders.enabledCount":"\u5DF2\u542F\u7528 {{enabled}} / {{total}}","auth.modelProviders.keyConfigured":"\u5DF2\u914D\u7F6E \u2014 \u4E0D\u5C55\u793A","auth.modelProviders.keyReplacedOnSave":"\u4FDD\u5B58\u540E\u65B0\u5BC6\u94A5\u4F1A\u66FF\u6362\u5DF2\u5B58\u50A8\u7684\u5BC6\u94A5\u3002","auth.modelProviders.keyStoredOnServer":"\u670D\u52A1\u5668\u5DF2\u5B58\u50A8\u4E00\u4E2A\u5BC6\u94A5\uFF0C\u4E14\u4E0D\u4F1A\u56DE\u4F20\u3002","auth.modelProviders.keyStoredOnServerHint":"\u670D\u52A1\u5668\u5DF2\u5B58\u50A8\u4E00\u4E2A\u5BC6\u94A5\uFF08\u4EE5 {{hint}} \u7ED3\u5C3E\uFF09\uFF0C\u4E14\u4E0D\u4F1A\u56DE\u4F20\u3002","auth.modelProviders.replaceKey":"\u66FF\u6362\u5BC6\u94A5","auth.modelProviders.keyNotStored":"\u53EF\u9009\u3002\u65E0\u9700\u8BA4\u8BC1\u7684\u670D\u52A1\u53EF\u7559\u7A7A \u2014\u2014 \u4F8B\u5982\u81EA\u5EFA\u7684 Ollama\u3001vLLM \u6216 LM Studio\u3002\u52A0\u5BC6\u5B58\u50A8\uFF0C\u4E14\u4E0D\u4F1A\u56DE\u4F20\u7ED9\u6D4F\u89C8\u5668\u3002","auth.modelProviders.requestProtocol":"\u8BF7\u6C42\u534F\u8BAE","auth.modelProviders.requestProtocolHelp":"\u51B3\u5B9A\u8BF7\u6C42\u7684\u8DEF\u7531\u548C\u8BF7\u6C42\u4F53\u3002Chat Completions \u4F1A\u628A messages \u53D1\u5230 /v1/chat/completions\uFF1BResponses API \u4F1A\u628A input \u53D1\u5230 /v1/responses\u3002\u9009\u9519\u4F1A\u8868\u73B0\u4E3A\u53C2\u6570\u65E0\u6CD5\u8BC6\u522B\u3001\u8DEF\u7531\u4E0D\u5B58\u5728\uFF0C\u6216\u65E0\u9650\u91CD\u8BD5\u3002","auth.modelProviders.styleChatCompletions":"Chat Completions\uFF08/v1/chat/completions\uFF09","auth.modelProviders.styleResponses":"Responses\uFF08/v1/responses\uFF09","auth.modelProviders.saveProvider":"\u4FDD\u5B58\u670D\u52A1\u5546","auth.modelProviders.createProvider":"\u521B\u5EFA\u670D\u52A1\u5546","auth.modelProviders.templateHint":"\u9009\u62E9\u4E00\u4E2A\u670D\u52A1\u5546\u4EE5\u9884\u586B\u5176 Base URL\uFF0C\u6216\u9009\u62E9\u300C\u81EA\u5B9A\u4E49\u300D\u81EA\u884C\u586B\u5199\u5168\u90E8\u5185\u5BB9\u3002\u4E4B\u540E\u6BCF\u4E2A\u5B57\u6BB5\u90FD\u4ECD\u53EF\u7F16\u8F91\u3002","auth.modelProviders.templateCustom":"\u81EA\u5B9A\u4E49","auth.modelProviders.templateOllama":"Ollama\uFF08\u672C\u5730\uFF09","auth.modelProviders.templateVllm":"vLLM\uFF08\u672C\u5730\uFF09","auth.modelProviders.templateLmstudio":"LM Studio\uFF08\u672C\u5730\uFF09","auth.modelProviders.syncApiModels":"\u540C\u6B65 API \u6A21\u578B","auth.modelProviders.saveSelection":"\u4FDD\u5B58\u9009\u62E9","auth.modelProviders.selectAllNew":"\u5168\u9009\u65B0\u589E\u9879","auth.modelProviders.clear":"\u6E05\u7A7A","auth.modelProviders.newSelected":"\u5DF2\u9009 {{selected}} / {{total}} \u4E2A\u65B0\u589E\u9879","auth.modelProviders.droppedBanner":"{{count}} \u4E2A\u5DF2\u4ECE\u4E0A\u6E38\u4E0B\u67B6 \u2014 \u4FDD\u7559\u5E76\u6807\u8BB0\uFF0C\u4E0D\u5220\u9664","auth.modelProviders.droppedUpstream":"\u5DF2\u4ECE\u4E0A\u6E38\u4E0B\u67B6","auth.modelProviders.configured":"\u5DF2\u914D\u7F6E","auth.modelProviders.readingUpstream":"\u6B63\u5728\u8BFB\u53D6\u4E0A\u6E38\u6A21\u578B\u5217\u8868\u2026","auth.modelProviders.noModelsYet":"\u6682\u65E0\u6A21\u578B\u3002\u4F7F\u7528\u300C\u540C\u6B65 API \u6A21\u578B\u300D\u62C9\u53D6\u5217\u8868\uFF0C\u6216\u624B\u52A8\u6DFB\u52A0\u4E00\u4E2A\u3002","auth.modelProviders.remove":"\u79FB\u9664","auth.modelProviders.removeModelTitle":"\u79FB\u9664\u300C{{modelId}}\u300D\uFF1F","auth.modelProviders.referencesStopResolving":"\u4EFB\u4F55\u5F15\u7528\u5B83\u7684\u667A\u80FD\u4F53\u6216\u8BC4\u6D4B\u914D\u7F6E\u90FD\u5C06\u65E0\u6CD5\u89E3\u6790\u3002","auth.modelProviders.referencesStopResolvingPlural":"\u4EFB\u4F55\u5F15\u7528\u5B83\u4EEC\u7684\u667A\u80FD\u4F53\u6216\u8BC4\u6D4B\u914D\u7F6E\u90FD\u5C06\u65E0\u6CD5\u89E3\u6790\u3002","auth.modelProviders.removeDefaultModel":"\u8FD9\u662F\u8BE5\u79DF\u6237\u7684\u9ED8\u8BA4\u6A21\u578B\u3002\u8BF7\u5148\u5C06\u9ED8\u8BA4\u6A21\u578B\u6539\u4E3A\u5176\u5B83\u6A21\u578B\uFF0C\u518D\u79FB\u9664\u5B83\u3002","auth.modelProviders.removed":"\u6A21\u578B\u5DF2\u79FB\u9664","auth.modelProviders.removeFailed":"\u79FB\u9664\u6A21\u578B\u5931\u8D25","auth.modelProviders.models":"\u6A21\u578B","auth.modelProviders.modelsFor":"\u6A21\u578B \u2014 {{name}}","auth.modelProviders.modelsAdded":"\u5DF2\u6DFB\u52A0 {{count}} \u4E2A\u6A21\u578B","auth.modelProviders.modelsAddedTo":"\u5DF2\u5411 {{name}} \u6DFB\u52A0 {{count}} \u4E2A\u6A21\u578B","auth.modelProviders.noNewModels":"\u6CA1\u6709\u65B0\u589E\u6A21\u578B","auth.modelProviders.noNewModelsFor":"{{name}} \u6CA1\u6709\u65B0\u589E\u6A21\u578B","auth.modelProviders.saveModelsFailed":"\u4FDD\u5B58\u6A21\u578B\u5931\u8D25","auth.modelProviders.nameAndBaseUrlRequired":"\u540D\u79F0\u548C Base URL \u4E3A\u5FC5\u586B\u9879","auth.modelProviders.replacementKeyRequired":"\u8BF7\u8F93\u5165\u66FF\u6362\u7528\u7684\u5BC6\u94A5\uFF0C\u6216\u53D6\u6D88\u66FF\u6362","auth.modelProviders.created":"\u6A21\u578B\u670D\u52A1\u5546\u5DF2\u521B\u5EFA","auth.modelProviders.updated":"\u6A21\u578B\u670D\u52A1\u5546\u5DF2\u66F4\u65B0","auth.modelProviders.deleted":"\u6A21\u578B\u670D\u52A1\u5546\u5DF2\u5220\u9664","auth.modelProviders.saveFailed":"\u4FDD\u5B58\u6A21\u578B\u670D\u52A1\u5546\u5931\u8D25","auth.modelProviders.updateFailed":"\u66F4\u65B0\u670D\u52A1\u5546\u5931\u8D25","auth.modelProviders.deleteFailed":"\u5220\u9664\u6A21\u578B\u670D\u52A1\u5546\u5931\u8D25","auth.modelProviders.probeFailed":"\u63A2\u6D4B\u5931\u8D25","auth.modelProviders.modelCount":"{{count}} \u4E2A\u6A21\u578B\uFF08\u5DF2\u542F\u7528 {{enabled}} \u4E2A\uFF09","auth.modelProviders.disabledSuffix":" \xB7 \u5DF2\u7981\u7528","auth.modelProviders.deleteConfirm":"\u5220\u9664 {{name}}\uFF1F","auth.modelProviders.deleteAlsoModels":"\u8FD9\u4E5F\u4F1A\u5220\u9664\u5B83\u63D0\u4F9B\u7684 {{count}} \u4E2A\u6A21\u578B\u3002","auth.modelProviders.probeFailure.authFailed":"\u4E0A\u6E38\u62D2\u7EDD\u4E86\u8FD9\u7EC4\u51ED\u636E\uFF08401/403\uFF09\u3002\u8BF7\u68C0\u67E5 API Key \u662F\u5426\u6B63\u786E\u3001\u6709\u6548\uFF0C\u4E14\u6709\u6743\u8C03\u7528\u8BE5\u670D\u52A1\u3002","auth.modelProviders.probeFailure.unreachable":"\u65E0\u6CD5\u8BBF\u95EE\u8BE5 Base URL\u3002\u901A\u5E38\u662F\u62FC\u5199\u9519\u8BEF\uFF0C\u6216\u628A\u5B8C\u6574\u7AEF\u70B9\u8DEF\u5F84\u586B\u5230\u4E86\u57FA\u7840\u5730\u5740\u7684\u4F4D\u7F6E\u3002","auth.modelProviders.probeFailure.redirectBlocked":"\u4E0A\u6E38\u8FD4\u56DE\u4E86\u91CD\u5B9A\u5411\u3002\u8BF7\u76F4\u63A5\u586B\u5199\u6700\u7EC8\u5730\u5740 \u2014 \u7F51\u5173\u4E0D\u4F1A\u8DDF\u968F\u91CD\u5B9A\u5411\u3002","auth.modelProviders.probeFailure.timeout":"\u4E0A\u6E38\u672A\u53CA\u65F6\u54CD\u5E94\u3002\u670D\u52A1\u53EF\u80FD\u5DF2\u4E0D\u53EF\u7528\uFF0C\u6216\u7F51\u7EDC\u8F83\u6162\u3002","auth.modelProviders.probeFailure.rateLimited":"\u4E0A\u6E38\u5BF9\u8BF7\u6C42\u505A\u4E86\u9650\u6D41\uFF08429\uFF09\u3002\u8BF7\u7A0D\u540E\u91CD\u8BD5\u3002","auth.modelProviders.probeFailure.invalidResponse":"\u4E0A\u6E38\u6709\u54CD\u5E94\uFF0C\u4F46\u8FD4\u56DE\u7684\u4E0D\u662F\u6A21\u578B\u5217\u8868\u3002\u8BF7\u786E\u8BA4\u8BE5\u5730\u5740\u63D0\u4F9B\u517C\u5BB9 OpenAI \u7684 /v1/models\u3002","auth.modelProviders.probeFailure.generic":"\u8BF7\u68C0\u67E5 Base URL \u548C API Key\uFF0C\u5E76\u786E\u8BA4\u8BF7\u6C42\u534F\u8BAE\u4E0E\u4E0A\u6E38\u63D0\u4F9B\u7684\u534F\u8BAE\u4E00\u81F4\u3002","auth.modelProviders.visionTitle":"\u89C6\u89C9\u7406\u89E3","auth.modelProviders.visionEnabled":"\u5DF2\u5F00\u542F","auth.modelProviders.visionDisabled":"\u672A\u5F00\u542F","auth.modelProviders.visionHelp":"\u5177\u5907\u56FE\u50CF\u7406\u89E3\u80FD\u529B\u3002\u672A\u5F00\u542F\u65F6\uFF0C\u667A\u80FD\u4F53\u5728\u63A5\u6536\u56FE\u7247\u3001\u8BBE\u8BA1\u7A3F\u6216\u622A\u5C4F\u65F6\u4F1A\u76F4\u63A5\u62D2\u7EDD\u6267\u884C\u3002","auth.modelProviders.visionTurnOn":"\u5F00\u542F\u89C6\u89C9","auth.modelProviders.visionTurnOff":"\u5173\u95ED\u89C6\u89C9","auth.modelProviders.visionAriaOn":"\u5DF2\u5F00\u542F\u89C6\u89C9\u3002\u70B9\u51FB\u5173\u95ED\u3002","auth.modelProviders.visionAriaOff":"\u672A\u5F00\u542F\u89C6\u89C9\u3002\u70B9\u51FB\u5F00\u542F\u3002","auth.modelProviders.visionMarked":"\u5DF2\u6807\u8BB0\u4E3A\u53EF\u8BFB\u56FE","auth.modelProviders.visionCleared":"\u5DF2\u6E05\u9664\u8BFB\u56FE\u80FD\u529B","auth.modelProviders.visionUpdateFailed":"\u66F4\u65B0\u6A21\u578B\u5931\u8D25","auth.modelProviders.thinkingTitle":"\u601D\u8003","auth.modelProviders.thinkingOn":"\u5DF2\u5F00\u542F","auth.modelProviders.thinkingOff":"\u5DF2\u5173\u95ED","auth.modelProviders.thinkingHelp":"\u6A21\u578B\u662F\u5426\u5148\u63A8\u7406\u518D\u4F5C\u7B54\u3002\u6B64\u5904\u6DFB\u52A0\u7684\u6A21\u578B\u9ED8\u8BA4\u5173\u95ED\uFF1B\u9700\u8981\u6A21\u578B\u5148\u601D\u8003\u65F6\u518D\u5F00\u542F\u3002","auth.modelProviders.thinkingTurnOn":"\u5F00\u542F\u601D\u8003","auth.modelProviders.thinkingTurnOff":"\u5173\u95ED\u601D\u8003","auth.modelProviders.thinkingAriaOn":"\u5DF2\u5F00\u542F\u601D\u8003\u3002\u70B9\u51FB\u5173\u95ED\u3002","auth.modelProviders.thinkingAriaOff":"\u5DF2\u5173\u95ED\u601D\u8003\u3002\u70B9\u51FB\u5F00\u542F\u3002","auth.modelProviders.thinkingMarked":"\u5DF2\u4E3A\u8BE5\u6A21\u578B\u5F00\u542F\u601D\u8003","auth.modelProviders.thinkingCleared":"\u5DF2\u4E3A\u8BE5\u6A21\u578B\u5173\u95ED\u601D\u8003","auth.modelProviders.thinkingUpdateFailed":"\u66F4\u65B0\u6A21\u578B\u5931\u8D25","auth.modelProviders.kindLabel":"\u6A21\u578B\u7C7B\u578B","auth.modelProviders.kindChat":"\u5BF9\u8BDD","auth.modelProviders.kindEmbedding":"\u5411\u91CF\u5316","auth.modelProviders.kindAsr":"\u8BED\u97F3\u8BC6\u522B","auth.modelProviders.kindHelp":"\u5BF9\u8BDD\u6A21\u578B\u7528\u4E8E\u56DE\u7B54\u63D0\u793A\u8BCD\uFF0C\u4F1A\u51FA\u73B0\u5728\u667A\u80FD\u4F53\u6A21\u578B\u9009\u62E9\u5668\u91CC\uFF1B\u5411\u91CF\u5316\u6A21\u578B\u4F9B\u96C6\u5408\u4F7F\u7528\uFF1B\u8BED\u97F3\u6A21\u578B\u7528\u4E8E\u8F6C\u5199\u97F3\u9891\u3002\u4E09\u8005\u5B58\u653E\u5728\u540C\u4E00\u4E2A\u76EE\u5F55\uFF0C\u4F46\u4E0D\u4F1A\u51FA\u73B0\u5728\u9519\u8BEF\u7684\u9009\u62E9\u5668\u91CC\u3002","auth.modelProviders.embeddingTestAria":"\u5BF9\u8BE5\u6A21\u578B\u53D1\u8D77\u4E00\u6B21\u5411\u91CF\u5316\u8BF7\u6C42","auth.modelProviders.embeddingTestOk":"\u5411\u91CF\u5316\u6B63\u5E38 \u2014\u2014 {{dimensions}} \u7EF4\uFF0C{{latency}}ms","auth.modelProviders.embeddingTestNoVector":"{{latency}}ms \u5185\u53EF\u8FBE\uFF0C\u4F46\u54CD\u5E94\u91CC\u6CA1\u6709\u5411\u91CF","auth.modelProviders.embeddingTestFailed":"\u5411\u91CF\u5316\u6D4B\u8BD5\u5931\u8D25{{reason}}","auth.modelProviders.addModel":"\u6DFB\u52A0\u6A21\u578B","auth.modelProviders.editModel":"\u7F16\u8F91\u6A21\u578B","auth.modelProviders.modelIdLabel":"\u6A21\u578B ID","auth.modelProviders.modelIdHelp":"\u5FC5\u987B\u4E0E\u4E0A\u6E38\u547D\u540D\u5B8C\u5168\u4E00\u81F4 \u2014\u2014 \u4E0D\u4E00\u81F4\u4F1A\u5728\u8C03\u7528\u65F6\u62A5\u300Cmodel not found\u300D\u3002\u5B83\u6309\u539F\u6837\u53D1\u9001\uFF1A\u4E0D\u63D0\u4F9B\u6A21\u578B\u5217\u8868\u7684\u4E0A\u6E38\u6CA1\u6709\u53EF\u4F9B\u6821\u9A8C\u7684\u4F9D\u636E\u3002","auth.modelProviders.extraConfigLabel":"\u989D\u5916\u914D\u7F6E","auth.modelProviders.extraConfigHelp":"\u4F1A\u5408\u5E76\u5230\u670D\u52A1\u5546\u914D\u7F6E\u4E4B\u4E0A\u7684 JSON \u5BF9\u8C61 \u2014\u2014 temperature\u3001maxTokens\u3001modelKwargs \u7B49\u3002\u7559\u7A7A\u8868\u793A\u4E0D\u505A\u6A21\u578B\u7EA7\u914D\u7F6E\u3002\u5B83\u4E0D\u80FD\u6539\u53D8\u8BF7\u6C42\u53BB\u5411\uFF1A\u670D\u52A1\u5546\u7684\u5730\u5740\u4E0E\u51ED\u636E\u59CB\u7EC8\u4F18\u5148\u3002","auth.modelProviders.modelIdRequired":"\u6A21\u578B ID \u4E3A\u5FC5\u586B\u9879","auth.modelProviders.extraInvalidJson":"\u989D\u5916\u914D\u7F6E\u4E0D\u662F\u5408\u6CD5\u7684 JSON","auth.modelProviders.extraNotObject":"\u989D\u5916\u914D\u7F6E\u5FC5\u987B\u662F JSON \u5BF9\u8C61","auth.modelProviders.modelAdded":"\u6A21\u578B\u5DF2\u6DFB\u52A0","auth.modelProviders.modelUpdated":"\u6A21\u578B\u5DF2\u66F4\u65B0","auth.modelProviders.modelSaveFailed":"\u4FDD\u5B58\u6A21\u578B\u5931\u8D25","auth.modelProviders.badgeDefault":"\u9ED8\u8BA4","auth.modelProviders.badgeCustomConfig":"\u81EA\u5B9A\u4E49\u914D\u7F6E","auth.modelProviders.ariaEnabled":"\u5DF2\u542F\u7528","auth.modelProviders.ariaEditModelConfig":"\u7F16\u8F91\u6A21\u578B\u914D\u7F6E","auth.modelProviders.ariaRemoveModel":"\u79FB\u9664 {{modelId}}","auth.modelProviders.ariaDefaultNotRemovable":"\u9ED8\u8BA4\u6A21\u578B\u4E0D\u53EF\u79FB\u9664","auth.modelProviders.defaultModelTitle":"\u9ED8\u8BA4\u6A21\u578B","auth.modelProviders.defaultModelHelp":"\u5728\u9700\u8981\u6A21\u578B\u4F46\u672A\u6307\u5B9A\u65F6\u4F7F\u7528\uFF1A\u672A\u914D\u7F6E\u6A21\u578B\u7684\u667A\u80FD\u4F53\u3001\u4E2A\u4EBA\u52A9\u624B\u3001\u672A\u6307\u5B9A\u8BC4\u59D4\u6A21\u578B\u7684\u8BC4\u6D4B\u8FD0\u884C\uFF0C\u4EE5\u53CA\u8BFB\u53D6\u56FE\u7247\u3002","auth.modelProviders.defaultModelPlaceholder":"\u672A\u8BBE\u7F6E \u2014\u2014 \u5C06\u4F7F\u7528\u90E8\u7F72\u7EA7\u9ED8\u8BA4\u6A21\u578B","auth.modelProviders.defaultModelEmpty":"\u8BF7\u5148\u6DFB\u52A0\u670D\u52A1\u5546\u53CA\u5176\u6A21\u578B","auth.modelProviders.defaultModelUpdated":"\u9ED8\u8BA4\u6A21\u578B\u5DF2\u66F4\u65B0","auth.modelProviders.defaultModelFailed":"\u8BBE\u7F6E\u9ED8\u8BA4\u6A21\u578B\u5931\u8D25","auth.error.passwordMismatch":"\u4E24\u6B21\u8F93\u5165\u7684\u5BC6\u7801\u4E0D\u4E00\u81F4","auth.error.registerFailed":"\u6CE8\u518C\u5931\u8D25","auth.error.invalidCredentials":"\u90AE\u7BB1\u6216\u5BC6\u7801\u9519\u8BEF","auth.error.generic":"\u51FA\u9519\u4E86\uFF0C\u8BF7\u91CD\u8BD5\u3002","auth.error.loginFailed":"\u767B\u5F55\u5931\u8D25","auth.error.unauthorized":"\u672A\u6388\u6743","auth.error.selectTenantFailed":"\u9009\u62E9\u79DF\u6237\u5931\u8D25","auth.error.fetchTenantsFailed":"\u83B7\u53D6\u79DF\u6237\u5217\u8868\u5931\u8D25","auth.error.fetchUsersFailed":"\u83B7\u53D6\u7528\u6237\u5217\u8868\u5931\u8D25","auth.error.refreshUserFailed":"\u5237\u65B0\u7528\u6237\u4FE1\u606F\u5931\u8D25","auth.error.changePasswordFailed":"\u4FEE\u6539\u5BC6\u7801\u5931\u8D25","auth.success.registered":"\u6CE8\u518C\u6210\u529F\uFF01"},a={messages:o};export{a as default,o as messages};
|
package/dist/embed/embed-page.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{b as h}from"./embed-page-chunk-
|
|
1
|
+
import{b as h}from"./embed-page-chunk-VXWRPT33.js";import"./embed-page-chunk-U4XSGC4Y.js";import"./embed-page-chunk-GSCVATOA.js";import{a as E}from"./embed-page-chunk-QV7QAJ4N.js";import"./embed-page-chunk-VW3NF5NT.js";import"./embed-page-chunk-QULNM5O2.js";import{a as b}from"./embed-page-chunk-MHGVD4EV.js";import"./embed-page-chunk-R5QL57JJ.js";import"./embed-page-chunk-QOWM3LMZ.js";import"./embed-page-chunk-EUOOO2LS.js";import"./embed-page-chunk-5JDQ456X.js";import{b as f}from"./embed-page-chunk-HYPA2PHA.js";import{c as z,f as l}from"./embed-page-chunk-QBTAJ2YI.js";var x=z(m=>{"use strict";var y=b();m.createRoot=y.createRoot,m.hydrateRoot=y.hydrateRoot;var te});var T=l(x()),M=l(b());var w="axiom-web-app-embed";var _=["axiom:hello","axiom:identity","axiom:send","axiom:config"];function R(e,t){return{source:w,version:1,type:e,payload:t}}var B=6,H=40,Q=500;function q(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=e,n=Object.keys(t);return n.length!==2||!n.includes("label")||!n.includes("text")?!1:typeof t.label=="string"&&t.label.length>=1&&t.label.length<=H&&typeof t.text=="string"&&t.text.length>=1&&t.text.length<=Q}function G(e){if(!Array.isArray(e))return[];let t=[];for(let n of e){if(t.length>=B)break;q(n)&&t.push({label:n.label,text:n.text})}return t}function C(e){if(typeof e!="object"||e===null)return null;let t=e,n={};if(typeof t.welcome=="string"&&t.welcome.length>0&&(n.welcome=t.welcome),Array.isArray(t.quicks)){let a=G(t.quicks);(a.length>0||t.quicks.length===0)&&(n.quicks=a)}return n.welcome===void 0&&n.quicks===void 0?null:n}function A(e,t){if(typeof e!="object"||e===null)return null;let n=e;return n.source!==w||n.version!==1||typeof n.type!="string"||!t.includes(n.type)?null:{type:n.type,payload:n.payload}}var r=l(E()),S=/^[A-Za-z0-9._:@-]{1,128}$/,v="axiom-embed-root",k="axiom-embed-style",P=32768,j=`
|
|
2
2
|
html, body, #${v} { height: 100%; margin: 0; }
|
|
3
3
|
.axiom-embed-fill { height: 100% !important; min-height: 0 !important; }
|
|
4
4
|
.axiom-embed-card { display: flex; align-items: center; justify-content: center; height: 100%; margin: 0; font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; font-size: 14px; color: #64748b; padding: 24px; box-sizing: border-box; text-align: center; }
|
package/dist/index.d.mts
CHANGED
|
@@ -158,9 +158,24 @@ declare class MessageRouter {
|
|
|
158
158
|
dispatch(message: InboundMessage, options?: InternalMessageDispatchOptions): Promise<DispatchResult>;
|
|
159
159
|
private dispatchInternal;
|
|
160
160
|
private runMiddlewares;
|
|
161
|
-
/**
|
|
161
|
+
/**
|
|
162
|
+
* 流式中途刷新的节流间隔与上限。
|
|
163
|
+
*
|
|
164
|
+
* 企业微信单会话限制 30 条/分钟(含占位、收尾和卡片)。2500ms 约 24 次
|
|
165
|
+
* 刷新/分钟,再加最多 3 条生命周期消息仍留有余量。
|
|
166
|
+
*/
|
|
162
167
|
private static readonly STREAM_CHUNK_INTERVAL_MS;
|
|
163
168
|
private static readonly MAX_STREAM_CHUNKS;
|
|
169
|
+
/** 流式回复的硬超时:企微要求 10 分钟内 `finish=true`,留 2 分钟余量。 */
|
|
170
|
+
private static readonly STREAM_TIMEOUT_MS;
|
|
171
|
+
/**
|
|
172
|
+
* `MESSAGE_COMPLETED` 后等待 `reply:ready` 的宽限。
|
|
173
|
+
*
|
|
174
|
+
* 正常完成通常由 `reply:ready` 用权威全文收尾;但最终 AI 消息为空时
|
|
175
|
+
* (例如模型只调用了 `wecom_card`、没有产出文字)不会触发 `reply:ready`,
|
|
176
|
+
* 这里兜底自行收尾,避免流挂住、卡片丢失。
|
|
177
|
+
*/
|
|
178
|
+
private static readonly COMPLETION_GRACE_MS;
|
|
164
179
|
/**
|
|
165
180
|
* 消费 agent 的逐块输出,把**中途**内容推给支持流式的渠道适配器。
|
|
166
181
|
*
|
|
@@ -211,6 +226,23 @@ interface ModelProviderServiceDeps {
|
|
|
211
226
|
has(tenantId: string, modelKey: string): boolean;
|
|
212
227
|
remove(tenantId: string, modelKey: string): boolean;
|
|
213
228
|
listRegistered(tenantId: string): RegisteredModel[];
|
|
229
|
+
/**
|
|
230
|
+
* Drop this replica's cached clients for one provider, plus the tenant's
|
|
231
|
+
* resolved default.
|
|
232
|
+
*
|
|
233
|
+
* The registry's positive entries have no TTL — once a key is resolved the
|
|
234
|
+
* store is never read again — so a changed `extra`, apiKey or baseURL is
|
|
235
|
+
* otherwise invisible until the process restarts. Evicting is enough:
|
|
236
|
+
* resolution re-materialises the row from the shared store, which is how a
|
|
237
|
+
* replica that never saw the change already works.
|
|
238
|
+
*
|
|
239
|
+
* Optional so existing constructions keep working, but a caller that omits
|
|
240
|
+
* it silently loses change propagation.
|
|
241
|
+
*
|
|
242
|
+
* @param providerId clears that `${providerId}/` prefix; omit to clear only
|
|
243
|
+
* the tenant default.
|
|
244
|
+
*/
|
|
245
|
+
evictProviderCache?(tenantId: string, providerId?: string): void;
|
|
214
246
|
/**
|
|
215
247
|
* Drop the registry's cached "this tenant has no default model" answer.
|
|
216
248
|
*
|
|
@@ -315,14 +347,17 @@ declare class ModelProviderService {
|
|
|
315
347
|
*/
|
|
316
348
|
setModels(userId: string | undefined, tenantId: string, id: string, selection: ModelSelection[]): Promise<ModelProviderPublicEntry>;
|
|
317
349
|
/**
|
|
318
|
-
* Give a tenant's sole model the default flag.
|
|
350
|
+
* Give a tenant's sole **chat** model the default flag.
|
|
351
|
+
*
|
|
352
|
+
* A tenant with exactly one runnable chat model has an obvious default, and
|
|
353
|
+
* saying so is what keeps the invariant the rest of the feature leans on: a
|
|
354
|
+
* tenant either has no chat model at all — and falls back to the deployment's
|
|
355
|
+
* default — or has a default, which cannot be deleted. Without this a tenant
|
|
356
|
+
* could sit with one model and no default, and deleting that model would
|
|
357
|
+
* leave nothing behind.
|
|
319
358
|
*
|
|
320
|
-
*
|
|
321
|
-
*
|
|
322
|
-
* either has no models at all — and falls back to the deployment's default —
|
|
323
|
-
* or has a default, which cannot be deleted. Without this a tenant could sit
|
|
324
|
-
* with one model and no default, and deleting that model would leave nothing
|
|
325
|
-
* behind.
|
|
359
|
+
* Chat only: a bare `"default"` key resolves to a chat client, so an
|
|
360
|
+
* embedding or ASR row must never be marked as one.
|
|
326
361
|
*
|
|
327
362
|
* Deliberately narrow: more than one model is the tenant's choice to make,
|
|
328
363
|
* and a disabled model is not a candidate for "the model this tenant runs".
|
package/dist/index.d.ts
CHANGED
|
@@ -158,9 +158,24 @@ declare class MessageRouter {
|
|
|
158
158
|
dispatch(message: InboundMessage, options?: InternalMessageDispatchOptions): Promise<DispatchResult>;
|
|
159
159
|
private dispatchInternal;
|
|
160
160
|
private runMiddlewares;
|
|
161
|
-
/**
|
|
161
|
+
/**
|
|
162
|
+
* 流式中途刷新的节流间隔与上限。
|
|
163
|
+
*
|
|
164
|
+
* 企业微信单会话限制 30 条/分钟(含占位、收尾和卡片)。2500ms 约 24 次
|
|
165
|
+
* 刷新/分钟,再加最多 3 条生命周期消息仍留有余量。
|
|
166
|
+
*/
|
|
162
167
|
private static readonly STREAM_CHUNK_INTERVAL_MS;
|
|
163
168
|
private static readonly MAX_STREAM_CHUNKS;
|
|
169
|
+
/** 流式回复的硬超时:企微要求 10 分钟内 `finish=true`,留 2 分钟余量。 */
|
|
170
|
+
private static readonly STREAM_TIMEOUT_MS;
|
|
171
|
+
/**
|
|
172
|
+
* `MESSAGE_COMPLETED` 后等待 `reply:ready` 的宽限。
|
|
173
|
+
*
|
|
174
|
+
* 正常完成通常由 `reply:ready` 用权威全文收尾;但最终 AI 消息为空时
|
|
175
|
+
* (例如模型只调用了 `wecom_card`、没有产出文字)不会触发 `reply:ready`,
|
|
176
|
+
* 这里兜底自行收尾,避免流挂住、卡片丢失。
|
|
177
|
+
*/
|
|
178
|
+
private static readonly COMPLETION_GRACE_MS;
|
|
164
179
|
/**
|
|
165
180
|
* 消费 agent 的逐块输出,把**中途**内容推给支持流式的渠道适配器。
|
|
166
181
|
*
|
|
@@ -211,6 +226,23 @@ interface ModelProviderServiceDeps {
|
|
|
211
226
|
has(tenantId: string, modelKey: string): boolean;
|
|
212
227
|
remove(tenantId: string, modelKey: string): boolean;
|
|
213
228
|
listRegistered(tenantId: string): RegisteredModel[];
|
|
229
|
+
/**
|
|
230
|
+
* Drop this replica's cached clients for one provider, plus the tenant's
|
|
231
|
+
* resolved default.
|
|
232
|
+
*
|
|
233
|
+
* The registry's positive entries have no TTL — once a key is resolved the
|
|
234
|
+
* store is never read again — so a changed `extra`, apiKey or baseURL is
|
|
235
|
+
* otherwise invisible until the process restarts. Evicting is enough:
|
|
236
|
+
* resolution re-materialises the row from the shared store, which is how a
|
|
237
|
+
* replica that never saw the change already works.
|
|
238
|
+
*
|
|
239
|
+
* Optional so existing constructions keep working, but a caller that omits
|
|
240
|
+
* it silently loses change propagation.
|
|
241
|
+
*
|
|
242
|
+
* @param providerId clears that `${providerId}/` prefix; omit to clear only
|
|
243
|
+
* the tenant default.
|
|
244
|
+
*/
|
|
245
|
+
evictProviderCache?(tenantId: string, providerId?: string): void;
|
|
214
246
|
/**
|
|
215
247
|
* Drop the registry's cached "this tenant has no default model" answer.
|
|
216
248
|
*
|
|
@@ -315,14 +347,17 @@ declare class ModelProviderService {
|
|
|
315
347
|
*/
|
|
316
348
|
setModels(userId: string | undefined, tenantId: string, id: string, selection: ModelSelection[]): Promise<ModelProviderPublicEntry>;
|
|
317
349
|
/**
|
|
318
|
-
* Give a tenant's sole model the default flag.
|
|
350
|
+
* Give a tenant's sole **chat** model the default flag.
|
|
351
|
+
*
|
|
352
|
+
* A tenant with exactly one runnable chat model has an obvious default, and
|
|
353
|
+
* saying so is what keeps the invariant the rest of the feature leans on: a
|
|
354
|
+
* tenant either has no chat model at all — and falls back to the deployment's
|
|
355
|
+
* default — or has a default, which cannot be deleted. Without this a tenant
|
|
356
|
+
* could sit with one model and no default, and deleting that model would
|
|
357
|
+
* leave nothing behind.
|
|
319
358
|
*
|
|
320
|
-
*
|
|
321
|
-
*
|
|
322
|
-
* either has no models at all — and falls back to the deployment's default —
|
|
323
|
-
* or has a default, which cannot be deleted. Without this a tenant could sit
|
|
324
|
-
* with one model and no default, and deleting that model would leave nothing
|
|
325
|
-
* behind.
|
|
359
|
+
* Chat only: a bare `"default"` key resolves to a chat client, so an
|
|
360
|
+
* embedding or ASR row must never be marked as one.
|
|
326
361
|
*
|
|
327
362
|
* Deliberately narrow: more than one model is the tenant's choice to make,
|
|
328
363
|
* and a disabled model is not a candidate for "the model this tenant runs".
|