@tablestore/tablestore-agent-cli 0.1.7 → 0.1.8
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/dashboard-runtime/dashboard/.next/BUILD_ID +1 -1
- package/dist/dashboard-runtime/dashboard/.next/build-manifest.json +3 -3
- package/dist/dashboard-runtime/dashboard/.next/prerender-manifest.json +3 -3
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/documents/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/documents/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/qa/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/qa/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/retrieval/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/retrieval/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/settings/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/settings/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/create/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/[id]/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/new/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/messages/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/messages/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/requests/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/requests/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/search/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/search/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/settings/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/settings/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/units/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/units/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/create/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/projects/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/projects/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.html +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.html +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.rsc +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/upload/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/index.html +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/index.rsc +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/_full.segment.rsc +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/_index.segment.rsc +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.html +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.rsc +3 -3
- package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/_full.segment.rsc +3 -3
- package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/_head.segment.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/_index.segment.rsc +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/_tree.segment.rsc +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/onboarding/__PAGE__.segment.rsc +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/onboarding.segment.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/0b1r_app_(dashboard)_knowledge-base_[name]_documents_documents-client_tsx_0g2uxmt._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__09_30hi._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0kaiok7._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0l937k4._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0-dlo4s._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_01pp~xx._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/{_0476v7r._.js → _08j6p-z._.js} +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/{_0ct0n55._.js → _09eom0_._.js} +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/{_0mzxmfh._.js → _0f-may2._.js} +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0fp_nnb._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0l6jz-5._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/{_0fg6iap._.js → _0ntv66s._.js} +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0sc0tpz._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0tyxwr3._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0u9md36._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_065m1.j._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_app_(dashboard)_knowledge-base_[name]_layout-client_tsx_05momc5._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/middleware-build-manifest.js +3 -3
- package/dist/dashboard-runtime/dashboard/.next/server/pages/404.html +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/pages/500.html +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/server-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/server-reference-manifest.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0-xqk6wfme5fu.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/{0jeb9kxtd_jq..js → 00.fyg_t3xjc~.js} +1 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/01k-.wkndubwy.js +138 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/07r22x5uhjxjb.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0cbu3udngtx-v.js +4 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0h7d69g2fdgs6.js +138 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0iv0g360z0ja5.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0jf4ytf.izmzh.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/{17nx_vdk_qemm.js → 0m42mmyxmgn-i.js} +1 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0odz1whf-ozqn.css +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0ouxv_2qvf6.9.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0rbkgj._oqsb3.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0u6u.649ou67b.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0vf7~eysvh9bq.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/{09qsmnfvk8dm3.js → 0wmaq.ay~r2sn.js} +1 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/{0i5aqiffpm9jr.js → 0xb0_9t-vmo6e.js} +1 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0yp_2ea75d19v.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/{0s3mvx9_dr13c.js → 11cizim1aug~b.js} +1 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/13-2ei295hl0-.js +1 -0
- package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/knowledge-base/[name]/qa/page.tsx +23 -1
- package/dist/dashboard-runtime/dashboard/src/components/documents/doc-upload-dialog.tsx +370 -91
- package/dist/dashboard-runtime/dashboard/src/components/knowledge-base/kb-card.tsx +8 -5
- package/dist/dashboard-runtime/dashboard/src/components/knowledge-base/kb-header.tsx +18 -10
- package/dist/dashboard-runtime/dashboard/src/components/memory/memory-header.tsx +8 -12
- package/dist/dashboard-runtime/dashboard/src/components/qa/qa-chat-panel.tsx +45 -4
- package/dist/dashboard-runtime/dashboard/src/components/qa/qa-message.tsx +636 -36
- package/dist/dashboard-runtime/dashboard/src/components/shared/confirm-dialog.tsx +8 -1
- package/dist/dashboard-runtime/dashboard/src/components/shared/refresh-button.tsx +102 -86
- package/dist/dashboard-runtime/dashboard/src/hooks/use-qa-chat.ts +261 -58
- package/dist/dashboard-runtime/dashboard/src/lib/chat-message-ops.ts +76 -0
- package/dist/dashboard-runtime/dashboard/src/lib/dev-flags.ts +24 -0
- package/dist/dashboard-runtime/dashboard/src/types/llm-chat.ts +19 -0
- package/package.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0i0y9.r._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0r_6wpx._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0y8rrcu._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_02e0c00._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0doczxg._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0e9y.xc._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0ti~om_._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0~s~e-0._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/055_bo6_3nt-s.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/07l4dodn5t6l4.js +0 -4
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0a5ass8u78k90.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0j~63ld9lbb25.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0l6znnjqw.4yw.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0o-c2g8y5pw-c.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0o0i2ke2jbdvq.js +0 -138
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0u2lo2lzizxy_.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0v.hno.6q74nn.css +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/100.ax5hitxko.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/14ti2gx~1fiub.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/14vqmdm7sosj2.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/17h~onnkksf44.js +0 -138
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/186jubvt5xyuj.js +0 -1
- /package/dist/dashboard-runtime/dashboard/.next/static/{wWmSSYUu4w4mIF1R_7UoM → BGnMIk4OPjFx_qvLFMTBc}/_buildManifest.js +0 -0
- /package/dist/dashboard-runtime/dashboard/.next/static/{wWmSSYUu4w4mIF1R_7UoM → BGnMIk4OPjFx_qvLFMTBc}/_clientMiddlewareManifest.js +0 -0
- /package/dist/dashboard-runtime/dashboard/.next/static/{wWmSSYUu4w4mIF1R_7UoM → BGnMIk4OPjFx_qvLFMTBc}/_ssgManifest.js +0 -0
package/dist/dashboard-runtime/dashboard/.next/static/chunks/{09qsmnfvk8dm3.js → 0wmaq.ay~r2sn.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,37500,e=>{"use strict";var t=e.i(17635),s=e.i(87097),r=e.i(32534),n=e.i(23144),i=e.i(58859),a=class extends n.Subscribable{#e;#t=void 0;#s;#r;constructor(e,t){super(),this.#e=e,this.setOptions(t),this.bindMethods(),this.#n()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(e){let t=this.options;this.options=this.#e.defaultMutationOptions(e),(0,i.shallowEqualObjects)(this.options,t)||this.#e.getMutationCache().notify({type:"observerOptionsUpdated",mutation:this.#s,observer:this}),t?.mutationKey&&this.options.mutationKey&&(0,i.hashKey)(t.mutationKey)!==(0,i.hashKey)(this.options.mutationKey)?this.reset():this.#s?.state.status==="pending"&&this.#s.setOptions(this.options)}onUnsubscribe(){this.hasListeners()||this.#s?.removeObserver(this)}onMutationUpdate(e){this.#n(),this.#i(e)}getCurrentResult(){return this.#t}reset(){this.#s?.removeObserver(this),this.#s=void 0,this.#n(),this.#i()}mutate(e,t){return this.#r=t,this.#s?.removeObserver(this),this.#s=this.#e.getMutationCache().build(this.#e,this.options),this.#s.addObserver(this),this.#s.execute(e)}#n(){let e=this.#s?.state??(0,s.getDefaultState)();this.#t={...e,isPending:"pending"===e.status,isSuccess:"success"===e.status,isError:"error"===e.status,isIdle:"idle"===e.status,mutate:this.mutate,reset:this.reset}}#i(e){r.notifyManager.batch(()=>{if(this.#r&&this.hasListeners()){let t=this.#t.variables,s=this.#t.context,r={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};if(e?.type==="success"){try{this.#r.onSuccess?.(e.data,t,s,r)}catch(e){Promise.reject(e)}try{this.#r.onSettled?.(e.data,null,t,s,r)}catch(e){Promise.reject(e)}}else if(e?.type==="error"){try{this.#r.onError?.(e.error,t,s,r)}catch(e){Promise.reject(e)}try{this.#r.onSettled?.(void 0,e.error,t,s,r)}catch(e){Promise.reject(e)}}}this.listeners.forEach(e=>{e(this.#t)})})}},o=e.i(12984);e.s(["useMutation",0,function(e,s){let n=(0,o.useQueryClient)(s),[c]=t.useState(()=>new a(n,e));t.useEffect(()=>{c.setOptions(e)},[c,e]);let l=t.useSyncExternalStore(t.useCallback(e=>c.subscribe(r.notifyManager.batchCalls(e)),[c]),()=>c.getCurrentResult(),()=>c.getCurrentResult()),u=t.useCallback((e,t)=>{c.mutate(e,t).catch(i.noop)},[c]);if(l.error&&(0,i.shouldThrowError)(c.options.throwOnError,[l.error]))throw l.error;return{...l,mutate:u,mutateAsync:l.mutate}}],37500)},43876,50458,40870,e=>{"use strict";let t;var s=e.i(76848),r=e.i(39781),n=e.i(32534),i=e.i(44897),a=e.i(23144),o=e.i(7109),c=e.i(58859),l=e.i(48827),u=class extends a.Subscribable{constructor(e,t){super(),this.options=t,this.#e=e,this.#a=null,this.#o=(0,o.pendingThenable)(),this.bindMethods(),this.setOptions(t)}#e;#c=void 0;#l=void 0;#t=void 0;#u;#d;#o;#a;#h;#m;#p;#f;#y;#b;#v=new Set;bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){1===this.listeners.size&&(this.#c.addObserver(this),d(this.#c,this.options)?this.#x():this.updateResult(),this.#g())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return h(this.#c,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return h(this.#c,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#j(),this.#R(),this.#c.removeObserver(this)}setOptions(e){let t=this.options,s=this.#c;if(this.options=this.#e.defaultQueryOptions(e),void 0!==this.options.enabled&&"boolean"!=typeof this.options.enabled&&"function"!=typeof this.options.enabled&&"boolean"!=typeof(0,c.resolveEnabled)(this.options.enabled,this.#c))throw Error("Expected enabled to be a boolean or a callback that returns a boolean");this.#I(),this.#c.setOptions(this.options),t._defaulted&&!(0,c.shallowEqualObjects)(this.options,t)&&this.#e.getQueryCache().notify({type:"observerOptionsUpdated",query:this.#c,observer:this});let r=this.hasListeners();r&&m(this.#c,s,this.options,t)&&this.#x(),this.updateResult(),r&&(this.#c!==s||(0,c.resolveEnabled)(this.options.enabled,this.#c)!==(0,c.resolveEnabled)(t.enabled,this.#c)||(0,c.resolveStaleTime)(this.options.staleTime,this.#c)!==(0,c.resolveStaleTime)(t.staleTime,this.#c))&&this.#S();let n=this.#F();r&&(this.#c!==s||(0,c.resolveEnabled)(this.options.enabled,this.#c)!==(0,c.resolveEnabled)(t.enabled,this.#c)||n!==this.#b)&&this.#E(n)}getOptimisticResult(e){var t,s;let r=this.#e.getQueryCache().build(this.#e,e),n=this.createResult(r,e);return t=this,s=n,(0,c.shallowEqualObjects)(t.getCurrentResult(),s)||(this.#t=n,this.#d=this.options,this.#u=this.#c.state),n}getCurrentResult(){return this.#t}trackResult(e,t){return new Proxy(e,{get:(e,s)=>(this.trackProp(s),t?.(s),"promise"===s&&(this.trackProp("data"),this.options.experimental_prefetchInRender||"pending"!==this.#o.status||this.#o.reject(Error("experimental_prefetchInRender feature flag is not enabled"))),Reflect.get(e,s))})}trackProp(e){this.#v.add(e)}getCurrentQuery(){return this.#c}refetch({...e}={}){return this.fetch({...e})}fetchOptimistic(e){let t=this.#e.defaultQueryOptions(e),s=this.#e.getQueryCache().build(this.#e,t);return s.fetch().then(()=>this.createResult(s,t))}fetch(e){return this.#x({...e,cancelRefetch:e.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#t))}#x(e){this.#I();let t=this.#c.fetch(this.options,e);return e?.throwOnError||(t=t.catch(c.noop)),t}#S(){this.#j();let e=(0,c.resolveStaleTime)(this.options.staleTime,this.#c);if(r.environmentManager.isServer()||this.#t.isStale||!(0,c.isValidTimeout)(e))return;let t=(0,c.timeUntilStale)(this.#t.dataUpdatedAt,e);this.#f=l.timeoutManager.setTimeout(()=>{this.#t.isStale||this.updateResult()},t+1)}#F(){return("function"==typeof this.options.refetchInterval?this.options.refetchInterval(this.#c):this.options.refetchInterval)??!1}#E(e){this.#R(),this.#b=e,!r.environmentManager.isServer()&&!1!==(0,c.resolveEnabled)(this.options.enabled,this.#c)&&(0,c.isValidTimeout)(this.#b)&&0!==this.#b&&(this.#y=l.timeoutManager.setInterval(()=>{(this.options.refetchIntervalInBackground||s.focusManager.isFocused())&&this.#x()},this.#b))}#g(){this.#S(),this.#E(this.#F())}#j(){void 0!==this.#f&&(l.timeoutManager.clearTimeout(this.#f),this.#f=void 0)}#R(){void 0!==this.#y&&(l.timeoutManager.clearInterval(this.#y),this.#y=void 0)}createResult(e,t){let s,r=this.#c,n=this.options,a=this.#t,l=this.#u,u=this.#d,h=e!==r?e.state:this.#l,{state:f}=e,y={...f},b=!1;if(t._optimisticResults){let s=this.hasListeners(),a=!s&&d(e,t),o=s&&m(e,r,t,n);(a||o)&&(y={...y,...(0,i.fetchState)(f.data,e.options)}),"isRestoring"===t._optimisticResults&&(y.fetchStatus="idle")}let{error:v,errorUpdatedAt:x,status:g}=y;s=y.data;let j=!1;if(void 0!==t.placeholderData&&void 0===s&&"pending"===g){let e;a?.isPlaceholderData&&t.placeholderData===u?.placeholderData?(e=a.data,j=!0):e="function"==typeof t.placeholderData?t.placeholderData(this.#p?.state.data,this.#p):t.placeholderData,void 0!==e&&(g="success",s=(0,c.replaceData)(a?.data,e,t),b=!0)}if(t.select&&void 0!==s&&!j)if(a&&s===l?.data&&t.select===this.#h)s=this.#m;else try{this.#h=t.select,s=t.select(s),s=(0,c.replaceData)(a?.data,s,t),this.#m=s,this.#a=null}catch(e){this.#a=e}this.#a&&(v=this.#a,s=this.#m,x=Date.now(),g="error");let R="fetching"===y.fetchStatus,I="pending"===g,S="error"===g,F=I&&R,E=void 0!==s,T={status:g,fetchStatus:y.fetchStatus,isPending:I,isSuccess:"success"===g,isError:S,isInitialLoading:F,isLoading:F,data:s,dataUpdatedAt:y.dataUpdatedAt,error:v,errorUpdatedAt:x,failureCount:y.fetchFailureCount,failureReason:y.fetchFailureReason,errorUpdateCount:y.errorUpdateCount,isFetched:e.isFetched(),isFetchedAfterMount:y.dataUpdateCount>h.dataUpdateCount||y.errorUpdateCount>h.errorUpdateCount,isFetching:R,isRefetching:R&&!I,isLoadingError:S&&!E,isPaused:"paused"===y.fetchStatus,isPlaceholderData:b,isRefetchError:S&&E,isStale:p(e,t),refetch:this.refetch,promise:this.#o,isEnabled:!1!==(0,c.resolveEnabled)(t.enabled,e)};if(this.options.experimental_prefetchInRender){let t=void 0!==T.data,s="error"===T.status&&!t,n=e=>{s?e.reject(T.error):t&&e.resolve(T.data)},i=()=>{n(this.#o=T.promise=(0,o.pendingThenable)())},a=this.#o;switch(a.status){case"pending":e.queryHash===r.queryHash&&n(a);break;case"fulfilled":(s||T.data!==a.value)&&i();break;case"rejected":s&&T.error===a.reason||i()}}return T}updateResult(){let e=this.#t,t=this.createResult(this.#c,this.options);if(this.#u=this.#c.state,this.#d=this.options,void 0!==this.#u.data&&(this.#p=this.#c),(0,c.shallowEqualObjects)(t,e))return;this.#t=t;let s=()=>{if(!e)return!0;let{notifyOnChangeProps:t}=this.options,s="function"==typeof t?t():t;if("all"===s||!s&&!this.#v.size)return!0;let r=new Set(s??this.#v);return this.options.throwOnError&&r.add("error"),Object.keys(this.#t).some(t=>this.#t[t]!==e[t]&&r.has(t))};this.#i({listeners:s()})}#I(){let e=this.#e.getQueryCache().build(this.#e,this.options);if(e===this.#c)return;let t=this.#c;this.#c=e,this.#l=e.state,this.hasListeners()&&(t?.removeObserver(this),e.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#g()}#i(e){n.notifyManager.batch(()=>{e.listeners&&this.listeners.forEach(e=>{e(this.#t)}),this.#e.getQueryCache().notify({query:this.#c,type:"observerResultsUpdated"})})}};function d(e,t){return!1!==(0,c.resolveEnabled)(t.enabled,e)&&void 0===e.state.data&&("error"!==e.state.status||!1!==t.retryOnMount)||void 0!==e.state.data&&h(e,t,t.refetchOnMount)}function h(e,t,s){if(!1!==(0,c.resolveEnabled)(t.enabled,e)&&"static"!==(0,c.resolveStaleTime)(t.staleTime,e)){let r="function"==typeof s?s(e):s;return"always"===r||!1!==r&&p(e,t)}return!1}function m(e,t,s,r){return(e!==t||!1===(0,c.resolveEnabled)(r.enabled,e))&&(!s.suspense||"error"!==e.state.status)&&p(e,s)}function p(e,t){return!1!==(0,c.resolveEnabled)(t.enabled,e)&&e.isStaleByTime((0,c.resolveStaleTime)(t.staleTime,e))}e.s(["QueryObserver",0,u],50458),e.i(35884);var f=e.i(17635),y=e.i(12984);e.i(44501);var b=f.createContext((t=!1,{clearReset:()=>{t=!1},reset:()=>{t=!0},isReset:()=>t})),v=f.createContext(!1);v.Provider;var x=(e,t,s)=>t.fetchOptimistic(e).catch(()=>{s.clearReset()});function g(e,t,s){let i,a=f.useContext(v),o=f.useContext(b),l=(0,y.useQueryClient)(s),u=l.defaultQueryOptions(e);l.getDefaultOptions().queries?._experimental_beforeQuery?.(u);let d=l.getQueryCache().get(u.queryHash);if(u._optimisticResults=a?"isRestoring":"optimistic",u.suspense){let e=e=>"static"===e?e:Math.max(e??1e3,1e3),t=u.staleTime;u.staleTime="function"==typeof t?(...s)=>e(t(...s)):e(t),"number"==typeof u.gcTime&&(u.gcTime=Math.max(u.gcTime,1e3))}i=d?.state.error&&"function"==typeof u.throwOnError?(0,c.shouldThrowError)(u.throwOnError,[d.state.error,d]):u.throwOnError,(u.suspense||u.experimental_prefetchInRender||i)&&!o.isReset()&&(u.retryOnMount=!1),f.useEffect(()=>{o.clearReset()},[o]);let h=!l.getQueryCache().get(u.queryHash),[m]=f.useState(()=>new t(l,u)),p=m.getOptimisticResult(u),g=!a&&!1!==e.subscribed;if(f.useSyncExternalStore(f.useCallback(e=>{let t=g?m.subscribe(n.notifyManager.batchCalls(e)):c.noop;return m.updateResult(),t},[m,g]),()=>m.getCurrentResult(),()=>m.getCurrentResult()),f.useEffect(()=>{m.setOptions(u)},[u,m]),u?.suspense&&p.isPending)throw x(u,m,o);if((({result:e,errorResetBoundary:t,throwOnError:s,query:r,suspense:n})=>e.isError&&!t.isReset()&&!e.isFetching&&r&&(n&&void 0===e.data||(0,c.shouldThrowError)(s,[e.error,r])))({result:p,errorResetBoundary:o,throwOnError:u.throwOnError,query:d,suspense:u.suspense}))throw p.error;if(l.getDefaultOptions().queries?._experimental_afterQuery?.(u,p),u.experimental_prefetchInRender&&!r.environmentManager.isServer()&&p.isLoading&&p.isFetching&&!a){let e=h?x(u,m,o):d?.promise;e?.catch(c.noop).finally(()=>{m.updateResult()})}return u.notifyOnChangeProps?p:m.trackResult(p)}e.s(["useBaseQuery",0,g],40870),e.s(["useQuery",0,function(e,t){return g(e,u,t)}],43876)},45123,e=>{"use strict";var t=e.i(44501),s=e.i(17635),r=e.i(76490);let n=s.forwardRef(({className:e,...s},n)=>(0,t.jsx)("textarea",{className:(0,r.cn)("flex min-h-[60px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",e),ref:n,...s}));n.displayName="Textarea",e.s(["Textarea",0,n])},34752,e=>{"use strict";let t=(0,e.i(86620).default)("sparkles",[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]]);e.s(["Sparkles",0,t],34752)},43754,e=>{"use strict";let t=(0,e.i(86620).default)("info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);e.s(["Info",0,t],43754)},47421,e=>{"use strict";var t=e.i(44501),s=e.i(17635),r=e.i(91967),n=e.i(43250),i=e.i(77275),a=e.i(90088),o=e.i(80939),c=e.i(25486),l=e.i(17256),u=e.i(33616),d="Tabs",[h,m]=(0,n.createContextScope)(d,[i.createRovingFocusGroupScope]),p=(0,i.createRovingFocusGroupScope)(),[f,y]=h(d),b=s.forwardRef((e,s)=>{let{__scopeTabs:r,value:n,onValueChange:i,defaultValue:a,orientation:h="horizontal",dir:m,activationMode:p="automatic",...y}=e,b=(0,c.useDirection)(m),[v,x]=(0,l.useControllableState)({prop:n,onChange:i,defaultProp:a??"",caller:d});return(0,t.jsx)(f,{scope:r,baseId:(0,u.useId)(),value:v,onValueChange:x,orientation:h,dir:b,activationMode:p,children:(0,t.jsx)(o.Primitive.div,{dir:b,"data-orientation":h,...y,ref:s})})});b.displayName=d;var v="TabsList",x=s.forwardRef((e,s)=>{let{__scopeTabs:r,loop:n=!0,...a}=e,c=y(v,r),l=p(r);return(0,t.jsx)(i.Root,{asChild:!0,...l,orientation:c.orientation,dir:c.dir,loop:n,children:(0,t.jsx)(o.Primitive.div,{role:"tablist","aria-orientation":c.orientation,...a,ref:s})})});x.displayName=v;var g="TabsTrigger",j=s.forwardRef((e,s)=>{let{__scopeTabs:n,value:a,disabled:c=!1,...l}=e,u=y(g,n),d=p(n),h=S(u.baseId,a),m=F(u.baseId,a),f=a===u.value;return(0,t.jsx)(i.Item,{asChild:!0,...d,focusable:!c,active:f,children:(0,t.jsx)(o.Primitive.button,{type:"button",role:"tab","aria-selected":f,"aria-controls":m,"data-state":f?"active":"inactive","data-disabled":c?"":void 0,disabled:c,id:h,...l,ref:s,onMouseDown:(0,r.composeEventHandlers)(e.onMouseDown,e=>{c||0!==e.button||!1!==e.ctrlKey?e.preventDefault():u.onValueChange(a)}),onKeyDown:(0,r.composeEventHandlers)(e.onKeyDown,e=>{[" ","Enter"].includes(e.key)&&u.onValueChange(a)}),onFocus:(0,r.composeEventHandlers)(e.onFocus,()=>{let e="manual"!==u.activationMode;f||c||!e||u.onValueChange(a)})})})});j.displayName=g;var R="TabsContent",I=s.forwardRef((e,r)=>{let{__scopeTabs:n,value:i,forceMount:c,children:l,...u}=e,d=y(R,n),h=S(d.baseId,i),m=F(d.baseId,i),p=i===d.value,f=s.useRef(p);return s.useEffect(()=>{let e=requestAnimationFrame(()=>f.current=!1);return()=>cancelAnimationFrame(e)},[]),(0,t.jsx)(a.Presence,{present:c||p,children:({present:s})=>(0,t.jsx)(o.Primitive.div,{"data-state":p?"active":"inactive","data-orientation":d.orientation,role:"tabpanel","aria-labelledby":h,hidden:!s,id:m,tabIndex:0,...u,ref:r,style:{...e.style,animationDuration:f.current?"0s":void 0},children:s&&l})})});function S(e,t){return`${e}-trigger-${t}`}function F(e,t){return`${e}-content-${t}`}I.displayName=R;var E=e.i(76490);let T=s.forwardRef(({className:e,...s},r)=>(0,t.jsx)(x,{ref:r,className:(0,E.cn)("inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground",e),...s}));T.displayName=x.displayName;let C=s.forwardRef(({className:e,...s},r)=>(0,t.jsx)(j,{ref:r,className:(0,E.cn)("inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow",e),...s}));C.displayName=j.displayName;let Q=s.forwardRef(({className:e,...s},r)=>(0,t.jsx)(I,{ref:r,className:(0,E.cn)("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",e),...s}));Q.displayName=I.displayName,e.s(["Tabs",0,b,"TabsContent",0,Q,"TabsList",0,T,"TabsTrigger",0,C],47421)},47474,e=>{"use strict";var t=e.i(44501),s=e.i(17635),r=e.i(88310),n=e.i(80883),i=e.i(43754),a=e.i(32356);let o=a.z.string().trim().regex(/^[a-z0-9-]{1,32}$/,"名称需为 1-32 位小写字母、数字或连字符").refine(e=>"default"!==e,'名称 "default" 为保留字'),c=(e,t=512)=>a.z.string().trim().min(1,`请输入${e}`).max(t),l=(e=512)=>a.z.string().trim().max(e).optional().or(a.z.literal("")),u=a.z.object({name:o,accessKeyId:c("AccessKey ID",128),accessKeySecret:c("AccessKey Secret",512),otsEndpoint:c("OTS Endpoint",256),otsInstanceName:c("OTS 实例名",128),ossEndpoint:l(256),ossBucketName:l(128),region:l(64),activate:a.z.boolean().optional()});a.z.object({accessKeyId:l(128),accessKeySecret:l(512),otsEndpoint:l(256),otsInstanceName:l(128),ossEndpoint:l(256),ossBucketName:l(128),region:l(64),activate:a.z.boolean().optional()}).refine(e=>{let t=!!(e.accessKeyId&&e.accessKeyId.length>0);return!!(e.accessKeySecret&&e.accessKeySecret.length>0)===t},{message:"AccessKey ID 与 Secret 必须成对更新,要么同时填写、要么同时留空",path:["accessKeySecret"]});let d=a.z.object({name:o,accessKeyId:l(128),accessKeySecret:l(512),otsEndpoint:c("OTS Endpoint",256),otsInstanceName:c("OTS 实例名",128),ossEndpoint:l(256),ossBucketName:l(128),region:l(64),activate:a.z.boolean().optional()}).refine(e=>{let t=!!(e.accessKeyId&&e.accessKeyId.length>0);return!!(e.accessKeySecret&&e.accessKeySecret.length>0)===t},{message:"AccessKey ID 与 Secret 必须成对更新,要么同时填写、要么同时留空",path:["accessKeySecret"]}),h=a.z.object({token:a.z.string().trim().min(10,"Token 长度不足,无法解析").max(4096),name:o.optional(),activate:a.z.boolean().optional()});var m=e.i(42595),p=e.i(21562),f=e.i(23888),y=e.i(66473),b=e.i(47421),v=e.i(45123);let x=u.extend({otsEndpoint:a.z.string().trim().url("请输入合法的 OTS Endpoint URL"),ossEndpoint:a.z.string().trim().url("请输入合法的 OSS Endpoint URL").optional().or(a.z.literal(""))}),g=h.pick({token:!0}),j=[{value:"cn-beijing",label:"华北 2(北京)"},{value:"cn-hangzhou",label:"华东 1(杭州)"},{value:"cn-shanghai",label:"华东 2(上海)"},{value:"cn-shenzhen",label:"华南 1(深圳)"},{value:"__custom__",label:"其它(自定义)"}];e.s(["ConnectInstanceForm",0,function({mode:e,defaultValues:a,accessKeyIdPlaceholder:o,accessKeySecretPlaceholder:c,onSubmit:l,busy:u,lockName:h,submitLabel:R}){let[I,S]=(0,s.useState)("manual"),F="edit"===e,E=a?.region??"cn-hangzhou",T=(0,s.useMemo)(()=>j.some(e=>e.value===E),[E]),[C,Q]=(0,s.useState)(T?E:"__custom__"),O=(0,s.useMemo)(()=>(0,r.zodResolver)(F?d:x),[F]),w=(0,n.useForm)({resolver:O,defaultValues:{name:a?.name??"",accessKeyId:F?"":a?.accessKeyId??"",accessKeySecret:F?"":a?.accessKeySecret??"",otsEndpoint:a?.otsEndpoint??"",otsInstanceName:a?.otsInstanceName??"",ossEndpoint:a?.ossEndpoint??"",ossBucketName:a?.ossBucketName??"",region:E}}),k=(0,n.useForm)({resolver:(0,r.zodResolver)(g),defaultValues:{token:""}});async function M(e){let t={...e,ossEndpoint:e.ossEndpoint?.trim()||void 0,ossBucketName:e.ossBucketName?.trim()||void 0};await l(t)}async function K(e){let t={token:e.token.trim()};await l(t)}let N="create"===e;return(0,t.jsxs)(b.Tabs,{value:I,onValueChange:e=>S(e),className:"w-full",children:[N&&(0,t.jsxs)(b.TabsList,{className:"grid w-full grid-cols-2",children:[(0,t.jsx)(b.TabsTrigger,{value:"manual",children:"手动填写"}),(0,t.jsx)(b.TabsTrigger,{value:"token",children:"导入 Token"})]}),(0,t.jsx)(b.TabsContent,{value:"manual",className:"mt-4",children:(0,t.jsx)(p.Form,{...w,children:(0,t.jsxs)("form",{onSubmit:w.handleSubmit(M),className:"space-y-4",children:[(0,t.jsx)(p.FormField,{control:w.control,name:"name",render:({field:e})=>(0,t.jsxs)(p.FormItem,{children:[(0,t.jsx)(p.FormLabel,{children:"项目名称"}),(0,t.jsx)(p.FormControl,{children:(0,t.jsx)(f.Input,{...e,placeholder:"prod-main",disabled:h||u,autoComplete:"off"})}),(0,t.jsx)(p.FormDescription,{children:"仅用于本地区分,不会发送到服务端。"}),(0,t.jsx)(p.FormMessage,{})]})}),(0,t.jsxs)("div",{className:"grid gap-4 sm:grid-cols-2",children:[(0,t.jsx)(p.FormField,{control:w.control,name:"accessKeyId",render:({field:e})=>(0,t.jsxs)(p.FormItem,{children:[(0,t.jsx)(p.FormLabel,{children:"AccessKey ID"}),(0,t.jsx)(p.FormControl,{children:(0,t.jsx)(f.Input,{...e,autoComplete:"off",disabled:u,placeholder:F&&o?`${o} \xb7 留空表示保留`:void 0})}),F&&(0,t.jsx)(p.FormDescription,{children:"AK 与 SK 必须成对更新,留空则保留现有凭证。"}),(0,t.jsx)(p.FormMessage,{})]})}),(0,t.jsx)(p.FormField,{control:w.control,name:"accessKeySecret",render:({field:e})=>(0,t.jsxs)(p.FormItem,{children:[(0,t.jsx)(p.FormLabel,{children:"AccessKey Secret"}),(0,t.jsx)(p.FormControl,{children:(0,t.jsx)(f.Input,{...e,type:"password",autoComplete:"new-password",disabled:u})}),(0,t.jsx)(p.FormMessage,{})]})})]}),(0,t.jsxs)("div",{className:"grid gap-4 sm:grid-cols-2",children:[(0,t.jsx)(p.FormField,{control:w.control,name:"otsEndpoint",render:({field:e})=>(0,t.jsxs)(p.FormItem,{children:[(0,t.jsx)(p.FormLabel,{children:"OTS Endpoint"}),(0,t.jsx)(p.FormControl,{children:(0,t.jsx)(f.Input,{...e,placeholder:"https://xxx.cn-hangzhou.ots.aliyuncs.com",disabled:u})}),(0,t.jsx)(p.FormMessage,{})]})}),(0,t.jsx)(p.FormField,{control:w.control,name:"otsInstanceName",render:({field:e})=>(0,t.jsxs)(p.FormItem,{children:[(0,t.jsx)(p.FormLabel,{children:"OTS 实例名"}),(0,t.jsx)(p.FormControl,{children:(0,t.jsx)(f.Input,{...e,disabled:u})}),(0,t.jsx)(p.FormMessage,{})]})})]}),(0,t.jsxs)("div",{className:"flex items-start gap-2 rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--muted)/0.4)] px-3 py-2 text-xs text-[hsl(var(--muted-foreground))]",children:[(0,t.jsx)(i.Info,{className:"mt-0.5 h-3.5 w-3.5 shrink-0 text-[hsl(var(--primary))]"}),(0,t.jsx)("span",{children:"OSS 信息为可选项。若需上传文档到知识库,OSS Endpoint 与 Bucket 必填; 留空则项目只能用于查询与检索,文件上传功能将不可用。"})]}),(0,t.jsxs)("div",{className:"grid gap-4 sm:grid-cols-2",children:[(0,t.jsx)(p.FormField,{control:w.control,name:"ossEndpoint",render:({field:e})=>(0,t.jsxs)(p.FormItem,{children:[(0,t.jsx)(p.FormLabel,{children:"OSS Endpoint(可选)"}),(0,t.jsx)(p.FormControl,{children:(0,t.jsx)(f.Input,{...e,placeholder:"https://oss-cn-hangzhou.aliyuncs.com",disabled:u})}),(0,t.jsx)(p.FormMessage,{})]})}),(0,t.jsx)(p.FormField,{control:w.control,name:"ossBucketName",render:({field:e})=>(0,t.jsxs)(p.FormItem,{children:[(0,t.jsx)(p.FormLabel,{children:"OSS Bucket(可选)"}),(0,t.jsx)(p.FormControl,{children:(0,t.jsx)(f.Input,{...e,disabled:u})}),(0,t.jsx)(p.FormMessage,{})]})})]}),(0,t.jsx)(p.FormField,{control:w.control,name:"region",render:({field:e})=>(0,t.jsxs)(p.FormItem,{children:[(0,t.jsx)(p.FormLabel,{children:"Region"}),"__custom__"===C?(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(p.FormControl,{children:(0,t.jsx)(f.Input,{...e,placeholder:"cn-xxx",disabled:u})}),(0,t.jsx)(m.Button,{type:"button",variant:"outline",size:"sm",onClick:()=>{Q("cn-hangzhou"),e.onChange("cn-hangzhou")},disabled:u,children:"使用预设"})]}):(0,t.jsxs)(y.Select,{value:C,onValueChange:t=>{Q(t),"__custom__"!==t?e.onChange(t):e.onChange("")},disabled:u,children:[(0,t.jsx)(p.FormControl,{children:(0,t.jsx)(y.SelectTrigger,{children:(0,t.jsx)(y.SelectValue,{})})}),(0,t.jsx)(y.SelectContent,{children:j.map(e=>(0,t.jsx)(y.SelectItem,{value:e.value,children:e.label},e.value))})]}),(0,t.jsx)(p.FormMessage,{})]})}),(0,t.jsx)("div",{className:"flex justify-end pt-2",children:(0,t.jsx)(m.Button,{type:"submit",disabled:u,children:u?"提交中...":R??("edit"===e?"保存":"创建项目")})})]})})}),N&&(0,t.jsx)(b.TabsContent,{value:"token",className:"mt-4",children:(0,t.jsx)(p.Form,{...k,children:(0,t.jsxs)("form",{onSubmit:k.handleSubmit(K),className:"space-y-4",children:[(0,t.jsx)(p.FormField,{control:k.control,name:"token",render:({field:e})=>(0,t.jsxs)(p.FormItem,{children:[(0,t.jsx)(p.FormLabel,{children:"项目 Token"}),(0,t.jsx)(p.FormControl,{children:(0,t.jsx)(v.Textarea,{...e,rows:5,placeholder:"粘贴从其他环境导出的项目 Token",disabled:u})}),(0,t.jsx)(p.FormDescription,{children:"Token 中已包含 AK/SK、Endpoint 等全部连接信息。"}),(0,t.jsx)(p.FormMessage,{})]})}),(0,t.jsx)("div",{className:"flex justify-end pt-2",children:(0,t.jsx)(m.Button,{type:"submit",disabled:u,children:u?"导入中...":"导入并连接"})})]})})})]})}],47474)},53859,59387,e=>{"use strict";var t=e.i(37500),s=e.i(43876),r=e.i(12984),n=e.i(87014),i=e.i(93321);async function a(){return(0,i.apiGet)("/api/v1/instances")}async function o(e){return(0,i.apiGet)(`/api/v1/instances/${encodeURIComponent(e)}`)}async function c(e){return(0,i.apiPost)("/api/v1/instances",e)}async function l(e){return(0,i.apiPost)("/api/v1/instances",e)}async function u(e,t){return(0,i.apiPut)(`/api/v1/instances/${encodeURIComponent(e)}`,t)}async function d(e){return(0,i.apiDelete)(`/api/v1/instances/${encodeURIComponent(e)}`)}async function h(e){return(0,i.apiPost)(`/api/v1/instances/${encodeURIComponent(e)}/use`)}async function m(e){return(0,i.apiGet)(`/api/v1/instances/${encodeURIComponent(e)}/token`)}let p=["instances"];function f(e){e.invalidateQueries({queryKey:p}),e.invalidateQueries({queryKey:["knowledge-bases"]}),e.invalidateQueries({queryKey:["memory-stores"]}),e.invalidateQueries({queryKey:["llm-providers"]}),e.invalidateQueries({queryKey:["auth-status"]})}e.s(["useConnectInstance",0,function(){let e=(0,r.useQueryClient)();return(0,t.useMutation)({mutationFn:e=>c(e),onSuccess:()=>{f(e),n.toast.success("项目已创建")},onError:e=>{n.toast.error(e instanceof Error?e.message:"创建项目失败")}})},"useDeleteInstance",0,function(){let e=(0,r.useQueryClient)();return(0,t.useMutation)({mutationFn:e=>d(e),onSuccess:()=>{f(e),n.toast.success("项目已删除")},onError:e=>{n.toast.error(e instanceof Error?e.message:"删除项目失败")}})},"useExportInstanceToken",0,function(){return(0,t.useMutation)({mutationFn:e=>m(e),onError:e=>{n.toast.error(e instanceof Error?e.message:"导出 Token 失败")}})},"useImportInstance",0,function(){let e=(0,r.useQueryClient)();return(0,t.useMutation)({mutationFn:e=>l(e),onSuccess:()=>{f(e),n.toast.success("Token 已导入")},onError:e=>{n.toast.error(e instanceof Error?e.message:"导入 Token 失败")}})},"useInstance",0,function(e){return(0,s.useQuery)({queryKey:["instance",e],queryFn:()=>o(e),enabled:!!e,staleTime:3e4})},"useInstances",0,function(){return(0,s.useQuery)({queryKey:p,queryFn:a,staleTime:3e4})},"useSwitchInstance",0,function(){let e=(0,r.useQueryClient)();return(0,t.useMutation)({mutationFn:e=>h(e),onSuccess:()=>{e.removeQueries({queryKey:["knowledge-bases"]}),e.removeQueries({queryKey:["memory-stores"]}),e.removeQueries({queryKey:["llm-providers"]}),e.removeQueries({queryKey:["documents"]}),e.removeQueries({queryKey:["instance"]}),e.invalidateQueries({queryKey:p}),e.invalidateQueries({queryKey:["auth-status"]}),n.toast.success("已切换当前项目")},onError:e=>{n.toast.error(e instanceof Error?e.message:"切换项目失败")}})},"useUpdateInstance",0,function(e){let s=(0,r.useQueryClient)();return(0,t.useMutation)({mutationFn:t=>u(e,t),onSuccess:()=>{f(s),s.invalidateQueries({queryKey:["instance",e]}),n.toast.success("项目已更新")},onError:e=>{n.toast.error(e instanceof Error?e.message:"更新项目失败")}})}],53859),e.s(["isImportPayload",0,function(e){return"string"==typeof e.token}],59387)},24883,e=>{"use strict";var t=e.i(44501),s=e.i(65581),r=e.i(34752),n=e.i(47474),i=e.i(53859),a=e.i(59387);e.s(["default",0,function(){let e=(0,s.useRouter)(),o=(0,i.useConnectInstance)(),c=(0,i.useImportInstance)(),l=o.isPending||c.isPending;async function u(t){(0,a.isImportPayload)(t)?await c.mutateAsync(t):await o.mutateAsync(t),e.replace("/chat")}return(0,t.jsxs)("div",{className:"flex flex-col gap-10",children:[(0,t.jsxs)("header",{className:"flex flex-col items-center gap-3 text-center",children:[(0,t.jsx)("div",{className:"flex h-12 w-12 items-center justify-center rounded-xl bg-primary/10 text-primary",children:(0,t.jsx)(r.Sparkles,{className:"h-6 w-6"})}),(0,t.jsx)("h1",{className:"text-2xl font-semibold tracking-tight",children:"欢迎使用 Agent Storage"}),(0,t.jsx)("p",{className:"max-w-md text-sm text-muted-foreground",children:"创建你的第一个项目,即可开始管理知识库、记忆库与对话。"})]}),(0,t.jsx)("div",{className:"rounded-2xl border border-[hsl(var(--border))] bg-[hsl(var(--surface))] p-6 shadow-sm sm:p-8",children:(0,t.jsx)(n.ConnectInstanceForm,{mode:"create",onSubmit:u,busy:l,submitLabel:"连接并开始使用"})}),(0,t.jsx)("p",{className:"text-center text-xs text-muted-foreground",children:"稍后你随时可以通过右上角的项目切换器或「项目管理」页创建更多项目。"})]})}])}]);
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,37500,e=>{"use strict";var t=e.i(17635),s=e.i(87097),r=e.i(32534),n=e.i(23144),i=e.i(58859),a=class extends n.Subscribable{#e;#t=void 0;#s;#r;constructor(e,t){super(),this.#e=e,this.setOptions(t),this.bindMethods(),this.#n()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(e){let t=this.options;this.options=this.#e.defaultMutationOptions(e),(0,i.shallowEqualObjects)(this.options,t)||this.#e.getMutationCache().notify({type:"observerOptionsUpdated",mutation:this.#s,observer:this}),t?.mutationKey&&this.options.mutationKey&&(0,i.hashKey)(t.mutationKey)!==(0,i.hashKey)(this.options.mutationKey)?this.reset():this.#s?.state.status==="pending"&&this.#s.setOptions(this.options)}onUnsubscribe(){this.hasListeners()||this.#s?.removeObserver(this)}onMutationUpdate(e){this.#n(),this.#i(e)}getCurrentResult(){return this.#t}reset(){this.#s?.removeObserver(this),this.#s=void 0,this.#n(),this.#i()}mutate(e,t){return this.#r=t,this.#s?.removeObserver(this),this.#s=this.#e.getMutationCache().build(this.#e,this.options),this.#s.addObserver(this),this.#s.execute(e)}#n(){let e=this.#s?.state??(0,s.getDefaultState)();this.#t={...e,isPending:"pending"===e.status,isSuccess:"success"===e.status,isError:"error"===e.status,isIdle:"idle"===e.status,mutate:this.mutate,reset:this.reset}}#i(e){r.notifyManager.batch(()=>{if(this.#r&&this.hasListeners()){let t=this.#t.variables,s=this.#t.context,r={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};if(e?.type==="success"){try{this.#r.onSuccess?.(e.data,t,s,r)}catch(e){Promise.reject(e)}try{this.#r.onSettled?.(e.data,null,t,s,r)}catch(e){Promise.reject(e)}}else if(e?.type==="error"){try{this.#r.onError?.(e.error,t,s,r)}catch(e){Promise.reject(e)}try{this.#r.onSettled?.(void 0,e.error,t,s,r)}catch(e){Promise.reject(e)}}}this.listeners.forEach(e=>{e(this.#t)})})}},o=e.i(12984);e.s(["useMutation",0,function(e,s){let n=(0,o.useQueryClient)(s),[c]=t.useState(()=>new a(n,e));t.useEffect(()=>{c.setOptions(e)},[c,e]);let l=t.useSyncExternalStore(t.useCallback(e=>c.subscribe(r.notifyManager.batchCalls(e)),[c]),()=>c.getCurrentResult(),()=>c.getCurrentResult()),u=t.useCallback((e,t)=>{c.mutate(e,t).catch(i.noop)},[c]);if(l.error&&(0,i.shouldThrowError)(c.options.throwOnError,[l.error]))throw l.error;return{...l,mutate:u,mutateAsync:l.mutate}}],37500)},43876,50458,40870,e=>{"use strict";let t;var s=e.i(76848),r=e.i(39781),n=e.i(32534),i=e.i(44897),a=e.i(23144),o=e.i(7109),c=e.i(58859),l=e.i(48827),u=class extends a.Subscribable{constructor(e,t){super(),this.options=t,this.#e=e,this.#a=null,this.#o=(0,o.pendingThenable)(),this.bindMethods(),this.setOptions(t)}#e;#c=void 0;#l=void 0;#t=void 0;#u;#d;#o;#a;#h;#m;#p;#f;#y;#b;#v=new Set;bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){1===this.listeners.size&&(this.#c.addObserver(this),d(this.#c,this.options)?this.#x():this.updateResult(),this.#g())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return h(this.#c,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return h(this.#c,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#j(),this.#R(),this.#c.removeObserver(this)}setOptions(e){let t=this.options,s=this.#c;if(this.options=this.#e.defaultQueryOptions(e),void 0!==this.options.enabled&&"boolean"!=typeof this.options.enabled&&"function"!=typeof this.options.enabled&&"boolean"!=typeof(0,c.resolveEnabled)(this.options.enabled,this.#c))throw Error("Expected enabled to be a boolean or a callback that returns a boolean");this.#I(),this.#c.setOptions(this.options),t._defaulted&&!(0,c.shallowEqualObjects)(this.options,t)&&this.#e.getQueryCache().notify({type:"observerOptionsUpdated",query:this.#c,observer:this});let r=this.hasListeners();r&&m(this.#c,s,this.options,t)&&this.#x(),this.updateResult(),r&&(this.#c!==s||(0,c.resolveEnabled)(this.options.enabled,this.#c)!==(0,c.resolveEnabled)(t.enabled,this.#c)||(0,c.resolveStaleTime)(this.options.staleTime,this.#c)!==(0,c.resolveStaleTime)(t.staleTime,this.#c))&&this.#S();let n=this.#F();r&&(this.#c!==s||(0,c.resolveEnabled)(this.options.enabled,this.#c)!==(0,c.resolveEnabled)(t.enabled,this.#c)||n!==this.#b)&&this.#E(n)}getOptimisticResult(e){var t,s;let r=this.#e.getQueryCache().build(this.#e,e),n=this.createResult(r,e);return t=this,s=n,(0,c.shallowEqualObjects)(t.getCurrentResult(),s)||(this.#t=n,this.#d=this.options,this.#u=this.#c.state),n}getCurrentResult(){return this.#t}trackResult(e,t){return new Proxy(e,{get:(e,s)=>(this.trackProp(s),t?.(s),"promise"===s&&(this.trackProp("data"),this.options.experimental_prefetchInRender||"pending"!==this.#o.status||this.#o.reject(Error("experimental_prefetchInRender feature flag is not enabled"))),Reflect.get(e,s))})}trackProp(e){this.#v.add(e)}getCurrentQuery(){return this.#c}refetch({...e}={}){return this.fetch({...e})}fetchOptimistic(e){let t=this.#e.defaultQueryOptions(e),s=this.#e.getQueryCache().build(this.#e,t);return s.fetch().then(()=>this.createResult(s,t))}fetch(e){return this.#x({...e,cancelRefetch:e.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#t))}#x(e){this.#I();let t=this.#c.fetch(this.options,e);return e?.throwOnError||(t=t.catch(c.noop)),t}#S(){this.#j();let e=(0,c.resolveStaleTime)(this.options.staleTime,this.#c);if(r.environmentManager.isServer()||this.#t.isStale||!(0,c.isValidTimeout)(e))return;let t=(0,c.timeUntilStale)(this.#t.dataUpdatedAt,e);this.#f=l.timeoutManager.setTimeout(()=>{this.#t.isStale||this.updateResult()},t+1)}#F(){return("function"==typeof this.options.refetchInterval?this.options.refetchInterval(this.#c):this.options.refetchInterval)??!1}#E(e){this.#R(),this.#b=e,!r.environmentManager.isServer()&&!1!==(0,c.resolveEnabled)(this.options.enabled,this.#c)&&(0,c.isValidTimeout)(this.#b)&&0!==this.#b&&(this.#y=l.timeoutManager.setInterval(()=>{(this.options.refetchIntervalInBackground||s.focusManager.isFocused())&&this.#x()},this.#b))}#g(){this.#S(),this.#E(this.#F())}#j(){void 0!==this.#f&&(l.timeoutManager.clearTimeout(this.#f),this.#f=void 0)}#R(){void 0!==this.#y&&(l.timeoutManager.clearInterval(this.#y),this.#y=void 0)}createResult(e,t){let s,r=this.#c,n=this.options,a=this.#t,l=this.#u,u=this.#d,h=e!==r?e.state:this.#l,{state:f}=e,y={...f},b=!1;if(t._optimisticResults){let s=this.hasListeners(),a=!s&&d(e,t),o=s&&m(e,r,t,n);(a||o)&&(y={...y,...(0,i.fetchState)(f.data,e.options)}),"isRestoring"===t._optimisticResults&&(y.fetchStatus="idle")}let{error:v,errorUpdatedAt:x,status:g}=y;s=y.data;let j=!1;if(void 0!==t.placeholderData&&void 0===s&&"pending"===g){let e;a?.isPlaceholderData&&t.placeholderData===u?.placeholderData?(e=a.data,j=!0):e="function"==typeof t.placeholderData?t.placeholderData(this.#p?.state.data,this.#p):t.placeholderData,void 0!==e&&(g="success",s=(0,c.replaceData)(a?.data,e,t),b=!0)}if(t.select&&void 0!==s&&!j)if(a&&s===l?.data&&t.select===this.#h)s=this.#m;else try{this.#h=t.select,s=t.select(s),s=(0,c.replaceData)(a?.data,s,t),this.#m=s,this.#a=null}catch(e){this.#a=e}this.#a&&(v=this.#a,s=this.#m,x=Date.now(),g="error");let R="fetching"===y.fetchStatus,I="pending"===g,S="error"===g,F=I&&R,E=void 0!==s,T={status:g,fetchStatus:y.fetchStatus,isPending:I,isSuccess:"success"===g,isError:S,isInitialLoading:F,isLoading:F,data:s,dataUpdatedAt:y.dataUpdatedAt,error:v,errorUpdatedAt:x,failureCount:y.fetchFailureCount,failureReason:y.fetchFailureReason,errorUpdateCount:y.errorUpdateCount,isFetched:e.isFetched(),isFetchedAfterMount:y.dataUpdateCount>h.dataUpdateCount||y.errorUpdateCount>h.errorUpdateCount,isFetching:R,isRefetching:R&&!I,isLoadingError:S&&!E,isPaused:"paused"===y.fetchStatus,isPlaceholderData:b,isRefetchError:S&&E,isStale:p(e,t),refetch:this.refetch,promise:this.#o,isEnabled:!1!==(0,c.resolveEnabled)(t.enabled,e)};if(this.options.experimental_prefetchInRender){let t=void 0!==T.data,s="error"===T.status&&!t,n=e=>{s?e.reject(T.error):t&&e.resolve(T.data)},i=()=>{n(this.#o=T.promise=(0,o.pendingThenable)())},a=this.#o;switch(a.status){case"pending":e.queryHash===r.queryHash&&n(a);break;case"fulfilled":(s||T.data!==a.value)&&i();break;case"rejected":s&&T.error===a.reason||i()}}return T}updateResult(){let e=this.#t,t=this.createResult(this.#c,this.options);if(this.#u=this.#c.state,this.#d=this.options,void 0!==this.#u.data&&(this.#p=this.#c),(0,c.shallowEqualObjects)(t,e))return;this.#t=t;let s=()=>{if(!e)return!0;let{notifyOnChangeProps:t}=this.options,s="function"==typeof t?t():t;if("all"===s||!s&&!this.#v.size)return!0;let r=new Set(s??this.#v);return this.options.throwOnError&&r.add("error"),Object.keys(this.#t).some(t=>this.#t[t]!==e[t]&&r.has(t))};this.#i({listeners:s()})}#I(){let e=this.#e.getQueryCache().build(this.#e,this.options);if(e===this.#c)return;let t=this.#c;this.#c=e,this.#l=e.state,this.hasListeners()&&(t?.removeObserver(this),e.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#g()}#i(e){n.notifyManager.batch(()=>{e.listeners&&this.listeners.forEach(e=>{e(this.#t)}),this.#e.getQueryCache().notify({query:this.#c,type:"observerResultsUpdated"})})}};function d(e,t){return!1!==(0,c.resolveEnabled)(t.enabled,e)&&void 0===e.state.data&&("error"!==e.state.status||!1!==t.retryOnMount)||void 0!==e.state.data&&h(e,t,t.refetchOnMount)}function h(e,t,s){if(!1!==(0,c.resolveEnabled)(t.enabled,e)&&"static"!==(0,c.resolveStaleTime)(t.staleTime,e)){let r="function"==typeof s?s(e):s;return"always"===r||!1!==r&&p(e,t)}return!1}function m(e,t,s,r){return(e!==t||!1===(0,c.resolveEnabled)(r.enabled,e))&&(!s.suspense||"error"!==e.state.status)&&p(e,s)}function p(e,t){return!1!==(0,c.resolveEnabled)(t.enabled,e)&&e.isStaleByTime((0,c.resolveStaleTime)(t.staleTime,e))}e.s(["QueryObserver",0,u],50458),e.i(35884);var f=e.i(17635),y=e.i(12984);e.i(44501);var b=f.createContext((t=!1,{clearReset:()=>{t=!1},reset:()=>{t=!0},isReset:()=>t})),v=f.createContext(!1);v.Provider;var x=(e,t,s)=>t.fetchOptimistic(e).catch(()=>{s.clearReset()});function g(e,t,s){let i,a=f.useContext(v),o=f.useContext(b),l=(0,y.useQueryClient)(s),u=l.defaultQueryOptions(e);l.getDefaultOptions().queries?._experimental_beforeQuery?.(u);let d=l.getQueryCache().get(u.queryHash);if(u._optimisticResults=a?"isRestoring":"optimistic",u.suspense){let e=e=>"static"===e?e:Math.max(e??1e3,1e3),t=u.staleTime;u.staleTime="function"==typeof t?(...s)=>e(t(...s)):e(t),"number"==typeof u.gcTime&&(u.gcTime=Math.max(u.gcTime,1e3))}i=d?.state.error&&"function"==typeof u.throwOnError?(0,c.shouldThrowError)(u.throwOnError,[d.state.error,d]):u.throwOnError,(u.suspense||u.experimental_prefetchInRender||i)&&!o.isReset()&&(u.retryOnMount=!1),f.useEffect(()=>{o.clearReset()},[o]);let h=!l.getQueryCache().get(u.queryHash),[m]=f.useState(()=>new t(l,u)),p=m.getOptimisticResult(u),g=!a&&!1!==e.subscribed;if(f.useSyncExternalStore(f.useCallback(e=>{let t=g?m.subscribe(n.notifyManager.batchCalls(e)):c.noop;return m.updateResult(),t},[m,g]),()=>m.getCurrentResult(),()=>m.getCurrentResult()),f.useEffect(()=>{m.setOptions(u)},[u,m]),u?.suspense&&p.isPending)throw x(u,m,o);if((({result:e,errorResetBoundary:t,throwOnError:s,query:r,suspense:n})=>e.isError&&!t.isReset()&&!e.isFetching&&r&&(n&&void 0===e.data||(0,c.shouldThrowError)(s,[e.error,r])))({result:p,errorResetBoundary:o,throwOnError:u.throwOnError,query:d,suspense:u.suspense}))throw p.error;if(l.getDefaultOptions().queries?._experimental_afterQuery?.(u,p),u.experimental_prefetchInRender&&!r.environmentManager.isServer()&&p.isLoading&&p.isFetching&&!a){let e=h?x(u,m,o):d?.promise;e?.catch(c.noop).finally(()=>{m.updateResult()})}return u.notifyOnChangeProps?p:m.trackResult(p)}e.s(["useBaseQuery",0,g],40870),e.s(["useQuery",0,function(e,t){return g(e,u,t)}],43876)},45123,e=>{"use strict";var t=e.i(44501),s=e.i(17635),r=e.i(76490);let n=s.forwardRef(({className:e,...s},n)=>(0,t.jsx)("textarea",{className:(0,r.cn)("flex min-h-[60px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",e),ref:n,...s}));n.displayName="Textarea",e.s(["Textarea",0,n])},34752,e=>{"use strict";let t=(0,e.i(86620).default)("sparkles",[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]]);e.s(["Sparkles",0,t],34752)},43754,e=>{"use strict";let t=(0,e.i(86620).default)("info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);e.s(["Info",0,t],43754)},47421,e=>{"use strict";var t=e.i(44501),s=e.i(17635),r=e.i(91967),n=e.i(43250),i=e.i(77275),a=e.i(90088),o=e.i(80939),c=e.i(25486),l=e.i(17256),u=e.i(33616),d="Tabs",[h,m]=(0,n.createContextScope)(d,[i.createRovingFocusGroupScope]),p=(0,i.createRovingFocusGroupScope)(),[f,y]=h(d),b=s.forwardRef((e,s)=>{let{__scopeTabs:r,value:n,onValueChange:i,defaultValue:a,orientation:h="horizontal",dir:m,activationMode:p="automatic",...y}=e,b=(0,c.useDirection)(m),[v,x]=(0,l.useControllableState)({prop:n,onChange:i,defaultProp:a??"",caller:d});return(0,t.jsx)(f,{scope:r,baseId:(0,u.useId)(),value:v,onValueChange:x,orientation:h,dir:b,activationMode:p,children:(0,t.jsx)(o.Primitive.div,{dir:b,"data-orientation":h,...y,ref:s})})});b.displayName=d;var v="TabsList",x=s.forwardRef((e,s)=>{let{__scopeTabs:r,loop:n=!0,...a}=e,c=y(v,r),l=p(r);return(0,t.jsx)(i.Root,{asChild:!0,...l,orientation:c.orientation,dir:c.dir,loop:n,children:(0,t.jsx)(o.Primitive.div,{role:"tablist","aria-orientation":c.orientation,...a,ref:s})})});x.displayName=v;var g="TabsTrigger",j=s.forwardRef((e,s)=>{let{__scopeTabs:n,value:a,disabled:c=!1,...l}=e,u=y(g,n),d=p(n),h=S(u.baseId,a),m=F(u.baseId,a),f=a===u.value;return(0,t.jsx)(i.Item,{asChild:!0,...d,focusable:!c,active:f,children:(0,t.jsx)(o.Primitive.button,{type:"button",role:"tab","aria-selected":f,"aria-controls":m,"data-state":f?"active":"inactive","data-disabled":c?"":void 0,disabled:c,id:h,...l,ref:s,onMouseDown:(0,r.composeEventHandlers)(e.onMouseDown,e=>{c||0!==e.button||!1!==e.ctrlKey?e.preventDefault():u.onValueChange(a)}),onKeyDown:(0,r.composeEventHandlers)(e.onKeyDown,e=>{[" ","Enter"].includes(e.key)&&u.onValueChange(a)}),onFocus:(0,r.composeEventHandlers)(e.onFocus,()=>{let e="manual"!==u.activationMode;f||c||!e||u.onValueChange(a)})})})});j.displayName=g;var R="TabsContent",I=s.forwardRef((e,r)=>{let{__scopeTabs:n,value:i,forceMount:c,children:l,...u}=e,d=y(R,n),h=S(d.baseId,i),m=F(d.baseId,i),p=i===d.value,f=s.useRef(p);return s.useEffect(()=>{let e=requestAnimationFrame(()=>f.current=!1);return()=>cancelAnimationFrame(e)},[]),(0,t.jsx)(a.Presence,{present:c||p,children:({present:s})=>(0,t.jsx)(o.Primitive.div,{"data-state":p?"active":"inactive","data-orientation":d.orientation,role:"tabpanel","aria-labelledby":h,hidden:!s,id:m,tabIndex:0,...u,ref:r,style:{...e.style,animationDuration:f.current?"0s":void 0},children:s&&l})})});function S(e,t){return`${e}-trigger-${t}`}function F(e,t){return`${e}-content-${t}`}I.displayName=R;var E=e.i(76490);let T=s.forwardRef(({className:e,...s},r)=>(0,t.jsx)(x,{ref:r,className:(0,E.cn)("inline-flex h-10 items-center justify-center rounded-lg border border-[hsl(var(--border))] bg-[hsl(var(--secondary))] p-1 text-muted-foreground shadow-[inset_0_1px_2px_rgba(15,23,42,0.04)]",e),...s}));T.displayName=x.displayName;let C=s.forwardRef(({className:e,...s},r)=>(0,t.jsx)(j,{ref:r,className:(0,E.cn)("inline-flex h-8 items-center justify-center gap-1.5 whitespace-nowrap rounded-md px-3.5 text-sm font-medium","ring-offset-[hsl(var(--background))] transition-all duration-150","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2","disabled:pointer-events-none disabled:opacity-50","hover:text-foreground","data-[state=active]:bg-[hsl(var(--background))]","data-[state=active]:text-[hsl(var(--primary))]","data-[state=active]:shadow-[0_1px_2px_rgba(15,23,42,0.08),0_0_0_1px_hsl(var(--border))]","data-[state=active]:font-semibold",e),...s}));C.displayName=j.displayName;let Q=s.forwardRef(({className:e,...s},r)=>(0,t.jsx)(I,{ref:r,className:(0,E.cn)("mt-3 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",e),...s}));Q.displayName=I.displayName,e.s(["Tabs",0,b,"TabsContent",0,Q,"TabsList",0,T,"TabsTrigger",0,C],47421)},47474,e=>{"use strict";var t=e.i(44501),s=e.i(17635),r=e.i(88310),n=e.i(80883),i=e.i(43754),a=e.i(32356);let o=a.z.string().trim().regex(/^[a-z0-9-]{1,32}$/,"名称需为 1-32 位小写字母、数字或连字符").refine(e=>"default"!==e,'名称 "default" 为保留字'),c=(e,t=512)=>a.z.string().trim().min(1,`请输入${e}`).max(t),l=(e=512)=>a.z.string().trim().max(e).optional().or(a.z.literal("")),u=a.z.object({name:o,accessKeyId:c("AccessKey ID",128),accessKeySecret:c("AccessKey Secret",512),otsEndpoint:c("OTS Endpoint",256),otsInstanceName:c("OTS 实例名",128),ossEndpoint:l(256),ossBucketName:l(128),region:l(64),activate:a.z.boolean().optional()});a.z.object({accessKeyId:l(128),accessKeySecret:l(512),otsEndpoint:l(256),otsInstanceName:l(128),ossEndpoint:l(256),ossBucketName:l(128),region:l(64),activate:a.z.boolean().optional()}).refine(e=>{let t=!!(e.accessKeyId&&e.accessKeyId.length>0);return!!(e.accessKeySecret&&e.accessKeySecret.length>0)===t},{message:"AccessKey ID 与 Secret 必须成对更新,要么同时填写、要么同时留空",path:["accessKeySecret"]});let d=a.z.object({name:o,accessKeyId:l(128),accessKeySecret:l(512),otsEndpoint:c("OTS Endpoint",256),otsInstanceName:c("OTS 实例名",128),ossEndpoint:l(256),ossBucketName:l(128),region:l(64),activate:a.z.boolean().optional()}).refine(e=>{let t=!!(e.accessKeyId&&e.accessKeyId.length>0);return!!(e.accessKeySecret&&e.accessKeySecret.length>0)===t},{message:"AccessKey ID 与 Secret 必须成对更新,要么同时填写、要么同时留空",path:["accessKeySecret"]}),h=a.z.object({token:a.z.string().trim().min(10,"Token 长度不足,无法解析").max(4096),name:o.optional(),activate:a.z.boolean().optional()});var m=e.i(42595),p=e.i(21562),f=e.i(23888),y=e.i(66473),b=e.i(47421),v=e.i(45123);let x=u.extend({otsEndpoint:a.z.string().trim().url("请输入合法的 OTS Endpoint URL"),ossEndpoint:a.z.string().trim().url("请输入合法的 OSS Endpoint URL").optional().or(a.z.literal(""))}),g=h.pick({token:!0}),j=[{value:"cn-beijing",label:"华北 2(北京)"},{value:"cn-hangzhou",label:"华东 1(杭州)"},{value:"cn-shanghai",label:"华东 2(上海)"},{value:"cn-shenzhen",label:"华南 1(深圳)"},{value:"__custom__",label:"其它(自定义)"}];e.s(["ConnectInstanceForm",0,function({mode:e,defaultValues:a,accessKeyIdPlaceholder:o,accessKeySecretPlaceholder:c,onSubmit:l,busy:u,lockName:h,submitLabel:R}){let[I,S]=(0,s.useState)("manual"),F="edit"===e,E=a?.region??"cn-hangzhou",T=(0,s.useMemo)(()=>j.some(e=>e.value===E),[E]),[C,Q]=(0,s.useState)(T?E:"__custom__"),O=(0,s.useMemo)(()=>(0,r.zodResolver)(F?d:x),[F]),w=(0,n.useForm)({resolver:O,defaultValues:{name:a?.name??"",accessKeyId:F?"":a?.accessKeyId??"",accessKeySecret:F?"":a?.accessKeySecret??"",otsEndpoint:a?.otsEndpoint??"",otsInstanceName:a?.otsInstanceName??"",ossEndpoint:a?.ossEndpoint??"",ossBucketName:a?.ossBucketName??"",region:E}}),k=(0,n.useForm)({resolver:(0,r.zodResolver)(g),defaultValues:{token:""}});async function M(e){let t={...e,ossEndpoint:e.ossEndpoint?.trim()||void 0,ossBucketName:e.ossBucketName?.trim()||void 0};await l(t)}async function K(e){let t={token:e.token.trim()};await l(t)}let N="create"===e;return(0,t.jsxs)(b.Tabs,{value:I,onValueChange:e=>S(e),className:"w-full",children:[N&&(0,t.jsxs)(b.TabsList,{className:"grid w-full grid-cols-2",children:[(0,t.jsx)(b.TabsTrigger,{value:"manual",children:"手动填写"}),(0,t.jsx)(b.TabsTrigger,{value:"token",children:"导入 Token"})]}),(0,t.jsx)(b.TabsContent,{value:"manual",className:"mt-4",children:(0,t.jsx)(p.Form,{...w,children:(0,t.jsxs)("form",{onSubmit:w.handleSubmit(M),className:"space-y-4",children:[(0,t.jsx)(p.FormField,{control:w.control,name:"name",render:({field:e})=>(0,t.jsxs)(p.FormItem,{children:[(0,t.jsx)(p.FormLabel,{children:"项目名称"}),(0,t.jsx)(p.FormControl,{children:(0,t.jsx)(f.Input,{...e,placeholder:"prod-main",disabled:h||u,autoComplete:"off"})}),(0,t.jsx)(p.FormDescription,{children:"仅用于本地区分,不会发送到服务端。"}),(0,t.jsx)(p.FormMessage,{})]})}),(0,t.jsxs)("div",{className:"grid gap-4 sm:grid-cols-2",children:[(0,t.jsx)(p.FormField,{control:w.control,name:"accessKeyId",render:({field:e})=>(0,t.jsxs)(p.FormItem,{children:[(0,t.jsx)(p.FormLabel,{children:"AccessKey ID"}),(0,t.jsx)(p.FormControl,{children:(0,t.jsx)(f.Input,{...e,autoComplete:"off",disabled:u,placeholder:F&&o?`${o} \xb7 留空表示保留`:void 0})}),F&&(0,t.jsx)(p.FormDescription,{children:"AK 与 SK 必须成对更新,留空则保留现有凭证。"}),(0,t.jsx)(p.FormMessage,{})]})}),(0,t.jsx)(p.FormField,{control:w.control,name:"accessKeySecret",render:({field:e})=>(0,t.jsxs)(p.FormItem,{children:[(0,t.jsx)(p.FormLabel,{children:"AccessKey Secret"}),(0,t.jsx)(p.FormControl,{children:(0,t.jsx)(f.Input,{...e,type:"password",autoComplete:"new-password",disabled:u})}),(0,t.jsx)(p.FormMessage,{})]})})]}),(0,t.jsxs)("div",{className:"grid gap-4 sm:grid-cols-2",children:[(0,t.jsx)(p.FormField,{control:w.control,name:"otsEndpoint",render:({field:e})=>(0,t.jsxs)(p.FormItem,{children:[(0,t.jsx)(p.FormLabel,{children:"OTS Endpoint"}),(0,t.jsx)(p.FormControl,{children:(0,t.jsx)(f.Input,{...e,placeholder:"https://xxx.cn-hangzhou.ots.aliyuncs.com",disabled:u})}),(0,t.jsx)(p.FormMessage,{})]})}),(0,t.jsx)(p.FormField,{control:w.control,name:"otsInstanceName",render:({field:e})=>(0,t.jsxs)(p.FormItem,{children:[(0,t.jsx)(p.FormLabel,{children:"OTS 实例名"}),(0,t.jsx)(p.FormControl,{children:(0,t.jsx)(f.Input,{...e,disabled:u})}),(0,t.jsx)(p.FormMessage,{})]})})]}),(0,t.jsxs)("div",{className:"flex items-start gap-2 rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--muted)/0.4)] px-3 py-2 text-xs text-[hsl(var(--muted-foreground))]",children:[(0,t.jsx)(i.Info,{className:"mt-0.5 h-3.5 w-3.5 shrink-0 text-[hsl(var(--primary))]"}),(0,t.jsx)("span",{children:"OSS 信息为可选项。若需上传文档到知识库,OSS Endpoint 与 Bucket 必填; 留空则项目只能用于查询与检索,文件上传功能将不可用。"})]}),(0,t.jsxs)("div",{className:"grid gap-4 sm:grid-cols-2",children:[(0,t.jsx)(p.FormField,{control:w.control,name:"ossEndpoint",render:({field:e})=>(0,t.jsxs)(p.FormItem,{children:[(0,t.jsx)(p.FormLabel,{children:"OSS Endpoint(可选)"}),(0,t.jsx)(p.FormControl,{children:(0,t.jsx)(f.Input,{...e,placeholder:"https://oss-cn-hangzhou.aliyuncs.com",disabled:u})}),(0,t.jsx)(p.FormMessage,{})]})}),(0,t.jsx)(p.FormField,{control:w.control,name:"ossBucketName",render:({field:e})=>(0,t.jsxs)(p.FormItem,{children:[(0,t.jsx)(p.FormLabel,{children:"OSS Bucket(可选)"}),(0,t.jsx)(p.FormControl,{children:(0,t.jsx)(f.Input,{...e,disabled:u})}),(0,t.jsx)(p.FormMessage,{})]})})]}),(0,t.jsx)(p.FormField,{control:w.control,name:"region",render:({field:e})=>(0,t.jsxs)(p.FormItem,{children:[(0,t.jsx)(p.FormLabel,{children:"Region"}),"__custom__"===C?(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(p.FormControl,{children:(0,t.jsx)(f.Input,{...e,placeholder:"cn-xxx",disabled:u})}),(0,t.jsx)(m.Button,{type:"button",variant:"outline",size:"sm",onClick:()=>{Q("cn-hangzhou"),e.onChange("cn-hangzhou")},disabled:u,children:"使用预设"})]}):(0,t.jsxs)(y.Select,{value:C,onValueChange:t=>{Q(t),"__custom__"!==t?e.onChange(t):e.onChange("")},disabled:u,children:[(0,t.jsx)(p.FormControl,{children:(0,t.jsx)(y.SelectTrigger,{children:(0,t.jsx)(y.SelectValue,{})})}),(0,t.jsx)(y.SelectContent,{children:j.map(e=>(0,t.jsx)(y.SelectItem,{value:e.value,children:e.label},e.value))})]}),(0,t.jsx)(p.FormMessage,{})]})}),(0,t.jsx)("div",{className:"flex justify-end pt-2",children:(0,t.jsx)(m.Button,{type:"submit",disabled:u,children:u?"提交中...":R??("edit"===e?"保存":"创建项目")})})]})})}),N&&(0,t.jsx)(b.TabsContent,{value:"token",className:"mt-4",children:(0,t.jsx)(p.Form,{...k,children:(0,t.jsxs)("form",{onSubmit:k.handleSubmit(K),className:"space-y-4",children:[(0,t.jsx)(p.FormField,{control:k.control,name:"token",render:({field:e})=>(0,t.jsxs)(p.FormItem,{children:[(0,t.jsx)(p.FormLabel,{children:"项目 Token"}),(0,t.jsx)(p.FormControl,{children:(0,t.jsx)(v.Textarea,{...e,rows:5,placeholder:"粘贴从其他环境导出的项目 Token",disabled:u})}),(0,t.jsx)(p.FormDescription,{children:"Token 中已包含 AK/SK、Endpoint 等全部连接信息。"}),(0,t.jsx)(p.FormMessage,{})]})}),(0,t.jsx)("div",{className:"flex justify-end pt-2",children:(0,t.jsx)(m.Button,{type:"submit",disabled:u,children:u?"导入中...":"导入并连接"})})]})})})]})}],47474)},53859,59387,e=>{"use strict";var t=e.i(37500),s=e.i(43876),r=e.i(12984),n=e.i(87014),i=e.i(93321);async function a(){return(0,i.apiGet)("/api/v1/instances")}async function o(e){return(0,i.apiGet)(`/api/v1/instances/${encodeURIComponent(e)}`)}async function c(e){return(0,i.apiPost)("/api/v1/instances",e)}async function l(e){return(0,i.apiPost)("/api/v1/instances",e)}async function u(e,t){return(0,i.apiPut)(`/api/v1/instances/${encodeURIComponent(e)}`,t)}async function d(e){return(0,i.apiDelete)(`/api/v1/instances/${encodeURIComponent(e)}`)}async function h(e){return(0,i.apiPost)(`/api/v1/instances/${encodeURIComponent(e)}/use`)}async function m(e){return(0,i.apiGet)(`/api/v1/instances/${encodeURIComponent(e)}/token`)}let p=["instances"];function f(e){e.invalidateQueries({queryKey:p}),e.invalidateQueries({queryKey:["knowledge-bases"]}),e.invalidateQueries({queryKey:["memory-stores"]}),e.invalidateQueries({queryKey:["llm-providers"]}),e.invalidateQueries({queryKey:["auth-status"]})}e.s(["useConnectInstance",0,function(){let e=(0,r.useQueryClient)();return(0,t.useMutation)({mutationFn:e=>c(e),onSuccess:()=>{f(e),n.toast.success("项目已创建")},onError:e=>{n.toast.error(e instanceof Error?e.message:"创建项目失败")}})},"useDeleteInstance",0,function(){let e=(0,r.useQueryClient)();return(0,t.useMutation)({mutationFn:e=>d(e),onSuccess:()=>{f(e),n.toast.success("项目已删除")},onError:e=>{n.toast.error(e instanceof Error?e.message:"删除项目失败")}})},"useExportInstanceToken",0,function(){return(0,t.useMutation)({mutationFn:e=>m(e),onError:e=>{n.toast.error(e instanceof Error?e.message:"导出 Token 失败")}})},"useImportInstance",0,function(){let e=(0,r.useQueryClient)();return(0,t.useMutation)({mutationFn:e=>l(e),onSuccess:()=>{f(e),n.toast.success("Token 已导入")},onError:e=>{n.toast.error(e instanceof Error?e.message:"导入 Token 失败")}})},"useInstance",0,function(e){return(0,s.useQuery)({queryKey:["instance",e],queryFn:()=>o(e),enabled:!!e,staleTime:3e4})},"useInstances",0,function(){return(0,s.useQuery)({queryKey:p,queryFn:a,staleTime:3e4})},"useSwitchInstance",0,function(){let e=(0,r.useQueryClient)();return(0,t.useMutation)({mutationFn:e=>h(e),onSuccess:()=>{e.removeQueries({queryKey:["knowledge-bases"]}),e.removeQueries({queryKey:["memory-stores"]}),e.removeQueries({queryKey:["llm-providers"]}),e.removeQueries({queryKey:["documents"]}),e.removeQueries({queryKey:["instance"]}),e.invalidateQueries({queryKey:p}),e.invalidateQueries({queryKey:["auth-status"]}),n.toast.success("已切换当前项目")},onError:e=>{n.toast.error(e instanceof Error?e.message:"切换项目失败")}})},"useUpdateInstance",0,function(e){let s=(0,r.useQueryClient)();return(0,t.useMutation)({mutationFn:t=>u(e,t),onSuccess:()=>{f(s),s.invalidateQueries({queryKey:["instance",e]}),n.toast.success("项目已更新")},onError:e=>{n.toast.error(e instanceof Error?e.message:"更新项目失败")}})}],53859),e.s(["isImportPayload",0,function(e){return"string"==typeof e.token}],59387)},24883,e=>{"use strict";var t=e.i(44501),s=e.i(65581),r=e.i(34752),n=e.i(47474),i=e.i(53859),a=e.i(59387);e.s(["default",0,function(){let e=(0,s.useRouter)(),o=(0,i.useConnectInstance)(),c=(0,i.useImportInstance)(),l=o.isPending||c.isPending;async function u(t){(0,a.isImportPayload)(t)?await c.mutateAsync(t):await o.mutateAsync(t),e.replace("/chat")}return(0,t.jsxs)("div",{className:"flex flex-col gap-10",children:[(0,t.jsxs)("header",{className:"flex flex-col items-center gap-3 text-center",children:[(0,t.jsx)("div",{className:"flex h-12 w-12 items-center justify-center rounded-xl bg-primary/10 text-primary",children:(0,t.jsx)(r.Sparkles,{className:"h-6 w-6"})}),(0,t.jsx)("h1",{className:"text-2xl font-semibold tracking-tight",children:"欢迎使用 Agent Storage"}),(0,t.jsx)("p",{className:"max-w-md text-sm text-muted-foreground",children:"创建你的第一个项目,即可开始管理知识库、记忆库与对话。"})]}),(0,t.jsx)("div",{className:"rounded-2xl border border-[hsl(var(--border))] bg-[hsl(var(--surface))] p-6 shadow-sm sm:p-8",children:(0,t.jsx)(n.ConnectInstanceForm,{mode:"create",onSubmit:u,busy:l,submitLabel:"连接并开始使用"})}),(0,t.jsx)("p",{className:"text-center text-xs text-muted-foreground",children:"稍后你随时可以通过右上角的项目切换器或「项目管理」页创建更多项目。"})]})}])}]);
|
package/dist/dashboard-runtime/dashboard/.next/static/chunks/{0i5aqiffpm9jr.js → 0xb0_9t-vmo6e.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,9823,e=>{"use strict";let r=(0,e.i(86620).default)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);e.s(["AlertTriangle",0,r],9823)},99877,e=>{"use strict";var r=e.i(44501);e.s(["EmptyState",0,function({icon:e,title:s,description:t,action:a,illustration:i}){return(0,r.jsxs)("div",{className:"flex flex-col items-center justify-center py-16 px-4 text-center",children:[i??(0,r.jsx)("div",{className:"mb-5 flex h-20 w-20 items-center justify-center rounded-full bg-[hsl(var(--primary)/0.08)] ring-8 ring-[hsl(var(--primary)/0.04)]",children:(0,r.jsx)(e,{className:"text-primary",size:36,strokeWidth:1.75})}),(0,r.jsx)("h3",{className:"mb-2 font-display text-lg font-semibold text-foreground",children:s}),(0,r.jsx)("p",{className:"mb-6 max-w-sm text-sm text-muted-foreground",children:t}),a&&(0,r.jsx)("div",{children:a})]})}])},66458,e=>{"use strict";var r=e.i(44501),s=e.i(94237),t=e.i(76490);let a=(0,s.cva)("inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});e.s(["Badge",0,function({className:e,variant:s,...i}){return(0,r.jsx)("div",{className:(0,t.cn)(a({variant:s}),e),...i})}])},10414,e=>{"use strict";var r=e.i(44501),s=e.i(17635),t=e.i(76490);let a=s.forwardRef(({className:e,...s},a)=>(0,r.jsx)("div",{ref:a,className:(0,t.cn)("rounded-xl border bg-card text-card-foreground shadow",e),...s}));a.displayName="Card";let i=s.forwardRef(({className:e,...s},a)=>(0,r.jsx)("div",{ref:a,className:(0,t.cn)("flex flex-col space-y-1.5 p-6",e),...s}));i.displayName="CardHeader";let n=s.forwardRef(({className:e,...s},a)=>(0,r.jsx)("div",{ref:a,className:(0,t.cn)("font-semibold leading-none tracking-tight",e),...s}));n.displayName="CardTitle",s.forwardRef(({className:e,...s},a)=>(0,r.jsx)("div",{ref:a,className:(0,t.cn)("text-sm text-muted-foreground",e),...s})).displayName="CardDescription";let l=s.forwardRef(({className:e,...s},a)=>(0,r.jsx)("div",{ref:a,className:(0,t.cn)("p-6 pt-0",e),...s}));l.displayName="CardContent",s.forwardRef(({className:e,...s},a)=>(0,r.jsx)("div",{ref:a,className:(0,t.cn)("flex items-center p-6 pt-0",e),...s})).displayName="CardFooter";let d=s.forwardRef(({className:e,...s},a)=>(0,r.jsx)("div",{ref:a,className:(0,t.cn)("rounded-xl border bg-card text-card-foreground shadow-sm","transition-[transform,box-shadow,border-color] duration-200 ease-[cubic-bezier(0.34,1.56,0.64,1)]","hover:-translate-y-0.5 hover:border-primary/30 hover:shadow-md",e),...s}));d.displayName="CardInteractive",e.s(["Card",0,a,"CardContent",0,l,"CardHeader",0,i,"CardInteractive",0,d,"CardTitle",0,n])},33153,e=>{"use strict";let r=(0,e.i(86620).default)("pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);e.s(["Pencil",0,r],33153)},51517,e=>{"use strict";let r=(0,e.i(86620).default)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);e.s(["Loader2",0,r],51517)},70036,92820,e=>{"use strict";var r=e.i(43876),s=e.i(93321);async function t(){return(await (0,s.apiGet)("/api/v1/llm/providers")).providers}async function a(e){return(await (0,s.apiGet)(`/api/v1/llm/providers/${encodeURIComponent(e)}`)).provider}async function i(e){return(await (0,s.apiPost)("/api/v1/llm/providers",e)).provider}async function n(e,r){return(await (0,s.apiPut)(`/api/v1/llm/providers/${encodeURIComponent(e)}`,r)).provider}async function l(e){await (0,s.apiDelete)(`/api/v1/llm/providers/${encodeURIComponent(e)}`)}async function d(e){return(await (0,s.apiGet)(`/api/v1/llm/providers/${encodeURIComponent(e)}/models`)).models}async function o(e){return(await (0,s.apiPost)(`/api/v1/llm/providers/${encodeURIComponent(e)}/test`)).result}e.s(["createProvider",0,i,"deleteProvider",0,l,"fetchProviderModels",0,d,"getProvider",0,a,"listProviders",0,t,"testProviderConnectivity",0,o,"updateProvider",0,n],92820);let c=["llm-providers"];e.s(["LLM_PROVIDERS_QUERY_KEY",0,c,"useLLMProviders",0,function(){return(0,r.useQuery)({queryKey:c,queryFn:t,staleTime:3e4})}],70036)},87332,13647,26232,e=>{"use strict";var r=e.i(86620);let s=(0,r.default)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);e.s(["CheckCircle2",0,s],87332);let t=(0,r.default)("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);e.s(["XCircle",0,t],13647);let a=(0,r.default)("zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]);e.s(["Zap",0,a],26232)},8170,e=>{"use strict";var r=e.i(44501),s=e.i(17635),t=e.i(70978),a=e.i(58204),i=e.i(34752),n=e.i(42595),l=e.i(31211),d=e.i(99877),o=e.i(23516),c=e.i(65581),m=e.i(87014),u=e.i(87332),p=e.i(51517),x=e.i(86221),h=e.i(33153),f=e.i(30363),v=e.i(13647),g=e.i(26232),y=e.i(10414),j=e.i(66458),N=e.i(1709),w=e.i(90314),C=e.i(37500),b=e.i(92820);let k={"openai-compatible":"OpenAI 兼容",anthropic:"Anthropic",bailian:"百炼"};function P({provider:e,onDelete:a}){let i=(0,c.useRouter)(),l=(0,C.useMutation)({mutationFn:e=>(0,b.testProviderConnectivity)(e)}),[d,o]=(0,s.useState)(null),R=async r=>{r.preventDefault(),r.stopPropagation();try{let r=await l.mutateAsync(e.id);o(r),r.ok?m.toast.success(`连通成功 \xb7 ${r.latencyMs}ms`):m.toast.error(r.error?.message??"连通失败")}catch(e){m.toast.error(e instanceof Error?e.message:"测试失败")}};return(0,r.jsx)(t.default,{href:`/llm-providers/${encodeURIComponent(e.id)}`,className:"no-underline",children:(0,r.jsx)(y.CardInteractive,{className:"group relative flex h-full cursor-pointer flex-col",children:(0,r.jsxs)(y.CardContent,{className:"flex flex-1 flex-col p-5",children:[(0,r.jsxs)("div",{className:"flex items-start justify-between",children:[(0,r.jsxs)("div",{className:"flex flex-col",children:[(0,r.jsx)("h3",{className:"text-base font-semibold text-foreground",children:e.name}),(0,r.jsx)("span",{className:"mt-1 text-xs text-muted-foreground",children:k[e.type]})]}),(0,r.jsx)("div",{className:"opacity-0 transition-opacity delay-75 duration-150 group-hover:opacity-100 focus-within:opacity-100",onClick:e=>e.stopPropagation(),children:(0,r.jsxs)(N.DropdownMenu,{children:[(0,r.jsx)(N.DropdownMenuTrigger,{asChild:!0,children:(0,r.jsx)(n.Button,{variant:"ghost",size:"icon",className:"h-8 w-8",children:(0,r.jsx)(x.MoreHorizontal,{className:"h-4 w-4"})})}),(0,r.jsxs)(N.DropdownMenuContent,{align:"end",children:[(0,r.jsxs)(N.DropdownMenuItem,{onClick:()=>i.push(`/llm-providers/${encodeURIComponent(e.id)}`),children:[(0,r.jsx)(h.Pencil,{className:"mr-2 h-4 w-4"}),"编辑"]}),(0,r.jsxs)(N.DropdownMenuItem,{className:"text-[hsl(var(--destructive))] focus:text-[hsl(var(--destructive))]",onClick:()=>a?.(e.id),children:[(0,r.jsx)(f.Trash2,{className:"mr-2 h-4 w-4"}),"删除"]})]})]})})]}),(0,r.jsxs)("div",{className:"mt-3 space-y-1.5 text-xs text-muted-foreground",children:[(0,r.jsxs)("div",{className:"truncate",children:[(0,r.jsx)("span",{className:"text-[hsl(var(--muted-foreground))/0.8]",children:"Base URL:"}),(0,r.jsx)("code",{className:"font-mono text-[11px] text-foreground/80",children:e.baseUrl})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("span",{children:"API Key:"}),(0,r.jsx)("code",{className:"font-mono text-[11px] text-foreground/80",children:e.apiKeyMasked})]}),e.defaultModel&&(0,r.jsxs)("div",{children:["默认模型:",(0,r.jsx)(j.Badge,{variant:"secondary",className:"ml-1 rounded-pill border-0 bg-[hsl(var(--primary-50))] text-primary text-[11px] font-normal",children:e.defaultModel})]})]}),(0,r.jsxs)("div",{className:"mt-auto flex items-center justify-between gap-3 pt-4 text-xs text-muted-foreground",children:[(0,r.jsxs)("span",{children:["更新于 ",(0,r.jsx)(w.RelativeTime,{timestamp:new Date(e.updatedAt).getTime()})]}),(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[d?.ok&&(0,r.jsxs)("span",{className:"inline-flex items-center gap-1 text-emerald-600 dark:text-emerald-400",children:[(0,r.jsx)(u.CheckCircle2,{className:"h-3 w-3"}),d.latencyMs,"ms"]}),d&&!d.ok&&(0,r.jsxs)("span",{className:"inline-flex items-center gap-1 text-[hsl(var(--destructive))]",children:[(0,r.jsx)(v.XCircle,{className:"h-3 w-3"}),"失败"]}),(0,r.jsxs)(n.Button,{variant:"ghost",size:"sm",className:"h-7 px-2",disabled:l.isPending,onClick:R,children:[l.isPending?(0,r.jsx)(p.Loader2,{className:"mr-1 h-3 w-3 animate-spin"}):(0,r.jsx)(g.Zap,{className:"mr-1 h-3 w-3"}),"测试"]})]})]})]})})})}var R=e.i(9823),M=e.i(33253),I=e.i(12984),A=e.i(70036);function D({provider:e,open:s,onOpenChange:t}){let a,i=(a=(0,I.useQueryClient)(),(0,C.useMutation)({mutationFn:e=>(0,b.deleteProvider)(e),onSuccess:()=>{a.invalidateQueries({queryKey:A.LLM_PROVIDERS_QUERY_KEY})}}));async function l(){if(e)try{await i.mutateAsync(e.id),m.toast.success(`已删除 "${e.name}"`),t(!1)}catch(e){m.toast.error(e instanceof Error?e.message:"删除失败")}}return(0,r.jsx)(M.Dialog,{open:s,onOpenChange:t,children:(0,r.jsxs)(M.DialogContent,{className:"sm:max-w-md",children:[(0,r.jsx)(M.DialogHeader,{children:(0,r.jsx)(M.DialogTitle,{className:"text-xl",children:"删除大模型配置"})}),(0,r.jsx)("div",{className:"rounded-md border border-[hsl(var(--destructive))] bg-[hsl(var(--destructive))/0.06] px-4 py-3 text-sm leading-relaxed",children:(0,r.jsxs)("p",{children:[(0,r.jsx)(R.AlertTriangle,{className:"mr-1 -mt-0.5 inline h-4 w-4 text-destructive"}),"此操作不可撤销。删除配置"," ",(0,r.jsx)("strong",{className:"font-semibold",children:e?.name})," ","后,已在问答测试中使用该配置的会话将需要重新选择模型。"]})}),(0,r.jsxs)(M.DialogFooter,{children:[(0,r.jsx)(n.Button,{variant:"outline",onClick:()=>t(!1),children:"取消"}),(0,r.jsx)(n.Button,{variant:"destructive",disabled:i.isPending,onClick:l,children:i.isPending?"删除中...":"确认删除"})]})]})})}e.s(["default",0,function(){let{data:e,isLoading:c}=(0,A.useLLMProviders)(),[m,u]=(0,s.useState)(null),p=(0,s.useMemo)(()=>e??[],[e]);return(0,r.jsxs)("div",{className:"space-y-6",children:[(0,r.jsx)(o.PageHeader,{title:"大模型",description:"配置用于问答测试和后续 Agent 能力的大模型服务;API Key 仅在服务端加密存储",children:(0,r.jsx)(n.Button,{asChild:!0,children:(0,r.jsxs)(t.default,{href:"/llm-providers/new",children:[(0,r.jsx)(a.Plus,{className:"mr-2 h-4 w-4"}),"新建配置"]})})}),c?(0,r.jsx)("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-3",children:Array.from({length:3}).map((e,s)=>(0,r.jsx)(l.Skeleton,{className:"h-[180px] rounded-lg"},s))}):0===p.length?(0,r.jsx)(d.EmptyState,{icon:i.Sparkles,title:"还没有大模型配置",description:"添加第一个 OpenAI 兼容的模型服务,用于知识库问答测试",action:(0,r.jsx)(n.Button,{asChild:!0,children:(0,r.jsxs)(t.default,{href:"/llm-providers/new",children:[(0,r.jsx)(a.Plus,{className:"mr-2 h-4 w-4"}),"新建配置"]})})}):(0,r.jsx)("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-3",children:p.map(e=>(0,r.jsx)(P,{provider:e,onDelete:e=>u(p.find(r=>r.id===e)??null)},e.id))}),(0,r.jsx)(D,{provider:m,open:!!m,onOpenChange:e=>{e||u(null)}})]})}],8170)}]);
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,9823,e=>{"use strict";let r=(0,e.i(86620).default)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);e.s(["AlertTriangle",0,r],9823)},33153,e=>{"use strict";let r=(0,e.i(86620).default)("pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);e.s(["Pencil",0,r],33153)},99877,e=>{"use strict";var r=e.i(44501);e.s(["EmptyState",0,function({icon:e,title:s,description:t,action:a,illustration:i}){return(0,r.jsxs)("div",{className:"flex flex-col items-center justify-center py-16 px-4 text-center",children:[i??(0,r.jsx)("div",{className:"mb-5 flex h-20 w-20 items-center justify-center rounded-full bg-[hsl(var(--primary)/0.08)] ring-8 ring-[hsl(var(--primary)/0.04)]",children:(0,r.jsx)(e,{className:"text-primary",size:36,strokeWidth:1.75})}),(0,r.jsx)("h3",{className:"mb-2 font-display text-lg font-semibold text-foreground",children:s}),(0,r.jsx)("p",{className:"mb-6 max-w-sm text-sm text-muted-foreground",children:t}),a&&(0,r.jsx)("div",{children:a})]})}])},66458,e=>{"use strict";var r=e.i(44501),s=e.i(94237),t=e.i(76490);let a=(0,s.cva)("inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});e.s(["Badge",0,function({className:e,variant:s,...i}){return(0,r.jsx)("div",{className:(0,t.cn)(a({variant:s}),e),...i})}])},10414,e=>{"use strict";var r=e.i(44501),s=e.i(17635),t=e.i(76490);let a=s.forwardRef(({className:e,...s},a)=>(0,r.jsx)("div",{ref:a,className:(0,t.cn)("rounded-xl border bg-card text-card-foreground shadow",e),...s}));a.displayName="Card";let i=s.forwardRef(({className:e,...s},a)=>(0,r.jsx)("div",{ref:a,className:(0,t.cn)("flex flex-col space-y-1.5 p-6",e),...s}));i.displayName="CardHeader";let n=s.forwardRef(({className:e,...s},a)=>(0,r.jsx)("div",{ref:a,className:(0,t.cn)("font-semibold leading-none tracking-tight",e),...s}));n.displayName="CardTitle",s.forwardRef(({className:e,...s},a)=>(0,r.jsx)("div",{ref:a,className:(0,t.cn)("text-sm text-muted-foreground",e),...s})).displayName="CardDescription";let l=s.forwardRef(({className:e,...s},a)=>(0,r.jsx)("div",{ref:a,className:(0,t.cn)("p-6 pt-0",e),...s}));l.displayName="CardContent",s.forwardRef(({className:e,...s},a)=>(0,r.jsx)("div",{ref:a,className:(0,t.cn)("flex items-center p-6 pt-0",e),...s})).displayName="CardFooter";let d=s.forwardRef(({className:e,...s},a)=>(0,r.jsx)("div",{ref:a,className:(0,t.cn)("rounded-xl border bg-card text-card-foreground shadow-sm","transition-[transform,box-shadow,border-color] duration-200 ease-[cubic-bezier(0.34,1.56,0.64,1)]","hover:-translate-y-0.5 hover:border-primary/30 hover:shadow-md",e),...s}));d.displayName="CardInteractive",e.s(["Card",0,a,"CardContent",0,l,"CardHeader",0,i,"CardInteractive",0,d,"CardTitle",0,n])},51517,e=>{"use strict";let r=(0,e.i(86620).default)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);e.s(["Loader2",0,r],51517)},70036,92820,e=>{"use strict";var r=e.i(43876),s=e.i(93321);async function t(){return(await (0,s.apiGet)("/api/v1/llm/providers")).providers}async function a(e){return(await (0,s.apiGet)(`/api/v1/llm/providers/${encodeURIComponent(e)}`)).provider}async function i(e){return(await (0,s.apiPost)("/api/v1/llm/providers",e)).provider}async function n(e,r){return(await (0,s.apiPut)(`/api/v1/llm/providers/${encodeURIComponent(e)}`,r)).provider}async function l(e){await (0,s.apiDelete)(`/api/v1/llm/providers/${encodeURIComponent(e)}`)}async function d(e){return(await (0,s.apiGet)(`/api/v1/llm/providers/${encodeURIComponent(e)}/models`)).models}async function o(e){return(await (0,s.apiPost)(`/api/v1/llm/providers/${encodeURIComponent(e)}/test`)).result}e.s(["createProvider",0,i,"deleteProvider",0,l,"fetchProviderModels",0,d,"getProvider",0,a,"listProviders",0,t,"testProviderConnectivity",0,o,"updateProvider",0,n],92820);let c=["llm-providers"];e.s(["LLM_PROVIDERS_QUERY_KEY",0,c,"useLLMProviders",0,function(){return(0,r.useQuery)({queryKey:c,queryFn:t,staleTime:3e4})}],70036)},87332,13647,26232,e=>{"use strict";var r=e.i(86620);let s=(0,r.default)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);e.s(["CheckCircle2",0,s],87332);let t=(0,r.default)("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);e.s(["XCircle",0,t],13647);let a=(0,r.default)("zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]);e.s(["Zap",0,a],26232)},8170,e=>{"use strict";var r=e.i(44501),s=e.i(17635),t=e.i(70978),a=e.i(58204),i=e.i(34752),n=e.i(42595),l=e.i(31211),d=e.i(99877),o=e.i(23516),c=e.i(65581),m=e.i(87014),u=e.i(87332),p=e.i(51517),x=e.i(86221),h=e.i(33153),f=e.i(30363),v=e.i(13647),g=e.i(26232),y=e.i(10414),j=e.i(66458),N=e.i(1709),w=e.i(90314),C=e.i(37500),b=e.i(92820);let k={"openai-compatible":"OpenAI 兼容",anthropic:"Anthropic",bailian:"百炼"};function P({provider:e,onDelete:a}){let i=(0,c.useRouter)(),l=(0,C.useMutation)({mutationFn:e=>(0,b.testProviderConnectivity)(e)}),[d,o]=(0,s.useState)(null),R=async r=>{r.preventDefault(),r.stopPropagation();try{let r=await l.mutateAsync(e.id);o(r),r.ok?m.toast.success(`连通成功 \xb7 ${r.latencyMs}ms`):m.toast.error(r.error?.message??"连通失败")}catch(e){m.toast.error(e instanceof Error?e.message:"测试失败")}};return(0,r.jsx)(t.default,{href:`/llm-providers/${encodeURIComponent(e.id)}`,className:"no-underline",children:(0,r.jsx)(y.CardInteractive,{className:"group relative flex h-full cursor-pointer flex-col",children:(0,r.jsxs)(y.CardContent,{className:"flex flex-1 flex-col p-5",children:[(0,r.jsxs)("div",{className:"flex items-start justify-between",children:[(0,r.jsxs)("div",{className:"flex flex-col",children:[(0,r.jsx)("h3",{className:"text-base font-semibold text-foreground",children:e.name}),(0,r.jsx)("span",{className:"mt-1 text-xs text-muted-foreground",children:k[e.type]})]}),(0,r.jsx)("div",{className:"opacity-0 transition-opacity delay-75 duration-150 group-hover:opacity-100 focus-within:opacity-100",onClick:e=>e.stopPropagation(),children:(0,r.jsxs)(N.DropdownMenu,{children:[(0,r.jsx)(N.DropdownMenuTrigger,{asChild:!0,children:(0,r.jsx)(n.Button,{variant:"ghost",size:"icon",className:"h-8 w-8",children:(0,r.jsx)(x.MoreHorizontal,{className:"h-4 w-4"})})}),(0,r.jsxs)(N.DropdownMenuContent,{align:"end",children:[(0,r.jsxs)(N.DropdownMenuItem,{onClick:()=>i.push(`/llm-providers/${encodeURIComponent(e.id)}`),children:[(0,r.jsx)(h.Pencil,{className:"mr-2 h-4 w-4"}),"编辑"]}),(0,r.jsxs)(N.DropdownMenuItem,{className:"text-[hsl(var(--destructive))] focus:text-[hsl(var(--destructive))]",onClick:()=>a?.(e.id),children:[(0,r.jsx)(f.Trash2,{className:"mr-2 h-4 w-4"}),"删除"]})]})]})})]}),(0,r.jsxs)("div",{className:"mt-3 space-y-1.5 text-xs text-muted-foreground",children:[(0,r.jsxs)("div",{className:"truncate",children:[(0,r.jsx)("span",{className:"text-[hsl(var(--muted-foreground))/0.8]",children:"Base URL:"}),(0,r.jsx)("code",{className:"font-mono text-[11px] text-foreground/80",children:e.baseUrl})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("span",{children:"API Key:"}),(0,r.jsx)("code",{className:"font-mono text-[11px] text-foreground/80",children:e.apiKeyMasked})]}),e.defaultModel&&(0,r.jsxs)("div",{children:["默认模型:",(0,r.jsx)(j.Badge,{variant:"secondary",className:"ml-1 rounded-pill border-0 bg-[hsl(var(--primary-50))] text-primary text-[11px] font-normal",children:e.defaultModel})]})]}),(0,r.jsxs)("div",{className:"mt-auto flex items-center justify-between gap-3 pt-4 text-xs text-muted-foreground",children:[(0,r.jsxs)("span",{children:["更新于 ",(0,r.jsx)(w.RelativeTime,{timestamp:new Date(e.updatedAt).getTime()})]}),(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[d?.ok&&(0,r.jsxs)("span",{className:"inline-flex items-center gap-1 text-emerald-600 dark:text-emerald-400",children:[(0,r.jsx)(u.CheckCircle2,{className:"h-3 w-3"}),d.latencyMs,"ms"]}),d&&!d.ok&&(0,r.jsxs)("span",{className:"inline-flex items-center gap-1 text-[hsl(var(--destructive))]",children:[(0,r.jsx)(v.XCircle,{className:"h-3 w-3"}),"失败"]}),(0,r.jsxs)(n.Button,{variant:"ghost",size:"sm",className:"h-7 px-2",disabled:l.isPending,onClick:R,children:[l.isPending?(0,r.jsx)(p.Loader2,{className:"mr-1 h-3 w-3 animate-spin"}):(0,r.jsx)(g.Zap,{className:"mr-1 h-3 w-3"}),"测试"]})]})]})]})})})}var R=e.i(9823),M=e.i(33253),I=e.i(12984),A=e.i(70036);function D({provider:e,open:s,onOpenChange:t}){let a,i=(a=(0,I.useQueryClient)(),(0,C.useMutation)({mutationFn:e=>(0,b.deleteProvider)(e),onSuccess:()=>{a.invalidateQueries({queryKey:A.LLM_PROVIDERS_QUERY_KEY})}}));async function l(){if(e)try{await i.mutateAsync(e.id),m.toast.success(`已删除 "${e.name}"`),t(!1)}catch(e){m.toast.error(e instanceof Error?e.message:"删除失败")}}return(0,r.jsx)(M.Dialog,{open:s,onOpenChange:t,children:(0,r.jsxs)(M.DialogContent,{className:"sm:max-w-md",children:[(0,r.jsx)(M.DialogHeader,{children:(0,r.jsx)(M.DialogTitle,{className:"text-xl",children:"删除大模型配置"})}),(0,r.jsx)("div",{className:"rounded-md border border-[hsl(var(--destructive))] bg-[hsl(var(--destructive))/0.06] px-4 py-3 text-sm leading-relaxed",children:(0,r.jsxs)("p",{children:[(0,r.jsx)(R.AlertTriangle,{className:"mr-1 -mt-0.5 inline h-4 w-4 text-destructive"}),"此操作不可撤销。删除配置"," ",(0,r.jsx)("strong",{className:"font-semibold",children:e?.name})," ","后,已在问答测试中使用该配置的会话将需要重新选择模型。"]})}),(0,r.jsxs)(M.DialogFooter,{children:[(0,r.jsx)(n.Button,{variant:"outline",onClick:()=>t(!1),children:"取消"}),(0,r.jsx)(n.Button,{variant:"destructive",disabled:i.isPending,onClick:l,children:i.isPending?"删除中...":"确认删除"})]})]})})}e.s(["default",0,function(){let{data:e,isLoading:c}=(0,A.useLLMProviders)(),[m,u]=(0,s.useState)(null),p=(0,s.useMemo)(()=>e??[],[e]);return(0,r.jsxs)("div",{className:"space-y-6",children:[(0,r.jsx)(o.PageHeader,{title:"大模型",description:"配置用于问答测试和后续 Agent 能力的大模型服务;API Key 仅在服务端加密存储",children:(0,r.jsx)(n.Button,{asChild:!0,children:(0,r.jsxs)(t.default,{href:"/llm-providers/new",children:[(0,r.jsx)(a.Plus,{className:"mr-2 h-4 w-4"}),"新建配置"]})})}),c?(0,r.jsx)("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-3",children:Array.from({length:3}).map((e,s)=>(0,r.jsx)(l.Skeleton,{className:"h-[180px] rounded-lg"},s))}):0===p.length?(0,r.jsx)(d.EmptyState,{icon:i.Sparkles,title:"还没有大模型配置",description:"添加第一个 OpenAI 兼容的模型服务,用于知识库问答测试",action:(0,r.jsx)(n.Button,{asChild:!0,children:(0,r.jsxs)(t.default,{href:"/llm-providers/new",children:[(0,r.jsx)(a.Plus,{className:"mr-2 h-4 w-4"}),"新建配置"]})})}):(0,r.jsx)("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-3",children:p.map(e=>(0,r.jsx)(P,{provider:e,onDelete:e=>u(p.find(r=>r.id===e)??null)},e.id))}),(0,r.jsx)(D,{provider:m,open:!!m,onOpenChange:e=>{e||u(null)}})]})}],8170)}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,64204,e=>{"use strict";var t=e.i(93321);function a(e,t){let a=new URLSearchParams;return a.set("appId",e.appId),e.tenantId&&a.set("tenantId",e.tenantId),e.agentId&&a.set("agentId",e.agentId),e.runId&&a.set("runId",e.runId),Object.entries(t??{}).forEach(([e,t])=>{void 0!==t&&""!==t&&a.set(e,String(t))}),a.toString()}async function r(){return(0,t.apiGet)("/api/v1/memory/stores")}async function s(e){return(0,t.apiGet)(`/api/v1/memory/stores/${encodeURIComponent(e)}`)}async function n(e){await (0,t.apiPost)("/api/v1/memory/stores",e)}async function i(e){let{memoryStoreName:a,...r}=e;await (0,t.apiPut)(`/api/v1/memory/stores/${encodeURIComponent(a)}`,r)}async function o(e){await (0,t.apiDelete)(`/api/v1/memory/stores/${encodeURIComponent(e)}`)}async function d(e,r,s){let n=a(r,s);return(0,t.apiGet)(`/api/v1/memory/stores/${encodeURIComponent(e)}/units?${n}`)}async function l(e){let{memoryStoreName:a,...r}=e;return(0,t.apiPost)(`/api/v1/memory/stores/${encodeURIComponent(a)}/units`,r)}async function c(e){let r=a(e.scope);return(0,t.apiGet)(`/api/v1/memory/stores/${encodeURIComponent(e.memoryStoreName)}/units/${encodeURIComponent(e.memoryId)}?${r}`)}async function m(e){let{memoryStoreName:a,memoryId:r,...s}=e;return(0,t.apiPut)(`/api/v1/memory/stores/${encodeURIComponent(a)}/units/${encodeURIComponent(r)}`,s)}async function u(e){let{memoryStoreName:a,memoryId:r,...s}=e;await (0,t.apiDelete)(`/api/v1/memory/stores/${encodeURIComponent(a)}/units/${encodeURIComponent(r)}`,s)}async function p(e){let{memoryStoreName:a,...r}=e;return(0,t.apiPost)(`/api/v1/memory/stores/${encodeURIComponent(a)}/search`,r)}async function h(e,r,s){let n=a(r,s);return(0,t.apiGet)(`/api/v1/memory/stores/${encodeURIComponent(e)}/messages?${n}`)}async function x(e,r,s){let n=a(r,s);return(0,t.apiGet)(`/api/v1/memory/stores/${encodeURIComponent(e)}/requests?${n}`)}e.s(["addMemory",0,l,"createMemoryStore",0,n,"deleteMemoryStore",0,o,"deleteMemoryUnit",0,u,"describeMemoryStore",0,s,"getMemoryUnit",0,c,"listMemoryMessages",0,h,"listMemoryRequests",0,x,"listMemoryStores",0,r,"listMemoryUnits",0,d,"searchMemory",0,p,"updateMemoryStore",0,i,"updateMemoryUnit",0,m])},81015,e=>{"use strict";e.s(["buildMemoryScope",0,function(e){return{appId:e.get("appId")??"",tenantId:e.get("tenantId")||void 0,agentId:e.get("agentId")||void 0,runId:e.get("runId")||void 0}},"formatScope",0,function(e){return e?[e.appId,e.tenantId,e.agentId,e.runId].filter(Boolean).join(" / "):"-"},"hasPreciseScope",0,function(e){return!!e.appId&&"*"!==e.appId&&!!e.tenantId&&"*"!==e.tenantId&&!!e.agentId&&"*"!==e.agentId&&!!e.runId&&"*"!==e.runId},"hasSearchableScope",0,function(e){return!!e.appId&&"*"!==e.appId&&!!e.tenantId&&"*"!==e.tenantId},"hasWildcardScope",0,function(e){return Object.values(e).some(e=>"*"===e)},"parseJsonObject",0,function(e){if(!e.trim())return;let t=JSON.parse(e);if(!t||"object"!=typeof t||Array.isArray(t))throw Error("JSON must be an object");return t},"scopeToSearchParams",0,function(e){let t=new URLSearchParams;return t.set("appId",e.appId),e.tenantId&&t.set("tenantId",e.tenantId),e.agentId&&t.set("agentId",e.agentId),e.runId&&t.set("runId",e.runId),t}])},31211,e=>{"use strict";var t=e.i(44501),a=e.i(17635),r=e.i(76490);e.s(["Skeleton",0,function({className:e,delay:a,style:s,...n}){return(0,t.jsx)("div",{className:(0,r.cn)("animate-pulse rounded-md bg-primary/10",e),style:{animationDelay:a?`${a}ms`:void 0,...s},...n})},"SkeletonGroup",0,function({children:e,stagger:r=80,className:s,...n}){let i=a.Children.toArray(e);return(0,t.jsx)("div",{className:s,...n,children:i.map((e,t)=>{if(!a.isValidElement(e))return e;let s=e.props.delay??0;return a.cloneElement(e,{delay:s+t*r})})})}])},30363,e=>{"use strict";let t=(0,e.i(86620).default)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);e.s(["Trash2",0,t],30363)},66458,e=>{"use strict";var t=e.i(44501),a=e.i(94237),r=e.i(76490);let s=(0,a.cva)("inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});e.s(["Badge",0,function({className:e,variant:a,...n}){return(0,t.jsx)("div",{className:(0,r.cn)(s({variant:a}),e),...n})}])},10414,e=>{"use strict";var t=e.i(44501),a=e.i(17635),r=e.i(76490);let s=a.forwardRef(({className:e,...a},s)=>(0,t.jsx)("div",{ref:s,className:(0,r.cn)("rounded-xl border bg-card text-card-foreground shadow",e),...a}));s.displayName="Card";let n=a.forwardRef(({className:e,...a},s)=>(0,t.jsx)("div",{ref:s,className:(0,r.cn)("flex flex-col space-y-1.5 p-6",e),...a}));n.displayName="CardHeader";let i=a.forwardRef(({className:e,...a},s)=>(0,t.jsx)("div",{ref:s,className:(0,r.cn)("font-semibold leading-none tracking-tight",e),...a}));i.displayName="CardTitle",a.forwardRef(({className:e,...a},s)=>(0,t.jsx)("div",{ref:s,className:(0,r.cn)("text-sm text-muted-foreground",e),...a})).displayName="CardDescription";let o=a.forwardRef(({className:e,...a},s)=>(0,t.jsx)("div",{ref:s,className:(0,r.cn)("p-6 pt-0",e),...a}));o.displayName="CardContent",a.forwardRef(({className:e,...a},s)=>(0,t.jsx)("div",{ref:s,className:(0,r.cn)("flex items-center p-6 pt-0",e),...a})).displayName="CardFooter";let d=a.forwardRef(({className:e,...a},s)=>(0,t.jsx)("div",{ref:s,className:(0,r.cn)("rounded-xl border bg-card text-card-foreground shadow-sm","transition-[transform,box-shadow,border-color] duration-200 ease-[cubic-bezier(0.34,1.56,0.64,1)]","hover:-translate-y-0.5 hover:border-primary/30 hover:shadow-md",e),...a}));d.displayName="CardInteractive",e.s(["Card",0,s,"CardContent",0,o,"CardHeader",0,n,"CardInteractive",0,d,"CardTitle",0,i])},12251,e=>{"use strict";var t=e.i(44501),a=e.i(17635),r=e.i(33253),s=e.i(42595),n=e.i(23888);e.s(["ConfirmDialog",0,function({open:e,onOpenChange:i,title:o,description:d,confirmText:l="确认",cancelText:c="取消",variant:m="default",onConfirm:u,confirmInput:p,children:h}){let[x,f]=(0,a.useState)(""),g=void 0!==p&&""!==p,y=g&&x!==p,I=(0,a.useCallback)(()=>{y||(u(),f(""))},[y,u]),v=(0,a.useCallback)(e=>{e||f(""),i(e)},[i]);return(0,t.jsx)(r.Dialog,{open:e,onOpenChange:v,children:(0,t.jsxs)(r.DialogContent,{className:"sm:max-w-120",children:[(0,t.jsxs)(r.DialogHeader,{children:[(0,t.jsx)(r.DialogTitle,{children:o}),(0,t.jsx)(r.DialogDescription,{className:"break-all",children:d})]}),g&&(0,t.jsxs)("div",{className:"py-2",children:[(0,t.jsxs)("p",{className:"mb-2 text-sm text-muted-foreground",children:["请输入 ",(0,t.jsx)("strong",{children:p})," 以确认操作"]}),(0,t.jsx)(n.Input,{value:x,onChange:e=>f(e.target.value),placeholder:p,autoFocus:!0})]}),h&&(0,t.jsx)("div",{className:"py-1",children:h}),(0,t.jsxs)(r.DialogFooter,{children:[(0,t.jsx)(s.Button,{variant:"outline",onClick:()=>v(!1),children:c}),(0,t.jsx)(s.Button,{variant:"danger"===m?"destructive":"default",onClick:I,disabled:y,children:l})]})]})})}])},83823,e=>{"use strict";let t=(0,e.i(86620).default)("rotate-ccw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]);e.s(["RotateCcw",0,t],83823)},65958,e=>{"use strict";var t=e.i(43876),a=e.i(64204);e.s(["useMemoryStore",0,function(e){return(0,t.useQuery)({queryKey:["memory","stores",e],queryFn:()=>(0,a.describeMemoryStore)(e),enabled:!!e})}])},70821,e=>{"use strict";var t=e.i(44501),a=e.i(65581),r=e.i(87014),s=e.i(12251),n=e.i(37500),i=e.i(12984),o=e.i(64204);e.s(["MemoryDeleteDialog",0,function({memoryStoreName:e,open:d,onOpenChange:l,redirectToList:c=!1}){let m,u=(0,a.useRouter)(),p=(m=(0,i.useQueryClient)(),(0,n.useMutation)({mutationFn:e=>(0,o.deleteMemoryStore)(e),onSuccess:()=>{m.invalidateQueries({queryKey:["memory","stores"]})}}));async function h(){if(e)try{await p.mutateAsync(e),r.toast.success("记忆库已删除"),l(!1),c&&u.push("/memory")}catch(e){r.toast.error(e instanceof Error?e.message:"删除记忆库失败")}}return(0,t.jsx)(s.ConfirmDialog,{open:d,onOpenChange:l,title:"删除记忆库",description:`确定要删除记忆库 "${e??""}" 吗?此操作不可撤销。`,confirmInput:e??void 0,confirmText:"删除",variant:"danger",onConfirm:h})}],70821)},27111,e=>{"use strict";var t=e.i(44501),a=e.i(65581),r=e.i(17635),s=e.i(31211),n=e.i(65958),i=e.i(70821),o=e.i(18722),d=e.i(30363),l=e.i(66458),c=e.i(42595);function m({memoryStore:e,onDelete:a}){return(0,t.jsx)("div",{className:"space-y-4",children:(0,t.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,t.jsxs)("div",{className:"min-w-0 space-y-2",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)("div",{className:"rounded-lg bg-[hsl(var(--primary)/0.1)] p-2 text-primary",children:(0,t.jsx)(o.Brain,{className:"h-5 w-5"})}),(0,t.jsx)("h1",{className:"truncate font-display text-[32px] font-semibold leading-tight tracking-tight text-foreground",children:e.memoryStoreName}),(0,t.jsx)(l.Badge,{variant:"secondary",className:"border-0 bg-[hsl(var(--primary-50))] text-primary",children:"Memory"})]}),(0,t.jsx)("p",{className:"max-w-3xl text-sm text-muted-foreground",children:e.description||"暂无描述"})]}),(0,t.jsxs)(c.Button,{variant:"ghost",size:"sm",className:"text-[hsl(var(--muted-foreground))] hover:text-[hsl(var(--destructive))] hover:bg-[hsl(var(--destructive))]/10",onClick:a,children:[(0,t.jsx)(d.Trash2,{className:"mr-2 h-4 w-4"}),"删除"]})]})})}var u=e.i(20268),p=e.i(90055),h=e.i(83823),x=e.i(67225),f=e.i(10414),g=e.i(23888),y=e.i(66476),I=e.i(66473),v=e.i(81015),j=e.i(64204);let b=[{key:"appId",label:"App",placeholder:"app-001"},{key:"tenantId",label:"Tenant",placeholder:"tenant-001"},{key:"agentId",label:"Agent",placeholder:"agent-001"},{key:"runId",label:"Run",placeholder:"run-001"}];function N(){let e=(0,a.useRouter)(),s=(0,a.usePathname)(),n=(0,a.useSearchParams)(),i=(0,r.useMemo)(()=>(0,v.buildMemoryScope)(n),[n.toString()]),[o,d]=(0,r.useState)(!1),[l,m]=(0,r.useState)(i),[N,S]=(0,r.useState)(null),[C,w]=(0,r.useState)(null),[$,R]=(0,r.useState)(!1),M=(0,r.useRef)(!1),k=s.split("/").filter(Boolean)[1],U=(0,v.hasWildcardScope)(i);(0,r.useEffect)(()=>{k&&!M.current&&(M.current=!0,e());async function e(){try{await (0,j.describeMemoryStore)(k);let e=await (0,j.listMemoryUnits)(k,{appId:"*"},{limit:1});e.items?.length>0&&e.items[0].scope?w(e.items[0].scope):w({appId:"__default__",tenantId:"__default__",agentId:"__default__",runId:"__default__"})}catch{}finally{R(!0)}}},[k]),(0,r.useEffect)(()=>{if(!(!k||s.includes("/create"))&&!n.get("appId")){let t=new URLSearchParams({appId:"*",tenantId:"*",agentId:"*",runId:"*"});e.replace(`${s}?${t.toString()}`)}},[n.toString(),s,e,k]),(0,r.useEffect)(()=>{m(e=>e.appId===i.appId&&e.tenantId===i.tenantId&&e.agentId===i.agentId&&e.runId===i.runId?e:i),S(null)},[i.appId,i.tenantId,i.agentId,i.runId]);let D=C?`${C.appId??"-"}/${C.tenantId??"-"}/${C.agentId??"-"}/${C.runId??"-"}`:$?"暂无数据":"加载中...",P=(l.appId??"")==="*"&&(l.tenantId??"")==="*"&&(l.agentId??"")==="*"&&(l.runId??"")==="*",_=!!C&&(l.appId??"")===(C.appId??"")&&(l.tenantId??"")===(C.tenantId??"")&&(l.agentId??"")===(C.agentId??"")&&(l.runId??"")===(C.runId??"");return(0,t.jsx)(f.Card,{className:"border-dashed",children:(0,t.jsxs)(f.CardContent,{className:"p-4",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-4",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[(0,t.jsx)(x.Settings2,{className:"h-4 w-4 text-muted-foreground"}),b.map(({key:e,label:a})=>(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsx)("span",{className:"text-xs font-medium text-muted-foreground",children:a}),(0,t.jsx)("span",{className:"rounded-md bg-[hsl(var(--muted))] px-2.5 py-1 text-xs font-mono text-[hsl(var(--foreground))]",children:i[e]??"—"})]},e))]}),(0,t.jsxs)("div",{className:"flex shrink-0 items-center gap-2",children:[U&&(0,t.jsx)("span",{className:"rounded-md bg-amber-50 px-2 py-1 text-xs text-amber-700 dark:bg-amber-950 dark:text-amber-300",children:"只读"}),(0,t.jsxs)(c.Button,{variant:"outline",size:"sm",onClick:()=>d(!o),children:[o?(0,t.jsx)(p.ChevronUp,{className:"mr-1 h-3.5 w-3.5"}):(0,t.jsx)(u.ChevronDown,{className:"mr-1 h-3.5 w-3.5"}),"修改"]})]})]}),o&&(0,t.jsxs)("div",{className:"mt-4 space-y-4 border-t pt-4",children:[(0,t.jsxs)("div",{className:"flex-1",children:[(0,t.jsx)(y.Label,{className:"text-xs",children:"快速预设"}),(0,t.jsxs)(I.Select,{value:P?"wildcard":_?"precise":"custom",onValueChange:function(e){"wildcard"===e?m({appId:"*",tenantId:"*",agentId:"*",runId:"*"}):"precise"===e&&C&&m({...C})},children:[(0,t.jsx)(I.SelectTrigger,{className:"h-8 text-sm",children:(0,t.jsx)(I.SelectValue,{})}),(0,t.jsxs)(I.SelectContent,{children:[(0,t.jsx)(I.SelectItem,{value:"wildcard",children:"全部数据(*/*/*/*)"}),(0,t.jsxs)(I.SelectItem,{value:"precise",disabled:!C,children:["精确范围(",D,")"]})]})]})]}),(0,t.jsx)("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-4",children:b.map(({key:e,label:a,placeholder:r})=>(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsxs)(y.Label,{htmlFor:`scope-${e}`,className:"text-xs",children:[a,"appId"===e&&(0,t.jsx)("span",{className:"ml-0.5 text-[hsl(var(--destructive))]",children:"*"})]}),(0,t.jsx)(g.Input,{id:`scope-${e}`,value:l[e]??"",placeholder:r,onChange:t=>{var a;return a=t.target.value,void("appId"===e?m(e=>({...e,appId:a})):m(t=>({...t,[e]:a||void 0})))},className:"h-8 text-sm"})]},e))}),(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[N&&(0,t.jsx)("p",{className:"text-xs text-[hsl(var(--destructive))]",children:N}),!N&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:"写操作需精确 scope,读/搜索支持通配符 *。"}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsxs)(c.Button,{variant:"outline",size:"sm",onClick:function(){m({appId:"*",tenantId:"*",agentId:"*",runId:"*"}),S(null),e.replace(`${s}?appId=*&tenantId=*&agentId=*&runId=*`)},children:[(0,t.jsx)(h.RotateCcw,{className:"mr-1 h-3 w-3"}),"重置"]}),(0,t.jsx)(c.Button,{size:"sm",onClick:function(){let t={appId:(l.appId??"").trim()||"appId",tenantId:(l.tenantId??"").trim()||void 0,agentId:(l.agentId??"").trim()||void 0,runId:(l.runId??"").trim()||void 0};if(!t.appId||"appId"===t.appId)return void S("App 是必填项");S(null);let a=(0,v.scopeToSearchParams)(t);e.replace(`${s}?${a.toString()}`),d(!1)},children:"应用"})]})]})]})]})})}var S=e.i(70978),C=e.i(76490);let w=[{label:"长期记忆",segment:"units"},{label:"记忆检索",segment:"search"},{label:"短期记忆",segment:"messages"},{label:"请求审计",segment:"requests"},{label:"设置",segment:"settings"}];function $({memoryStoreName:e}){let r=(0,a.usePathname)(),s=(0,a.useSearchParams)().toString(),n=`/memory/${encodeURIComponent(e)}`;return(0,t.jsx)("nav",{className:"flex gap-1 overflow-x-auto border-b border-[hsl(var(--border))]",children:w.map(e=>{let a=`${n}/${e.segment}`,i=r.startsWith(a);return(0,t.jsxs)(S.default,{href:`${a}${s?`?${s}`:""}`,className:(0,C.cn)("relative whitespace-nowrap rounded-t-md px-5 py-2.5 text-sm font-medium transition-colors duration-150",i?"bg-[hsl(var(--primary))]/5 text-[hsl(var(--primary))]":"text-[hsl(var(--muted-foreground))] hover:bg-[hsl(var(--accent))] hover:text-[hsl(var(--foreground))]"),children:[e.label,(0,t.jsx)("span",{className:(0,C.cn)("absolute inset-x-0 bottom-0 h-0.5 rounded-full bg-[hsl(var(--primary))] transition-all duration-200 ease-out",i?"opacity-100 scale-x-100":"opacity-0 scale-x-50")})]},e.segment)})})}e.s(["default",0,function({children:e}){let o=decodeURIComponent((0,a.useParams)().store),{data:d,isLoading:l}=(0,n.useMemoryStore)(o),[c,u]=(0,r.useState)(!1);return l?(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsx)(s.Skeleton,{className:"h-10 w-64"}),(0,t.jsx)(s.Skeleton,{className:"h-4 w-96"})]}),(0,t.jsx)(s.Skeleton,{className:"h-28 w-full"}),(0,t.jsx)(s.Skeleton,{className:"h-10 w-full"}),(0,t.jsx)(s.Skeleton,{className:"h-64 w-full"})]}):d?(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsx)(m,{memoryStore:d,onDelete:()=>u(!0)}),(0,t.jsx)(N,{}),(0,t.jsx)($,{memoryStoreName:o}),(0,t.jsx)("div",{children:e}),(0,t.jsx)(i.MemoryDeleteDialog,{memoryStoreName:o,open:c,onOpenChange:u,redirectToList:!0})]}):(0,t.jsx)("div",{className:"flex items-center justify-center py-20 text-muted-foreground",children:"记忆库不存在或已被删除"})}],27111)}]);
|
package/dist/dashboard-runtime/dashboard/.next/static/chunks/{0s3mvx9_dr13c.js → 11cizim1aug~b.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,99877,e=>{"use strict";var s=e.i(44501);e.s(["EmptyState",0,function({icon:e,title:a,description:t,action:r,illustration:n}){return(0,s.jsxs)("div",{className:"flex flex-col items-center justify-center py-16 px-4 text-center",children:[n??(0,s.jsx)("div",{className:"mb-5 flex h-20 w-20 items-center justify-center rounded-full bg-[hsl(var(--primary)/0.08)] ring-8 ring-[hsl(var(--primary)/0.04)]",children:(0,s.jsx)(e,{className:"text-primary",size:36,strokeWidth:1.75})}),(0,s.jsx)("h3",{className:"mb-2 font-display text-lg font-semibold text-foreground",children:a}),(0,s.jsx)("p",{className:"mb-6 max-w-sm text-sm text-muted-foreground",children:t}),r&&(0,s.jsx)("div",{children:r})]})}])},66458,e=>{"use strict";var s=e.i(44501),a=e.i(94237),t=e.i(76490);let r=(0,a.cva)("inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});e.s(["Badge",0,function({className:e,variant:a,...n}){return(0,s.jsx)("div",{className:(0,t.cn)(r({variant:a}),e),...n})}])},10414,e=>{"use strict";var s=e.i(44501),a=e.i(17635),t=e.i(76490);let r=a.forwardRef(({className:e,...a},r)=>(0,s.jsx)("div",{ref:r,className:(0,t.cn)("rounded-xl border bg-card text-card-foreground shadow",e),...a}));r.displayName="Card";let n=a.forwardRef(({className:e,...a},r)=>(0,s.jsx)("div",{ref:r,className:(0,t.cn)("flex flex-col space-y-1.5 p-6",e),...a}));n.displayName="CardHeader";let i=a.forwardRef(({className:e,...a},r)=>(0,s.jsx)("div",{ref:r,className:(0,t.cn)("font-semibold leading-none tracking-tight",e),...a}));i.displayName="CardTitle",a.forwardRef(({className:e,...a},r)=>(0,s.jsx)("div",{ref:r,className:(0,t.cn)("text-sm text-muted-foreground",e),...a})).displayName="CardDescription";let l=a.forwardRef(({className:e,...a},r)=>(0,s.jsx)("div",{ref:r,className:(0,t.cn)("p-6 pt-0",e),...a}));l.displayName="CardContent",a.forwardRef(({className:e,...a},r)=>(0,s.jsx)("div",{ref:r,className:(0,t.cn)("flex items-center p-6 pt-0",e),...a})).displayName="CardFooter";let c=a.forwardRef(({className:e,...a},r)=>(0,s.jsx)("div",{ref:r,className:(0,t.cn)("rounded-xl border bg-card text-card-foreground shadow-sm","transition-[transform,box-shadow,border-color] duration-200 ease-[cubic-bezier(0.34,1.56,0.64,1)]","hover:-translate-y-0.5 hover:border-primary/30 hover:shadow-md",e),...a}));c.displayName="CardInteractive",e.s(["Card",0,r,"CardContent",0,l,"CardHeader",0,n,"CardInteractive",0,c,"CardTitle",0,i])},23516,e=>{"use strict";var s=e.i(44501);e.s(["PageHeader",0,function({title:e,description:a,children:t}){return(0,s.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,s.jsxs)("div",{className:"space-y-1",children:[(0,s.jsx)("h1",{className:"text-[32px] font-semibold leading-tight text-foreground",children:e}),a&&(0,s.jsx)("p",{className:"text-sm text-muted-foreground",children:a})]}),t&&(0,s.jsx)("div",{className:"flex items-center gap-2",children:t})]})}])},31211,e=>{"use strict";var s=e.i(44501),a=e.i(17635),t=e.i(76490);e.s(["Skeleton",0,function({className:e,delay:a,style:r,...n}){return(0,s.jsx)("div",{className:(0,t.cn)("animate-pulse rounded-md bg-primary/10",e),style:{animationDelay:a?`${a}ms`:void 0,...r},...n})},"SkeletonGroup",0,function({children:e,stagger:t=80,className:r,...n}){let i=a.Children.toArray(e);return(0,s.jsx)("div",{className:r,...n,children:i.map((e,s)=>{if(!a.isValidElement(e))return e;let r=e.props.delay??0;return a.cloneElement(e,{delay:r+s*t})})})}])},30363,e=>{"use strict";let s=(0,e.i(86620).default)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);e.s(["Trash2",0,s],30363)},33153,e=>{"use strict";let s=(0,e.i(86620).default)("pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);e.s(["Pencil",0,s],33153)},82652,e=>{"use strict";let s=(0,e.i(86620).default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);e.s(["Copy",0,s],82652)},21070,e=>{"use strict";var s=e.i(44501),a=e.i(17635),t=e.i(65581),r=e.i(82652),n=e.i(33153),i=e.i(58204);let l=(0,e.i(86620).default)("star",[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]]);var c=e.i(30363),d=e.i(87014),o=e.i(23516),m=e.i(68184),u=e.i(33253),x=e.i(31211),h=e.i(53859),p=e.i(47474);function f({name:e,open:a,onOpenChange:t,onSuccess:r}){let n=(0,h.useInstance)(a?e:null),i=(0,h.useUpdateInstance)(e??"");async function l(s){if(!e)return;let a=s.accessKeyId?.trim()??"",n=s.accessKeySecret?.trim()??"",l={...a&&n?{accessKeyId:a,accessKeySecret:n}:{},otsEndpoint:s.otsEndpoint,otsInstanceName:s.otsInstanceName,ossEndpoint:s.ossEndpoint,ossBucketName:s.ossBucketName,region:s.region},c=await i.mutateAsync(l);r?.(c),t(!1)}let c=n.data;return(0,s.jsx)(u.Dialog,{open:a,onOpenChange:t,children:(0,s.jsxs)(u.DialogContent,{className:"max-w-xl",children:[(0,s.jsxs)(u.DialogHeader,{children:[(0,s.jsxs)(u.DialogTitle,{children:["编辑项目",e?` \xb7 ${e}`:""]}),(0,s.jsx)(u.DialogDescription,{children:"修改连接凭证后会立即生效,其他会话可能需要刷新。"})]}),n.isLoading?(0,s.jsxs)(x.SkeletonGroup,{className:"space-y-3 py-2",children:[(0,s.jsx)(x.Skeleton,{className:"h-9 w-full"}),(0,s.jsx)(x.Skeleton,{className:"h-9 w-full"}),(0,s.jsx)(x.Skeleton,{className:"h-9 w-2/3"}),(0,s.jsx)(x.Skeleton,{className:"h-9 w-full"})]}):n.isError?(0,s.jsxs)("p",{className:"text-sm text-[hsl(var(--destructive))]",children:["加载项目详情失败:",n.error instanceof Error?n.error.message:"未知错误"]}):c?(0,s.jsx)(p.ConnectInstanceForm,{mode:"edit",lockName:!0,busy:i.isPending,defaultValues:{name:c.name,accessKeyId:"",accessKeySecret:"",otsEndpoint:c.otsEndpoint??"",otsInstanceName:c.otsInstanceName??"",ossEndpoint:c.ossEndpoint??"",ossBucketName:c.ossBucketName??"",region:c.region??""},accessKeyIdPlaceholder:c.accessKeyIdMasked,accessKeySecretPlaceholder:c.accessKeySecretMasked,onSubmit:l,submitLabel:"保存修改"}):null]})})}var g=e.i(66458),y=e.i(42595),j=e.i(10414),v=e.i(99877),N=e.i(77163);e.s(["default",0,function(){let e=(0,t.useRouter)(),{data:p,isLoading:b}=(0,h.useInstances)(),k=(0,h.useSwitchInstance)(),w=(0,h.useDeleteInstance)(),C=(0,h.useExportInstanceToken)(),[S,I]=(0,a.useState)(!1),[D,B]=(0,a.useState)(null),[T,E]=(0,a.useState)(null),P=p?.activeInstance??null,K=(p?.instances??[]).filter(e=>!e.isDefaultFallback);async function z(s){s!==P&&(await k.mutateAsync(s),e.refresh())}async function M(e){let s=await C.mutateAsync(e);try{await navigator.clipboard.writeText(s.token),d.toast.success(`已复制 ${e} 的 Token`)}catch{d.toast.message("请手动复制 Token",{description:s.token})}}async function R(){T&&(await w.mutateAsync(T),E(null),e.refresh())}return(0,s.jsxs)("div",{className:"space-y-6",children:[(0,s.jsx)(o.PageHeader,{title:"项目管理",description:"连接、切换与管理多个项目",children:(0,s.jsxs)(y.Button,{onClick:()=>I(!0),children:[(0,s.jsx)(i.Plus,{className:"mr-2 h-4 w-4"}),"创建新项目"]})}),b?(0,s.jsx)("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-3",children:Array.from({length:3}).map((e,a)=>(0,s.jsx)(x.Skeleton,{className:"h-[180px] rounded-lg",delay:80*a},a))}):0===K.length?(0,s.jsx)(v.EmptyState,{icon:N.Database,title:"还没有项目",description:"创建你的第一个项目,解锁多环境切换",action:(0,s.jsxs)(y.Button,{onClick:()=>I(!0),children:[(0,s.jsx)(i.Plus,{className:"mr-2 h-4 w-4"}),"创建新项目"]})}):(0,s.jsx)("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-3",children:K.map(e=>{let a=e.name===P;return(0,s.jsxs)(j.Card,{className:a?"border-primary/60 shadow-sm ring-1 ring-primary/20":void 0,children:[(0,s.jsxs)(j.CardHeader,{className:"space-y-2 pb-3",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,s.jsx)(j.CardTitle,{className:"truncate text-base",children:e.name}),a?(0,s.jsxs)(g.Badge,{variant:"default",className:"shrink-0",children:[(0,s.jsx)(l,{className:"mr-1 h-3 w-3"}),"活跃"]}):null]}),(0,s.jsxs)("p",{className:"truncate text-xs text-muted-foreground",children:[e.otsInstanceName??"--",e.region?` \xb7 ${e.region}`:""]})]}),(0,s.jsxs)(j.CardContent,{className:"space-y-3 pt-0",children:[(0,s.jsxs)("div",{className:"flex flex-wrap gap-2 text-xs text-muted-foreground",children:[(0,s.jsx)(g.Badge,{variant:"secondary",children:"OTS"}),e.hasOss?(0,s.jsx)(g.Badge,{variant:"secondary",children:"OSS"}):null]}),(0,s.jsxs)("div",{className:"flex flex-wrap gap-2 pt-1",children:[(0,s.jsx)(y.Button,{size:"sm",variant:a?"secondary":"default",disabled:a||k.isPending,onClick:()=>z(e.name),children:a?"当前项目":"切换"}),(0,s.jsxs)(y.Button,{size:"sm",variant:"outline",onClick:()=>B(e.name),children:[(0,s.jsx)(n.Pencil,{className:"mr-1.5 h-3.5 w-3.5"}),"编辑"]}),(0,s.jsxs)(y.Button,{size:"sm",variant:"outline",onClick:()=>M(e.name),disabled:C.isPending,children:[(0,s.jsx)(r.Copy,{className:"mr-1.5 h-3.5 w-3.5"}),"导出 Token"]}),(0,s.jsxs)(y.Button,{size:"sm",variant:"ghost",className:"text-[hsl(var(--destructive))] hover:text-[hsl(var(--destructive))]",onClick:()=>E(e.name),children:[(0,s.jsx)(c.Trash2,{className:"mr-1.5 h-3.5 w-3.5"}),"删除"]})]})]})]},e.name)})}),(0,s.jsx)(m.ConnectInstanceDialog,{open:S,onOpenChange:I,onSuccess:()=>e.refresh()}),(0,s.jsx)(f,{name:D,open:!!D,onOpenChange:e=>{e||B(null)},onSuccess:()=>e.refresh()}),(0,s.jsx)(u.Dialog,{open:!!T,onOpenChange:e=>{e||E(null)},children:(0,s.jsxs)(u.DialogContent,{children:[(0,s.jsxs)(u.DialogHeader,{children:[(0,s.jsx)(u.DialogTitle,{children:"删除项目"}),(0,s.jsxs)(u.DialogDescription,{children:['确定要删除项目 "',T,'" 吗?此操作只影响本地配置,不会删除云端资源。']})]}),(0,s.jsxs)(u.DialogFooter,{children:[(0,s.jsx)(y.Button,{variant:"outline",onClick:()=>E(null),children:"取消"}),(0,s.jsx)(y.Button,{variant:"destructive",disabled:w.isPending,onClick:R,children:w.isPending?"删除中...":"确认删除"})]})]})})]})}],21070)}]);
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,23516,e=>{"use strict";var s=e.i(44501);e.s(["PageHeader",0,function({title:e,description:a,children:t}){return(0,s.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,s.jsxs)("div",{className:"space-y-1",children:[(0,s.jsx)("h1",{className:"text-[32px] font-semibold leading-tight text-foreground",children:e}),a&&(0,s.jsx)("p",{className:"text-sm text-muted-foreground",children:a})]}),t&&(0,s.jsx)("div",{className:"flex items-center gap-2",children:t})]})}])},31211,e=>{"use strict";var s=e.i(44501),a=e.i(17635),t=e.i(76490);e.s(["Skeleton",0,function({className:e,delay:a,style:r,...n}){return(0,s.jsx)("div",{className:(0,t.cn)("animate-pulse rounded-md bg-primary/10",e),style:{animationDelay:a?`${a}ms`:void 0,...r},...n})},"SkeletonGroup",0,function({children:e,stagger:t=80,className:r,...n}){let i=a.Children.toArray(e);return(0,s.jsx)("div",{className:r,...n,children:i.map((e,s)=>{if(!a.isValidElement(e))return e;let r=e.props.delay??0;return a.cloneElement(e,{delay:r+s*t})})})}])},30363,e=>{"use strict";let s=(0,e.i(86620).default)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);e.s(["Trash2",0,s],30363)},99877,e=>{"use strict";var s=e.i(44501);e.s(["EmptyState",0,function({icon:e,title:a,description:t,action:r,illustration:n}){return(0,s.jsxs)("div",{className:"flex flex-col items-center justify-center py-16 px-4 text-center",children:[n??(0,s.jsx)("div",{className:"mb-5 flex h-20 w-20 items-center justify-center rounded-full bg-[hsl(var(--primary)/0.08)] ring-8 ring-[hsl(var(--primary)/0.04)]",children:(0,s.jsx)(e,{className:"text-primary",size:36,strokeWidth:1.75})}),(0,s.jsx)("h3",{className:"mb-2 font-display text-lg font-semibold text-foreground",children:a}),(0,s.jsx)("p",{className:"mb-6 max-w-sm text-sm text-muted-foreground",children:t}),r&&(0,s.jsx)("div",{children:r})]})}])},66458,e=>{"use strict";var s=e.i(44501),a=e.i(94237),t=e.i(76490);let r=(0,a.cva)("inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});e.s(["Badge",0,function({className:e,variant:a,...n}){return(0,s.jsx)("div",{className:(0,t.cn)(r({variant:a}),e),...n})}])},10414,e=>{"use strict";var s=e.i(44501),a=e.i(17635),t=e.i(76490);let r=a.forwardRef(({className:e,...a},r)=>(0,s.jsx)("div",{ref:r,className:(0,t.cn)("rounded-xl border bg-card text-card-foreground shadow",e),...a}));r.displayName="Card";let n=a.forwardRef(({className:e,...a},r)=>(0,s.jsx)("div",{ref:r,className:(0,t.cn)("flex flex-col space-y-1.5 p-6",e),...a}));n.displayName="CardHeader";let i=a.forwardRef(({className:e,...a},r)=>(0,s.jsx)("div",{ref:r,className:(0,t.cn)("font-semibold leading-none tracking-tight",e),...a}));i.displayName="CardTitle",a.forwardRef(({className:e,...a},r)=>(0,s.jsx)("div",{ref:r,className:(0,t.cn)("text-sm text-muted-foreground",e),...a})).displayName="CardDescription";let l=a.forwardRef(({className:e,...a},r)=>(0,s.jsx)("div",{ref:r,className:(0,t.cn)("p-6 pt-0",e),...a}));l.displayName="CardContent",a.forwardRef(({className:e,...a},r)=>(0,s.jsx)("div",{ref:r,className:(0,t.cn)("flex items-center p-6 pt-0",e),...a})).displayName="CardFooter";let c=a.forwardRef(({className:e,...a},r)=>(0,s.jsx)("div",{ref:r,className:(0,t.cn)("rounded-xl border bg-card text-card-foreground shadow-sm","transition-[transform,box-shadow,border-color] duration-200 ease-[cubic-bezier(0.34,1.56,0.64,1)]","hover:-translate-y-0.5 hover:border-primary/30 hover:shadow-md",e),...a}));c.displayName="CardInteractive",e.s(["Card",0,r,"CardContent",0,l,"CardHeader",0,n,"CardInteractive",0,c,"CardTitle",0,i])},33153,e=>{"use strict";let s=(0,e.i(86620).default)("pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);e.s(["Pencil",0,s],33153)},82652,e=>{"use strict";let s=(0,e.i(86620).default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);e.s(["Copy",0,s],82652)},21070,e=>{"use strict";var s=e.i(44501),a=e.i(17635),t=e.i(65581),r=e.i(82652),n=e.i(33153),i=e.i(58204);let l=(0,e.i(86620).default)("star",[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]]);var c=e.i(30363),d=e.i(87014),o=e.i(23516),m=e.i(68184),u=e.i(33253),x=e.i(31211),h=e.i(53859),p=e.i(47474);function f({name:e,open:a,onOpenChange:t,onSuccess:r}){let n=(0,h.useInstance)(a?e:null),i=(0,h.useUpdateInstance)(e??"");async function l(s){if(!e)return;let a=s.accessKeyId?.trim()??"",n=s.accessKeySecret?.trim()??"",l={...a&&n?{accessKeyId:a,accessKeySecret:n}:{},otsEndpoint:s.otsEndpoint,otsInstanceName:s.otsInstanceName,ossEndpoint:s.ossEndpoint,ossBucketName:s.ossBucketName,region:s.region},c=await i.mutateAsync(l);r?.(c),t(!1)}let c=n.data;return(0,s.jsx)(u.Dialog,{open:a,onOpenChange:t,children:(0,s.jsxs)(u.DialogContent,{className:"max-w-xl",children:[(0,s.jsxs)(u.DialogHeader,{children:[(0,s.jsxs)(u.DialogTitle,{children:["编辑项目",e?` \xb7 ${e}`:""]}),(0,s.jsx)(u.DialogDescription,{children:"修改连接凭证后会立即生效,其他会话可能需要刷新。"})]}),n.isLoading?(0,s.jsxs)(x.SkeletonGroup,{className:"space-y-3 py-2",children:[(0,s.jsx)(x.Skeleton,{className:"h-9 w-full"}),(0,s.jsx)(x.Skeleton,{className:"h-9 w-full"}),(0,s.jsx)(x.Skeleton,{className:"h-9 w-2/3"}),(0,s.jsx)(x.Skeleton,{className:"h-9 w-full"})]}):n.isError?(0,s.jsxs)("p",{className:"text-sm text-[hsl(var(--destructive))]",children:["加载项目详情失败:",n.error instanceof Error?n.error.message:"未知错误"]}):c?(0,s.jsx)(p.ConnectInstanceForm,{mode:"edit",lockName:!0,busy:i.isPending,defaultValues:{name:c.name,accessKeyId:"",accessKeySecret:"",otsEndpoint:c.otsEndpoint??"",otsInstanceName:c.otsInstanceName??"",ossEndpoint:c.ossEndpoint??"",ossBucketName:c.ossBucketName??"",region:c.region??""},accessKeyIdPlaceholder:c.accessKeyIdMasked,accessKeySecretPlaceholder:c.accessKeySecretMasked,onSubmit:l,submitLabel:"保存修改"}):null]})})}var g=e.i(66458),y=e.i(42595),j=e.i(10414),v=e.i(99877),N=e.i(77163);e.s(["default",0,function(){let e=(0,t.useRouter)(),{data:p,isLoading:b}=(0,h.useInstances)(),k=(0,h.useSwitchInstance)(),w=(0,h.useDeleteInstance)(),C=(0,h.useExportInstanceToken)(),[S,I]=(0,a.useState)(!1),[D,B]=(0,a.useState)(null),[T,E]=(0,a.useState)(null),P=p?.activeInstance??null,K=(p?.instances??[]).filter(e=>!e.isDefaultFallback);async function z(s){s!==P&&(await k.mutateAsync(s),e.refresh())}async function M(e){let s=await C.mutateAsync(e);try{await navigator.clipboard.writeText(s.token),d.toast.success(`已复制 ${e} 的 Token`)}catch{d.toast.message("请手动复制 Token",{description:s.token})}}async function R(){T&&(await w.mutateAsync(T),E(null),e.refresh())}return(0,s.jsxs)("div",{className:"space-y-6",children:[(0,s.jsx)(o.PageHeader,{title:"项目管理",description:"连接、切换与管理多个项目",children:(0,s.jsxs)(y.Button,{onClick:()=>I(!0),children:[(0,s.jsx)(i.Plus,{className:"mr-2 h-4 w-4"}),"创建新项目"]})}),b?(0,s.jsx)("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-3",children:Array.from({length:3}).map((e,a)=>(0,s.jsx)(x.Skeleton,{className:"h-[180px] rounded-lg",delay:80*a},a))}):0===K.length?(0,s.jsx)(v.EmptyState,{icon:N.Database,title:"还没有项目",description:"创建你的第一个项目,解锁多环境切换",action:(0,s.jsxs)(y.Button,{onClick:()=>I(!0),children:[(0,s.jsx)(i.Plus,{className:"mr-2 h-4 w-4"}),"创建新项目"]})}):(0,s.jsx)("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-3",children:K.map(e=>{let a=e.name===P;return(0,s.jsxs)(j.Card,{className:a?"border-primary/60 shadow-sm ring-1 ring-primary/20":void 0,children:[(0,s.jsxs)(j.CardHeader,{className:"space-y-2 pb-3",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,s.jsx)(j.CardTitle,{className:"truncate text-base",children:e.name}),a?(0,s.jsxs)(g.Badge,{variant:"default",className:"shrink-0",children:[(0,s.jsx)(l,{className:"mr-1 h-3 w-3"}),"活跃"]}):null]}),(0,s.jsxs)("p",{className:"truncate text-xs text-muted-foreground",children:[e.otsInstanceName??"--",e.region?` \xb7 ${e.region}`:""]})]}),(0,s.jsxs)(j.CardContent,{className:"space-y-3 pt-0",children:[(0,s.jsxs)("div",{className:"flex flex-wrap gap-2 text-xs text-muted-foreground",children:[(0,s.jsx)(g.Badge,{variant:"secondary",children:"OTS"}),e.hasOss?(0,s.jsx)(g.Badge,{variant:"secondary",children:"OSS"}):null]}),(0,s.jsxs)("div",{className:"flex flex-wrap gap-2 pt-1",children:[(0,s.jsx)(y.Button,{size:"sm",variant:a?"secondary":"default",disabled:a||k.isPending,onClick:()=>z(e.name),children:a?"当前项目":"切换"}),(0,s.jsxs)(y.Button,{size:"sm",variant:"outline",onClick:()=>B(e.name),children:[(0,s.jsx)(n.Pencil,{className:"mr-1.5 h-3.5 w-3.5"}),"编辑"]}),(0,s.jsxs)(y.Button,{size:"sm",variant:"outline",onClick:()=>M(e.name),disabled:C.isPending,children:[(0,s.jsx)(r.Copy,{className:"mr-1.5 h-3.5 w-3.5"}),"导出 Token"]}),(0,s.jsxs)(y.Button,{size:"sm",variant:"ghost",className:"text-[hsl(var(--destructive))] hover:text-[hsl(var(--destructive))]",onClick:()=>E(e.name),children:[(0,s.jsx)(c.Trash2,{className:"mr-1.5 h-3.5 w-3.5"}),"删除"]})]})]})]},e.name)})}),(0,s.jsx)(m.ConnectInstanceDialog,{open:S,onOpenChange:I,onSuccess:()=>e.refresh()}),(0,s.jsx)(f,{name:D,open:!!D,onOpenChange:e=>{e||B(null)},onSuccess:()=>e.refresh()}),(0,s.jsx)(u.Dialog,{open:!!T,onOpenChange:e=>{e||E(null)},children:(0,s.jsxs)(u.DialogContent,{children:[(0,s.jsxs)(u.DialogHeader,{children:[(0,s.jsx)(u.DialogTitle,{children:"删除项目"}),(0,s.jsxs)(u.DialogDescription,{children:['确定要删除项目 "',T,'" 吗?此操作只影响本地配置,不会删除云端资源。']})]}),(0,s.jsxs)(u.DialogFooter,{children:[(0,s.jsx)(y.Button,{variant:"outline",onClick:()=>E(null),children:"取消"}),(0,s.jsx)(y.Button,{variant:"destructive",disabled:w.isPending,onClick:R,children:w.isPending?"删除中...":"确认删除"})]})]})})]})}],21070)}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,30068,e=>{"use strict";let t=(0,e.i(86620).default)("refresh-cw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);e.s(["RefreshCw",0,t],30068)},51517,e=>{"use strict";let t=(0,e.i(86620).default)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);e.s(["Loader2",0,t],51517)},22740,e=>{"use strict";var t=e.i(44501),r=e.i(17635),a=e.i(76490);let s=r.forwardRef(({className:e,...r},s)=>(0,t.jsx)("div",{className:"relative w-full overflow-auto",children:(0,t.jsx)("table",{ref:s,className:(0,a.cn)("w-full caption-bottom text-sm",e),...r})}));s.displayName="Table";let l=r.forwardRef(({className:e,...r},s)=>(0,t.jsx)("thead",{ref:s,className:(0,a.cn)("[&_tr]:border-b",e),...r}));l.displayName="TableHeader";let i=r.forwardRef(({className:e,...r},s)=>(0,t.jsx)("tbody",{ref:s,className:(0,a.cn)("[&_tr:last-child]:border-0",e),...r}));i.displayName="TableBody",r.forwardRef(({className:e,...r},s)=>(0,t.jsx)("tfoot",{ref:s,className:(0,a.cn)("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",e),...r})).displayName="TableFooter";let n=r.forwardRef(({className:e,...r},s)=>(0,t.jsx)("tr",{ref:s,className:(0,a.cn)("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",e),...r}));n.displayName="TableRow";let c=r.forwardRef(({className:e,...r},s)=>(0,t.jsx)("th",{ref:s,className:(0,a.cn)("h-10 px-2 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",e),...r}));c.displayName="TableHead";let o=r.forwardRef(({className:e,...r},s)=>(0,t.jsx)("td",{ref:s,className:(0,a.cn)("p-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",e),...r}));o.displayName="TableCell",r.forwardRef(({className:e,...r},s)=>(0,t.jsx)("caption",{ref:s,className:(0,a.cn)("mt-4 text-sm text-muted-foreground",e),...r})).displayName="TableCaption",e.s(["Table",0,s,"TableBody",0,i,"TableCell",0,o,"TableHead",0,c,"TableHeader",0,l,"TableRow",0,n])},31592,73581,e=>{"use strict";var t=e.i(44501),r=e.i(17635),a=e.i(30068),s=e.i(42595),l=e.i(76490);e.s(["RefreshButton",0,function({loading:e,onClick:i,title:n="刷新",className:c,size:o="icon",label:d,variant:u="ghost"}){let f=(0,r.useRef)(null),h=(0,r.useRef)(null),m=(0,r.useRef)(e),p=()=>{let e=f.current;if(!e||h.current)return;let t=e.animate([{transform:"rotate(0deg)"},{transform:"rotate(360deg)"}],{duration:800,easing:"linear",iterations:1,fill:"none"});h.current=t,t.addEventListener("finish",()=>{h.current=null,m.current&&p()}),t.addEventListener("cancel",()=>{h.current=null})};(0,r.useEffect)(()=>{m.current=e},[e]),(0,r.useEffect)(()=>{e&&p()},[e]),(0,r.useEffect)(()=>()=>{h.current?.cancel(),h.current=null},[]);let x="icon"!==o&&!!d;return(0,t.jsxs)(s.Button,{type:"button",variant:u,size:o,onClick:()=>{e||(p(),i())},title:n,"aria-label":d??n,"aria-busy":e||void 0,className:(0,l.cn)("group text-muted-foreground transition-colors duration-150","hover:text-foreground active:scale-[0.96]","ghost"===u&&"hover:bg-[hsl(var(--accent))]",c),children:[(0,t.jsx)("span",{ref:f,"aria-hidden":!0,className:(0,l.cn)("inline-flex transform-gpu",x&&"mr-1.5"),children:(0,t.jsx)(a.RefreshCw,{className:"sm"===o?"h-3.5 w-3.5":"h-4 w-4"})}),x&&d]})}],31592);let i=(0,e.i(86620).default)("eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);e.s(["Eye",0,i],73581)},33153,e=>{"use strict";let t=(0,e.i(86620).default)("pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);e.s(["Pencil",0,t],33153)},96416,e=>{"use strict";let t=(0,e.i(86620).default)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);e.s(["Search",0,t],96416)},12251,e=>{"use strict";var t=e.i(44501),r=e.i(17635),a=e.i(33253),s=e.i(42595),l=e.i(23888);e.s(["ConfirmDialog",0,function({open:e,onOpenChange:i,title:n,description:c,confirmText:o="确认",cancelText:d="取消",variant:u="default",onConfirm:f,confirmInput:h,children:m}){let[p,x]=(0,r.useState)(""),b=void 0!==h&&""!==h,y=b&&p!==h,v=(0,r.useCallback)(()=>{y||(f(),x(""))},[y,f]),g=(0,r.useCallback)(e=>{e||x(""),i(e)},[i]);return(0,t.jsx)(a.Dialog,{open:e,onOpenChange:g,children:(0,t.jsxs)(a.DialogContent,{className:"sm:max-w-120",children:[(0,t.jsxs)(a.DialogHeader,{children:[(0,t.jsx)(a.DialogTitle,{children:n}),(0,t.jsx)(a.DialogDescription,{className:"break-all",children:c})]}),b&&(0,t.jsxs)("div",{className:"py-2",children:[(0,t.jsxs)("p",{className:"mb-2 text-sm text-muted-foreground",children:["请输入 ",(0,t.jsx)("strong",{children:h})," 以确认操作"]}),(0,t.jsx)(l.Input,{value:p,onChange:e=>x(e.target.value),placeholder:h,autoFocus:!0})]}),m&&(0,t.jsx)("div",{className:"py-1",children:m}),(0,t.jsxs)(a.DialogFooter,{children:[(0,t.jsx)(s.Button,{variant:"outline",onClick:()=>g(!1),children:d}),(0,t.jsx)(s.Button,{variant:"danger"===u?"destructive":"default",onClick:v,disabled:y,children:o})]})]})})}])},63630,e=>{"use strict";var t=e.i(44501),r=e.i(17635),a=e.i(67928),s=e.i(43250),l=e.i(91967),i=e.i(17256),n=e.i(84017),c=e.i(61614),o=e.i(90088),d=e.i(80939),u="Checkbox",[f,h]=(0,s.createContextScope)(u),[m,p]=f(u);function x(e){let{__scopeCheckbox:a,checked:s,children:l,defaultChecked:n,disabled:c,form:o,name:d,onCheckedChange:f,required:h,value:p="on",internal_do_not_use_render:x}=e,[b,y]=(0,i.useControllableState)({prop:s,defaultProp:n??!1,onChange:f,caller:u}),[v,g]=r.useState(null),[j,k]=r.useState(null),N=r.useRef(!1),C=!v||!!o||!!v.closest("form"),R={checked:b,disabled:c,setChecked:y,control:v,setControl:g,name:d,form:o,value:p,hasConsumerStoppedPropagationRef:N,required:h,defaultChecked:!w(n)&&n,isFormControl:C,bubbleInput:j,setBubbleInput:k};return(0,t.jsx)(m,{scope:a,...R,children:"function"==typeof x?x(R):l})}var b="CheckboxTrigger",y=r.forwardRef(({__scopeCheckbox:e,onKeyDown:s,onClick:i,...n},c)=>{let{control:o,value:u,disabled:f,checked:h,required:m,setControl:x,setChecked:y,hasConsumerStoppedPropagationRef:v,isFormControl:g,bubbleInput:j}=p(b,e),k=(0,a.useComposedRefs)(c,x),N=r.useRef(h);return r.useEffect(()=>{let e=o?.form;if(e){let t=()=>y(N.current);return e.addEventListener("reset",t),()=>e.removeEventListener("reset",t)}},[o,y]),(0,t.jsx)(d.Primitive.button,{type:"button",role:"checkbox","aria-checked":w(h)?"mixed":h,"aria-required":m,"data-state":C(h),"data-disabled":f?"":void 0,disabled:f,value:u,...n,ref:k,onKeyDown:(0,l.composeEventHandlers)(s,e=>{"Enter"===e.key&&e.preventDefault()}),onClick:(0,l.composeEventHandlers)(i,e=>{y(e=>!!w(e)||!e),j&&g&&(v.current=e.isPropagationStopped(),v.current||e.stopPropagation())})})});y.displayName=b;var v=r.forwardRef((e,r)=>{let{__scopeCheckbox:a,name:s,checked:l,defaultChecked:i,required:n,disabled:c,value:o,onCheckedChange:d,form:u,...f}=e;return(0,t.jsx)(x,{__scopeCheckbox:a,checked:l,defaultChecked:i,disabled:c,required:n,onCheckedChange:d,name:s,form:u,value:o,internal_do_not_use_render:({isFormControl:e})=>(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(y,{...f,ref:r,__scopeCheckbox:a}),e&&(0,t.jsx)(N,{__scopeCheckbox:a})]})})});v.displayName=u;var g="CheckboxIndicator",j=r.forwardRef((e,r)=>{let{__scopeCheckbox:a,forceMount:s,...l}=e,i=p(g,a);return(0,t.jsx)(o.Presence,{present:s||w(i.checked)||!0===i.checked,children:(0,t.jsx)(d.Primitive.span,{"data-state":C(i.checked),"data-disabled":i.disabled?"":void 0,...l,ref:r,style:{pointerEvents:"none",...e.style}})})});j.displayName=g;var k="CheckboxBubbleInput",N=r.forwardRef(({__scopeCheckbox:e,...s},l)=>{let{control:i,hasConsumerStoppedPropagationRef:o,checked:u,defaultChecked:f,required:h,disabled:m,name:x,value:b,form:y,bubbleInput:v,setBubbleInput:g}=p(k,e),j=(0,a.useComposedRefs)(l,g),N=(0,n.usePrevious)(u),C=(0,c.useSize)(i);r.useEffect(()=>{if(!v)return;let e=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set,t=!o.current;if(N!==u&&e){let r=new Event("click",{bubbles:t});v.indeterminate=w(u),e.call(v,!w(u)&&u),v.dispatchEvent(r)}},[v,N,u,o]);let R=r.useRef(!w(u)&&u);return(0,t.jsx)(d.Primitive.input,{type:"checkbox","aria-hidden":!0,defaultChecked:f??R.current,required:h,disabled:m,name:x,value:b,form:y,...s,tabIndex:-1,ref:j,style:{...s.style,...C,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});function w(e){return"indeterminate"===e}function C(e){return w(e)?"indeterminate":e?"checked":"unchecked"}N.displayName=k;var R=e.i(6703),T=e.i(76490);let E=r.forwardRef(({className:e,...r},a)=>(0,t.jsx)(v,{ref:a,className:(0,T.cn)("grid place-content-center peer h-4 w-4 shrink-0 rounded-sm border border-primary shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",e),...r,children:(0,t.jsx)(j,{className:(0,T.cn)("grid place-content-center text-current"),children:(0,t.jsx)(R.Check,{className:"h-4 w-4"})})}));E.displayName=v.displayName,e.s(["Checkbox",0,E],63630)},23516,e=>{"use strict";var t=e.i(44501);e.s(["PageHeader",0,function({title:e,description:r,children:a}){return(0,t.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsx)("h1",{className:"text-[32px] font-semibold leading-tight text-foreground",children:e}),r&&(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:r})]}),a&&(0,t.jsx)("div",{className:"flex items-center gap-2",children:a})]})}])},86221,e=>{"use strict";let t=(0,e.i(86620).default)("ellipsis",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]]);e.s(["MoreHorizontal",0,t],86221)},90035,51989,e=>{"use strict";var t=e.i(44501),r=e.i(96416),a=e.i(46398),s=e.i(76490);e.s(["SearchInput",0,function({value:e,onChange:l,placeholder:i="搜索…",className:n}){return(0,t.jsxs)("div",{className:(0,s.cn)("relative flex items-center",n),children:[(0,t.jsx)(r.Search,{className:"absolute left-3 pointer-events-none text-muted-foreground",size:16}),(0,t.jsx)("input",{type:"text",value:e,onChange:e=>l(e.target.value),placeholder:i,className:(0,s.cn)("h-9 w-full rounded-md border border-input bg-background pl-9 pr-8 text-sm","placeholder:text-muted-foreground/60","focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-1")}),e&&(0,t.jsx)("button",{type:"button",onClick:()=>l(""),className:"absolute right-2 inline-flex items-center justify-center rounded-full p-0.5 text-gray-400 hover:text-gray-600 transition-colors","aria-label":"清除搜索",children:(0,t.jsx)(a.X,{size:14})})]})}],90035);var l=e.i(17635);e.s(["useDebounce",0,function(e,t=300){let[r,a]=(0,l.useState)(e);return(0,l.useEffect)(()=>{let r=setTimeout(()=>{a(e)},t);return()=>{clearTimeout(r)}},[e,t]),r}],51989)},79297,e=>{"use strict";let t=(0,e.i(86620).default)("file-text",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);e.s(["FileText",0,t],79297)}]);
|
package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/knowledge-base/[name]/qa/page.tsx
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
import { use, useState } from "react";
|
|
3
|
+
import { use, useCallback, useState } from "react";
|
|
4
4
|
|
|
5
5
|
import { QaChatPanel } from "@/components/qa/qa-chat-panel";
|
|
6
6
|
import { QaForm, type QaFormState } from "@/components/qa/qa-form";
|
|
7
7
|
import { useKnowledgeBase } from "@/hooks/use-knowledge-base";
|
|
8
8
|
import { useQaChat } from "@/hooks/use-qa-chat";
|
|
9
|
+
import { findUserAnchorAbove } from "@/lib/chat-message-ops";
|
|
9
10
|
|
|
10
11
|
interface PageProps {
|
|
11
12
|
params: Promise<{ name: string }>;
|
|
@@ -28,6 +29,23 @@ export default function QaPlaygroundPage({ params }: PageProps) {
|
|
|
28
29
|
|
|
29
30
|
const canSend = Boolean(formState?.providerId && formState?.model);
|
|
30
31
|
|
|
32
|
+
const handleEditSave = useCallback(
|
|
33
|
+
(userId: string, nextContent: string) => {
|
|
34
|
+
chat.editUserMessage(userId, nextContent);
|
|
35
|
+
void chat.reissueTurn(userId);
|
|
36
|
+
},
|
|
37
|
+
[chat],
|
|
38
|
+
);
|
|
39
|
+
|
|
40
|
+
const handleRegenerate = useCallback(
|
|
41
|
+
(assistantId: string) => {
|
|
42
|
+
const anchor = findUserAnchorAbove(chat.messages, assistantId);
|
|
43
|
+
if (!anchor) return;
|
|
44
|
+
void chat.reissueTurn(anchor.id);
|
|
45
|
+
},
|
|
46
|
+
[chat],
|
|
47
|
+
);
|
|
48
|
+
|
|
31
49
|
return (
|
|
32
50
|
<div className="grid gap-6 lg:grid-cols-[360px_1fr]">
|
|
33
51
|
<aside className="lg:sticky lg:top-20 lg:max-h-[calc(100vh-6rem)] lg:overflow-y-auto">
|
|
@@ -48,6 +66,10 @@ export default function QaPlaygroundPage({ params }: PageProps) {
|
|
|
48
66
|
error={chat.error}
|
|
49
67
|
onSend={chat.send}
|
|
50
68
|
onStop={chat.stop}
|
|
69
|
+
onDelete={chat.deleteMessage}
|
|
70
|
+
onResend={chat.reissueTurn}
|
|
71
|
+
onRegenerate={handleRegenerate}
|
|
72
|
+
onEditSave={handleEditSave}
|
|
51
73
|
/>
|
|
52
74
|
</section>
|
|
53
75
|
</div>
|