@tablestore/tablestore-agent-cli 0.1.8 → 0.1.9
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/commands/dashboard.d.ts.map +1 -1
- package/dist/commands/dashboard.js +173 -4
- package/dist/commands/dashboard.js.map +1 -1
- package/dist/dashboard-runtime/dashboard/.next/BUILD_ID +1 -1
- package/dist/dashboard-runtime/dashboard/.next/app-path-routes-manifest.json +2 -0
- package/dist/dashboard-runtime/dashboard/.next/build-manifest.json +5 -5
- package/dist/dashboard-runtime/dashboard/.next/prerender-manifest.json +3 -3
- package/dist/dashboard-runtime/dashboard/.next/required-server-files.json +2 -0
- package/dist/dashboard-runtime/dashboard/.next/routes-manifest.json +12 -0
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/chat/page/build-manifest.json +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/chat/page.js +2 -2
- 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/build-manifest.json +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/documents/page.js +2 -2
- 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/build-manifest.json +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/page.js +2 -2
- 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/build-manifest.json +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/qa/page.js +2 -2
- 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/build-manifest.json +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/retrieval/page.js +2 -2
- 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/build-manifest.json +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/settings/page.js +2 -2
- 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/build-manifest.json +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/create/page.js +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/create/page.js.nft.json +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/build-manifest.json +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/page.js +2 -2
- 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/build-manifest.json +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/[id]/page.js +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/[id]/page.js.nft.json +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/build-manifest.json +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/new/page.js +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/new/page.js.nft.json +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/build-manifest.json +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/page.js +2 -2
- 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/build-manifest.json +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/messages/page.js +2 -2
- 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/build-manifest.json +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/page.js +2 -2
- 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/build-manifest.json +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/requests/page.js +2 -2
- 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/build-manifest.json +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/search/page.js +2 -2
- 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/build-manifest.json +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/settings/page.js +2 -2
- 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/build-manifest.json +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/units/page.js +2 -2
- 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/build-manifest.json +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/create/page.js +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/create/page.js.nft.json +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/build-manifest.json +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/page.js +2 -2
- 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/build-manifest.json +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/projects/page.js +2 -2
- 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/page/build-manifest.json +2 -2
- 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/build-manifest.json +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found/page.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found/page.js.nft.json +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 +20 -19
- package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_full.segment.rsc +20 -19
- package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_head.segment.rsc +3 -3
- package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_index.segment.rsc +10 -9
- package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
- package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
- 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/auth/status/route.js +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/auth/status/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/auth/token/route.js +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/auth/token/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/[name]/route.js +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/[name]/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/[name]/token/route.js +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/[name]/token/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/[name]/use/route.js +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/[name]/use/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/route.js +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/chunks/route.js +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/chunks/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/[docId]/chunks/route.js +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/[docId]/chunks/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/[docId]/route.js +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/[docId]/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/route.js +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/upload/route.js +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/api/v1/knowledge-bases/[name]/retrieve/route.js +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/retrieve/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/route.js +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/route.js +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/chat/route.js +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/chat/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/[id]/models/route.js +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/[id]/models/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/[id]/route.js +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/[id]/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/[id]/test/route.js +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/[id]/test/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/route.js +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/logs/client/route/app-paths-manifest.json +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/logs/client/route/build-manifest.json +9 -0
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/logs/client/route/server-reference-manifest.json +4 -0
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/logs/client/route.js +6 -0
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/logs/client/route.js.map +5 -0
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/logs/client/route.js.nft.json +1 -0
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/logs/client/route_client-reference-manifest.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/messages/route.js +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/messages/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/requests/route.js +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/requests/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/route.js +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/search/route.js +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/search/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/units/[memoryId]/route.js +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/units/[memoryId]/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/units/route.js +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/units/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/route.js +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/runtime/context/route/app-paths-manifest.json +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/runtime/context/route/build-manifest.json +9 -0
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/runtime/context/route/server-reference-manifest.json +4 -0
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/runtime/context/route.js +6 -0
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/runtime/context/route.js.map +5 -0
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/runtime/context/route.js.nft.json +1 -0
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/runtime/context/route_client-reference-manifest.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/app/index.html +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/index.rsc +19 -18
- package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/_full.segment.rsc +19 -18
- package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/_head.segment.rsc +3 -3
- package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/_index.segment.rsc +10 -9
- 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/build-manifest.json +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding/page.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding/page.js.nft.json +1 -1
- 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 +23 -22
- package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/_full.segment.rsc +23 -22
- package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/_head.segment.rsc +3 -3
- package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/_index.segment.rsc +10 -9
- 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 +4 -4
- package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/onboarding.segment.rsc +4 -4
- package/dist/dashboard-runtime/dashboard/.next/server/app/page/build-manifest.json +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/page.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app-paths-manifest.json +2 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/0p91_next_dist_esm_build_templates_app-route_0n~ec7s.js +6 -6
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0.gylau._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0.hvkwy._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0.qtdn4._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__02p1x3t._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__04dd04u._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__04ujbw-._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__04zbudf._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__05eryp~._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__06fva9g._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0byveuc._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0cee_lo._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0cyd2qb._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0ecs-9r._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0ejcow5._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0fglxiw._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0i1_p1s._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/{[root-of-the-server]__0f990w9._.js → [root-of-the-server]__0lvi0g-._.js} +14 -12
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0no9qm0._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0q9fgt6._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0rx9hon._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0w_ig2a._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0zmo~nd._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__11s_zx6._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__11wq90l._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__126srko._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__12e1t6o._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__12ylr4n._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__13g_f9w._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__13~-fxp._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/dashboard__next-internal_server_app_api_v1_logs_client_route_actions_0tnhyc7.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/dashboard__next-internal_server_app_api_v1_runtime_context_route_actions_0d9d6g_.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/0b1r_app_(dashboard)_knowledge-base_[name]_documents_documents-client_tsx_0g2uxmt._.js +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/0e95_src_app_(dashboard)_knowledge-base_[name]_settings_settings-client_tsx_13312zk._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/0p91_next_dist_shared_lib_deployment-id_0uu7yq4.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[externals]__0tqph4u._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0_r24-c._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/{[root-of-the-server]__0kaiok7._.js → [root-of-the-server]__0aqzu8w._.js} +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0jb9ccl._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__10rkv6z._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__11yei-s._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/{_0hm68~i._.js → _0303qx7._.js} +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_03cxnik._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_04f2u4t._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_06l.12l._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_09eom0_._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_09yzbcp._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0dqi8bq._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/{_0sc0tpz._.js → _0e9y.xc._.js} +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0f9u8i2._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/{_0ntv66s._.js → _0i8py_a._.js} +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/{_01pp~xx._.js → _0jlt.cx._.js} +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/{_0-dlo4s._.js → _0n5uozy._.js} +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0o32d.y._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0o665bf._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0suxzcc._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0tej2s.._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0tyxwr3._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/{_0c7wecm._.js → _0v4jb2q._.js} +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0zn.ayc._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_13l7w34._.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_0suis9l._.js +3 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_0y49vhd._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_10dsqx~._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_app_(dashboard)_knowledge-base_create_page_tsx_0916~g-._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_app_(dashboard)_memory_[store]_settings_page_tsx_0y26.xu._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_app_(dashboard)_memory_[store]_units_page_tsx_0.6xnei._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_app_error_tsx_01x7ppm._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_providers_runtime-context-provider_tsx_0wmj66z._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/node_modules__pnpm_00arje5._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/functions-config-manifest.json +28 -1
- package/dist/dashboard-runtime/dashboard/.next/server/middleware-build-manifest.js +5 -5
- 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/{0osozgwmk692r.js → 0-etecbti5x22.js} +1 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/031-scv-8sah9.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/034uozc1ki09_.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/05ow1qzcjz3pz.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/087x52iesmpfe.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/08an3157he_ad.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/{13-2ei295hl0-.js → 0aak.679si-3m.js} +1 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/{01k-.wkndubwy.js → 0ai8f~-9ig.gz.js} +6 -6
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0c5tcbhzpwen7.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/{0iv0g360z0ja5.js → 0dheju1t18upn.js} +1 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/{07q4gw5gnh3.d.js → 0fagnytrt.3oe.js} +2 -2
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0ffr1_o~ss8r8.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/{123yjh849.vzp.js → 0gjljpk5qgdmz.js} +1 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0h38qfpz-dmiu.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0l1fmyhvp-k49.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0pcp6pjjz7o49.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0pdq-gljpy7gd.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0q6-s11w9.sgo.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0rnm58mg0whfk.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0rxp5ykl1_lyb.js +4 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0th7u6qvdy3x2.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0v_~favugkv_a.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0x3ysmon_~xsv.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0x7sjde5wit~i.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/{0h7d69g2fdgs6.js → 0yzz97.2e6if6.js} +6 -6
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0~alekqkiwwaq.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0~e2n9bhosscr.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0~i4llb9-utpp.css +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0~kfzxrhgbkaz.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0~n-y9cstar6b.js +5 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/14z_j1qzycpe1.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/154aheeo3m6bg.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/17k4h5zgalxqj.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/{turbopack-0jhqjurvu9x3y.js → turbopack-0ybyy.9-.w~ub.js} +1 -1
- package/dist/dashboard-runtime/dashboard/components.json +20 -0
- package/dist/dashboard-runtime/dashboard/instrumentation-node.ts +14 -0
- package/dist/dashboard-runtime/dashboard/instrumentation.ts +18 -0
- package/dist/dashboard-runtime/dashboard/next.config.ts +56 -0
- package/dist/dashboard-runtime/dashboard/postcss.config.mjs +8 -0
- package/dist/dashboard-runtime/dashboard/server.js +1 -1
- package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/chat/error.tsx +44 -0
- package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/chat/loading.tsx +29 -0
- package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/chat/page.tsx +372 -0
- package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/error.tsx +69 -0
- package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/knowledge-base/[name]/documents/documents-client.tsx +22 -11
- package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/knowledge-base/[name]/qa/page.tsx +5 -1
- package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/layout.tsx +75 -0
- package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/loading.tsx +26 -0
- package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/memory/[store]/layout.tsx +62 -0
- package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/memory/[store]/messages/_helpers.ts +109 -0
- package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/memory/[store]/messages/page.tsx +309 -0
- package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/memory/[store]/page.tsx +26 -0
- package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/memory/[store]/requests/_helpers.ts +234 -0
- package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/memory/[store]/requests/page.tsx +323 -0
- package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/memory/[store]/search/page.tsx +49 -0
- package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/memory/[store]/settings/page.tsx +71 -0
- package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/memory/[store]/units/page.tsx +277 -0
- package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/memory/create/page.tsx +30 -0
- package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/memory/error.tsx +44 -0
- package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/memory/loading.tsx +26 -0
- package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/memory/page.tsx +27 -0
- package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/projects/error.tsx +43 -0
- package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/projects/loading.tsx +25 -0
- package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/projects/page.tsx +174 -0
- package/dist/dashboard-runtime/dashboard/src/app/api/v1/auth/status/route.ts +53 -0
- package/dist/dashboard-runtime/dashboard/src/app/api/v1/auth/token/route.ts +113 -0
- package/dist/dashboard-runtime/dashboard/src/app/api/v1/instances/[name]/route.ts +196 -0
- package/dist/dashboard-runtime/dashboard/src/app/api/v1/instances/[name]/token/route.ts +80 -0
- package/dist/dashboard-runtime/dashboard/src/app/api/v1/instances/[name]/use/route.ts +91 -0
- package/dist/dashboard-runtime/dashboard/src/app/api/v1/instances/route.ts +274 -0
- package/dist/dashboard-runtime/dashboard/src/app/api/v1/knowledge-bases/[name]/chunks/route.ts +3 -0
- package/dist/dashboard-runtime/dashboard/src/app/api/v1/knowledge-bases/[name]/documents/[docId]/chunks/route.ts +3 -0
- package/dist/dashboard-runtime/dashboard/src/app/api/v1/knowledge-bases/[name]/documents/[docId]/route.ts +3 -0
- package/dist/dashboard-runtime/dashboard/src/app/api/v1/knowledge-bases/[name]/documents/route.ts +3 -0
- package/dist/dashboard-runtime/dashboard/src/app/api/v1/knowledge-bases/[name]/documents/upload/route.ts +3 -0
- package/dist/dashboard-runtime/dashboard/src/app/api/v1/knowledge-bases/[name]/retrieve/route.ts +3 -0
- package/dist/dashboard-runtime/dashboard/src/app/api/v1/knowledge-bases/[name]/route.ts +3 -0
- package/dist/dashboard-runtime/dashboard/src/app/api/v1/knowledge-bases/route.ts +3 -0
- package/dist/dashboard-runtime/dashboard/src/app/api/v1/llm/chat/route.ts +455 -0
- package/dist/dashboard-runtime/dashboard/src/app/api/v1/llm/providers/[id]/models/route.ts +46 -0
- package/dist/dashboard-runtime/dashboard/src/app/api/v1/llm/providers/[id]/route.ts +83 -0
- package/dist/dashboard-runtime/dashboard/src/app/api/v1/llm/providers/[id]/test/route.ts +40 -0
- package/dist/dashboard-runtime/dashboard/src/app/api/v1/llm/providers/route.ts +70 -0
- package/dist/dashboard-runtime/dashboard/src/app/api/v1/logs/client/route.ts +70 -0
- package/dist/dashboard-runtime/dashboard/src/app/api/v1/memory/stores/[store]/_scope.ts +84 -0
- package/dist/dashboard-runtime/dashboard/src/app/api/v1/memory/stores/[store]/messages/route.ts +64 -0
- package/dist/dashboard-runtime/dashboard/src/app/api/v1/memory/stores/[store]/requests/route.ts +65 -0
- package/dist/dashboard-runtime/dashboard/src/app/api/v1/memory/stores/[store]/route.ts +78 -0
- package/dist/dashboard-runtime/dashboard/src/app/api/v1/memory/stores/[store]/search/route.ts +49 -0
- package/dist/dashboard-runtime/dashboard/src/app/api/v1/memory/stores/[store]/units/[memoryId]/route.ts +126 -0
- package/dist/dashboard-runtime/dashboard/src/app/api/v1/memory/stores/[store]/units/route.ts +85 -0
- package/dist/dashboard-runtime/dashboard/src/app/api/v1/memory/stores/route.ts +60 -0
- package/dist/dashboard-runtime/dashboard/src/app/api/v1/runtime/context/route.ts +26 -0
- package/dist/dashboard-runtime/dashboard/src/app/error.tsx +84 -0
- package/dist/dashboard-runtime/dashboard/src/app/globals.css +262 -0
- package/dist/dashboard-runtime/dashboard/src/app/layout.tsx +38 -0
- package/dist/dashboard-runtime/dashboard/src/app/onboarding/error.tsx +54 -0
- package/dist/dashboard-runtime/dashboard/src/app/onboarding/layout.tsx +18 -0
- package/dist/dashboard-runtime/dashboard/src/app/onboarding/page.tsx +62 -0
- package/dist/dashboard-runtime/dashboard/src/app/page.tsx +10 -0
- package/dist/dashboard-runtime/dashboard/src/components/documents/doc-chunks-dialog.tsx +13 -4
- package/dist/dashboard-runtime/dashboard/src/components/documents/doc-upload-dialog.tsx +66 -3
- package/dist/dashboard-runtime/dashboard/src/components/instance/connect-instance-form.tsx +10 -2
- package/dist/dashboard-runtime/dashboard/src/components/instance/edit-instance-dialog.tsx +6 -2
- package/dist/dashboard-runtime/dashboard/src/components/instance/project-card.tsx +195 -0
- package/dist/dashboard-runtime/dashboard/src/components/knowledge-base/kb-list.tsx +6 -1
- package/dist/dashboard-runtime/dashboard/src/components/layout/sidebar.tsx +90 -0
- package/dist/dashboard-runtime/dashboard/src/components/logging/client-error-reporter.tsx +59 -0
- package/dist/dashboard-runtime/dashboard/src/components/memory/memory-store-list.tsx +6 -1
- package/dist/dashboard-runtime/dashboard/src/components/qa/markdown.tsx +77 -0
- package/dist/dashboard-runtime/dashboard/src/components/shared/error-state.tsx +54 -0
- package/dist/dashboard-runtime/dashboard/src/components/ui/badge.tsx +36 -0
- package/dist/dashboard-runtime/dashboard/src/components/ui/button.tsx +57 -0
- package/dist/dashboard-runtime/dashboard/src/components/ui/card.tsx +97 -0
- package/dist/dashboard-runtime/dashboard/src/components/ui/checkbox.tsx +28 -0
- package/dist/dashboard-runtime/dashboard/src/components/ui/collapsible.tsx +11 -0
- package/dist/dashboard-runtime/dashboard/src/components/ui/command.tsx +153 -0
- package/dist/dashboard-runtime/dashboard/src/components/ui/dialog.tsx +127 -0
- package/dist/dashboard-runtime/dashboard/src/components/ui/form.tsx +178 -0
- package/dist/dashboard-runtime/dashboard/src/components/ui/input.tsx +22 -0
- package/dist/dashboard-runtime/dashboard/src/components/ui/label.tsx +24 -0
- package/dist/dashboard-runtime/dashboard/src/components/ui/popover.tsx +34 -0
- package/dist/dashboard-runtime/dashboard/src/components/ui/select.tsx +162 -0
- package/dist/dashboard-runtime/dashboard/src/components/ui/separator.tsx +31 -0
- package/dist/dashboard-runtime/dashboard/src/components/ui/sheet.tsx +129 -0
- package/dist/dashboard-runtime/dashboard/src/components/ui/skeleton.tsx +49 -0
- package/dist/dashboard-runtime/dashboard/src/components/ui/slider.tsx +28 -0
- package/dist/dashboard-runtime/dashboard/src/components/ui/sonner.tsx +29 -0
- package/dist/dashboard-runtime/dashboard/src/components/ui/switch.tsx +66 -0
- package/dist/dashboard-runtime/dashboard/src/components/ui/table.tsx +120 -0
- package/dist/dashboard-runtime/dashboard/src/components/ui/tabs.tsx +69 -0
- package/dist/dashboard-runtime/dashboard/src/components/ui/textarea.tsx +22 -0
- package/dist/dashboard-runtime/dashboard/src/components/ui/tooltip.tsx +30 -0
- package/dist/dashboard-runtime/dashboard/src/config/navigation.ts +39 -0
- package/dist/dashboard-runtime/dashboard/src/hooks/use-active-instance.ts +20 -0
- package/dist/dashboard-runtime/dashboard/src/hooks/use-add-memory.ts +3 -4
- package/dist/dashboard-runtime/dashboard/src/hooks/use-chat-history.ts +212 -99
- package/dist/dashboard-runtime/dashboard/src/hooks/use-create-kb.ts +2 -1
- package/dist/dashboard-runtime/dashboard/src/hooks/use-create-llm-provider.ts +2 -3
- package/dist/dashboard-runtime/dashboard/src/hooks/use-create-memory-store.ts +2 -1
- package/dist/dashboard-runtime/dashboard/src/hooks/use-delete-documents.ts +10 -5
- package/dist/dashboard-runtime/dashboard/src/hooks/use-delete-kb.ts +2 -1
- package/dist/dashboard-runtime/dashboard/src/hooks/use-delete-llm-provider.ts +2 -3
- package/dist/dashboard-runtime/dashboard/src/hooks/use-delete-memory-store.ts +2 -1
- package/dist/dashboard-runtime/dashboard/src/hooks/use-delete-memory-unit.ts +3 -3
- package/dist/dashboard-runtime/dashboard/src/hooks/use-documents.ts +7 -5
- package/dist/dashboard-runtime/dashboard/src/hooks/use-instances.ts +38 -19
- package/dist/dashboard-runtime/dashboard/src/hooks/use-knowledge-base.ts +5 -2
- package/dist/dashboard-runtime/dashboard/src/hooks/use-knowledge-bases.ts +5 -1
- package/dist/dashboard-runtime/dashboard/src/hooks/use-llm-provider-models.ts +5 -2
- package/dist/dashboard-runtime/dashboard/src/hooks/use-llm-provider.ts +5 -2
- package/dist/dashboard-runtime/dashboard/src/hooks/use-llm-providers.ts +5 -1
- package/dist/dashboard-runtime/dashboard/src/hooks/use-memory-messages.ts +12 -6
- package/dist/dashboard-runtime/dashboard/src/hooks/use-memory-requests.ts +12 -2
- package/dist/dashboard-runtime/dashboard/src/hooks/use-memory-store.ts +5 -2
- package/dist/dashboard-runtime/dashboard/src/hooks/use-memory-stores.ts +5 -1
- package/dist/dashboard-runtime/dashboard/src/hooks/use-memory-unit.ts +16 -2
- package/dist/dashboard-runtime/dashboard/src/hooks/use-memory-units.ts +11 -2
- package/dist/dashboard-runtime/dashboard/src/hooks/use-qa-chat.ts +2 -0
- package/dist/dashboard-runtime/dashboard/src/hooks/use-update-kb.ts +3 -5
- package/dist/dashboard-runtime/dashboard/src/hooks/use-update-llm-provider.ts +2 -4
- package/dist/dashboard-runtime/dashboard/src/hooks/use-update-memory-store.ts +3 -5
- package/dist/dashboard-runtime/dashboard/src/hooks/use-update-memory-unit.ts +3 -2
- package/dist/dashboard-runtime/dashboard/src/hooks/use-upload-documents.ts +26 -7
- package/dist/dashboard-runtime/dashboard/src/lib/constants.ts +22 -0
- package/dist/dashboard-runtime/dashboard/src/lib/fonts.ts +9 -0
- package/dist/dashboard-runtime/dashboard/src/lib/memory.ts +69 -0
- package/dist/dashboard-runtime/dashboard/src/lib/normalize-oss-endpoint.ts +28 -0
- package/dist/dashboard-runtime/dashboard/src/lib/query-keys.ts +147 -0
- package/dist/dashboard-runtime/dashboard/src/lib/server/api-helpers.ts +193 -9
- package/dist/dashboard-runtime/dashboard/src/lib/server/chat-project-context.ts +17 -0
- package/dist/dashboard-runtime/dashboard/src/lib/server/runtime-context.ts +108 -0
- package/dist/dashboard-runtime/dashboard/src/lib/server/sdk-client.ts +250 -22
- package/dist/dashboard-runtime/dashboard/src/lib/utils.ts +15 -0
- package/dist/dashboard-runtime/dashboard/src/providers/query-provider.tsx +4 -1
- package/dist/dashboard-runtime/dashboard/src/providers/runtime-context-provider.tsx +237 -0
- package/dist/dashboard-runtime/dashboard/src/schemas/common.ts +8 -0
- package/dist/dashboard-runtime/dashboard/src/schemas/document.ts +28 -0
- package/dist/dashboard-runtime/dashboard/src/schemas/instance.ts +107 -0
- package/dist/dashboard-runtime/dashboard/src/schemas/llm-chat.ts +1 -0
- package/dist/dashboard-runtime/dashboard/src/schemas/retrieval.ts +28 -0
- package/dist/dashboard-runtime/dashboard/src/services/api-client.ts +138 -33
- package/dist/dashboard-runtime/dashboard/src/services/auth.ts +18 -0
- package/dist/dashboard-runtime/dashboard/src/services/chunks.ts +49 -0
- package/dist/dashboard-runtime/dashboard/src/services/documents.ts +208 -0
- package/dist/dashboard-runtime/dashboard/src/services/instances.ts +71 -0
- package/dist/dashboard-runtime/dashboard/src/services/memory.ts +158 -0
- package/dist/dashboard-runtime/dashboard/src/services/retrieval.ts +16 -0
- package/dist/dashboard-runtime/dashboard/src/services/runtime-context.ts +8 -0
- package/dist/dashboard-runtime/dashboard/src/types/api.ts +18 -0
- package/dist/dashboard-runtime/dashboard/src/types/instance.ts +68 -0
- package/dist/dashboard-runtime/dashboard/src/types/llm-chat.ts +2 -0
- package/dist/dashboard-runtime/dashboard/src/types/memory.ts +106 -0
- package/dist/dashboard-runtime/dashboard/src/types/retrieval.ts +43 -0
- package/dist/dashboard-runtime/dashboard/src/types/runtime-context.ts +12 -0
- package/dist/dashboard-runtime/dashboard/tailwind.config.ts +92 -0
- package/dist/dashboard-runtime/dashboard/tsconfig.json +43 -0
- package/dist/dashboard-runtime/dashboard/vitest.config.mjs +12 -0
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/kb-client.d.ts +1 -0
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/kb-client.d.ts.map +1 -1
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/kb-client.js +64 -20
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/kb-client.js.map +1 -1
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/memory-client.d.ts +1 -0
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/memory-client.d.ts.map +1 -1
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/memory-client.js +62 -18
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/memory-client.js.map +1 -1
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-shared/dist/config.d.ts +1 -0
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-shared/dist/config.d.ts.map +1 -1
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-shared/dist/config.js +19 -0
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-shared/dist/config.js.map +1 -1
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-shared/dist/constants.d.ts.map +1 -1
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-shared/dist/constants.js +4 -2
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-shared/dist/constants.js.map +1 -1
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-shared/dist/index.d.ts +1 -0
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-shared/dist/index.d.ts.map +1 -1
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-shared/dist/index.js +1 -0
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-shared/dist/index.js.map +1 -1
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-shared/dist/logging.d.ts +78 -0
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-shared/dist/logging.d.ts.map +1 -0
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-shared/dist/logging.js +398 -0
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-shared/dist/logging.js.map +1 -0
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-shared/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/kb-client.d.ts +1 -0
- package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/kb-client.d.ts.map +1 -1
- package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/kb-client.js +64 -20
- package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/kb-client.js.map +1 -1
- package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/memory-client.d.ts +1 -0
- package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/memory-client.d.ts.map +1 -1
- package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/memory-client.js +62 -18
- package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/memory-client.js.map +1 -1
- package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/node_modules/@tablestore/tablestore-agent-shared/dist/config.d.ts +1 -0
- package/dist/node_modules/@tablestore/tablestore-agent-shared/dist/config.d.ts.map +1 -1
- package/dist/node_modules/@tablestore/tablestore-agent-shared/dist/config.js +19 -0
- package/dist/node_modules/@tablestore/tablestore-agent-shared/dist/config.js.map +1 -1
- package/dist/node_modules/@tablestore/tablestore-agent-shared/dist/constants.d.ts.map +1 -1
- package/dist/node_modules/@tablestore/tablestore-agent-shared/dist/constants.js +4 -2
- package/dist/node_modules/@tablestore/tablestore-agent-shared/dist/constants.js.map +1 -1
- package/dist/node_modules/@tablestore/tablestore-agent-shared/dist/index.d.ts +1 -0
- package/dist/node_modules/@tablestore/tablestore-agent-shared/dist/index.d.ts.map +1 -1
- package/dist/node_modules/@tablestore/tablestore-agent-shared/dist/index.js +1 -0
- package/dist/node_modules/@tablestore/tablestore-agent-shared/dist/index.js.map +1 -1
- package/dist/node_modules/@tablestore/tablestore-agent-shared/dist/logging.d.ts +78 -0
- package/dist/node_modules/@tablestore/tablestore-agent-shared/dist/logging.d.ts.map +1 -0
- package/dist/node_modules/@tablestore/tablestore-agent-shared/dist/logging.js +398 -0
- package/dist/node_modules/@tablestore/tablestore-agent-shared/dist/logging.js.map +1 -0
- package/dist/node_modules/@tablestore/tablestore-agent-shared/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__03742bf._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__037l_3-._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__05pd96o._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__07jfil8._.js +0 -38
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__089jtfp._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__08w-nm2._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0_o02fk._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0b50n21._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0bfezi5._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0btp1y7._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0fqdh7c._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0g9--xh._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0gqr7to._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0h71~~8._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0l1bgu.._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0lcurm3._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0n3pam7._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0nkghp7._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0r4amj5._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0td5dey._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0tsud8x._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0wl_vik._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0x7~7nk._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0xvok7r._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0~tse9o._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__12lk-nv._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__12sqoa8._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/0e.4_sonner_dist_index_mjs_0u2em8w._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/12df_@tanstack_react-query_build_modern_0em_ajy._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[externals]__0wijiwt._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__09_30hi._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0l937k4._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0nwf4e.._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_00f15bk._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_08j6p-z._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0f-may2._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0fp_nnb._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0l6jz-5._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0naqa6h._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_11fig8y._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/node_modules__pnpm_00o55he._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/node_modules__pnpm_0qzg4vh._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0-mr2-dyb-szq.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/00.fyg_t3xjc~.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0003a8l0skc88.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/00m4164p4ip7m.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/02b1c4t1dy1ri.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/06v~rjrrn4ugo.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/07r22x5uhjxjb.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/07v08gtfpo2yk.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/07xvdo2w9s4~p.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0cbu3udngtx-v.js +0 -4
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0gkonvtvjhg-p.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0hpoawl1bb10g.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0jf4ytf.izmzh.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0m2p301.a174k.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0m42mmyxmgn-i.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0odz1whf-ozqn.css +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0ouxv_2qvf6.9.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0rbkgj._oqsb3.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0rywhgbu_16tm.js +0 -5
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0r~6kt_pkm4di.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0u6u.649ou67b.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0vf7~eysvh9bq.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0wmaq.ay~r2sn.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0xb0_9t-vmo6e.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0yp_2ea75d19v.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/11cizim1aug~b.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/14-39g6hwhcgn.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/1864_5-9a61tw.js +0 -1
- /package/dist/dashboard-runtime/dashboard/.next/static/{BGnMIk4OPjFx_qvLFMTBc → nPPow7lCVx1fYDGH2XCxQ}/_buildManifest.js +0 -0
- /package/dist/dashboard-runtime/dashboard/.next/static/{BGnMIk4OPjFx_qvLFMTBc → nPPow7lCVx1fYDGH2XCxQ}/_clientMiddlewareManifest.js +0 -0
- /package/dist/dashboard-runtime/dashboard/.next/static/{BGnMIk4OPjFx_qvLFMTBc → nPPow7lCVx1fYDGH2XCxQ}/_ssgManifest.js +0 -0
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[91957,a=>{"use strict";var b=a.i(34020);let c=(0,a.i(50053).default)("message-square-plus",[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}],["path",{d:"M12 8v6",key:"1ib9pf"}],["path",{d:"M9 11h6",key:"1fldmi"}]]);var d=a.i(55295),e=a.i(76192),f=a.i(64565);function g({session:a,active:c,onSelect:h,onDelete:i}){let j=a.config.mounts.length;return(0,b.jsxs)("div",{className:(0,f.cn)("group flex items-center gap-1 rounded-md px-2 py-1.5 text-sm transition-colors",c?"bg-[hsl(var(--accent))] text-foreground":"text-foreground/80 hover:bg-[hsl(var(--accent)/0.6)]"),children:[(0,b.jsxs)("button",{type:"button",onClick:h,className:"flex min-w-0 flex-1 flex-col items-start text-left",children:[(0,b.jsx)("span",{className:"w-full truncate font-medium",children:a.title}),(0,b.jsxs)("span",{className:"flex items-center gap-1.5 text-[11px] text-muted-foreground",children:[(0,b.jsx)("span",{children:function(a){let b=Math.floor((Date.now()-a)/6e4);if(b<1)return"刚刚";if(b<60)return`${b} 分钟前`;let c=Math.floor(b/60);if(c<24)return`${c} 小时前`;let d=Math.floor(c/24);return d<7?`${d} 天前`:new Date(a).toLocaleDateString()}(a.updatedAt)}),j>0?(0,b.jsxs)("span",{children:["· ",j," KB"]}):null]})]}),(0,b.jsx)(e.Button,{type:"button",variant:"ghost",size:"icon",onClick:a=>{a.stopPropagation(),i()},className:"h-6 w-6 opacity-0 group-hover:opacity-100",title:"删除",children:(0,b.jsx)(d.Trash2,{className:"h-3 w-3 text-muted-foreground"})})]})}a.s(["ChatHistorySidebar",0,function({sessions:a,activeSessionId:f,onNewSession:h,onSelectSession:i,onDeleteSession:j,onClearAll:k}){return(0,b.jsxs)("aside",{className:"flex h-full w-64 shrink-0 flex-col border-r border-[hsl(var(--border))] bg-[hsl(var(--surface))]",children:[(0,b.jsx)("div",{className:"border-b border-[hsl(var(--border))] p-3",children:(0,b.jsxs)(e.Button,{type:"button",onClick:h,className:"w-full justify-start gap-2",variant:"outline",children:[(0,b.jsx)(c,{className:"h-4 w-4"}),"新对话"]})}),(0,b.jsx)("div",{className:"flex-1 overflow-y-auto",children:0===a.length?(0,b.jsx)("p",{className:"px-3 py-6 text-center text-xs text-muted-foreground",children:"暂无历史对话"}):(0,b.jsx)("ul",{className:"space-y-0.5 p-2",children:a.map(a=>(0,b.jsx)("li",{children:(0,b.jsx)(g,{session:a,active:a.id===f,onSelect:()=>i(a.id),onDelete:()=>j(a.id)})},a.id))})}),a.length>0?(0,b.jsx)("div",{className:"border-t border-[hsl(var(--border))] p-2",children:(0,b.jsxs)(e.Button,{type:"button",variant:"ghost",size:"sm",onClick:k,className:"w-full justify-start gap-2 text-muted-foreground hover:text-[hsl(var(--destructive))]",children:[(0,b.jsx)(d.Trash2,{className:"h-3.5 w-3.5"}),"清空全部"]})}):null]})}],91957)},38285,a=>{"use strict";var b=a.i(34020),c=a.i(71938),d=a.i(93078);let e={providerId:"",model:"",systemPrompt:"",temperature:void 0,aggregateTopK:20,perKbTopK:20,retrieval:{searchType:["DENSE_VECTOR","FULL_TEXT"],rerankType:"WEIGHT",weightDense:.7,weightFullText:.3},mounts:[]};function f(a,b){switch(b.type){case"SET_PROVIDER":return{...a,providerId:b.providerId,model:b.model};case"SET_MODEL":return{...a,model:b.model};case"SET_SYSTEM_PROMPT":return{...a,systemPrompt:b.value};case"SET_TEMPERATURE":return{...a,temperature:b.value};case"SET_AGGREGATE_TOP_K":return{...a,aggregateTopK:b.value};case"SET_PER_KB_TOP_K":return{...a,perKbTopK:b.value};case"SET_RETRIEVAL":return{...a,retrieval:b.value};case"ADD_MOUNT":if(a.mounts.some(a=>a.knowledgeBaseName===b.mount.knowledgeBaseName))return a;return{...a,mounts:[...a.mounts,b.mount]};case"UPDATE_MOUNT":return{...a,mounts:a.mounts.map(a=>a.id===b.id?{...a,...b.patch}:a)};case"REMOVE_MOUNT":return{...a,mounts:a.mounts.filter(a=>a.id!==b.id)};case"REORDER_MOUNTS":{let c=new Map(a.mounts.map(a=>[a.id,a])),d=b.ids.map(a=>c.get(a)).filter(a=>!!a);return{...a,mounts:d}}case"HYDRATE":return{...a,...b.state};case"RESET":return e;default:return a}}let g=(0,c.createContext)(null);a.s(["ChatConfigProvider",0,function({children:a}){let[d,h]=(0,c.useReducer)(f,e),i=(0,c.useMemo)(()=>({...d,setProvider:(a,b)=>h({type:"SET_PROVIDER",providerId:a,model:b}),setModel:a=>h({type:"SET_MODEL",model:a}),setSystemPrompt:a=>h({type:"SET_SYSTEM_PROMPT",value:a}),setTemperature:a=>h({type:"SET_TEMPERATURE",value:a}),setAggregateTopK:a=>h({type:"SET_AGGREGATE_TOP_K",value:a}),setPerKbTopK:a=>h({type:"SET_PER_KB_TOP_K",value:a}),setRetrieval:a=>h({type:"SET_RETRIEVAL",value:a}),addMount:a=>h({type:"ADD_MOUNT",mount:a}),updateMount:(a,b)=>h({type:"UPDATE_MOUNT",id:a,patch:b}),removeMount:a=>h({type:"REMOVE_MOUNT",id:a}),reorderMounts:a=>h({type:"REORDER_MOUNTS",ids:a}),hydrate:a=>h({type:"HYDRATE",state:a}),reset:()=>h({type:"RESET"}),toSessionConfig:()=>({providerId:d.providerId||void 0,model:d.model||void 0,systemPrompt:d.systemPrompt||void 0,temperature:d.temperature,aggregateTopK:d.aggregateTopK,perKbTopK:d.perKbTopK,retrieval:d.retrieval,mounts:d.mounts})}),[d]);return(0,b.jsx)(g.Provider,{value:i,children:a})},"DEFAULT_AGGREGATE_TOP_K",0,20,"DEFAULT_PER_KB_TOP_K",0,20,"buildRagFromMounts",0,function(a){if(!a.mounts.length)return;let b=(0,d.assembleRetrievalConfiguration)(a.retrieval,a.perKbTopK);return{knowledgeBases:a.mounts.map(c=>({knowledgeBaseName:c.knowledgeBaseName,...c.subspace?.length?{subspace:c.subspace}:{},...b?{retrievalConfiguration:b}:{},topK:a.perKbTopK})),topK:a.aggregateTopK}},"useChatConfig",0,function(){let a=(0,c.useContext)(g);if(!a)throw Error("useChatConfig must be used within a ChatConfigProvider");return a}])},58489,a=>{"use strict";var b=a.i(34020),c=a.i(71938),d=a.i(53520),e=a.i(88619),f=a.i(14151),g=a.i(64565);let h=e.Root;e.Trigger,e.Close;let i=e.Portal,j=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(e.Overlay,{ref:d,className:(0,g.cn)("fixed inset-0 z-50 bg-black/60 backdrop-blur-sm duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",a),...c}));j.displayName=e.Overlay.displayName;let k={top:"inset-x-0 top-0 border-b data-[state=open]:slide-in-from-top data-[state=closed]:slide-out-to-top",bottom:"inset-x-0 bottom-0 border-t data-[state=open]:slide-in-from-bottom data-[state=closed]:slide-out-to-bottom",left:"inset-y-0 left-0 h-full w-3/4 max-w-sm border-r data-[state=open]:slide-in-from-left data-[state=closed]:slide-out-to-left",right:"inset-y-0 right-0 h-full w-3/4 max-w-md border-l data-[state=open]:slide-in-from-right data-[state=closed]:slide-out-to-right"},l=c.forwardRef(({className:a,children:c,side:d="right",...h},l)=>(0,b.jsxs)(i,{children:[(0,b.jsx)(j,{}),(0,b.jsxs)(e.Content,{ref:l,className:(0,g.cn)("fixed z-50 flex flex-col gap-4 bg-[hsl(var(--background))] p-6 shadow-xl","duration-300 ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out",k[d],a),...h,children:[c,(0,b.jsxs)(e.Close,{className:"absolute right-4 top-4 rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none",children:[(0,b.jsx)(f.X,{className:"h-4 w-4"}),(0,b.jsx)("span",{className:"sr-only",children:"Close"})]})]})]}));l.displayName=e.Content.displayName;let m=({className:a,...c})=>(0,b.jsx)("div",{className:(0,g.cn)("flex flex-col space-y-1.5 text-left",a),...c});m.displayName="SheetHeader";let n=({className:a,...c})=>(0,b.jsx)("div",{className:(0,g.cn)("mt-auto flex flex-col-reverse gap-2 sm:flex-row sm:justify-end sm:space-x-2",a),...c});n.displayName="SheetFooter";let o=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(e.Title,{ref:d,className:(0,g.cn)("text-lg font-semibold leading-none tracking-tight",a),...c}));o.displayName=e.Title.displayName;let p=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(e.Description,{ref:d,className:(0,g.cn)("text-sm text-muted-foreground",a),...c}));p.displayName=e.Description.displayName;var q=a.i(76192),r=a.i(72518),s=a.i(62491),t=a.i(9367),u=a.i(38285),v=a.i(64363),w=a.i(32191),x=a.i(87951),y=a.i(83643),z=a.i(25825),A=a.i(63525);function B({kbs:a,onAdd:d}){let[e,f]=(0,c.useState)(""),g=a.find(a=>a.knowledgeBaseName===e);return(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsxs)(A.Select,{value:e,onValueChange:f,children:[(0,b.jsx)(A.SelectTrigger,{className:"flex-1",children:(0,b.jsx)(A.SelectValue,{placeholder:"选择要挂载的知识库"})}),(0,b.jsx)(A.SelectContent,{children:0===a.length?(0,b.jsx)(A.SelectItem,{value:"__empty",disabled:!0,children:"无可挂载的知识库"}):a.map(a=>(0,b.jsx)(A.SelectItem,{value:a.knowledgeBaseName,children:a.knowledgeBaseName},a.knowledgeBaseName))})]}),(0,b.jsxs)(q.Button,{type:"button",size:"sm",disabled:!g,onClick:()=>{g&&(d(g),f(""))},children:[(0,b.jsx)(z.Plus,{className:"mr-1 h-3.5 w-3.5"}),"添加"]})]})}var C=a.i(55295);function D({mount:a,subspaceEnabled:d}){let e=(0,u.useChatConfig)(),[f,g]=(0,c.useState)((a.subspace??[]).join(", "));return(0,b.jsxs)("div",{className:"flex items-center gap-2 rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--muted)/0.3)] px-3 py-2",children:[(0,b.jsx)("span",{className:"flex-1 truncate text-sm font-medium",title:a.knowledgeBaseName,children:a.knowledgeBaseName}),d?(0,b.jsx)(r.Input,{value:f,onChange:a=>g(a.target.value),onBlur:()=>{let b=f.split(",").map(a=>a.trim()).filter(Boolean),c=a.subspace??[];b.length===c.length&&b.every((a,b)=>a===c[b])||e.updateMount(a.id,{subspace:b.length?b:void 0})},onKeyDown:a=>{"Enter"===a.key&&(a.preventDefault(),a.target.blur())},placeholder:"subspace (逗号分隔)",className:"h-8 w-44 text-xs"}):null,(0,b.jsx)(q.Button,{type:"button",variant:"ghost",size:"icon",className:"h-7 w-7",onClick:()=>e.removeMount(a.id),title:"移除",children:(0,b.jsx)(C.Trash2,{className:"h-3.5 w-3.5 text-muted-foreground"})})]})}var E=a.i(71562),F=a.i(71071),G=a.i(44401),H=a.i(92942),I=a.i(18236),J=a.i(15325);let K=["searchType","rerankType","rrfK","rrfDenseWeight","rrfFullTextWeight","weightDense","weightFullText","modelName","modelProvider"];function L({disabled:a,singleKb:d}){let e=(0,u.useChatConfig)(),f=(0,c.useRef)(null),g=(0,E.useForm)({resolver:(0,F.zodResolver)(J.retrievalSchema),defaultValues:{knowledgeBaseName:d?.knowledgeBaseName??"__unified__",query:"__unified_placeholder__",subspace:[],topK:e.perKbTopK,searchType:e.retrieval.searchType??["DENSE_VECTOR","FULL_TEXT"],rerankType:e.retrieval.rerankType,rrfK:e.retrieval.rrfK,rrfDenseWeight:e.retrieval.rrfDenseWeight,rrfFullTextWeight:e.retrieval.rrfFullTextWeight,weightDense:e.retrieval.weightDense,weightFullText:e.retrieval.weightFullText,modelName:e.retrieval.modelName,modelProvider:e.retrieval.modelProvider}});(0,c.useEffect)(()=>{g.reset({knowledgeBaseName:d?.knowledgeBaseName??"__unified__",query:"__unified_placeholder__",subspace:[],topK:e.perKbTopK,searchType:e.retrieval.searchType??["DENSE_VECTOR","FULL_TEXT"],rerankType:e.retrieval.rerankType,rrfK:e.retrieval.rrfK,rrfDenseWeight:e.retrieval.rrfDenseWeight,rrfFullTextWeight:e.retrieval.rrfFullTextWeight,weightDense:e.retrieval.weightDense,weightFullText:e.retrieval.weightFullText,modelName:e.retrieval.modelName,modelProvider:e.retrieval.modelProvider})},[e.retrieval,e.perKbTopK,d?.knowledgeBaseName]);let h=()=>{let a=g.getValues(),b={};for(let c of K){let d=a[c];void 0===d||Array.isArray(d)&&0===d.length||(b[c]=d)}e.setRetrieval(b),e.setPerKbTopK("number"==typeof a.topK&&a.topK>0?a.topK:u.DEFAULT_PER_KB_TOP_K)},i=g.watch("rerankType");return(0,c.useEffect)(()=>{if("MODEL"!==i)return;let a=!1;g.getValues("modelProvider")||(g.setValue("modelProvider","bailian"),a=!0),g.getValues("modelName")||(g.setValue("modelName","gte-rerank-v2"),a=!0),a&&h()},[i]),(0,b.jsxs)("div",{className:"space-y-3 border-t border-[hsl(var(--border))] pt-4"+(a?" pointer-events-none opacity-50":""),"aria-disabled":a,children:[(0,b.jsxs)("div",{children:[(0,b.jsx)(s.Label,{className:"text-sm font-medium",children:"统一检索参数"}),(0,b.jsx)("p",{className:"mt-0.5 text-xs text-muted-foreground",children:"应用到所有挂载 KB 的统一查询配置,保证分数可比;每 KB 单独检索后合并重排"})]}),a?(0,b.jsxs)("div",{className:"flex items-start gap-2 rounded-md border border-dashed border-[hsl(var(--border))] bg-[hsl(var(--muted)/0.4)] px-3 py-3 text-xs text-muted-foreground",children:[(0,b.jsx)(G.Info,{className:"mt-0.5 h-3.5 w-3.5 shrink-0"}),(0,b.jsx)("span",{children:"挂载至少一个知识库后即可配置统一检索参数"})]}):(0,b.jsx)(H.Form,{...g,children:(0,b.jsx)("form",{onSubmit:a=>a.preventDefault(),onBlur:h,className:"space-y-4",children:(0,b.jsx)(I.RetrievalParamsFields,{form:g,knowledgeBase:d,filterRef:f,topKLabel:"每 KB topK",topKHint:"单库检索条数,默认 20"})})})]})}a.s(["ChatMountConfig",0,function({open:a,onOpenChange:e,onSave:f}){let g=(0,u.useChatConfig)(),{data:i}=(0,t.useKnowledgeBases)(),j=i?.items??[],k=j.filter(a=>!g.mounts.some(b=>b.knowledgeBaseName===a.knowledgeBaseName)),[z,A]=(0,c.useState)(String(g.aggregateTopK));(0,c.useEffect)(()=>{A(String(g.aggregateTopK))},[g.aggregateTopK]);let[C,E]=(0,c.useState)(!1),F=(0,c.useRef)(null);return(0,c.useEffect)(()=>()=>{F.current&&clearTimeout(F.current)},[]),(0,b.jsx)(h,{open:a,onOpenChange:e,children:(0,b.jsxs)(l,{side:"right",className:"flex w-full flex-col gap-0 p-0 sm:max-w-[520px]",children:[(0,b.jsxs)(m,{className:"border-b border-[hsl(var(--border))] px-6 py-4",children:[(0,b.jsx)(o,{children:"对话配置"}),(0,b.jsx)(p,{children:"选择模型、编辑 system prompt,挂载多个知识库作为检索来源"})]}),(0,b.jsxs)("div",{className:"flex-1 space-y-5 overflow-y-auto px-6 py-5",children:[(0,b.jsx)(v.LLMModelSelector,{providerId:g.providerId,model:g.model,onProviderChange:(a,b)=>{g.setProvider(a,b??"")},onModelChange:a=>g.setModel(a)}),(0,b.jsx)(w.SystemPromptInput,{value:g.systemPrompt,onChange:a=>g.setSystemPrompt(a),placeholder:"留空使用默认 prompt",label:"System Prompt"}),(0,b.jsx)(x.TemperatureSlider,{value:g.temperature??.7,onChange:a=>g.setTemperature(a),label:"Temperature"}),(0,b.jsxs)("div",{className:"space-y-3 border-t border-[hsl(var(--border))] pt-4",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)(s.Label,{className:"text-sm font-medium",children:"挂载的知识库"}),(0,b.jsxs)("p",{className:"mt-0.5 text-xs text-muted-foreground",children:["并行检索,按 score 全局重排,取前 ",g.aggregateTopK," 条"]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)(s.Label,{className:"text-xs text-muted-foreground",title:"合并所有 KB 的命中后按分数截断的上限",children:"聚合 topK"}),(0,b.jsx)(r.Input,{type:"text",inputMode:"numeric",value:z,onChange:a=>A(a.target.value),onBlur:()=>{let a=parseInt(z,10);Number.isFinite(a)&&a>=1&&a<=200?(g.setAggregateTopK(a),A(String(a))):(g.setAggregateTopK(u.DEFAULT_AGGREGATE_TOP_K),A(String(u.DEFAULT_AGGREGATE_TOP_K)))},className:"h-8 w-20"})]})]}),(0,b.jsx)(B,{kbs:k,onAdd:a=>g.addMount({id:(0,y.newId)("mount"),knowledgeBaseName:a.knowledgeBaseName})}),0===g.mounts.length?(0,b.jsx)("p",{className:"rounded-md border border-dashed border-[hsl(var(--border))] px-3 py-4 text-center text-xs text-muted-foreground",children:"还没有挂载知识库;添加一个以启用 RAG"}):(0,b.jsx)("div",{className:"space-y-2",children:g.mounts.map(a=>{let c=j.find(b=>b.knowledgeBaseName===a.knowledgeBaseName);return(0,b.jsx)(D,{mount:a,subspaceEnabled:c?.subspace===!0},a.id)})})]}),(0,b.jsx)(L,{disabled:0===g.mounts.length,singleKb:1===g.mounts.length?j.find(a=>a.knowledgeBaseName===g.mounts[0].knowledgeBaseName):void 0})]}),(0,b.jsxs)(n,{className:"gap-2 border-t border-[hsl(var(--border))] bg-[hsl(var(--surface))] px-6 py-3 sm:items-center sm:justify-between sm:space-x-0",children:[(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:"未保存的修改在发送下一条消息时也会自动持久化"}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(q.Button,{type:"button",variant:"ghost",onClick:()=>e(!1),children:"关闭"}),(0,b.jsx)(q.Button,{type:"button",onClick:()=>{f(),E(!0),F.current&&clearTimeout(F.current),F.current=setTimeout(()=>E(!1),2e3)},disabled:C,children:C?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(d.Check,{className:"mr-1.5 h-4 w-4"}),"已保存"]}):"保存配置"})]})]})]})})}],58489)},71173,a=>{"use strict";var b=a.i(71938);function c(a){}let d=new Set;function e(a){return d.add(a),()=>{d.delete(a)}}let f=[];function g(){return f}function h(){return[]}a.s(["deriveSessionTitle",0,function(a){let b=a.find(a=>"user"===a.role);if(!b)return"新对话";let c=b.content.replace(/\s+/g," ").trim();return c?c.length>24?`${c.slice(0,24)}…`:c:"新对话"},"useChatHistory",0,function(){let a=(0,b.useSyncExternalStore)(e,g,h),d=(0,b.useCallback)(a=>{let b,d,e;b=[],d=a.messages.length>200?{...a,messages:a.messages.slice(-200)}:a,(e=b.findIndex(a=>a.id===d.id))>=0?b[e]=d:b.push(d),c(b.sort((a,b)=>b.updatedAt-a.updatedAt).slice(0,50))},[]),f=(0,b.useCallback)(a=>{c([].filter(b=>b.id!==a))},[]);return{sessions:a,upsert:d,remove:f,clear:(0,b.useCallback)(()=>{c([])},[]),get:(0,b.useCallback)(a=>[].find(b=>b.id===a)??null,[])}}])},57634,a=>{"use strict";a.s(["readLastConfig",0,function(a){return{}},"writeLastConfig",0,function(a,b){}])},45533,a=>a.a(async(b,c)=>{try{var d=a.i(34020),e=a.i(71938),f=a.i(10581),g=a.i(76192),h=a.i(57900),i=a.i(91957),j=a.i(58489),k=a.i(38285),l=a.i(71173),m=a.i(9135),n=a.i(57634),o=a.i(83643),p=a.i(76446),q=b([h]);function r(){let a=(0,k.useChatConfig)(),b=(0,l.useChatHistory)(),c=function(){let[a,b]=(0,e.useState)(null);return(0,e.useEffect)(()=>{let a=!1,c=0,d=async()=>{try{let c=await fetch("/api/v1/auth/status",{cache:"no-store"});if(!c.ok)return;let d=await c.json();a||b(d?.data?.activeInstance??null)}catch{}};d(),c=Date.now();let e=()=>{let a=Date.now();a-c<5e3||(c=a,d())};return window.addEventListener("focus",e),()=>{a=!0,window.removeEventListener("focus",e)}},[]),a}(),[q,r]=(0,e.useState)(null),[s,t]=(0,e.useState)(!1),u=(0,e.useRef)(!1),v=(0,e.useCallback)((d,e)=>{if(e.requireSent&&!u.current)return;let f=q??(0,o.newId)("session");q||r(f);let g=e.preserveTitle?b.get(f):null,h=g?.title??(0,l.deriveSessionTitle)(d),i={id:f,title:h,updatedAt:Date.now(),activeInstance:c,config:a.toSessionConfig(),messages:d};b.upsert(i),a.providerId&&(0,n.writeLastConfig)(c,{providerId:a.providerId,model:a.model})},[q,a,b,c]),w=(0,e.useCallback)(a=>{v(a,{requireSent:!0,preserveTitle:!1})},[v]),x=(0,e.useMemo)(()=>(0,k.buildRagFromMounts)(a),[a]),y=(0,m.useQaChat)({providerId:a.providerId,model:a.model,systemPrompt:a.systemPrompt,temperature:a.temperature,rag:x,onPersist:w}),z=(0,e.useCallback)(c=>{let d=b.get(c);d&&(r(c),u.current=d.messages.length>0,y.setMessages(d.messages),a.hydrate({providerId:d.config.providerId??"",model:d.config.model??"",systemPrompt:d.config.systemPrompt??"",temperature:d.config.temperature,aggregateTopK:d.config.aggregateTopK??k.DEFAULT_AGGREGATE_TOP_K,perKbTopK:d.config.perKbTopK??k.DEFAULT_PER_KB_TOP_K,retrieval:d.config.retrieval??{},mounts:d.config.mounts??[]}))},[b,y.setMessages,a.hydrate]),A=(0,e.useCallback)(()=>{r(null),u.current=!1,y.clear();let b=(0,n.readLastConfig)(c);a.setProvider(b.providerId??"",b.model??"")},[y.clear,c,a.setProvider]),B=(0,e.useCallback)(a=>{b.remove(a),q===a&&(r(null),u.current=!1,y.clear())},[b,q,y]),C=(0,e.useCallback)(()=>{b.clear(),r(null),u.current=!1,y.clear()},[b,y.clear]),D=(0,e.useCallback)(a=>{u.current=!0,y.send(a)},[y]),E=(0,e.useCallback)((a,b)=>{u.current=!0,y.editUserMessage(a,b),y.reissueTurn(a)},[y]),F=(0,e.useCallback)(a=>{let b=(0,p.findUserAnchorAbove)(y.messages,a);b&&(u.current=!0,y.reissueTurn(b.id))},[y]),G=(0,e.useCallback)(()=>{u.current=y.messages.length>0||u.current,v(y.messages,{requireSent:!1,preserveTitle:!0})},[y.messages,v]),H=(0,e.useRef)(c);(0,e.useEffect)(()=>{let b=H.current;null!==b&&null!==c&&b!==c&&(a.reset(),r(null),u.current=!1,y.clear()),H.current=c},[c]),(0,e.useEffect)(()=>{if(q||a.providerId)return;let b=(0,n.readLastConfig)(c);b.providerId&&a.setProvider(b.providerId,b.model??"")},[c,q,a.providerId]);let I=q?b.get(q):null,J=!!(a.providerId&&a.model),K=I?.title??"新对话",L=a.mounts.length,M=!q&&a.mounts.length>0?`已沿用上一会话的 ${a.mounts.length} 个知识库挂载,按右上角齿轮可调整。`:null;return(0,d.jsxs)("div",{className:"flex h-[calc(100vh-8rem)] overflow-hidden rounded-lg border border-[hsl(var(--border))] bg-[hsl(var(--surface))]",children:[(0,d.jsx)(i.ChatHistorySidebar,{sessions:b.sessions,activeSessionId:q,onNewSession:A,onSelectSession:z,onDeleteSession:B,onClearAll:C}),(0,d.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col",children:[(0,d.jsxs)("header",{className:"flex items-center justify-between border-b border-[hsl(var(--border))] bg-[hsl(var(--surface))] px-4 py-3",children:[(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsx)("h1",{className:"truncate text-sm font-semibold",children:K}),(0,d.jsx)("p",{className:"mt-0.5 text-xs text-muted-foreground",children:a.providerId&&a.model?(0,d.jsxs)(d.Fragment,{children:[a.model," · ",L," 个知识库 · 聚合 ",a.aggregateTopK]}):"点击右上角设置挂载模型与知识库"})]}),(0,d.jsx)(g.Button,{type:"button",variant:"ghost",size:"icon",onClick:()=>t(!0),title:"对话配置",children:(0,d.jsx)(f.Settings2,{className:"h-4 w-4"})})]}),(0,d.jsx)("div",{className:"flex-1 overflow-hidden p-4",children:(0,d.jsx)(h.QaChatPanel,{messages:y.messages,isStreaming:y.isStreaming,canSend:J,error:y.error,onSend:D,onStop:y.stop,onDelete:y.deleteMessage,onResend:y.reissueTurn,onRegenerate:F,onEditSave:E,emptyState:{title:J?"可以开始对话了":"开始对话",description:M?`${M} 直接在下方输入你的问题。`:J?"直接在下方输入你的问题;随时可以通过右上角齿轮调整模型或挂载的知识库":"点击右上角齿轮,选择模型并挂载知识库,即可开始问答",actionLabel:"打开配置",onAction:()=>t(!0)},disabledPlaceholder:"请先点击右上角齿轮配置模型与知识库"})})]}),(0,d.jsx)(j.ChatMountConfig,{open:s,onOpenChange:t,onSave:G})]})}[h]=q.then?(await q)():q,a.s(["default",0,function(){return(0,d.jsx)(k.ChatConfigProvider,{children:(0,d.jsx)(r,{})})}]),c()}catch(a){c(a)}},!1)];
|
|
1
|
+
module.exports=[91957,a=>{"use strict";var b=a.i(34020);let c=(0,a.i(50053).default)("message-square-plus",[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}],["path",{d:"M12 8v6",key:"1ib9pf"}],["path",{d:"M9 11h6",key:"1fldmi"}]]);var d=a.i(55295),e=a.i(76192),f=a.i(64565);function g({session:a,active:c,onSelect:h,onDelete:i}){let j=a.config.mounts.length;return(0,b.jsxs)("div",{className:(0,f.cn)("group flex items-center gap-1 rounded-md px-2 py-1.5 text-sm transition-colors",c?"bg-[hsl(var(--accent))] text-foreground":"text-foreground/80 hover:bg-[hsl(var(--accent)/0.6)]"),children:[(0,b.jsxs)("button",{type:"button",onClick:h,className:"flex min-w-0 flex-1 flex-col items-start text-left",children:[(0,b.jsx)("span",{className:"w-full truncate font-medium",children:a.title}),(0,b.jsxs)("span",{className:"flex items-center gap-1.5 text-[11px] text-muted-foreground",children:[(0,b.jsx)("span",{children:function(a){let b=Math.floor((Date.now()-a)/6e4);if(b<1)return"刚刚";if(b<60)return`${b} 分钟前`;let c=Math.floor(b/60);if(c<24)return`${c} 小时前`;let d=Math.floor(c/24);return d<7?`${d} 天前`:new Date(a).toLocaleDateString()}(a.updatedAt)}),j>0?(0,b.jsxs)("span",{children:["· ",j," KB"]}):null]})]}),(0,b.jsx)(e.Button,{type:"button",variant:"ghost",size:"icon",onClick:a=>{a.stopPropagation(),i()},className:"h-6 w-6 opacity-0 group-hover:opacity-100",title:"删除",children:(0,b.jsx)(d.Trash2,{className:"h-3 w-3 text-muted-foreground"})})]})}a.s(["ChatHistorySidebar",0,function({sessions:a,activeSessionId:f,onNewSession:h,onSelectSession:i,onDeleteSession:j,onClearAll:k}){return(0,b.jsxs)("aside",{className:"flex h-full w-64 shrink-0 flex-col border-r border-[hsl(var(--border))] bg-[hsl(var(--surface))]",children:[(0,b.jsx)("div",{className:"border-b border-[hsl(var(--border))] p-3",children:(0,b.jsxs)(e.Button,{type:"button",onClick:h,className:"w-full justify-start gap-2",variant:"outline",children:[(0,b.jsx)(c,{className:"h-4 w-4"}),"新对话"]})}),(0,b.jsx)("div",{className:"flex-1 overflow-y-auto",children:0===a.length?(0,b.jsx)("p",{className:"px-3 py-6 text-center text-xs text-muted-foreground",children:"暂无历史对话"}):(0,b.jsx)("ul",{className:"space-y-0.5 p-2",children:a.map(a=>(0,b.jsx)("li",{children:(0,b.jsx)(g,{session:a,active:a.id===f,onSelect:()=>i(a.id),onDelete:()=>j(a.id)})},a.id))})}),a.length>0?(0,b.jsx)("div",{className:"border-t border-[hsl(var(--border))] p-2",children:(0,b.jsxs)(e.Button,{type:"button",variant:"ghost",size:"sm",onClick:k,className:"w-full justify-start gap-2 text-muted-foreground hover:text-[hsl(var(--destructive))]",children:[(0,b.jsx)(d.Trash2,{className:"h-3.5 w-3.5"}),"清空全部"]})}):null]})}],91957)},38285,a=>{"use strict";var b=a.i(34020),c=a.i(71938),d=a.i(93078);let e={providerId:"",model:"",systemPrompt:"",temperature:void 0,aggregateTopK:20,perKbTopK:20,retrieval:{searchType:["DENSE_VECTOR","FULL_TEXT"],rerankType:"WEIGHT",weightDense:.7,weightFullText:.3},mounts:[]};function f(a,b){switch(b.type){case"SET_PROVIDER":return{...a,providerId:b.providerId,model:b.model};case"SET_MODEL":return{...a,model:b.model};case"SET_SYSTEM_PROMPT":return{...a,systemPrompt:b.value};case"SET_TEMPERATURE":return{...a,temperature:b.value};case"SET_AGGREGATE_TOP_K":return{...a,aggregateTopK:b.value};case"SET_PER_KB_TOP_K":return{...a,perKbTopK:b.value};case"SET_RETRIEVAL":return{...a,retrieval:b.value};case"ADD_MOUNT":if(a.mounts.some(a=>a.knowledgeBaseName===b.mount.knowledgeBaseName))return a;return{...a,mounts:[...a.mounts,b.mount]};case"UPDATE_MOUNT":return{...a,mounts:a.mounts.map(a=>a.id===b.id?{...a,...b.patch}:a)};case"REMOVE_MOUNT":return{...a,mounts:a.mounts.filter(a=>a.id!==b.id)};case"REORDER_MOUNTS":{let c=new Map(a.mounts.map(a=>[a.id,a])),d=b.ids.map(a=>c.get(a)).filter(a=>!!a);return{...a,mounts:d}}case"HYDRATE":return{...a,...b.state};case"RESET":return e;default:return a}}let g=(0,c.createContext)(null);a.s(["ChatConfigProvider",0,function({children:a}){let[d,h]=(0,c.useReducer)(f,e),i=(0,c.useMemo)(()=>({...d,setProvider:(a,b)=>h({type:"SET_PROVIDER",providerId:a,model:b}),setModel:a=>h({type:"SET_MODEL",model:a}),setSystemPrompt:a=>h({type:"SET_SYSTEM_PROMPT",value:a}),setTemperature:a=>h({type:"SET_TEMPERATURE",value:a}),setAggregateTopK:a=>h({type:"SET_AGGREGATE_TOP_K",value:a}),setPerKbTopK:a=>h({type:"SET_PER_KB_TOP_K",value:a}),setRetrieval:a=>h({type:"SET_RETRIEVAL",value:a}),addMount:a=>h({type:"ADD_MOUNT",mount:a}),updateMount:(a,b)=>h({type:"UPDATE_MOUNT",id:a,patch:b}),removeMount:a=>h({type:"REMOVE_MOUNT",id:a}),reorderMounts:a=>h({type:"REORDER_MOUNTS",ids:a}),hydrate:a=>h({type:"HYDRATE",state:a}),reset:()=>h({type:"RESET"}),toSessionConfig:()=>({providerId:d.providerId||void 0,model:d.model||void 0,systemPrompt:d.systemPrompt||void 0,temperature:d.temperature,aggregateTopK:d.aggregateTopK,perKbTopK:d.perKbTopK,retrieval:d.retrieval,mounts:d.mounts})}),[d]);return(0,b.jsx)(g.Provider,{value:i,children:a})},"DEFAULT_AGGREGATE_TOP_K",0,20,"DEFAULT_PER_KB_TOP_K",0,20,"buildRagFromMounts",0,function(a){if(!a.mounts.length)return;let b=(0,d.assembleRetrievalConfiguration)(a.retrieval,a.perKbTopK);return{knowledgeBases:a.mounts.map(c=>({knowledgeBaseName:c.knowledgeBaseName,...c.subspace?.length?{subspace:c.subspace}:{},...b?{retrievalConfiguration:b}:{},topK:a.perKbTopK})),topK:a.aggregateTopK}},"useChatConfig",0,function(){let a=(0,c.useContext)(g);if(!a)throw Error("useChatConfig must be used within a ChatConfigProvider");return a}])},58489,a=>{"use strict";var b=a.i(34020),c=a.i(71938),d=a.i(53520),e=a.i(88619),f=a.i(14151),g=a.i(64565);let h=e.Root;e.Trigger,e.Close;let i=e.Portal,j=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(e.Overlay,{ref:d,className:(0,g.cn)("fixed inset-0 z-50 bg-black/60 backdrop-blur-sm duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",a),...c}));j.displayName=e.Overlay.displayName;let k={top:"inset-x-0 top-0 border-b data-[state=open]:slide-in-from-top data-[state=closed]:slide-out-to-top",bottom:"inset-x-0 bottom-0 border-t data-[state=open]:slide-in-from-bottom data-[state=closed]:slide-out-to-bottom",left:"inset-y-0 left-0 h-full w-3/4 max-w-sm border-r data-[state=open]:slide-in-from-left data-[state=closed]:slide-out-to-left",right:"inset-y-0 right-0 h-full w-3/4 max-w-md border-l data-[state=open]:slide-in-from-right data-[state=closed]:slide-out-to-right"},l=c.forwardRef(({className:a,children:c,side:d="right",...h},l)=>(0,b.jsxs)(i,{children:[(0,b.jsx)(j,{}),(0,b.jsxs)(e.Content,{ref:l,className:(0,g.cn)("fixed z-50 flex flex-col gap-4 bg-[hsl(var(--background))] p-6 shadow-xl","duration-300 ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out",k[d],a),...h,children:[c,(0,b.jsxs)(e.Close,{className:"absolute right-4 top-4 rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none",children:[(0,b.jsx)(f.X,{className:"h-4 w-4"}),(0,b.jsx)("span",{className:"sr-only",children:"Close"})]})]})]}));l.displayName=e.Content.displayName;let m=({className:a,...c})=>(0,b.jsx)("div",{className:(0,g.cn)("flex flex-col space-y-1.5 text-left",a),...c});m.displayName="SheetHeader";let n=({className:a,...c})=>(0,b.jsx)("div",{className:(0,g.cn)("mt-auto flex flex-col-reverse gap-2 sm:flex-row sm:justify-end sm:space-x-2",a),...c});n.displayName="SheetFooter";let o=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(e.Title,{ref:d,className:(0,g.cn)("text-lg font-semibold leading-none tracking-tight",a),...c}));o.displayName=e.Title.displayName;let p=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(e.Description,{ref:d,className:(0,g.cn)("text-sm text-muted-foreground",a),...c}));p.displayName=e.Description.displayName;var q=a.i(76192),r=a.i(72518),s=a.i(62491),t=a.i(9367),u=a.i(38285),v=a.i(64363),w=a.i(32191),x=a.i(87951),y=a.i(83643),z=a.i(25825),A=a.i(63525);function B({kbs:a,onAdd:d}){let[e,f]=(0,c.useState)(""),g=a.find(a=>a.knowledgeBaseName===e);return(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsxs)(A.Select,{value:e,onValueChange:f,children:[(0,b.jsx)(A.SelectTrigger,{className:"flex-1",children:(0,b.jsx)(A.SelectValue,{placeholder:"选择要挂载的知识库"})}),(0,b.jsx)(A.SelectContent,{children:0===a.length?(0,b.jsx)(A.SelectItem,{value:"__empty",disabled:!0,children:"无可挂载的知识库"}):a.map(a=>(0,b.jsx)(A.SelectItem,{value:a.knowledgeBaseName,children:a.knowledgeBaseName},a.knowledgeBaseName))})]}),(0,b.jsxs)(q.Button,{type:"button",size:"sm",disabled:!g,onClick:()=>{g&&(d(g),f(""))},children:[(0,b.jsx)(z.Plus,{className:"mr-1 h-3.5 w-3.5"}),"添加"]})]})}var C=a.i(55295);function D({mount:a,subspaceEnabled:d}){let e=(0,u.useChatConfig)(),[f,g]=(0,c.useState)((a.subspace??[]).join(", "));return(0,b.jsxs)("div",{className:"flex items-center gap-2 rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--muted)/0.3)] px-3 py-2",children:[(0,b.jsx)("span",{className:"flex-1 truncate text-sm font-medium",title:a.knowledgeBaseName,children:a.knowledgeBaseName}),d?(0,b.jsx)(r.Input,{value:f,onChange:a=>g(a.target.value),onBlur:()=>{let b=f.split(",").map(a=>a.trim()).filter(Boolean),c=a.subspace??[];b.length===c.length&&b.every((a,b)=>a===c[b])||e.updateMount(a.id,{subspace:b.length?b:void 0})},onKeyDown:a=>{"Enter"===a.key&&(a.preventDefault(),a.target.blur())},placeholder:"subspace (逗号分隔)",className:"h-8 w-44 text-xs"}):null,(0,b.jsx)(q.Button,{type:"button",variant:"ghost",size:"icon",className:"h-7 w-7",onClick:()=>e.removeMount(a.id),title:"移除",children:(0,b.jsx)(C.Trash2,{className:"h-3.5 w-3.5 text-muted-foreground"})})]})}var E=a.i(71562),F=a.i(71071),G=a.i(44401),H=a.i(92942),I=a.i(18236),J=a.i(15325);let K=["searchType","rerankType","rrfK","rrfDenseWeight","rrfFullTextWeight","weightDense","weightFullText","modelName","modelProvider"];function L({disabled:a,singleKb:d}){let e=(0,u.useChatConfig)(),f=(0,c.useRef)(null),g=(0,E.useForm)({resolver:(0,F.zodResolver)(J.retrievalSchema),defaultValues:{knowledgeBaseName:d?.knowledgeBaseName??"__unified__",query:"__unified_placeholder__",subspace:[],topK:e.perKbTopK,searchType:e.retrieval.searchType??["DENSE_VECTOR","FULL_TEXT"],rerankType:e.retrieval.rerankType,rrfK:e.retrieval.rrfK,rrfDenseWeight:e.retrieval.rrfDenseWeight,rrfFullTextWeight:e.retrieval.rrfFullTextWeight,weightDense:e.retrieval.weightDense,weightFullText:e.retrieval.weightFullText,modelName:e.retrieval.modelName,modelProvider:e.retrieval.modelProvider}});(0,c.useEffect)(()=>{g.reset({knowledgeBaseName:d?.knowledgeBaseName??"__unified__",query:"__unified_placeholder__",subspace:[],topK:e.perKbTopK,searchType:e.retrieval.searchType??["DENSE_VECTOR","FULL_TEXT"],rerankType:e.retrieval.rerankType,rrfK:e.retrieval.rrfK,rrfDenseWeight:e.retrieval.rrfDenseWeight,rrfFullTextWeight:e.retrieval.rrfFullTextWeight,weightDense:e.retrieval.weightDense,weightFullText:e.retrieval.weightFullText,modelName:e.retrieval.modelName,modelProvider:e.retrieval.modelProvider})},[e.retrieval,e.perKbTopK,d?.knowledgeBaseName]);let h=()=>{let a=g.getValues(),b={};for(let c of K){let d=a[c];void 0===d||Array.isArray(d)&&0===d.length||(b[c]=d)}e.setRetrieval(b),e.setPerKbTopK("number"==typeof a.topK&&a.topK>0?a.topK:u.DEFAULT_PER_KB_TOP_K)},i=g.watch("rerankType");return(0,c.useEffect)(()=>{if("MODEL"!==i)return;let a=!1;g.getValues("modelProvider")||(g.setValue("modelProvider","bailian"),a=!0),g.getValues("modelName")||(g.setValue("modelName","gte-rerank-v2"),a=!0),a&&h()},[i]),(0,b.jsxs)("div",{className:"space-y-3 border-t border-[hsl(var(--border))] pt-4"+(a?" pointer-events-none opacity-50":""),"aria-disabled":a,children:[(0,b.jsxs)("div",{children:[(0,b.jsx)(s.Label,{className:"text-sm font-medium",children:"统一检索参数"}),(0,b.jsx)("p",{className:"mt-0.5 text-xs text-muted-foreground",children:"应用到所有挂载 KB 的统一查询配置,保证分数可比;每 KB 单独检索后合并重排"})]}),a?(0,b.jsxs)("div",{className:"flex items-start gap-2 rounded-md border border-dashed border-[hsl(var(--border))] bg-[hsl(var(--muted)/0.4)] px-3 py-3 text-xs text-muted-foreground",children:[(0,b.jsx)(G.Info,{className:"mt-0.5 h-3.5 w-3.5 shrink-0"}),(0,b.jsx)("span",{children:"挂载至少一个知识库后即可配置统一检索参数"})]}):(0,b.jsx)(H.Form,{...g,children:(0,b.jsx)("form",{onSubmit:a=>a.preventDefault(),onBlur:h,className:"space-y-4",children:(0,b.jsx)(I.RetrievalParamsFields,{form:g,knowledgeBase:d,filterRef:f,topKLabel:"每 KB topK",topKHint:"单库检索条数,默认 20"})})})]})}a.s(["ChatMountConfig",0,function({open:a,onOpenChange:e,onSave:f}){let g=(0,u.useChatConfig)(),{data:i}=(0,t.useKnowledgeBases)(),j=i?.items??[],k=j.filter(a=>!g.mounts.some(b=>b.knowledgeBaseName===a.knowledgeBaseName)),[z,A]=(0,c.useState)(String(g.aggregateTopK));(0,c.useEffect)(()=>{A(String(g.aggregateTopK))},[g.aggregateTopK]);let[C,E]=(0,c.useState)(!1),F=(0,c.useRef)(null);return(0,c.useEffect)(()=>()=>{F.current&&clearTimeout(F.current)},[]),(0,b.jsx)(h,{open:a,onOpenChange:e,children:(0,b.jsxs)(l,{side:"right",className:"flex w-full flex-col gap-0 p-0 sm:max-w-[520px]",children:[(0,b.jsxs)(m,{className:"border-b border-[hsl(var(--border))] px-6 py-4",children:[(0,b.jsx)(o,{children:"对话配置"}),(0,b.jsx)(p,{children:"选择模型、编辑 system prompt,挂载多个知识库作为检索来源"})]}),(0,b.jsxs)("div",{className:"flex-1 space-y-5 overflow-y-auto px-6 py-5",children:[(0,b.jsx)(v.LLMModelSelector,{providerId:g.providerId,model:g.model,onProviderChange:(a,b)=>{g.setProvider(a,b??"")},onModelChange:a=>g.setModel(a)}),(0,b.jsx)(w.SystemPromptInput,{value:g.systemPrompt,onChange:a=>g.setSystemPrompt(a),placeholder:"留空使用默认 prompt",label:"System Prompt"}),(0,b.jsx)(x.TemperatureSlider,{value:g.temperature??.7,onChange:a=>g.setTemperature(a),label:"Temperature"}),(0,b.jsxs)("div",{className:"space-y-3 border-t border-[hsl(var(--border))] pt-4",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)(s.Label,{className:"text-sm font-medium",children:"挂载的知识库"}),(0,b.jsxs)("p",{className:"mt-0.5 text-xs text-muted-foreground",children:["并行检索,按 score 全局重排,取前 ",g.aggregateTopK," 条"]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)(s.Label,{className:"text-xs text-muted-foreground",title:"合并所有 KB 的命中后按分数截断的上限",children:"聚合 topK"}),(0,b.jsx)(r.Input,{type:"text",inputMode:"numeric",value:z,onChange:a=>A(a.target.value),onBlur:()=>{let a=parseInt(z,10);Number.isFinite(a)&&a>=1&&a<=200?(g.setAggregateTopK(a),A(String(a))):(g.setAggregateTopK(u.DEFAULT_AGGREGATE_TOP_K),A(String(u.DEFAULT_AGGREGATE_TOP_K)))},className:"h-8 w-20"})]})]}),(0,b.jsx)(B,{kbs:k,onAdd:a=>g.addMount({id:(0,y.newId)("mount"),knowledgeBaseName:a.knowledgeBaseName})}),0===g.mounts.length?(0,b.jsx)("p",{className:"rounded-md border border-dashed border-[hsl(var(--border))] px-3 py-4 text-center text-xs text-muted-foreground",children:"还没有挂载知识库;添加一个以启用 RAG"}):(0,b.jsx)("div",{className:"space-y-2",children:g.mounts.map(a=>{let c=j.find(b=>b.knowledgeBaseName===a.knowledgeBaseName);return(0,b.jsx)(D,{mount:a,subspaceEnabled:c?.subspace===!0},a.id)})})]}),(0,b.jsx)(L,{disabled:0===g.mounts.length,singleKb:1===g.mounts.length?j.find(a=>a.knowledgeBaseName===g.mounts[0].knowledgeBaseName):void 0})]}),(0,b.jsxs)(n,{className:"gap-2 border-t border-[hsl(var(--border))] bg-[hsl(var(--surface))] px-6 py-3 sm:items-center sm:justify-between sm:space-x-0",children:[(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:"未保存的修改在发送下一条消息时也会自动持久化"}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(q.Button,{type:"button",variant:"ghost",onClick:()=>e(!1),children:"关闭"}),(0,b.jsx)(q.Button,{type:"button",onClick:()=>{f(),E(!0),F.current&&clearTimeout(F.current),F.current=setTimeout(()=>E(!1),2e3)},disabled:C,children:C?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(d.Check,{className:"mr-1.5 h-4 w-4"}),"已保存"]}):"保存配置"})]})]})]})})}],58489)},71173,a=>{"use strict";var b=a.i(71938);function c(a){return a&&a.length>0?a:null}function d(a){let b;return`tsagent.chat.sessions.v2.${(b=c(a))?`project.${encodeURIComponent(b)}`:"unbound"}`}function e(a){return(d(a),[]).filter(b=>c(b.activeInstance)===c(a))}let f=[];function g(){return f}a.s(["deriveSessionTitle",0,function(a){let b=a.find(a=>"user"===a.role);if(!b)return"新对话";let c=b.content.replace(/\s+/g," ").trim();return c?c.length>24?`${c.slice(0,24)}…`:c:"新对话"},"useChatHistory",0,function(a){let h=c(a.activeInstance),i=a.ready?d(h):null,j=(0,b.useCallback)(a=>()=>{},[i]),k=(0,b.useCallback)(()=>(a.ready,f),[h,a.ready]),l=(0,b.useSyncExternalStore)(j,k,g),m=(0,b.useCallback)(b=>{if(a.ready){var f,g;let a,i,j,k,l;i=e(a=c(h)),k=(j={...b,activeInstance:a}).messages.length>200?{...j,messages:j.messages.slice(-200)}:j,(l=i.findIndex(a=>a.id===k.id))>=0?i[l]=k:i.push(k),f=a,g=i.sort((a,b)=>b.updatedAt-a.updatedAt).slice(0,50),d(f)}},[h,a.ready]),n=(0,b.useCallback)(b=>{if(a.ready){let a,f;f=e(a=c(h)).filter(a=>a.id!==b),d(a)}},[h,a.ready]),o=(0,b.useCallback)(()=>{a.ready&&d(c(h))},[h,a.ready]),p=(0,b.useCallback)(b=>{var d;return a.ready?(d=b,e(c(h)).sort((a,b)=>b.updatedAt-a.updatedAt).find(a=>a.id===d)??null):null},[h,a.ready]);return(0,b.useMemo)(()=>({sessions:l,upsert:m,remove:n,clear:o,get:p}),[l,m,n,o,p])}])},57634,a=>{"use strict";a.s(["readLastConfig",0,function(a){return{}},"writeLastConfig",0,function(a,b){}])},45533,a=>a.a(async(b,c)=>{try{var d=a.i(34020),e=a.i(71938),f=a.i(10581),g=a.i(76192),h=a.i(57900),i=a.i(91957),j=a.i(58489),k=a.i(38285),l=a.i(71173),m=a.i(9135),n=a.i(57634),o=a.i(82424),p=a.i(83643),q=a.i(76446),r=a.i(25377),s=b([h]);function t(){let a=(0,k.useChatConfig)(),b=(0,o.useActiveInstance)(),c=b.activeInstance,s=(0,l.useChatHistory)(b),[t,u]=(0,e.useState)(null),[v,w]=(0,e.useState)(!1),x=(0,e.useRef)(!1),y=(0,e.useCallback)((d,e)=>{if(!b.ready||e.requireSent&&!x.current)return;let f=t??(0,p.newId)("session");t||u(f);let g=e.preserveTitle?s.get(f):null,h=g?.title??(0,l.deriveSessionTitle)(d),i={id:f,title:h,updatedAt:Date.now(),activeInstance:c,config:a.toSessionConfig(),messages:d};s.upsert(i),a.providerId&&(0,n.writeLastConfig)(c,{providerId:a.providerId,model:a.model})},[t,a,s,c,b.ready]),z=(0,e.useCallback)(a=>{y(a,{requireSent:!0,preserveTitle:!1})},[y]),A=(0,e.useMemo)(()=>(0,k.buildRagFromMounts)(a),[a]),B=(0,m.useQaChat)({activeInstance:c,providerId:a.providerId,model:a.model,systemPrompt:a.systemPrompt,temperature:a.temperature,rag:A,onPersist:z}),C=(0,e.useCallback)(d=>{if(!b.ready)return;let e=s.get(d);e&&(e.activeInstance??null)===c&&(u(d),x.current=e.messages.length>0,B.setMessages(e.messages),a.hydrate({providerId:e.config.providerId??"",model:e.config.model??"",systemPrompt:e.config.systemPrompt??"",temperature:e.config.temperature,aggregateTopK:e.config.aggregateTopK??k.DEFAULT_AGGREGATE_TOP_K,perKbTopK:e.config.perKbTopK??k.DEFAULT_PER_KB_TOP_K,retrieval:e.config.retrieval??{},mounts:e.config.mounts??[]}))},[s,B.setMessages,a.hydrate,c,b.ready]),D=(0,e.useCallback)(()=>{u(null),x.current=!1,B.clear();let b=(0,n.readLastConfig)(c);a.setProvider(b.providerId??"",b.model??"")},[B.clear,c,a.setProvider]),E=(0,e.useCallback)(a=>{s.remove(a),t===a&&(u(null),x.current=!1,B.clear())},[s,t,B]),F=(0,e.useCallback)(()=>{s.clear(),u(null),x.current=!1,B.clear()},[s,B.clear]),G=(0,e.useCallback)(a=>{x.current=!0,B.send(a)},[B]),H=(0,e.useCallback)((a,b)=>{x.current=!0,B.editUserMessage(a,b),B.reissueTurn(a)},[B]),I=(0,e.useCallback)(a=>{let b=(0,q.findUserAnchorAbove)(B.messages,a);b&&(x.current=!0,B.reissueTurn(b.id))},[B]),J=(0,e.useCallback)(()=>{x.current=B.messages.length>0||x.current,y(B.messages,{requireSent:!1,preserveTitle:!0})},[B.messages,y]),K=(0,e.useRef)({activeInstance:null,ready:!1,dataScopeKey:r.PENDING_DATA_SCOPE_KEY,configRevision:""});(0,e.useEffect)(()=>{let c=K.current;c.ready&&b.ready&&c.dataScopeKey!==b.dataScopeKey&&(a.reset(),u(null),x.current=!1,B.clear()),b.ready&&(K.current=b)},[b.dataScopeKey,b.ready]),(0,e.useEffect)(()=>{if(t||a.providerId)return;let b=(0,n.readLastConfig)(c);b.providerId&&a.setProvider(b.providerId,b.model??"")},[c,t,a.providerId]);let L=t?s.get(t):null,M=b.ready&&!!(a.providerId&&a.model),N=L?.title??"新对话",O=a.mounts.length,P=!t&&a.mounts.length>0?`已沿用上一会话的 ${a.mounts.length} 个知识库挂载,按右上角齿轮可调整。`:null;return(0,d.jsxs)("div",{className:"flex h-[calc(100vh-8rem)] overflow-hidden rounded-lg border border-[hsl(var(--border))] bg-[hsl(var(--surface))]",children:[(0,d.jsx)(i.ChatHistorySidebar,{sessions:s.sessions,activeSessionId:t,onNewSession:D,onSelectSession:C,onDeleteSession:E,onClearAll:F}),(0,d.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col",children:[(0,d.jsxs)("header",{className:"flex items-center justify-between border-b border-[hsl(var(--border))] bg-[hsl(var(--surface))] px-4 py-3",children:[(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsx)("h1",{className:"truncate text-sm font-semibold",children:N}),(0,d.jsx)("p",{className:"mt-0.5 text-xs text-muted-foreground",children:a.providerId&&a.model?(0,d.jsxs)(d.Fragment,{children:[a.model," · ",O," 个知识库 · 聚合 ",a.aggregateTopK]}):"点击右上角设置挂载模型与知识库"})]}),(0,d.jsx)(g.Button,{type:"button",variant:"ghost",size:"icon",onClick:()=>w(!0),title:"对话配置",children:(0,d.jsx)(f.Settings2,{className:"h-4 w-4"})})]}),(0,d.jsx)("div",{className:"flex-1 overflow-hidden p-4",children:(0,d.jsx)(h.QaChatPanel,{messages:B.messages,isStreaming:B.isStreaming,canSend:M,error:B.error,onSend:G,onStop:B.stop,onDelete:B.deleteMessage,onResend:B.reissueTurn,onRegenerate:I,onEditSave:H,emptyState:{title:M?"可以开始对话了":"开始对话",description:P?`${P} 直接在下方输入你的问题。`:M?"直接在下方输入你的问题;随时可以通过右上角齿轮调整模型或挂载的知识库":"点击右上角齿轮,选择模型并挂载知识库,即可开始问答",actionLabel:"打开配置",onAction:()=>w(!0)},disabledPlaceholder:"请先点击右上角齿轮配置模型与知识库"})})]}),(0,d.jsx)(j.ChatMountConfig,{open:v,onOpenChange:w,onSave:J})]})}[h]=s.then?(await s)():s,a.s(["default",0,function(){return(0,d.jsx)(k.ChatConfigProvider,{children:(0,d.jsx)(t,{})})}]),c()}catch(a){c(a)}},!1)];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=dashboard_src_065m1.j._.js.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
module.exports=[86578,a=>{"use strict";a.s(["BreadcrumbBar",()=>b]);let b=(0,a.i(13981).registerClientReference)(function(){throw Error("Attempted to call BreadcrumbBar() from the server but BreadcrumbBar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/dashboard/src/components/layout/breadcrumb-bar.tsx <module evaluation>","BreadcrumbBar")},17540,a=>{"use strict";a.s(["BreadcrumbBar",()=>b]);let b=(0,a.i(13981).registerClientReference)(function(){throw Error("Attempted to call BreadcrumbBar() from the server but BreadcrumbBar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/dashboard/src/components/layout/breadcrumb-bar.tsx","BreadcrumbBar")},33729,a=>{"use strict";a.i(86578);var b=a.i(17540);a.n(b)},24,a=>{"use strict";a.s(["Sidebar",()=>b]);let b=(0,a.i(13981).registerClientReference)(function(){throw Error("Attempted to call Sidebar() from the server but Sidebar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/dashboard/src/components/layout/sidebar.tsx <module evaluation>","Sidebar")},18923,a=>{"use strict";a.s(["Sidebar",()=>b]);let b=(0,a.i(13981).registerClientReference)(function(){throw Error("Attempted to call Sidebar() from the server but Sidebar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/dashboard/src/components/layout/sidebar.tsx","Sidebar")},77860,a=>{"use strict";a.i(24);var b=a.i(18923);a.n(b)},11334,a=>{"use strict";a.s(["SidebarMobile",()=>b]);let b=(0,a.i(13981).registerClientReference)(function(){throw Error("Attempted to call SidebarMobile() from the server but SidebarMobile is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/dashboard/src/components/layout/sidebar-mobile.tsx <module evaluation>","SidebarMobile")},10453,a=>{"use strict";a.s(["SidebarMobile",()=>b]);let b=(0,a.i(13981).registerClientReference)(function(){throw Error("Attempted to call SidebarMobile() from the server but SidebarMobile is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/dashboard/src/components/layout/sidebar-mobile.tsx","SidebarMobile")},72768,a=>{"use strict";a.i(11334);var b=a.i(10453);a.n(b)},23304,a=>{"use strict";a.s(["SidebarOffset",()=>b]);let b=(0,a.i(13981).registerClientReference)(function(){throw Error("Attempted to call SidebarOffset() from the server but SidebarOffset is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/dashboard/src/components/layout/sidebar-offset.tsx <module evaluation>","SidebarOffset")},58066,a=>{"use strict";a.s(["SidebarOffset",()=>b]);let b=(0,a.i(13981).registerClientReference)(function(){throw Error("Attempted to call SidebarOffset() from the server but SidebarOffset is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/dashboard/src/components/layout/sidebar-offset.tsx","SidebarOffset")},49935,a=>{"use strict";a.i(23304);var b=a.i(58066);a.n(b)},55244,a=>{"use strict";var b=a.i(16842);a.i(31854);var c=a.i(92518),d=a.i(60526),e=a.i(50227);let f=(0,e.join)((0,d.homedir)(),".config","tablestore-agent-cli"),g=(0,e.join)(f,"config.toml"),h="active_instance",i="instances",j="default",k={ak:"access_key_id",sk:"access_key_secret",ep:"ots_endpoint",in:"ots_instance_name",oe:"oss_endpoint",ob:"oss_bucket_name",rg:"region"};var l=a.i(2157);class m extends Error{line;column;codeblock;constructor(a,b){const[c,d]=function(a,b){let c=a.slice(0,b).split(/\r\n|\n|\r/g);return[c.length,c.pop().length+1]}(b.toml,b.ptr),e=function(a,b,c){let d=a.split(/\r\n|\n|\r/g),e="",f=(0|Math.log10(b+1))+1;for(let a=b-1;a<=b+1;a++){let g=d[a-1];g&&(e+=a.toString().padEnd(f," "),e+=": ",e+=g,e+="\n",a===b&&(e+=" ".repeat(f+c+2),e+="^\n"))}return e}(b.toml,c,d);super(`Invalid TOML document: ${a}
|
|
1
|
+
module.exports=[86578,a=>{"use strict";a.s(["BreadcrumbBar",()=>b]);let b=(0,a.i(13981).registerClientReference)(function(){throw Error("Attempted to call BreadcrumbBar() from the server but BreadcrumbBar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/dashboard/src/components/layout/breadcrumb-bar.tsx <module evaluation>","BreadcrumbBar")},17540,a=>{"use strict";a.s(["BreadcrumbBar",()=>b]);let b=(0,a.i(13981).registerClientReference)(function(){throw Error("Attempted to call BreadcrumbBar() from the server but BreadcrumbBar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/dashboard/src/components/layout/breadcrumb-bar.tsx","BreadcrumbBar")},33729,a=>{"use strict";a.i(86578);var b=a.i(17540);a.n(b)},24,a=>{"use strict";a.s(["Sidebar",()=>b]);let b=(0,a.i(13981).registerClientReference)(function(){throw Error("Attempted to call Sidebar() from the server but Sidebar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/dashboard/src/components/layout/sidebar.tsx <module evaluation>","Sidebar")},18923,a=>{"use strict";a.s(["Sidebar",()=>b]);let b=(0,a.i(13981).registerClientReference)(function(){throw Error("Attempted to call Sidebar() from the server but Sidebar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/dashboard/src/components/layout/sidebar.tsx","Sidebar")},77860,a=>{"use strict";a.i(24);var b=a.i(18923);a.n(b)},11334,a=>{"use strict";a.s(["SidebarMobile",()=>b]);let b=(0,a.i(13981).registerClientReference)(function(){throw Error("Attempted to call SidebarMobile() from the server but SidebarMobile is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/dashboard/src/components/layout/sidebar-mobile.tsx <module evaluation>","SidebarMobile")},10453,a=>{"use strict";a.s(["SidebarMobile",()=>b]);let b=(0,a.i(13981).registerClientReference)(function(){throw Error("Attempted to call SidebarMobile() from the server but SidebarMobile is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/dashboard/src/components/layout/sidebar-mobile.tsx","SidebarMobile")},72768,a=>{"use strict";a.i(11334);var b=a.i(10453);a.n(b)},23304,a=>{"use strict";a.s(["SidebarOffset",()=>b]);let b=(0,a.i(13981).registerClientReference)(function(){throw Error("Attempted to call SidebarOffset() from the server but SidebarOffset is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/dashboard/src/components/layout/sidebar-offset.tsx <module evaluation>","SidebarOffset")},58066,a=>{"use strict";a.s(["SidebarOffset",()=>b]);let b=(0,a.i(13981).registerClientReference)(function(){throw Error("Attempted to call SidebarOffset() from the server but SidebarOffset is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/dashboard/src/components/layout/sidebar-offset.tsx","SidebarOffset")},49935,a=>{"use strict";a.i(23304);var b=a.i(58066);a.n(b)},55244,a=>{"use strict";var b=a.i(16842);a.i(31854);var c=a.i(92518),d=a.i(60526),e=a.i(50227);let f=(0,e.join)((0,d.homedir)(),".config","tablestore-agent-cli"),g=(0,e.join)(f,"config.toml"),h="active_instance",i="instances",j="default",k={ak:"access_key_id",sk:"access_key_secret",ep:"ots_endpoint",in:"ots_instance_name",oe:"oss_endpoint",ob:"oss_bucket_name",rg:"region"};var l=a.i(2157);a.i(66680);class m extends Error{line;column;codeblock;constructor(a,b){const[c,d]=function(a,b){let c=a.slice(0,b).split(/\r\n|\n|\r/g);return[c.length,c.pop().length+1]}(b.toml,b.ptr),e=function(a,b,c){let d=a.split(/\r\n|\n|\r/g),e="",f=(0|Math.log10(b+1))+1;for(let a=b-1;a<=b+1;a++){let g=d[a-1];g&&(e+=a.toString().padEnd(f," "),e+=": ",e+=g,e+="\n",a===b&&(e+=" ".repeat(f+c+2),e+="^\n"))}return e}(b.toml,c,d);super(`Invalid TOML document: ${a}
|
|
2
2
|
|
|
3
3
|
${e}`,b),this.line=c,this.column=d,this.codeblock=e}}function n(a,b=0,c=a.length){let d=a.indexOf("\n",b);return"\r"===a[d-1]&&d--,d<=c?d:-1}function o(a,b){for(let c=b;c<a.length;c++){let d=a[c];if("\n"===d)return c;if("\r"===d&&"\n"===a[c+1])return c+1;if(d<" "&&" "!==d||""===d)throw new m("control characters are not allowed in comments",{toml:a,ptr:b})}return a.length}function p(a,b,c,d){let e;for(;;){for(;" "===(e=a[b])||" "===e||!c&&("\n"===e||"\r"===e&&"\n"===a[b+1]);)b++;if(d||"#"!==e)break;b=o(a,b)}return b}function q(a,b){let c=a[b],d=c===a[b+1]&&a[b+1]===a[b+2]?a.slice(b,b+3):c;b+=d.length-1;do b=a.indexOf(d,++b);while(b>-1&&"'"!==c&&function(a,b){let c=0;for(;"\\"===a[b-++c];);return--c&&c%2}(a,b))return b>-1&&(b+=d.length,d.length>1&&(a[b]===c&&b++,a[b]===c&&b++)),b}let r=/^(\d{4}-\d{2}-\d{2})?[T ]?(?:(\d{2}):\d{2}(?::\d{2}(?:\.\d+)?)?)?(Z|[-+]\d{2}:\d{2})?$/i;class s extends Date{#a=!1;#b=!1;#c=null;constructor(a){let b=!0,c=!0,d="Z";if("string"==typeof a){let e=a.match(r);e?(e[1]||(b=!1,a=`0000-01-01T${a}`),(c=!!e[2])&&" "===a[10]&&(a=a.replace(" ","T")),e[2]&&+e[2]>23?a="":(d=e[3]||null,a=a.toUpperCase(),!d&&c&&(a+="Z"))):a=""}super(a),isNaN(this.getTime())||(this.#a=b,this.#b=c,this.#c=d)}isDateTime(){return this.#a&&this.#b}isLocal(){return!this.#a||!this.#b||!this.#c}isDate(){return this.#a&&!this.#b}isTime(){return this.#b&&!this.#a}isValid(){return this.#a||this.#b}toISOString(){let a=super.toISOString();if(this.isDate())return a.slice(0,10);if(this.isTime())return a.slice(11,23);if(null===this.#c)return a.slice(0,-1);if("Z"===this.#c)return a;let b=60*this.#c.slice(1,3)+ +this.#c.slice(4,6);return b="-"===this.#c[0]?b:-b,new Date(this.getTime()-6e4*b).toISOString().slice(0,-1)+this.#c}static wrapAsOffsetDateTime(a,b="Z"){let c=new s(a);return c.#c=b,c}static wrapAsLocalDateTime(a){let b=new s(a);return b.#c=null,b}static wrapAsLocalDate(a){let b=new s(a);return b.#b=!1,b.#c=null,b}static wrapAsLocalTime(a){let b=new s(a);return b.#a=!1,b.#c=null,b}}let t=/^((0x[0-9a-fA-F](_?[0-9a-fA-F])*)|(([+-]|0[ob])?\d(_?\d)*))$/,u=/^[+-]?\d(_?\d)*(\.\d(_?\d)*)?([eE][+-]?\d(_?\d)*)?$/,v=/^[+-]?0[0-9_]/,w=/^[0-9a-f]{2,8}$/i,x={b:"\b",t:" ",n:"\n",f:"\f",r:"\r",e:"\x1b",'"':'"',"\\":"\\"};function y(a,b=0,c=a.length){let d,e="'"===a[b],f=a[b++]===a[b]&&a[b]===a[b+1];f&&(c-=2,"\r"===a[b+=2]&&b++,"\n"===a[b]&&b++);let g=0,h="",i=b;for(;b<c-1;){let c=a[b++];if("\n"===c||"\r"===c&&"\n"===a[b]){if(!f)throw new m("newlines are not allowed in strings",{toml:a,ptr:b-1})}else if(c<" "&&" "!==c||""===c)throw new m("control characters are not allowed in strings",{toml:a,ptr:b-1});if(d){if(d=!1,"x"===c||"u"===c||"U"===c){let d=a.slice(b,b+="x"===c?2:"u"===c?4:8);if(!w.test(d))throw new m("invalid unicode escape",{toml:a,ptr:g});try{h+=String.fromCodePoint(parseInt(d,16))}catch{throw new m("invalid unicode escape",{toml:a,ptr:g})}}else if(f&&("\n"===c||" "===c||" "===c||"\r"===c)){if(b=p(a,b-1,!0),"\n"!==a[b]&&"\r"!==a[b])throw new m("invalid escape: only line-ending whitespace may be escaped",{toml:a,ptr:g});b=p(a,b)}else if(c in x)h+=x[c];else throw new m("unrecognized escape sequence",{toml:a,ptr:g});i=b}else e||"\\"!==c||(g=b-1,d=!0,h+=a.slice(i,g))}return h+a.slice(i,c-1)}let z=/^[a-zA-Z0-9-_]+[ \t]*$/;function A(a,b,c="="){let d=b-1,e=[],f=a.indexOf(c,b);if(f<0)throw new m("incomplete key-value: cannot find end of key",{toml:a,ptr:b});do{let g=a[b=++d];if(" "!==g&&" "!==g)if('"'===g||"'"===g){if(g===a[b+1]&&g===a[b+2])throw new m("multiline strings are not allowed in keys",{toml:a,ptr:b});let h=q(a,b);if(h<0)throw new m("unfinished string encountered",{toml:a,ptr:b});d=a.indexOf(".",h);let i=a.slice(h,d<0||d>f?f:d),j=n(i);if(j>-1)throw new m("newlines are not allowed in keys",{toml:a,ptr:b+d+j});if(i.trimStart())throw new m("found extra tokens after the string part",{toml:a,ptr:h});if(f<h&&(f=a.indexOf(c,h))<0)throw new m("incomplete key-value: cannot find end of key",{toml:a,ptr:b});e.push(y(a,b,h))}else{d=a.indexOf(".",b);let c=a.slice(b,d<0||d>f?f:d);if(!z.test(c))throw new m("only letter, numbers, dashes and underscores are allowed in keys",{toml:a,ptr:b});e.push(c.trimEnd())}}while(d+1&&d<f)return[e,p(a,f+1,!0,!0)]}function B(a,b,c,d){let e,f,g=b,h=c,i=!1;for(let b=0;b<a.length;b++){if(b){if(g=i?g[e]:g[e]={},h=(f=h[e]).c,0===d&&(1===f.t||2===f.t))return null;if(2===f.t){let a=g.length-1;g=g[a],h=h[a].c}}if((i=Object.hasOwn(g,e=a[b]))&&h[e]?.t===0&&h[e]?.d)return null;i||("__proto__"===e&&(Object.defineProperty(g,e,{enumerable:!0,configurable:!0,writable:!0}),Object.defineProperty(h,e,{enumerable:!0,configurable:!0,writable:!0})),h[e]={t:b<a.length-1&&2===d?3:d,d:!1,i:0,c:{}})}if((f=h[e]).t!==d&&(1!==d||3!==f.t)||(2===d&&(f.d||(f.d=!0,g[e]=[]),g[e].push(g={}),f.c[f.i++]=f={t:1,d:!1,i:0,c:{}}),f.d))return null;if(f.d=!0,1===d)g=i?g[e]:g[e]={};else if(0===d&&i)return null;return[e,g,f.c]}let C=/^[a-z0-9-_]+$/i;function D(a){let b=typeof a;if("object"===b){if(Array.isArray(a))return"array";if(a instanceof Date)return"date"}return b}function E(a){return JSON.stringify(a).replace(/\x7f/g,"\\u007f")}let F={SUCCESS:0,PARTIAL_SUCCESS:1,BAD_REQUEST:2,VALIDATION_ERROR:2,INVALID_PARAMETER:2,NOT_FOUND:3,UNAUTHORIZED:4,FORBIDDEN:4,CONFLICT:5,QUOTA_EXHAUSTED:6,FLOW_CONTROL:7,INTERNAL_SERVER_ERROR:10,NETWORK_ERROR:11,SERVICE_UNAVAILABLE:12};class G extends Error{code;exitCode;constructor(a,b,c){super(b),this.name="CLIError",this.code=a,this.exitCode=c??function(a){return F[a]??10}(a)}}function H(a){try{(0,l.chmodSync)(a,384)}catch(d){let b="win32"===process.platform,c=d&&"object"==typeof d&&"code"in d?String(d.code):"";if(!(b||"EPERM"===c||"ENOSYS"===c||"EACCES"===c)){let b=d instanceof Error?d.message:String(d);process.stderr.write(`Warning: failed to chmod 0o600 on ${a}: ${b}
|
|
4
|
-
`)}}}function I(a){return"string"==typeof a?a:""}let
|
|
4
|
+
`)}}}function I(a){return"string"==typeof a?a:""}(()=>{let a={};for(let[b,c]of Object.entries(k))a[c]=b})(),new(a.i(78500)).AsyncLocalStorage;var J=a.i(33729),K=a.i(77860),L=a.i(72768),M=a.i(49935);a.s(["default",0,function({children:a}){return!function(){if(process.env.TABLESTORE_ACCESS_KEY_ID&&process.env.TABLESTORE_ACCESS_KEY_SECRET&&process.env.TABLESTORE_ENDPOINT&&process.env.TABLESTORE_INSTANCE_NAME)return!0;try{return function(){let a=function(){let a,b,c;if(!(0,l.existsSync)(g))return{};try{a=(0,l.statSync)(g).size}catch(a){throw new G("INVALID_CONFIG",`Failed to stat ${g}: ${a instanceof Error?a.message:String(a)}`)}if(a>1048576)throw new G("INVALID_CONFIG",`Config file exceeds 1048576 bytes: ${g} (${a} bytes). Inspect the file for accidental content or depth-bomb input.`);try{b=(0,l.readFileSync)(g,"utf-8")}catch(a){throw new G("INVALID_CONFIG",`Failed to read ${g}: ${a instanceof Error?a.message:String(a)}`)}try{c=function(a,{maxDepth:b=1e3,integersAsBigInt:c}={}){let d={},e={},f=d,g=e;for(let h=p(a,0);h<a.length;){if("["===a[h]){let b="["===a[++h],c=A(a,h+=+b,"]");if(b){if("]"!==a[c[1]-1])throw new m("expected end of table declaration",{toml:a,ptr:c[1]-1});c[1]++}let i=B(c[0],d,e,b?2:1);if(!i)throw new m("trying to redefine an already defined table or value",{toml:a,ptr:h});g=i[2],f=i[1],h=c[1]}else{let d=A(a,h),e=B(d[0],f,g,0);if(!e)throw new m("trying to redefine an already defined table or value",{toml:a,ptr:h});let i=function a(b,c,d,e,f){var g;let h,i,j;if(0===e)throw new m("document contains excessively nested structures. aborting.",{toml:b,ptr:c});let k=b[c];if("["===k||"{"===k){let[g,h]="["===k?function(b,c,d,e){let f,g=[];for(c++;"]"!==(f=b[c++])&&f;)if(","===f)throw new m("expected value, found comma",{toml:b,ptr:c-1});else if("#"===f)c=o(b,c);else if(" "!==f&&" "!==f&&"\n"!==f&&"\r"!==f){let f=a(b,c-1,"]",d-1,e);g.push(f[0]),c=f[1]}if(!f)throw new m("unfinished array encountered",{toml:b,ptr:c});return[g,c]}(b,c,e,f):function(b,c,d,e){let f,g={},h=new Set;for(c++;"}"!==(f=b[c++])&&f;)if(","===f)throw new m("expected value, found comma",{toml:b,ptr:c-1});else if("#"===f)c=o(b,c);else if(" "!==f&&" "!==f&&"\n"!==f&&"\r"!==f){let f,i=g,j=!1,[k,l]=A(b,c-1);for(let a=0;a<k.length;a++){if(a&&(i=j?i[f]:i[f]={}),(j=Object.hasOwn(i,f=k[a]))&&("object"!=typeof i[f]||h.has(i[f])))throw new m("trying to redefine an already defined value",{toml:b,ptr:c});j||"__proto__"!==f||Object.defineProperty(i,f,{enumerable:!0,configurable:!0,writable:!0})}if(j)throw new m("trying to redefine an already defined value",{toml:b,ptr:c});let[n,o]=a(b,l,"}",d-1,e);h.add(n),i[f]=n,c=o}if(!f)throw new m("unfinished table encountered",{toml:b,ptr:c});return[g,c]}(b,c,e,f);if(d){if(h=p(b,h),","===b[h])h++;else if(b[h]!==d)throw new m("expected comma or end of structure",{toml:b,ptr:h})}return[g,h]}if('"'===k||"'"===k){h=q(b,c);let a=y(b,c,h);if(d){if(h=p(b,h),b[h]&&","!==b[h]&&b[h]!==d&&"\n"!==b[h]&&"\r"!==b[h])throw new m("unexpected character encountered",{toml:b,ptr:h});h+=+(","===b[h])}return[a,h]}h=function(a,b,c,d=!1){if(!c)return(b=n(a,b))<0?a.length:b;for(let e=b;e<a.length;e++){let b=a[e];if("#"===b)e=n(a,e);else if(","===b)return e+1;else if(b===c||d&&("\n"===b||"\r"===b&&"\n"===a[e+1]))return e}throw new m("cannot find end of structure",{toml:a,ptr:b})}(b,c,d);let l=(g=h-(","===b[h-1]),(j=(i=b.slice(c,g)).indexOf("#"))>-1&&(o(b,j),i=i.slice(0,j)),[i.trimEnd(),j]);if(!l[0])throw new m("incomplete key-value declaration: no value specified",{toml:b,ptr:c});return d&&l[1]>-1&&(h=p(b,c+l[1]),h+=+(","===b[h])),[function(a,b,c,d){if("true"===a)return!0;if("false"===a)return!1;if("-inf"===a)return-1/0;if("inf"===a||"+inf"===a)return 1/0;if("nan"===a||"+nan"===a||"-nan"===a)return NaN;if("-0"===a)return d?0n:0;let e=t.test(a);if(e||u.test(a)){if(v.test(a))throw new m("leading zeroes are not allowed",{toml:b,ptr:c});let f=+(a=a.replace(/_/g,""));if(isNaN(f))throw new m("invalid number",{toml:b,ptr:c});if(e){if((e=!Number.isSafeInteger(f))&&!d)throw new m("integer value cannot be represented losslessly",{toml:b,ptr:c});(e||!0===d)&&(f=BigInt(a))}return f}let f=new s(a);if(!f.isValid())throw new m("invalid value",{toml:b,ptr:c});return f}(l[0],b,c,f),h]}(a,d[1],void 0,b,c);e[1][e[0]]=i[0],h=i[1]}if(h=p(a,h,!0),a[h]&&"\n"!==a[h]&&"\r"!==a[h])throw new m("each key-value declaration must be followed by an end-of-line",{toml:a,ptr:h});h=p(a,h)}return d}(b)}catch(a){throw new G("INVALID_CONFIG",`Malformed TOML in ${g}: ${a instanceof Error?a.message:String(a)}`)}return function(a){let b,c=void 0!==a.managed_ots&&null!==a.managed_ots&&"object"==typeof a.managed_ots,d=void 0!==a.managed_oss&&null!==a.managed_oss&&"object"==typeof a.managed_oss;if(!c&&!d)return!1;let e="string"==typeof a[h]?a[h]:"",f=a[i]&&"object"==typeof a[i]?a[i]:null;return e&&e!==j&&f&&f[e]&&"object"==typeof f[e]?b=f[e]:a.default&&"object"==typeof a.default?b=a.default:a.default=b={},c&&!b.managed_ots&&(b.managed_ots=a.managed_ots),d&&!b.managed_oss&&(b.managed_oss=a.managed_oss),delete a.managed_ots,delete a.managed_oss,!0}(c)&&function(a){(0,l.mkdirSync)(f,{recursive:!0,mode:448});let b=`${g}.${process.pid}.${Date.now()}.tmp`;try{(0,l.writeFileSync)(b,function(a,{maxDepth:b=1e3,numbersAsFloat:c=!1}={}){if("object"!==D(a))throw TypeError("stringify can only be called with an object");let d=function a(b,c,d,e,f){if(0===e)throw Error("Could not stringify the object: maximum object depth exceeded");let g="",h="",i=Object.keys(c);for(let b=0;b<i.length;b++){let j=i[b];if(null!==c[j]&&void 0!==c[j]){let b=D(c[j]);if("symbol"===b||"function"===b)throw TypeError(`cannot serialize values of type '${b}'`);let i=C.test(j)?j:E(j);if("array"===b&&function(a){for(let b=0;b<a.length;b++)if("object"!==D(a[b]))return!1;return 0!=a.length}(c[j]))h+=(h&&"\n")+function(b,c,d,e){if(0===d)throw Error("Could not stringify the object: maximum object depth exceeded");let f="";for(let g=0;g<b.length;g++)f+=`${f&&"\n"}[[${c}]]
|
|
5
5
|
`,f+=a(0,b[g],c,d,e);return f}(c[j],d?`${d}.${i}`:i,e-1,f);else if("object"===b){let b=d?`${d}.${i}`:i;h+=(h&&"\n")+a(b,c[j],b,e-1,f)}else g+=i,g+=" = ",g+=function a(b,c,d,e){if(0===d)throw Error("Could not stringify the object: maximum object depth exceeded");if("number"===c)return isNaN(b)?"nan":b===1/0?"inf":b===-1/0?"-inf":e&&Number.isInteger(b)?b.toFixed(1):b.toString();if("bigint"===c||"boolean"===c)return b.toString();if("string"===c)return E(b);if("date"===c){if(isNaN(b.getTime()))throw TypeError("cannot serialize invalid date");return b.toISOString()}return"object"===c?function(b,c,d){let e=Object.keys(b);if(0===e.length)return"{}";let f="{ ";for(let g=0;g<e.length;g++){let h=e[g];g&&(f+=", "),f+=C.test(h)?h:E(h),f+=" = ",f+=a(b[h],D(b[h]),c-1,d)}return f+" }"}(b,d,e):"array"===c?function(b,c,d){if(0===b.length)return"[]";let e="[ ";for(let f=0;f<b.length;f++){if(f&&(e+=", "),null===b[f]||void 0===b[f])throw TypeError("arrays cannot contain null or undefined values");e+=a(b[f],D(b[f]),c-1,d)}return e+" ]"}(b,d,e):void 0}(c[j],b,e,f),g+="\n"}}return b&&(g||!h)&&(g=g?`[${b}]
|
|
6
6
|
${g}`:`[${b}]`),g&&h?`${g}
|
|
7
|
-
${h}`:g||h}(0,a,"",b,c);return"\n"!==d[d.length-1]?d+"\n":d}(a),"utf-8"),H(b);try{let a=(0,l.openSync)(b,"r+");try{(0,l.fsyncSync)(a)}finally{(0,l.closeSync)(a)}}catch{}(0,l.renameSync)(b,g)}catch(a){try{(0,l.unlinkSync)(b)}catch{}throw a}H(g)}(c),c}(),b="string"==typeof a[h]?a[h]:"",c=function(a){let b=a[i];if(!b||"object"!=typeof b)return{};let c={};for(let[a,d]of Object.entries(b))d&&"object"==typeof d&&(c[a]=d);return c}(a),d=a.default&&"object"==typeof a.default?a.default:{},e=[];for(let a of Object.keys(c).sort()){let d=c[a];e.push({name:a,active:b===a,ots_instance_name:I(d.ots_instance_name),region:I(d.region),is_default_fallback:!1})}return Object.keys(d).length>0&&e.push({name:j,active:b===j,ots_instance_name:I(d.ots_instance_name),region:I(d.region),is_default_fallback:!0}),e}().length>0}catch{return!1}}()&&(0,c.redirect)("/onboarding"),(0,b.jsxs)("div",{className:"min-h-screen",children:[(0,b.jsx)("a",{href:"#main-content",className:"sr-only focus:not-sr-only focus:fixed focus:left-4 focus:top-4 focus:z-50 focus:rounded-md focus:bg-primary focus:px-3 focus:py-2 focus:text-sm focus:font-medium focus:text-primary-foreground focus:shadow-md",children:"跳转到主内容"}),(0,b.jsx)(
|
|
7
|
+
${h}`:g||h}(0,a,"",b,c);return"\n"!==d[d.length-1]?d+"\n":d}(a),"utf-8"),H(b);try{let a=(0,l.openSync)(b,"r+");try{(0,l.fsyncSync)(a)}finally{(0,l.closeSync)(a)}}catch{}(0,l.renameSync)(b,g)}catch(a){try{(0,l.unlinkSync)(b)}catch{}throw a}H(g)}(c),c}(),b="string"==typeof a[h]?a[h]:"",c=function(a){let b=a[i];if(!b||"object"!=typeof b)return{};let c={};for(let[a,d]of Object.entries(b))d&&"object"==typeof d&&(c[a]=d);return c}(a),d=a.default&&"object"==typeof a.default?a.default:{},e=[];for(let a of Object.keys(c).sort()){let d=c[a];e.push({name:a,active:b===a,ots_instance_name:I(d.ots_instance_name),region:I(d.region),is_default_fallback:!1})}return Object.keys(d).length>0&&e.push({name:j,active:b===j,ots_instance_name:I(d.ots_instance_name),region:I(d.region),is_default_fallback:!0}),e}().length>0}catch{return!1}}()&&(0,c.redirect)("/onboarding"),(0,b.jsxs)("div",{className:"min-h-screen",children:[(0,b.jsx)("a",{href:"#main-content",className:"sr-only focus:not-sr-only focus:fixed focus:left-4 focus:top-4 focus:z-50 focus:rounded-md focus:bg-primary focus:px-3 focus:py-2 focus:text-sm focus:font-medium focus:text-primary-foreground focus:shadow-md",children:"跳转到主内容"}),(0,b.jsx)(K.Sidebar,{}),(0,b.jsxs)(M.SidebarOffset,{children:[(0,b.jsx)(L.SidebarMobile,{}),(0,b.jsx)(J.BreadcrumbBar,{}),(0,b.jsx)("main",{id:"main-content",tabIndex:-1,"aria-label":"主内容",className:"mx-auto max-w-350 px-8 py-8 max-md:px-4 animate-in fade-in duration-300",children:a})]})]})},"dynamic",0,"force-dynamic"],55244)},491,a=>{a.n(a.i(55244))}];
|
|
8
8
|
|
|
9
9
|
//# sourceMappingURL=dashboard_src_0suis9l._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[47161,28974,a=>{"use strict";var b=a.i(33596),c=a.i(83366),d=a.i(77072),e=a.i(63265),f=a.i(53141);async function g(){return(0,f.apiGet)("/api/v1/instances")}async function h(a){return(0,f.apiGet)(`/api/v1/instances/${encodeURIComponent(a)}`)}async function i(a){return(0,f.apiPost)("/api/v1/instances",a)}async function j(a){return(0,f.apiPost)("/api/v1/instances",a)}async function k(a,b){return(0,f.apiPut)(`/api/v1/instances/${encodeURIComponent(a)}`,b)}async function l(a){return(0,f.apiDelete)(`/api/v1/instances/${encodeURIComponent(a)}`)}async function m(a){return(0,f.apiPost)(`/api/v1/instances/${encodeURIComponent(a)}/use`)}async function n(a){return(0,f.apiGet)(`/api/v1/instances/${encodeURIComponent(a)}/token`)}let o=["instances"];function p(a){a.invalidateQueries({queryKey:o}),a.invalidateQueries({queryKey:["knowledge-bases"]}),a.invalidateQueries({queryKey:["memory-stores"]}),a.invalidateQueries({queryKey:["llm-providers"]}),a.invalidateQueries({queryKey:["auth-status"]})}a.s(["useConnectInstance",0,function(){let a=(0,d.useQueryClient)();return(0,b.useMutation)({mutationFn:a=>i(a),onSuccess:()=>{p(a),e.toast.success("项目已创建")},onError:a=>{e.toast.error(a instanceof Error?a.message:"创建项目失败")}})},"useDeleteInstance",0,function(){let a=(0,d.useQueryClient)();return(0,b.useMutation)({mutationFn:a=>l(a),onSuccess:()=>{p(a),e.toast.success("项目已删除")},onError:a=>{e.toast.error(a instanceof Error?a.message:"删除项目失败")}})},"useExportInstanceToken",0,function(){return(0,b.useMutation)({mutationFn:a=>n(a),onError:a=>{e.toast.error(a instanceof Error?a.message:"导出 Token 失败")}})},"useImportInstance",0,function(){let a=(0,d.useQueryClient)();return(0,b.useMutation)({mutationFn:a=>j(a),onSuccess:()=>{p(a),e.toast.success("Token 已导入")},onError:a=>{e.toast.error(a instanceof Error?a.message:"导入 Token 失败")}})},"useInstance",0,function(a){return(0,c.useQuery)({queryKey:["instance",a],queryFn:()=>h(a),enabled:!!a,staleTime:3e4})},"useInstances",0,function(){return(0,c.useQuery)({queryKey:o,queryFn:g,staleTime:3e4})},"useSwitchInstance",0,function(){let a=(0,d.useQueryClient)();return(0,b.useMutation)({mutationFn:a=>m(a),onSuccess:()=>{a.removeQueries({queryKey:["knowledge-bases"]}),a.removeQueries({queryKey:["memory-stores"]}),a.removeQueries({queryKey:["llm-providers"]}),a.removeQueries({queryKey:["documents"]}),a.removeQueries({queryKey:["instance"]}),a.invalidateQueries({queryKey:o}),a.invalidateQueries({queryKey:["auth-status"]}),e.toast.success("已切换当前项目")},onError:a=>{e.toast.error(a instanceof Error?a.message:"切换项目失败")}})},"useUpdateInstance",0,function(a){let c=(0,d.useQueryClient)();return(0,b.useMutation)({mutationFn:b=>k(a,b),onSuccess:()=>{p(c),c.invalidateQueries({queryKey:["instance",a]}),e.toast.success("项目已更新")},onError:a=>{e.toast.error(a instanceof Error?a.message:"更新项目失败")}})}],47161),a.s(["isImportPayload",0,function(a){return"string"==typeof a.token}],28974)},19446,a=>{"use strict";var b=a.i(34020),c=a.i(71938),d=a.i(71071),e=a.i(71562),f=a.i(44401),g=a.i(80904);let h=g.z.string().trim().regex(/^[a-z0-9-]{1,32}$/,"名称需为 1-32 位小写字母、数字或连字符").refine(a=>"default"!==a,'名称 "default" 为保留字'),i=(a,b=512)=>g.z.string().trim().min(1,`请输入${a}`).max(b),j=(a=512)=>g.z.string().trim().max(a).optional().or(g.z.literal("")),k=g.z.object({name:h,accessKeyId:i("AccessKey ID",128),accessKeySecret:i("AccessKey Secret",512),otsEndpoint:i("OTS Endpoint",256),otsInstanceName:i("OTS 实例名",128),ossEndpoint:j(256),ossBucketName:j(128),region:j(64),activate:g.z.boolean().optional()});g.z.object({accessKeyId:j(128),accessKeySecret:j(512),otsEndpoint:j(256),otsInstanceName:j(128),ossEndpoint:j(256),ossBucketName:j(128),region:j(64),activate:g.z.boolean().optional()}).refine(a=>{let b=!!(a.accessKeyId&&a.accessKeyId.length>0);return!!(a.accessKeySecret&&a.accessKeySecret.length>0)===b},{message:"AccessKey ID 与 Secret 必须成对更新,要么同时填写、要么同时留空",path:["accessKeySecret"]});let l=g.z.object({name:h,accessKeyId:j(128),accessKeySecret:j(512),otsEndpoint:i("OTS Endpoint",256),otsInstanceName:i("OTS 实例名",128),ossEndpoint:j(256),ossBucketName:j(128),region:j(64),activate:g.z.boolean().optional()}).refine(a=>{let b=!!(a.accessKeyId&&a.accessKeyId.length>0);return!!(a.accessKeySecret&&a.accessKeySecret.length>0)===b},{message:"AccessKey ID 与 Secret 必须成对更新,要么同时填写、要么同时留空",path:["accessKeySecret"]}),m=g.z.object({token:g.z.string().trim().min(10,"Token 长度不足,无法解析").max(4096),name:h.optional(),activate:g.z.boolean().optional()});var n=a.i(76192),o=a.i(92942),p=a.i(72518),q=a.i(63525),r=a.i(16038),s=a.i(70535);let t=k.extend({otsEndpoint:g.z.string().trim().url("请输入合法的 OTS Endpoint URL"),ossEndpoint:g.z.string().trim().url("请输入合法的 OSS Endpoint URL").optional().or(g.z.literal(""))}),u=m.pick({token:!0}),v=[{value:"cn-beijing",label:"华北 2(北京)"},{value:"cn-hangzhou",label:"华东 1(杭州)"},{value:"cn-shanghai",label:"华东 2(上海)"},{value:"cn-shenzhen",label:"华南 1(深圳)"},{value:"__custom__",label:"其它(自定义)"}];a.s(["ConnectInstanceForm",0,function({mode:a,defaultValues:g,accessKeyIdPlaceholder:h,accessKeySecretPlaceholder:i,onSubmit:j,busy:k,lockName:m,submitLabel:w}){let[x,y]=(0,c.useState)("manual"),z="edit"===a,A=g?.region??"cn-hangzhou",B=(0,c.useMemo)(()=>v.some(a=>a.value===A),[A]),[C,D]=(0,c.useState)(B?A:"__custom__"),E=(0,c.useMemo)(()=>(0,d.zodResolver)(z?l:t),[z]),F=(0,e.useForm)({resolver:E,defaultValues:{name:g?.name??"",accessKeyId:z?"":g?.accessKeyId??"",accessKeySecret:z?"":g?.accessKeySecret??"",otsEndpoint:g?.otsEndpoint??"",otsInstanceName:g?.otsInstanceName??"",ossEndpoint:g?.ossEndpoint??"",ossBucketName:g?.ossBucketName??"",region:A}}),G=(0,e.useForm)({resolver:(0,d.zodResolver)(u),defaultValues:{token:""}});async function H(a){let b={...a,ossEndpoint:a.ossEndpoint?.trim()||void 0,ossBucketName:a.ossBucketName?.trim()||void 0};await j(b)}async function I(a){let b={token:a.token.trim()};await j(b)}let J="create"===a;return(0,b.jsxs)(r.Tabs,{value:x,onValueChange:a=>y(a),className:"w-full",children:[J&&(0,b.jsxs)(r.TabsList,{className:"grid w-full grid-cols-2",children:[(0,b.jsx)(r.TabsTrigger,{value:"manual",children:"手动填写"}),(0,b.jsx)(r.TabsTrigger,{value:"token",children:"导入 Token"})]}),(0,b.jsx)(r.TabsContent,{value:"manual",className:"mt-4",children:(0,b.jsx)(o.Form,{...F,children:(0,b.jsxs)("form",{onSubmit:F.handleSubmit(H),className:"space-y-4",children:[(0,b.jsx)(o.FormField,{control:F.control,name:"name",render:({field:a})=>(0,b.jsxs)(o.FormItem,{children:[(0,b.jsx)(o.FormLabel,{children:"项目名称"}),(0,b.jsx)(o.FormControl,{children:(0,b.jsx)(p.Input,{...a,placeholder:"prod-main",disabled:m||k,autoComplete:"off"})}),(0,b.jsx)(o.FormDescription,{children:"仅用于本地区分,不会发送到服务端。"}),(0,b.jsx)(o.FormMessage,{})]})}),(0,b.jsxs)("div",{className:"grid gap-4 sm:grid-cols-2",children:[(0,b.jsx)(o.FormField,{control:F.control,name:"accessKeyId",render:({field:a})=>(0,b.jsxs)(o.FormItem,{children:[(0,b.jsx)(o.FormLabel,{children:"AccessKey ID"}),(0,b.jsx)(o.FormControl,{children:(0,b.jsx)(p.Input,{...a,autoComplete:"off",disabled:k,placeholder:z&&h?`${h} \xb7 留空表示保留`:void 0})}),z&&(0,b.jsx)(o.FormDescription,{children:"AK 与 SK 必须成对更新,留空则保留现有凭证。"}),(0,b.jsx)(o.FormMessage,{})]})}),(0,b.jsx)(o.FormField,{control:F.control,name:"accessKeySecret",render:({field:a})=>(0,b.jsxs)(o.FormItem,{children:[(0,b.jsx)(o.FormLabel,{children:"AccessKey Secret"}),(0,b.jsx)(o.FormControl,{children:(0,b.jsx)(p.Input,{...a,type:"password",autoComplete:"new-password",disabled:k})}),(0,b.jsx)(o.FormMessage,{})]})})]}),(0,b.jsxs)("div",{className:"grid gap-4 sm:grid-cols-2",children:[(0,b.jsx)(o.FormField,{control:F.control,name:"otsEndpoint",render:({field:a})=>(0,b.jsxs)(o.FormItem,{children:[(0,b.jsx)(o.FormLabel,{children:"OTS Endpoint"}),(0,b.jsx)(o.FormControl,{children:(0,b.jsx)(p.Input,{...a,placeholder:"https://xxx.cn-hangzhou.ots.aliyuncs.com",disabled:k})}),(0,b.jsx)(o.FormMessage,{})]})}),(0,b.jsx)(o.FormField,{control:F.control,name:"otsInstanceName",render:({field:a})=>(0,b.jsxs)(o.FormItem,{children:[(0,b.jsx)(o.FormLabel,{children:"OTS 实例名"}),(0,b.jsx)(o.FormControl,{children:(0,b.jsx)(p.Input,{...a,disabled:k})}),(0,b.jsx)(o.FormMessage,{})]})})]}),(0,b.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,b.jsx)(f.Info,{className:"mt-0.5 h-3.5 w-3.5 shrink-0 text-[hsl(var(--primary))]"}),(0,b.jsx)("span",{children:"OSS 信息为可选项。若需上传文档到知识库,OSS Endpoint 与 Bucket 必填; 留空则项目只能用于查询与检索,文件上传功能将不可用。"})]}),(0,b.jsxs)("div",{className:"grid gap-4 sm:grid-cols-2",children:[(0,b.jsx)(o.FormField,{control:F.control,name:"ossEndpoint",render:({field:a})=>(0,b.jsxs)(o.FormItem,{children:[(0,b.jsx)(o.FormLabel,{children:"OSS Endpoint(可选)"}),(0,b.jsx)(o.FormControl,{children:(0,b.jsx)(p.Input,{...a,placeholder:"https://oss-cn-hangzhou.aliyuncs.com",disabled:k})}),(0,b.jsx)(o.FormMessage,{})]})}),(0,b.jsx)(o.FormField,{control:F.control,name:"ossBucketName",render:({field:a})=>(0,b.jsxs)(o.FormItem,{children:[(0,b.jsx)(o.FormLabel,{children:"OSS Bucket(可选)"}),(0,b.jsx)(o.FormControl,{children:(0,b.jsx)(p.Input,{...a,disabled:k})}),(0,b.jsx)(o.FormMessage,{})]})})]}),(0,b.jsx)(o.FormField,{control:F.control,name:"region",render:({field:a})=>(0,b.jsxs)(o.FormItem,{children:[(0,b.jsx)(o.FormLabel,{children:"Region"}),"__custom__"===C?(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)(o.FormControl,{children:(0,b.jsx)(p.Input,{...a,placeholder:"cn-xxx",disabled:k})}),(0,b.jsx)(n.Button,{type:"button",variant:"outline",size:"sm",onClick:()=>{D("cn-hangzhou"),a.onChange("cn-hangzhou")},disabled:k,children:"使用预设"})]}):(0,b.jsxs)(q.Select,{value:C,onValueChange:b=>{D(b),"__custom__"!==b?a.onChange(b):a.onChange("")},disabled:k,children:[(0,b.jsx)(o.FormControl,{children:(0,b.jsx)(q.SelectTrigger,{children:(0,b.jsx)(q.SelectValue,{})})}),(0,b.jsx)(q.SelectContent,{children:v.map(a=>(0,b.jsx)(q.SelectItem,{value:a.value,children:a.label},a.value))})]}),(0,b.jsx)(o.FormMessage,{})]})}),(0,b.jsx)("div",{className:"flex justify-end pt-2",children:(0,b.jsx)(n.Button,{type:"submit",disabled:k,children:k?"提交中...":w??("edit"===a?"保存":"创建项目")})})]})})}),J&&(0,b.jsx)(r.TabsContent,{value:"token",className:"mt-4",children:(0,b.jsx)(o.Form,{...G,children:(0,b.jsxs)("form",{onSubmit:G.handleSubmit(I),className:"space-y-4",children:[(0,b.jsx)(o.FormField,{control:G.control,name:"token",render:({field:a})=>(0,b.jsxs)(o.FormItem,{children:[(0,b.jsx)(o.FormLabel,{children:"项目 Token"}),(0,b.jsx)(o.FormControl,{children:(0,b.jsx)(s.Textarea,{...a,rows:5,placeholder:"粘贴从其他环境导出的项目 Token",disabled:k})}),(0,b.jsx)(o.FormDescription,{children:"Token 中已包含 AK/SK、Endpoint 等全部连接信息。"}),(0,b.jsx)(o.FormMessage,{})]})}),(0,b.jsx)("div",{className:"flex justify-end pt-2",children:(0,b.jsx)(n.Button,{type:"submit",disabled:k,children:k?"导入中...":"导入并连接"})})]})})})]})}],19446)}];
|
|
1
|
+
module.exports=[47161,28974,a=>{"use strict";var b=a.i(33596),c=a.i(83366),d=a.i(77072),e=a.i(63265),f=a.i(53141);async function g(){return(0,f.apiGet)("/api/v1/instances")}async function h(a){return(0,f.apiGet)(`/api/v1/instances/${encodeURIComponent(a)}`)}async function i(a){return(0,f.apiPost)("/api/v1/instances",a)}async function j(a){return(0,f.apiPost)("/api/v1/instances",a)}async function k(a,b){return(0,f.apiPut)(`/api/v1/instances/${encodeURIComponent(a)}`,b)}async function l(a){return(0,f.apiDelete)(`/api/v1/instances/${encodeURIComponent(a)}`)}async function m(a){return(0,f.apiPost)(`/api/v1/instances/${encodeURIComponent(a)}/use`)}async function n(a){return(0,f.apiGet)(`/api/v1/instances/${encodeURIComponent(a)}/token`)}var o=a.i(25377),p=a.i(39096);function q(a){(0,o.invalidateInstanceScopedQueries)(a)}function r(a){(0,o.resetInstanceScopedQueries)(a)}function s(a){a.invalidateQueries({queryKey:o.RUNTIME_CONTEXT_QUERY_KEY})}a.s(["useConnectInstance",0,function(){let a=(0,d.useQueryClient)();return(0,b.useMutation)({mutationFn:a=>i(a),onSuccess:()=>{r(a),s(a),e.toast.success("项目已创建")},onError:a=>{e.toast.error(a instanceof Error?a.message:"创建项目失败")}})},"useDeleteInstance",0,function(){let a=(0,d.useQueryClient)();return(0,b.useMutation)({mutationFn:a=>l(a),onSuccess:()=>{q(a),s(a),e.toast.success("项目已删除")},onError:a=>{e.toast.error(a instanceof Error?a.message:"删除项目失败")}})},"useExportInstanceToken",0,function(){return(0,b.useMutation)({mutationFn:a=>n(a),onError:a=>{e.toast.error(a instanceof Error?a.message:"导出 Token 失败")}})},"useImportInstance",0,function(){let a=(0,d.useQueryClient)();return(0,b.useMutation)({mutationFn:a=>j(a),onSuccess:()=>{r(a),s(a),e.toast.success("Token 已导入")},onError:a=>{e.toast.error(a instanceof Error?a.message:"导入 Token 失败")}})},"useInstance",0,function(a){let{context:b,ready:d}=(0,p.useRuntimeContext)();return(0,c.useQuery)({queryKey:o.queryKeys.instance(b.dataScopeKey,a),queryFn:()=>h(a),enabled:d&&!!a,staleTime:3e4})},"useInstances",0,function(){let{context:a,ready:b}=(0,p.useRuntimeContext)();return(0,c.useQuery)({queryKey:o.queryKeys.instances(a.dataScopeKey),queryFn:g,enabled:b,staleTime:3e4})},"useSwitchInstance",0,function(){let a=(0,d.useQueryClient)(),{context:c}=(0,p.useRuntimeContext)();return(0,b.useMutation)({mutationFn:a=>m(a),onSuccess:({activeInstance:b})=>{r(a),s(a),e.toast.success("已切换当前项目")},onError:a=>{e.toast.error(a instanceof Error?a.message:"切换项目失败")}})},"useUpdateInstance",0,function(a){let c=(0,d.useQueryClient)();return(0,b.useMutation)({mutationFn:b=>k(a,b),onSuccess:()=>{q(c),c.invalidateQueries({queryKey:["instance"]}),s(c),e.toast.success("项目已更新")},onError:a=>{e.toast.error(a instanceof Error?a.message:"更新项目失败")}})}],47161),a.s(["isImportPayload",0,function(a){return"string"==typeof a.token}],28974)},19446,a=>{"use strict";var b=a.i(34020),c=a.i(71938),d=a.i(71071),e=a.i(71562),f=a.i(44401),g=a.i(80904);let h=g.z.string().trim().regex(/^[a-z0-9-]{1,32}$/,"名称需为 1-32 位小写字母、数字或连字符").refine(a=>"default"!==a,'名称 "default" 为保留字'),i=(a,b=512)=>g.z.string().trim().min(1,`请输入${a}`).max(b),j=(a=512)=>g.z.string().trim().max(a).optional().or(g.z.literal("")),k=g.z.object({name:h,accessKeyId:i("AccessKey ID",128),accessKeySecret:i("AccessKey Secret",512),otsEndpoint:i("OTS Endpoint",256),otsInstanceName:i("OTS 实例名",128),ossEndpoint:j(256),ossBucketName:j(128),region:j(64),activate:g.z.boolean().optional()});g.z.object({accessKeyId:j(128),accessKeySecret:j(512),otsEndpoint:j(256),otsInstanceName:j(128),ossEndpoint:j(256),ossBucketName:j(128),region:j(64),activate:g.z.boolean().optional()}).refine(a=>{let b=!!(a.accessKeyId&&a.accessKeyId.length>0);return!!(a.accessKeySecret&&a.accessKeySecret.length>0)===b},{message:"AccessKey ID 与 Secret 必须成对更新,要么同时填写、要么同时留空",path:["accessKeySecret"]});let l=g.z.object({name:h,accessKeyId:j(128),accessKeySecret:j(512),otsEndpoint:i("OTS Endpoint",256),otsInstanceName:i("OTS 实例名",128),ossEndpoint:j(256),ossBucketName:j(128),region:j(64),activate:g.z.boolean().optional()}).refine(a=>{let b=!!(a.accessKeyId&&a.accessKeyId.length>0);return!!(a.accessKeySecret&&a.accessKeySecret.length>0)===b},{message:"AccessKey ID 与 Secret 必须成对更新,要么同时填写、要么同时留空",path:["accessKeySecret"]}),m=g.z.object({token:g.z.string().trim().min(10,"Token 长度不足,无法解析").max(4096),name:h.optional(),activate:g.z.boolean().optional()});var n=a.i(76192),o=a.i(92942),p=a.i(72518),q=a.i(63525),r=a.i(16038),s=a.i(70535);let t=k.extend({otsEndpoint:g.z.string().trim().url("请输入合法的 OTS Endpoint URL"),ossEndpoint:g.z.string().trim().url("请输入合法的 OSS Endpoint URL").optional().or(g.z.literal(""))}),u=m.pick({token:!0}),v=[{value:"cn-beijing",label:"华北 2(北京)"},{value:"cn-hangzhou",label:"华东 1(杭州)"},{value:"cn-shanghai",label:"华东 2(上海)"},{value:"cn-shenzhen",label:"华南 1(深圳)"},{value:"__custom__",label:"其它(自定义)"}];a.s(["ConnectInstanceForm",0,function({mode:a,defaultValues:g,accessKeyIdPlaceholder:h,accessKeySecretPlaceholder:i,onSubmit:j,busy:k,lockName:m,submitLabel:w}){let[x,y]=(0,c.useState)("manual"),z="edit"===a,A=g?.region??"cn-hangzhou",B=(0,c.useMemo)(()=>v.some(a=>a.value===A),[A]),[C,D]=(0,c.useState)(B?A:"__custom__"),E=(0,c.useMemo)(()=>(0,d.zodResolver)(z?l:t),[z]),F=(0,e.useForm)({resolver:E,defaultValues:{name:g?.name??"",accessKeyId:z?"":g?.accessKeyId??"",accessKeySecret:z?"":g?.accessKeySecret??"",otsEndpoint:g?.otsEndpoint??"",otsInstanceName:g?.otsInstanceName??"",ossEndpoint:g?.ossEndpoint??"",ossBucketName:g?.ossBucketName??"",region:A}}),G=(0,e.useForm)({resolver:(0,d.zodResolver)(u),defaultValues:{token:""}});async function H(a){let b=a.ossEndpoint?.trim()||void 0,c=a.ossBucketName?.trim()||void 0;b&&c&&(b=function(a,b){try{let c=new URL(a);if(c.hostname.startsWith(`${b}.`))return c.hostname=c.hostname.slice(b.length+1),c.toString().replace(/\/$/,"")}catch{}return a}(b,c));let d={...a,ossEndpoint:b,ossBucketName:c};await j(d)}async function I(a){let b={token:a.token.trim()};await j(b)}let J="create"===a;return(0,b.jsxs)(r.Tabs,{value:x,onValueChange:a=>y(a),className:"w-full",children:[J&&(0,b.jsxs)(r.TabsList,{className:"grid w-full grid-cols-2",children:[(0,b.jsx)(r.TabsTrigger,{value:"manual",children:"手动填写"}),(0,b.jsx)(r.TabsTrigger,{value:"token",children:"导入 Token"})]}),(0,b.jsx)(r.TabsContent,{value:"manual",className:"mt-4",children:(0,b.jsx)(o.Form,{...F,children:(0,b.jsxs)("form",{onSubmit:F.handleSubmit(H),className:"space-y-4",children:[(0,b.jsx)(o.FormField,{control:F.control,name:"name",render:({field:a})=>(0,b.jsxs)(o.FormItem,{children:[(0,b.jsx)(o.FormLabel,{children:"项目名称"}),(0,b.jsx)(o.FormControl,{children:(0,b.jsx)(p.Input,{...a,placeholder:"prod-main",disabled:m||k,autoComplete:"off"})}),(0,b.jsx)(o.FormDescription,{children:"仅用于本地区分,不会发送到服务端。"}),(0,b.jsx)(o.FormMessage,{})]})}),(0,b.jsxs)("div",{className:"grid gap-4 sm:grid-cols-2",children:[(0,b.jsx)(o.FormField,{control:F.control,name:"accessKeyId",render:({field:a})=>(0,b.jsxs)(o.FormItem,{children:[(0,b.jsx)(o.FormLabel,{children:"AccessKey ID"}),(0,b.jsx)(o.FormControl,{children:(0,b.jsx)(p.Input,{...a,autoComplete:"off",disabled:k,placeholder:z&&h?`${h} \xb7 留空表示保留`:void 0})}),z&&(0,b.jsx)(o.FormDescription,{children:"AK 与 SK 必须成对更新,留空则保留现有凭证。"}),(0,b.jsx)(o.FormMessage,{})]})}),(0,b.jsx)(o.FormField,{control:F.control,name:"accessKeySecret",render:({field:a})=>(0,b.jsxs)(o.FormItem,{children:[(0,b.jsx)(o.FormLabel,{children:"AccessKey Secret"}),(0,b.jsx)(o.FormControl,{children:(0,b.jsx)(p.Input,{...a,type:"password",autoComplete:"new-password",disabled:k})}),(0,b.jsx)(o.FormMessage,{})]})})]}),(0,b.jsxs)("div",{className:"grid gap-4 sm:grid-cols-2",children:[(0,b.jsx)(o.FormField,{control:F.control,name:"otsEndpoint",render:({field:a})=>(0,b.jsxs)(o.FormItem,{children:[(0,b.jsx)(o.FormLabel,{children:"OTS Endpoint"}),(0,b.jsx)(o.FormControl,{children:(0,b.jsx)(p.Input,{...a,placeholder:"https://xxx.cn-hangzhou.ots.aliyuncs.com",disabled:k})}),(0,b.jsx)(o.FormMessage,{})]})}),(0,b.jsx)(o.FormField,{control:F.control,name:"otsInstanceName",render:({field:a})=>(0,b.jsxs)(o.FormItem,{children:[(0,b.jsx)(o.FormLabel,{children:"OTS 实例名"}),(0,b.jsx)(o.FormControl,{children:(0,b.jsx)(p.Input,{...a,disabled:k})}),(0,b.jsx)(o.FormMessage,{})]})})]}),(0,b.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,b.jsx)(f.Info,{className:"mt-0.5 h-3.5 w-3.5 shrink-0 text-[hsl(var(--primary))]"}),(0,b.jsx)("span",{children:"OSS 信息为可选项。若需上传文档到知识库,OSS Endpoint 与 Bucket 必填; 留空则项目只能用于查询与检索,文件上传功能将不可用。"})]}),(0,b.jsxs)("div",{className:"grid gap-4 sm:grid-cols-2",children:[(0,b.jsx)(o.FormField,{control:F.control,name:"ossEndpoint",render:({field:a})=>(0,b.jsxs)(o.FormItem,{children:[(0,b.jsx)(o.FormLabel,{children:"OSS Endpoint(可选)"}),(0,b.jsx)(o.FormControl,{children:(0,b.jsx)(p.Input,{...a,placeholder:"https://oss-cn-hangzhou.aliyuncs.com",disabled:k})}),(0,b.jsx)(o.FormMessage,{})]})}),(0,b.jsx)(o.FormField,{control:F.control,name:"ossBucketName",render:({field:a})=>(0,b.jsxs)(o.FormItem,{children:[(0,b.jsx)(o.FormLabel,{children:"OSS Bucket(可选)"}),(0,b.jsx)(o.FormControl,{children:(0,b.jsx)(p.Input,{...a,disabled:k})}),(0,b.jsx)(o.FormMessage,{})]})})]}),(0,b.jsx)(o.FormField,{control:F.control,name:"region",render:({field:a})=>(0,b.jsxs)(o.FormItem,{children:[(0,b.jsx)(o.FormLabel,{children:"Region"}),"__custom__"===C?(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)(o.FormControl,{children:(0,b.jsx)(p.Input,{...a,placeholder:"cn-xxx",disabled:k})}),(0,b.jsx)(n.Button,{type:"button",variant:"outline",size:"sm",onClick:()=>{D("cn-hangzhou"),a.onChange("cn-hangzhou")},disabled:k,children:"使用预设"})]}):(0,b.jsxs)(q.Select,{value:C,onValueChange:b=>{D(b),"__custom__"!==b?a.onChange(b):a.onChange("")},disabled:k,children:[(0,b.jsx)(o.FormControl,{children:(0,b.jsx)(q.SelectTrigger,{children:(0,b.jsx)(q.SelectValue,{})})}),(0,b.jsx)(q.SelectContent,{children:v.map(a=>(0,b.jsx)(q.SelectItem,{value:a.value,children:a.label},a.value))})]}),(0,b.jsx)(o.FormMessage,{})]})}),(0,b.jsx)("div",{className:"flex justify-end pt-2",children:(0,b.jsx)(n.Button,{type:"submit",disabled:k,children:k?"提交中...":w??("edit"===a?"保存":"创建项目")})})]})})}),J&&(0,b.jsx)(r.TabsContent,{value:"token",className:"mt-4",children:(0,b.jsx)(o.Form,{...G,children:(0,b.jsxs)("form",{onSubmit:G.handleSubmit(I),className:"space-y-4",children:[(0,b.jsx)(o.FormField,{control:G.control,name:"token",render:({field:a})=>(0,b.jsxs)(o.FormItem,{children:[(0,b.jsx)(o.FormLabel,{children:"项目 Token"}),(0,b.jsx)(o.FormControl,{children:(0,b.jsx)(s.Textarea,{...a,rows:5,placeholder:"粘贴从其他环境导出的项目 Token",disabled:k})}),(0,b.jsx)(o.FormDescription,{children:"Token 中已包含 AK/SK、Endpoint 等全部连接信息。"}),(0,b.jsx)(o.FormMessage,{})]})}),(0,b.jsx)("div",{className:"flex justify-end pt-2",children:(0,b.jsx)(n.Button,{type:"submit",disabled:k,children:k?"导入中...":"导入并连接"})})]})})})]})}],19446)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=dashboard_src_0y49vhd._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[19446,a=>{"use strict";var b=a.i(34020),c=a.i(71938),d=a.i(71071),e=a.i(71562),f=a.i(44401),g=a.i(80904);let h=g.z.string().trim().regex(/^[a-z0-9-]{1,32}$/,"名称需为 1-32 位小写字母、数字或连字符").refine(a=>"default"!==a,'名称 "default" 为保留字'),i=(a,b=512)=>g.z.string().trim().min(1,`请输入${a}`).max(b),j=(a=512)=>g.z.string().trim().max(a).optional().or(g.z.literal("")),k=g.z.object({name:h,accessKeyId:i("AccessKey ID",128),accessKeySecret:i("AccessKey Secret",512),otsEndpoint:i("OTS Endpoint",256),otsInstanceName:i("OTS 实例名",128),ossEndpoint:j(256),ossBucketName:j(128),region:j(64),activate:g.z.boolean().optional()});g.z.object({accessKeyId:j(128),accessKeySecret:j(512),otsEndpoint:j(256),otsInstanceName:j(128),ossEndpoint:j(256),ossBucketName:j(128),region:j(64),activate:g.z.boolean().optional()}).refine(a=>{let b=!!(a.accessKeyId&&a.accessKeyId.length>0);return!!(a.accessKeySecret&&a.accessKeySecret.length>0)===b},{message:"AccessKey ID 与 Secret 必须成对更新,要么同时填写、要么同时留空",path:["accessKeySecret"]});let l=g.z.object({name:h,accessKeyId:j(128),accessKeySecret:j(512),otsEndpoint:i("OTS Endpoint",256),otsInstanceName:i("OTS 实例名",128),ossEndpoint:j(256),ossBucketName:j(128),region:j(64),activate:g.z.boolean().optional()}).refine(a=>{let b=!!(a.accessKeyId&&a.accessKeyId.length>0);return!!(a.accessKeySecret&&a.accessKeySecret.length>0)===b},{message:"AccessKey ID 与 Secret 必须成对更新,要么同时填写、要么同时留空",path:["accessKeySecret"]}),m=g.z.object({token:g.z.string().trim().min(10,"Token 长度不足,无法解析").max(4096),name:h.optional(),activate:g.z.boolean().optional()});var n=a.i(76192),o=a.i(92942),p=a.i(72518),q=a.i(63525),r=a.i(16038),s=a.i(70535);let t=k.extend({otsEndpoint:g.z.string().trim().url("请输入合法的 OTS Endpoint URL"),ossEndpoint:g.z.string().trim().url("请输入合法的 OSS Endpoint URL").optional().or(g.z.literal(""))}),u=m.pick({token:!0}),v=[{value:"cn-beijing",label:"华北 2(北京)"},{value:"cn-hangzhou",label:"华东 1(杭州)"},{value:"cn-shanghai",label:"华东 2(上海)"},{value:"cn-shenzhen",label:"华南 1(深圳)"},{value:"__custom__",label:"其它(自定义)"}];a.s(["ConnectInstanceForm",0,function({mode:a,defaultValues:g,accessKeyIdPlaceholder:h,accessKeySecretPlaceholder:i,onSubmit:j,busy:k,lockName:m,submitLabel:w}){let[x,y]=(0,c.useState)("manual"),z="edit"===a,A=g?.region??"cn-hangzhou",B=(0,c.useMemo)(()=>v.some(a=>a.value===A),[A]),[C,D]=(0,c.useState)(B?A:"__custom__"),E=(0,c.useMemo)(()=>(0,d.zodResolver)(z?l:t),[z]),F=(0,e.useForm)({resolver:E,defaultValues:{name:g?.name??"",accessKeyId:z?"":g?.accessKeyId??"",accessKeySecret:z?"":g?.accessKeySecret??"",otsEndpoint:g?.otsEndpoint??"",otsInstanceName:g?.otsInstanceName??"",ossEndpoint:g?.ossEndpoint??"",ossBucketName:g?.ossBucketName??"",region:A}}),G=(0,e.useForm)({resolver:(0,d.zodResolver)(u),defaultValues:{token:""}});async function H(a){let b={...a,ossEndpoint:a.ossEndpoint?.trim()||void 0,ossBucketName:a.ossBucketName?.trim()||void 0};await j(b)}async function I(a){let b={token:a.token.trim()};await j(b)}let J="create"===a;return(0,b.jsxs)(r.Tabs,{value:x,onValueChange:a=>y(a),className:"w-full",children:[J&&(0,b.jsxs)(r.TabsList,{className:"grid w-full grid-cols-2",children:[(0,b.jsx)(r.TabsTrigger,{value:"manual",children:"手动填写"}),(0,b.jsx)(r.TabsTrigger,{value:"token",children:"导入 Token"})]}),(0,b.jsx)(r.TabsContent,{value:"manual",className:"mt-4",children:(0,b.jsx)(o.Form,{...F,children:(0,b.jsxs)("form",{onSubmit:F.handleSubmit(H),className:"space-y-4",children:[(0,b.jsx)(o.FormField,{control:F.control,name:"name",render:({field:a})=>(0,b.jsxs)(o.FormItem,{children:[(0,b.jsx)(o.FormLabel,{children:"项目名称"}),(0,b.jsx)(o.FormControl,{children:(0,b.jsx)(p.Input,{...a,placeholder:"prod-main",disabled:m||k,autoComplete:"off"})}),(0,b.jsx)(o.FormDescription,{children:"仅用于本地区分,不会发送到服务端。"}),(0,b.jsx)(o.FormMessage,{})]})}),(0,b.jsxs)("div",{className:"grid gap-4 sm:grid-cols-2",children:[(0,b.jsx)(o.FormField,{control:F.control,name:"accessKeyId",render:({field:a})=>(0,b.jsxs)(o.FormItem,{children:[(0,b.jsx)(o.FormLabel,{children:"AccessKey ID"}),(0,b.jsx)(o.FormControl,{children:(0,b.jsx)(p.Input,{...a,autoComplete:"off",disabled:k,placeholder:z&&h?`${h} \xb7 留空表示保留`:void 0})}),z&&(0,b.jsx)(o.FormDescription,{children:"AK 与 SK 必须成对更新,留空则保留现有凭证。"}),(0,b.jsx)(o.FormMessage,{})]})}),(0,b.jsx)(o.FormField,{control:F.control,name:"accessKeySecret",render:({field:a})=>(0,b.jsxs)(o.FormItem,{children:[(0,b.jsx)(o.FormLabel,{children:"AccessKey Secret"}),(0,b.jsx)(o.FormControl,{children:(0,b.jsx)(p.Input,{...a,type:"password",autoComplete:"new-password",disabled:k})}),(0,b.jsx)(o.FormMessage,{})]})})]}),(0,b.jsxs)("div",{className:"grid gap-4 sm:grid-cols-2",children:[(0,b.jsx)(o.FormField,{control:F.control,name:"otsEndpoint",render:({field:a})=>(0,b.jsxs)(o.FormItem,{children:[(0,b.jsx)(o.FormLabel,{children:"OTS Endpoint"}),(0,b.jsx)(o.FormControl,{children:(0,b.jsx)(p.Input,{...a,placeholder:"https://xxx.cn-hangzhou.ots.aliyuncs.com",disabled:k})}),(0,b.jsx)(o.FormMessage,{})]})}),(0,b.jsx)(o.FormField,{control:F.control,name:"otsInstanceName",render:({field:a})=>(0,b.jsxs)(o.FormItem,{children:[(0,b.jsx)(o.FormLabel,{children:"OTS 实例名"}),(0,b.jsx)(o.FormControl,{children:(0,b.jsx)(p.Input,{...a,disabled:k})}),(0,b.jsx)(o.FormMessage,{})]})})]}),(0,b.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,b.jsx)(f.Info,{className:"mt-0.5 h-3.5 w-3.5 shrink-0 text-[hsl(var(--primary))]"}),(0,b.jsx)("span",{children:"OSS 信息为可选项。若需上传文档到知识库,OSS Endpoint 与 Bucket 必填; 留空则项目只能用于查询与检索,文件上传功能将不可用。"})]}),(0,b.jsxs)("div",{className:"grid gap-4 sm:grid-cols-2",children:[(0,b.jsx)(o.FormField,{control:F.control,name:"ossEndpoint",render:({field:a})=>(0,b.jsxs)(o.FormItem,{children:[(0,b.jsx)(o.FormLabel,{children:"OSS Endpoint(可选)"}),(0,b.jsx)(o.FormControl,{children:(0,b.jsx)(p.Input,{...a,placeholder:"https://oss-cn-hangzhou.aliyuncs.com",disabled:k})}),(0,b.jsx)(o.FormMessage,{})]})}),(0,b.jsx)(o.FormField,{control:F.control,name:"ossBucketName",render:({field:a})=>(0,b.jsxs)(o.FormItem,{children:[(0,b.jsx)(o.FormLabel,{children:"OSS Bucket(可选)"}),(0,b.jsx)(o.FormControl,{children:(0,b.jsx)(p.Input,{...a,disabled:k})}),(0,b.jsx)(o.FormMessage,{})]})})]}),(0,b.jsx)(o.FormField,{control:F.control,name:"region",render:({field:a})=>(0,b.jsxs)(o.FormItem,{children:[(0,b.jsx)(o.FormLabel,{children:"Region"}),"__custom__"===C?(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)(o.FormControl,{children:(0,b.jsx)(p.Input,{...a,placeholder:"cn-xxx",disabled:k})}),(0,b.jsx)(n.Button,{type:"button",variant:"outline",size:"sm",onClick:()=>{D("cn-hangzhou"),a.onChange("cn-hangzhou")},disabled:k,children:"使用预设"})]}):(0,b.jsxs)(q.Select,{value:C,onValueChange:b=>{D(b),"__custom__"!==b?a.onChange(b):a.onChange("")},disabled:k,children:[(0,b.jsx)(o.FormControl,{children:(0,b.jsx)(q.SelectTrigger,{children:(0,b.jsx)(q.SelectValue,{})})}),(0,b.jsx)(q.SelectContent,{children:v.map(a=>(0,b.jsx)(q.SelectItem,{value:a.value,children:a.label},a.value))})]}),(0,b.jsx)(o.FormMessage,{})]})}),(0,b.jsx)("div",{className:"flex justify-end pt-2",children:(0,b.jsx)(n.Button,{type:"submit",disabled:k,children:k?"提交中...":w??("edit"===a?"保存":"创建项目")})})]})})}),J&&(0,b.jsx)(r.TabsContent,{value:"token",className:"mt-4",children:(0,b.jsx)(o.Form,{...G,children:(0,b.jsxs)("form",{onSubmit:G.handleSubmit(I),className:"space-y-4",children:[(0,b.jsx)(o.FormField,{control:G.control,name:"token",render:({field:a})=>(0,b.jsxs)(o.FormItem,{children:[(0,b.jsx)(o.FormLabel,{children:"项目 Token"}),(0,b.jsx)(o.FormControl,{children:(0,b.jsx)(s.Textarea,{...a,rows:5,placeholder:"粘贴从其他环境导出的项目 Token",disabled:k})}),(0,b.jsx)(o.FormDescription,{children:"Token 中已包含 AK/SK、Endpoint 等全部连接信息。"}),(0,b.jsx)(o.FormMessage,{})]})}),(0,b.jsx)("div",{className:"flex justify-end pt-2",children:(0,b.jsx)(n.Button,{type:"submit",disabled:k,children:k?"导入中...":"导入并连接"})})]})})})]})}],19446)},47161,28974,a=>{"use strict";var b=a.i(33596),c=a.i(83366),d=a.i(77072),e=a.i(63265),f=a.i(53141);async function g(){return(0,f.apiGet)("/api/v1/instances")}async function h(a){return(0,f.apiGet)(`/api/v1/instances/${encodeURIComponent(a)}`)}async function i(a){return(0,f.apiPost)("/api/v1/instances",a)}async function j(a){return(0,f.apiPost)("/api/v1/instances",a)}async function k(a,b){return(0,f.apiPut)(`/api/v1/instances/${encodeURIComponent(a)}`,b)}async function l(a){return(0,f.apiDelete)(`/api/v1/instances/${encodeURIComponent(a)}`)}async function m(a){return(0,f.apiPost)(`/api/v1/instances/${encodeURIComponent(a)}/use`)}async function n(a){return(0,f.apiGet)(`/api/v1/instances/${encodeURIComponent(a)}/token`)}let o=["instances"];function p(a){a.invalidateQueries({queryKey:o}),a.invalidateQueries({queryKey:["knowledge-bases"]}),a.invalidateQueries({queryKey:["memory-stores"]}),a.invalidateQueries({queryKey:["llm-providers"]}),a.invalidateQueries({queryKey:["auth-status"]})}a.s(["useConnectInstance",0,function(){let a=(0,d.useQueryClient)();return(0,b.useMutation)({mutationFn:a=>i(a),onSuccess:()=>{p(a),e.toast.success("项目已创建")},onError:a=>{e.toast.error(a instanceof Error?a.message:"创建项目失败")}})},"useDeleteInstance",0,function(){let a=(0,d.useQueryClient)();return(0,b.useMutation)({mutationFn:a=>l(a),onSuccess:()=>{p(a),e.toast.success("项目已删除")},onError:a=>{e.toast.error(a instanceof Error?a.message:"删除项目失败")}})},"useExportInstanceToken",0,function(){return(0,b.useMutation)({mutationFn:a=>n(a),onError:a=>{e.toast.error(a instanceof Error?a.message:"导出 Token 失败")}})},"useImportInstance",0,function(){let a=(0,d.useQueryClient)();return(0,b.useMutation)({mutationFn:a=>j(a),onSuccess:()=>{p(a),e.toast.success("Token 已导入")},onError:a=>{e.toast.error(a instanceof Error?a.message:"导入 Token 失败")}})},"useInstance",0,function(a){return(0,c.useQuery)({queryKey:["instance",a],queryFn:()=>h(a),enabled:!!a,staleTime:3e4})},"useInstances",0,function(){return(0,c.useQuery)({queryKey:o,queryFn:g,staleTime:3e4})},"useSwitchInstance",0,function(){let a=(0,d.useQueryClient)();return(0,b.useMutation)({mutationFn:a=>m(a),onSuccess:()=>{a.removeQueries({queryKey:["knowledge-bases"]}),a.removeQueries({queryKey:["memory-stores"]}),a.removeQueries({queryKey:["llm-providers"]}),a.removeQueries({queryKey:["documents"]}),a.removeQueries({queryKey:["instance"]}),a.invalidateQueries({queryKey:o}),a.invalidateQueries({queryKey:["auth-status"]}),e.toast.success("已切换当前项目")},onError:a=>{e.toast.error(a instanceof Error?a.message:"切换项目失败")}})},"useUpdateInstance",0,function(a){let c=(0,d.useQueryClient)();return(0,b.useMutation)({mutationFn:b=>k(a,b),onSuccess:()=>{p(c),c.invalidateQueries({queryKey:["instance",a]}),e.toast.success("项目已更新")},onError:a=>{e.toast.error(a instanceof Error?a.message:"更新项目失败")}})}],47161),a.s(["isImportPayload",0,function(a){return"string"==typeof a.token}],28974)}];
|
|
1
|
+
module.exports=[19446,a=>{"use strict";var b=a.i(34020),c=a.i(71938),d=a.i(71071),e=a.i(71562),f=a.i(44401),g=a.i(80904);let h=g.z.string().trim().regex(/^[a-z0-9-]{1,32}$/,"名称需为 1-32 位小写字母、数字或连字符").refine(a=>"default"!==a,'名称 "default" 为保留字'),i=(a,b=512)=>g.z.string().trim().min(1,`请输入${a}`).max(b),j=(a=512)=>g.z.string().trim().max(a).optional().or(g.z.literal("")),k=g.z.object({name:h,accessKeyId:i("AccessKey ID",128),accessKeySecret:i("AccessKey Secret",512),otsEndpoint:i("OTS Endpoint",256),otsInstanceName:i("OTS 实例名",128),ossEndpoint:j(256),ossBucketName:j(128),region:j(64),activate:g.z.boolean().optional()});g.z.object({accessKeyId:j(128),accessKeySecret:j(512),otsEndpoint:j(256),otsInstanceName:j(128),ossEndpoint:j(256),ossBucketName:j(128),region:j(64),activate:g.z.boolean().optional()}).refine(a=>{let b=!!(a.accessKeyId&&a.accessKeyId.length>0);return!!(a.accessKeySecret&&a.accessKeySecret.length>0)===b},{message:"AccessKey ID 与 Secret 必须成对更新,要么同时填写、要么同时留空",path:["accessKeySecret"]});let l=g.z.object({name:h,accessKeyId:j(128),accessKeySecret:j(512),otsEndpoint:i("OTS Endpoint",256),otsInstanceName:i("OTS 实例名",128),ossEndpoint:j(256),ossBucketName:j(128),region:j(64),activate:g.z.boolean().optional()}).refine(a=>{let b=!!(a.accessKeyId&&a.accessKeyId.length>0);return!!(a.accessKeySecret&&a.accessKeySecret.length>0)===b},{message:"AccessKey ID 与 Secret 必须成对更新,要么同时填写、要么同时留空",path:["accessKeySecret"]}),m=g.z.object({token:g.z.string().trim().min(10,"Token 长度不足,无法解析").max(4096),name:h.optional(),activate:g.z.boolean().optional()});var n=a.i(76192),o=a.i(92942),p=a.i(72518),q=a.i(63525),r=a.i(16038),s=a.i(70535);let t=k.extend({otsEndpoint:g.z.string().trim().url("请输入合法的 OTS Endpoint URL"),ossEndpoint:g.z.string().trim().url("请输入合法的 OSS Endpoint URL").optional().or(g.z.literal(""))}),u=m.pick({token:!0}),v=[{value:"cn-beijing",label:"华北 2(北京)"},{value:"cn-hangzhou",label:"华东 1(杭州)"},{value:"cn-shanghai",label:"华东 2(上海)"},{value:"cn-shenzhen",label:"华南 1(深圳)"},{value:"__custom__",label:"其它(自定义)"}];a.s(["ConnectInstanceForm",0,function({mode:a,defaultValues:g,accessKeyIdPlaceholder:h,accessKeySecretPlaceholder:i,onSubmit:j,busy:k,lockName:m,submitLabel:w}){let[x,y]=(0,c.useState)("manual"),z="edit"===a,A=g?.region??"cn-hangzhou",B=(0,c.useMemo)(()=>v.some(a=>a.value===A),[A]),[C,D]=(0,c.useState)(B?A:"__custom__"),E=(0,c.useMemo)(()=>(0,d.zodResolver)(z?l:t),[z]),F=(0,e.useForm)({resolver:E,defaultValues:{name:g?.name??"",accessKeyId:z?"":g?.accessKeyId??"",accessKeySecret:z?"":g?.accessKeySecret??"",otsEndpoint:g?.otsEndpoint??"",otsInstanceName:g?.otsInstanceName??"",ossEndpoint:g?.ossEndpoint??"",ossBucketName:g?.ossBucketName??"",region:A}}),G=(0,e.useForm)({resolver:(0,d.zodResolver)(u),defaultValues:{token:""}});async function H(a){let b=a.ossEndpoint?.trim()||void 0,c=a.ossBucketName?.trim()||void 0;b&&c&&(b=function(a,b){try{let c=new URL(a);if(c.hostname.startsWith(`${b}.`))return c.hostname=c.hostname.slice(b.length+1),c.toString().replace(/\/$/,"")}catch{}return a}(b,c));let d={...a,ossEndpoint:b,ossBucketName:c};await j(d)}async function I(a){let b={token:a.token.trim()};await j(b)}let J="create"===a;return(0,b.jsxs)(r.Tabs,{value:x,onValueChange:a=>y(a),className:"w-full",children:[J&&(0,b.jsxs)(r.TabsList,{className:"grid w-full grid-cols-2",children:[(0,b.jsx)(r.TabsTrigger,{value:"manual",children:"手动填写"}),(0,b.jsx)(r.TabsTrigger,{value:"token",children:"导入 Token"})]}),(0,b.jsx)(r.TabsContent,{value:"manual",className:"mt-4",children:(0,b.jsx)(o.Form,{...F,children:(0,b.jsxs)("form",{onSubmit:F.handleSubmit(H),className:"space-y-4",children:[(0,b.jsx)(o.FormField,{control:F.control,name:"name",render:({field:a})=>(0,b.jsxs)(o.FormItem,{children:[(0,b.jsx)(o.FormLabel,{children:"项目名称"}),(0,b.jsx)(o.FormControl,{children:(0,b.jsx)(p.Input,{...a,placeholder:"prod-main",disabled:m||k,autoComplete:"off"})}),(0,b.jsx)(o.FormDescription,{children:"仅用于本地区分,不会发送到服务端。"}),(0,b.jsx)(o.FormMessage,{})]})}),(0,b.jsxs)("div",{className:"grid gap-4 sm:grid-cols-2",children:[(0,b.jsx)(o.FormField,{control:F.control,name:"accessKeyId",render:({field:a})=>(0,b.jsxs)(o.FormItem,{children:[(0,b.jsx)(o.FormLabel,{children:"AccessKey ID"}),(0,b.jsx)(o.FormControl,{children:(0,b.jsx)(p.Input,{...a,autoComplete:"off",disabled:k,placeholder:z&&h?`${h} \xb7 留空表示保留`:void 0})}),z&&(0,b.jsx)(o.FormDescription,{children:"AK 与 SK 必须成对更新,留空则保留现有凭证。"}),(0,b.jsx)(o.FormMessage,{})]})}),(0,b.jsx)(o.FormField,{control:F.control,name:"accessKeySecret",render:({field:a})=>(0,b.jsxs)(o.FormItem,{children:[(0,b.jsx)(o.FormLabel,{children:"AccessKey Secret"}),(0,b.jsx)(o.FormControl,{children:(0,b.jsx)(p.Input,{...a,type:"password",autoComplete:"new-password",disabled:k})}),(0,b.jsx)(o.FormMessage,{})]})})]}),(0,b.jsxs)("div",{className:"grid gap-4 sm:grid-cols-2",children:[(0,b.jsx)(o.FormField,{control:F.control,name:"otsEndpoint",render:({field:a})=>(0,b.jsxs)(o.FormItem,{children:[(0,b.jsx)(o.FormLabel,{children:"OTS Endpoint"}),(0,b.jsx)(o.FormControl,{children:(0,b.jsx)(p.Input,{...a,placeholder:"https://xxx.cn-hangzhou.ots.aliyuncs.com",disabled:k})}),(0,b.jsx)(o.FormMessage,{})]})}),(0,b.jsx)(o.FormField,{control:F.control,name:"otsInstanceName",render:({field:a})=>(0,b.jsxs)(o.FormItem,{children:[(0,b.jsx)(o.FormLabel,{children:"OTS 实例名"}),(0,b.jsx)(o.FormControl,{children:(0,b.jsx)(p.Input,{...a,disabled:k})}),(0,b.jsx)(o.FormMessage,{})]})})]}),(0,b.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,b.jsx)(f.Info,{className:"mt-0.5 h-3.5 w-3.5 shrink-0 text-[hsl(var(--primary))]"}),(0,b.jsx)("span",{children:"OSS 信息为可选项。若需上传文档到知识库,OSS Endpoint 与 Bucket 必填; 留空则项目只能用于查询与检索,文件上传功能将不可用。"})]}),(0,b.jsxs)("div",{className:"grid gap-4 sm:grid-cols-2",children:[(0,b.jsx)(o.FormField,{control:F.control,name:"ossEndpoint",render:({field:a})=>(0,b.jsxs)(o.FormItem,{children:[(0,b.jsx)(o.FormLabel,{children:"OSS Endpoint(可选)"}),(0,b.jsx)(o.FormControl,{children:(0,b.jsx)(p.Input,{...a,placeholder:"https://oss-cn-hangzhou.aliyuncs.com",disabled:k})}),(0,b.jsx)(o.FormMessage,{})]})}),(0,b.jsx)(o.FormField,{control:F.control,name:"ossBucketName",render:({field:a})=>(0,b.jsxs)(o.FormItem,{children:[(0,b.jsx)(o.FormLabel,{children:"OSS Bucket(可选)"}),(0,b.jsx)(o.FormControl,{children:(0,b.jsx)(p.Input,{...a,disabled:k})}),(0,b.jsx)(o.FormMessage,{})]})})]}),(0,b.jsx)(o.FormField,{control:F.control,name:"region",render:({field:a})=>(0,b.jsxs)(o.FormItem,{children:[(0,b.jsx)(o.FormLabel,{children:"Region"}),"__custom__"===C?(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)(o.FormControl,{children:(0,b.jsx)(p.Input,{...a,placeholder:"cn-xxx",disabled:k})}),(0,b.jsx)(n.Button,{type:"button",variant:"outline",size:"sm",onClick:()=>{D("cn-hangzhou"),a.onChange("cn-hangzhou")},disabled:k,children:"使用预设"})]}):(0,b.jsxs)(q.Select,{value:C,onValueChange:b=>{D(b),"__custom__"!==b?a.onChange(b):a.onChange("")},disabled:k,children:[(0,b.jsx)(o.FormControl,{children:(0,b.jsx)(q.SelectTrigger,{children:(0,b.jsx)(q.SelectValue,{})})}),(0,b.jsx)(q.SelectContent,{children:v.map(a=>(0,b.jsx)(q.SelectItem,{value:a.value,children:a.label},a.value))})]}),(0,b.jsx)(o.FormMessage,{})]})}),(0,b.jsx)("div",{className:"flex justify-end pt-2",children:(0,b.jsx)(n.Button,{type:"submit",disabled:k,children:k?"提交中...":w??("edit"===a?"保存":"创建项目")})})]})})}),J&&(0,b.jsx)(r.TabsContent,{value:"token",className:"mt-4",children:(0,b.jsx)(o.Form,{...G,children:(0,b.jsxs)("form",{onSubmit:G.handleSubmit(I),className:"space-y-4",children:[(0,b.jsx)(o.FormField,{control:G.control,name:"token",render:({field:a})=>(0,b.jsxs)(o.FormItem,{children:[(0,b.jsx)(o.FormLabel,{children:"项目 Token"}),(0,b.jsx)(o.FormControl,{children:(0,b.jsx)(s.Textarea,{...a,rows:5,placeholder:"粘贴从其他环境导出的项目 Token",disabled:k})}),(0,b.jsx)(o.FormDescription,{children:"Token 中已包含 AK/SK、Endpoint 等全部连接信息。"}),(0,b.jsx)(o.FormMessage,{})]})}),(0,b.jsx)("div",{className:"flex justify-end pt-2",children:(0,b.jsx)(n.Button,{type:"submit",disabled:k,children:k?"导入中...":"导入并连接"})})]})})})]})}],19446)},47161,28974,a=>{"use strict";var b=a.i(33596),c=a.i(83366),d=a.i(77072),e=a.i(63265),f=a.i(53141);async function g(){return(0,f.apiGet)("/api/v1/instances")}async function h(a){return(0,f.apiGet)(`/api/v1/instances/${encodeURIComponent(a)}`)}async function i(a){return(0,f.apiPost)("/api/v1/instances",a)}async function j(a){return(0,f.apiPost)("/api/v1/instances",a)}async function k(a,b){return(0,f.apiPut)(`/api/v1/instances/${encodeURIComponent(a)}`,b)}async function l(a){return(0,f.apiDelete)(`/api/v1/instances/${encodeURIComponent(a)}`)}async function m(a){return(0,f.apiPost)(`/api/v1/instances/${encodeURIComponent(a)}/use`)}async function n(a){return(0,f.apiGet)(`/api/v1/instances/${encodeURIComponent(a)}/token`)}var o=a.i(25377),p=a.i(39096);function q(a){(0,o.invalidateInstanceScopedQueries)(a)}function r(a){(0,o.resetInstanceScopedQueries)(a)}function s(a){a.invalidateQueries({queryKey:o.RUNTIME_CONTEXT_QUERY_KEY})}a.s(["useConnectInstance",0,function(){let a=(0,d.useQueryClient)();return(0,b.useMutation)({mutationFn:a=>i(a),onSuccess:()=>{r(a),s(a),e.toast.success("项目已创建")},onError:a=>{e.toast.error(a instanceof Error?a.message:"创建项目失败")}})},"useDeleteInstance",0,function(){let a=(0,d.useQueryClient)();return(0,b.useMutation)({mutationFn:a=>l(a),onSuccess:()=>{q(a),s(a),e.toast.success("项目已删除")},onError:a=>{e.toast.error(a instanceof Error?a.message:"删除项目失败")}})},"useExportInstanceToken",0,function(){return(0,b.useMutation)({mutationFn:a=>n(a),onError:a=>{e.toast.error(a instanceof Error?a.message:"导出 Token 失败")}})},"useImportInstance",0,function(){let a=(0,d.useQueryClient)();return(0,b.useMutation)({mutationFn:a=>j(a),onSuccess:()=>{r(a),s(a),e.toast.success("Token 已导入")},onError:a=>{e.toast.error(a instanceof Error?a.message:"导入 Token 失败")}})},"useInstance",0,function(a){let{context:b,ready:d}=(0,p.useRuntimeContext)();return(0,c.useQuery)({queryKey:o.queryKeys.instance(b.dataScopeKey,a),queryFn:()=>h(a),enabled:d&&!!a,staleTime:3e4})},"useInstances",0,function(){let{context:a,ready:b}=(0,p.useRuntimeContext)();return(0,c.useQuery)({queryKey:o.queryKeys.instances(a.dataScopeKey),queryFn:g,enabled:b,staleTime:3e4})},"useSwitchInstance",0,function(){let a=(0,d.useQueryClient)(),{context:c}=(0,p.useRuntimeContext)();return(0,b.useMutation)({mutationFn:a=>m(a),onSuccess:({activeInstance:b})=>{r(a),s(a),e.toast.success("已切换当前项目")},onError:a=>{e.toast.error(a instanceof Error?a.message:"切换项目失败")}})},"useUpdateInstance",0,function(a){let c=(0,d.useQueryClient)();return(0,b.useMutation)({mutationFn:b=>k(a,b),onSuccess:()=>{q(c),c.invalidateQueries({queryKey:["instance"]}),s(c),e.toast.success("项目已更新")},onError:a=>{e.toast.error(a instanceof Error?a.message:"更新项目失败")}})}],47161),a.s(["isImportPayload",0,function(a){return"string"==typeof a.token}],28974)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=dashboard_src_10dsqx~._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[25538,a=>{"use strict";var b=a.i(34020),c=a.i(12583),d=a.i(623),e=a.i(2482),f=a.i(80470),g=a.i(71562),h=a.i(71071),i=a.i(63265),j=a.i(1927),k=a.i(53520),l=a.i(49707),m=a.i(76192),n=a.i(72518),o=a.i(70535),p=a.i(71938),q=a.i(64565);let r=p.forwardRef(({className:a,checked:c=!1,onCheckedChange:d,disabled:e,...f},g)=>(0,b.jsx)("button",{ref:g,type:"button",role:"switch","aria-checked":c,"data-state":c?"checked":"unchecked",disabled:e,onClick:()=>d?.(!c),className:(0,q.cn)("peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full transition-colors duration-200","shadow-[inset_0_0_0_1px_rgba(0,0,0,0.04),inset_0_1px_2px_rgba(0,0,0,0.06)]","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background","disabled:cursor-not-allowed disabled:opacity-50",c?"bg-[hsl(var(--primary-600))]":"bg-[hsl(var(--muted))] hover:bg-[hsl(var(--muted)/0.8)]",a),...f,children:(0,b.jsx)("span",{"aria-hidden":!0,className:(0,q.cn)("pointer-events-none block h-5 w-5 rounded-full bg-white transition-transform duration-200","shadow-[0_1px_2px_rgba(0,0,0,0.1),0_2px_6px_rgba(0,0,0,0.15)] ring-1 ring-black/4","ease-[cubic-bezier(0.34,1.56,0.64,1)]",c?"translate-x-5":"translate-x-0.5")})}));r.displayName="Switch";var s=a.i(92942),t=a.i(27692),u=a.i(63525),v=a.i(36965),w=a.i(23331),x=a.i(25825),y=a.i(55295);let z=[{value:"string",label:"String"},{value:"long",label:"Long"},{value:"double",label:"Double"},{value:"boolean",label:"Boolean"},{value:"date",label:"Date"},{value:"string_list",label:"String List"},{value:"long_list",label:"Long List"},{value:"double_list",label:"Double List"},{value:"boolean_list",label:"Boolean List"},{value:"date_list",label:"Date List"}];function A({value:a,onChange:c}){let d=(0,p.useCallback)(()=>{c([...a,{name:"",type:"string"}])},[a,c]),e=(0,p.useCallback)(b=>{c(a.filter((a,c)=>c!==b))},[a,c]),f=(0,p.useCallback)((b,d)=>{c(a.map((a,c)=>c===b?{...a,...d}:a))},[a,c]);return(0,b.jsxs)("div",{className:"space-y-2",children:[a.map((a,c)=>(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(n.Input,{value:a.name,onChange:a=>f(c,{name:a.target.value}),placeholder:"字段名",className:"h-9 flex-1"}),(0,b.jsxs)(u.Select,{value:a.type,onValueChange:a=>f(c,{type:a}),children:[(0,b.jsx)(u.SelectTrigger,{className:"h-9 w-[140px]",children:(0,b.jsx)(u.SelectValue,{})}),(0,b.jsx)(u.SelectContent,{children:z.map(a=>(0,b.jsx)(u.SelectItem,{value:a.value,children:a.label},a.value))})]}),(0,b.jsx)(m.Button,{type:"button",variant:"ghost",size:"icon",onClick:()=>e(c),className:"h-9 w-9 text-muted-foreground hover:text-destructive hover:bg-destructive/10","aria-label":`删除字段 ${a.name||c+1}`,children:(0,b.jsx)(y.Trash2,{size:16})})]},c)),(0,b.jsxs)(m.Button,{type:"button",variant:"ghost",onClick:d,className:"gap-1.5 text-primary hover:bg-primary/10",children:[(0,b.jsx)(x.Plus,{size:16}),"添加字段"]})]})}let B=[1024,768,512,256,128,64],C=[2048,1536,1024,768,512,256,128,64];function D({form:a}){let c=(0,g.useWatch)({control:a.control,name:"embeddingConfiguration.provider"}),d="text-embedding-v3"===(0,g.useWatch)({control:a.control,name:"embeddingConfiguration.model"})?B:C,e=b=>{a.setValue("embeddingConfiguration.model",b),a.setValue("embeddingConfiguration.dimension",1024)};return(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsx)(s.FormField,{control:a.control,name:"embeddingConfiguration.provider",render:({field:c})=>(0,b.jsxs)(s.FormItem,{children:[(0,b.jsx)(s.FormLabel,{children:"提供方"}),(0,b.jsxs)(u.Select,{onValueChange:b=>{c.onChange(b),"bailian"===b?(a.setValue("embeddingConfiguration.model","text-embedding-v4"),a.setValue("embeddingConfiguration.dimension",1024)):a.setValue("embeddingConfiguration.model","")},defaultValue:c.value,children:[(0,b.jsx)(s.FormControl,{children:(0,b.jsx)(u.SelectTrigger,{children:(0,b.jsx)(u.SelectValue,{placeholder:"选择 Embedding 提供方"})})}),(0,b.jsxs)(u.SelectContent,{children:[(0,b.jsx)(u.SelectItem,{value:"bailian",children:"百炼 (Bailian)"}),(0,b.jsx)(u.SelectItem,{value:"custom",children:"自定义 (Custom)"})]})]}),(0,b.jsx)(s.FormMessage,{})]})}),(0,b.jsx)(s.FormField,{control:a.control,name:"embeddingConfiguration.model",render:({field:a})=>(0,b.jsxs)(s.FormItem,{children:[(0,b.jsx)(s.FormLabel,{children:"模型名称"}),(0,b.jsx)(s.FormControl,{children:"bailian"===c?(0,b.jsxs)(u.Select,{onValueChange:e,value:a.value,children:[(0,b.jsx)(u.SelectTrigger,{children:(0,b.jsx)(u.SelectValue,{placeholder:"选择模型"})}),(0,b.jsxs)(u.SelectContent,{children:[(0,b.jsx)(u.SelectItem,{value:"text-embedding-v3",children:"text-embedding-v3"}),(0,b.jsx)(u.SelectItem,{value:"text-embedding-v4",children:"text-embedding-v4"})]})]}):(0,b.jsx)(n.Input,{placeholder:"输入模型名称",...a})}),(0,b.jsx)(s.FormMessage,{})]})}),(0,b.jsx)(s.FormField,{control:a.control,name:"embeddingConfiguration.dimension",render:({field:a})=>(0,b.jsxs)(s.FormItem,{children:[(0,b.jsx)(s.FormLabel,{children:"向量维度"}),(0,b.jsx)(s.FormControl,{children:"bailian"===c?(0,b.jsxs)(u.Select,{onValueChange:b=>a.onChange(Number(b)),value:String(a.value),children:[(0,b.jsx)(u.SelectTrigger,{children:(0,b.jsx)(u.SelectValue,{placeholder:"选择维度"})}),(0,b.jsx)(u.SelectContent,{children:d.map(a=>(0,b.jsx)(u.SelectItem,{value:String(a),children:a.toLocaleString()},a))})]}):(0,b.jsx)(n.Input,{type:"number",placeholder:"例如: 1024",...a,onChange:b=>a.onChange(Number(b.target.value))})}),(0,b.jsx)(s.FormMessage,{})]})}),"custom"===c&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(s.FormField,{control:a.control,name:"embeddingConfiguration.apiKey",render:({field:a})=>(0,b.jsxs)(s.FormItem,{children:[(0,b.jsx)(s.FormLabel,{children:"API Key"}),(0,b.jsx)(s.FormControl,{children:(0,b.jsx)(n.Input,{type:"password",placeholder:"输入 API Key",...a,value:a.value??""})}),(0,b.jsx)(s.FormMessage,{})]})}),(0,b.jsx)(s.FormField,{control:a.control,name:"embeddingConfiguration.url",render:({field:a})=>(0,b.jsxs)(s.FormItem,{children:[(0,b.jsx)(s.FormLabel,{children:"API URL"}),(0,b.jsx)(s.FormControl,{children:(0,b.jsx)(n.Input,{placeholder:"https://your-embedding-service.com/v1/embeddings",...a,value:a.value??""})}),(0,b.jsx)(s.FormMessage,{})]})})]})]})}var E=a.i(33596),F=a.i(77072),G=a.i(69024),H=a.i(17566);function I(){let a,c=(0,f.useRouter)(),d=(a=(0,F.useQueryClient)(),(0,E.useMutation)({mutationFn:a=>(0,G.createKnowledgeBase)(a),onSuccess:()=>{a.invalidateQueries({queryKey:["knowledge-bases"]})}})),e=(0,g.useForm)({resolver:(0,h.zodResolver)(H.createKBSchema),defaultValues:{knowledgeBaseName:"",description:"",subspace:!1,tags:[],metadata:[],embeddingConfiguration:{provider:"bailian",model:"text-embedding-v4",dimension:1024},retrievalConfiguration:{searchType:["DENSE_VECTOR","FULL_TEXT"],rerankingConfiguration:{type:"WEIGHT",numberOfResults:20,rrfConfiguration:{denseVectorSearchWeight:.5,fullTextSearchWeight:.5,k:60},weightConfiguration:{denseVectorSearchWeight:.7,fullTextSearchWeight:.3},modelConfiguration:{provider:"bailian",model:"gte-rerank-v2"}}}}}),p=e.watch("retrievalConfiguration.rerankingConfiguration.type"),q=a=>"space-y-4 rounded-md border p-4 transition-colors "+(a?"border-[hsl(var(--primary)/0.4)] bg-[hsl(var(--primary)/0.04)]":"border-border bg-transparent");async function x(a){try{let b={...a,retrievalConfiguration:a.retrievalConfiguration?{...a.retrievalConfiguration,rerankingConfiguration:a.retrievalConfiguration.rerankingConfiguration?{...a.retrievalConfiguration.rerankingConfiguration,numberOfResults:a.retrievalConfiguration.rerankingConfiguration.numberOfResults??20}:void 0}:void 0};await d.mutateAsync(b),i.toast.success("知识库创建成功"),c.push("/knowledge-base")}catch(b){let a=b instanceof Error?b.message:"创建知识库失败";i.toast.error(a)}}return(0,b.jsx)(s.Form,{...e,children:(0,b.jsxs)("form",{onSubmit:e.handleSubmit(x),className:"space-y-8",children:[(0,b.jsxs)("section",{className:"space-y-4",children:[(0,b.jsx)("h3",{className:"text-lg font-semibold",children:"基本信息"}),(0,b.jsx)(s.FormField,{control:e.control,name:"knowledgeBaseName",render:({field:a})=>(0,b.jsxs)(s.FormItem,{children:[(0,b.jsxs)(s.FormLabel,{children:["名称 ",(0,b.jsx)("span",{className:"text-[hsl(var(--destructive))]",children:"*"})]}),(0,b.jsx)(s.FormControl,{children:(0,b.jsx)(n.Input,{placeholder:"my_knowledge_base",...a})}),(0,b.jsx)(s.FormDescription,{children:"以字母开头,仅包含字母、数字和下划线,最长 64 字符"}),(0,b.jsx)(s.FormMessage,{})]})}),(0,b.jsx)(s.FormField,{control:e.control,name:"description",render:({field:a})=>(0,b.jsxs)(s.FormItem,{children:[(0,b.jsx)(s.FormLabel,{children:"描述"}),(0,b.jsx)(s.FormControl,{children:(0,b.jsx)(o.Textarea,{placeholder:"描述这个知识库的用途...",className:"resize-none",rows:3,...a})}),(0,b.jsx)(s.FormMessage,{})]})}),(0,b.jsx)(s.FormField,{control:e.control,name:"tags",render:({field:a})=>(0,b.jsxs)(s.FormItem,{children:[(0,b.jsx)(s.FormLabel,{children:"标签"}),(0,b.jsx)(s.FormControl,{children:(0,b.jsx)(w.TagInput,{value:a.value??[],onChange:a.onChange,placeholder:"输入标签后按回车"})}),(0,b.jsx)(s.FormMessage,{})]})}),(0,b.jsx)(s.FormField,{control:e.control,name:"subspace",render:({field:a})=>(0,b.jsxs)(s.FormItem,{className:"flex flex-row items-center justify-between gap-4 space-y-0 rounded-md border border-border p-3",children:[(0,b.jsxs)("div",{className:"space-y-0.5",children:[(0,b.jsx)(s.FormLabel,{className:"text-sm",children:"启用 Subspace"}),(0,b.jsx)(s.FormDescription,{className:"text-xs",children:"为该知识库开启子空间隔离,不同业务线的数据互不干扰"})]}),(0,b.jsx)(s.FormControl,{children:(0,b.jsx)(r,{checked:a.value??!1,onCheckedChange:a.onChange})})]})})]}),(0,b.jsxs)("section",{className:"space-y-4",children:[(0,b.jsx)("h3",{className:"text-lg font-semibold",children:"Metadata Schema"}),(0,b.jsx)(s.FormField,{control:e.control,name:"metadata",render:({field:a})=>(0,b.jsxs)(s.FormItem,{children:[(0,b.jsx)(s.FormControl,{children:(0,b.jsx)(A,{value:a.value??[],onChange:a.onChange})}),(0,b.jsx)(s.FormMessage,{})]})})]}),(0,b.jsxs)(t.Collapsible,{children:[(0,b.jsx)(t.CollapsibleTrigger,{asChild:!0,children:(0,b.jsxs)(m.Button,{type:"button",variant:"ghost",className:"flex w-full items-center justify-between p-0 text-lg font-semibold hover:bg-transparent",children:["高级配置",(0,b.jsx)(j.ChevronDown,{className:"h-4 w-4 transition-transform duration-200 [[data-state=open]>&]:rotate-180"})]})}),(0,b.jsxs)(t.CollapsibleContent,{className:"mt-4 space-y-6",children:[(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsx)("h4",{className:"text-base font-medium text-foreground",children:"Embedding 配置"}),(0,b.jsx)(D,{form:e})]}),(0,b.jsx)("hr",{className:"border-border"}),(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsx)("h4",{className:"text-base font-medium text-foreground",children:"检索配置"}),(0,b.jsx)(s.FormField,{control:e.control,name:"retrievalConfiguration.searchType",render:({field:a})=>(0,b.jsxs)(s.FormItem,{children:[(0,b.jsx)(s.FormLabel,{children:"搜索类型"}),(0,b.jsx)(s.FormControl,{children:(0,b.jsxs)(v.ToggleGroup,{type:"multiple",value:a.value??[],onValueChange:b=>{b?.length&&a.onChange(b)},className:"grid w-full grid-cols-2 gap-0 overflow-hidden rounded-lg border border-border bg-[hsl(var(--muted)/0.4)] p-0 sm:max-w-md",children:[(0,b.jsxs)(v.ToggleGroupItem,{value:"DENSE_VECTOR",className:"h-9 gap-1.5",children:[a.value?.includes("DENSE_VECTOR")&&(0,b.jsx)(k.Check,{className:"h-3.5 w-3.5 text-[hsl(var(--primary))]"}),"向量检索"]}),(0,b.jsxs)(v.ToggleGroupItem,{value:"FULL_TEXT",className:"h-9 gap-1.5",children:[a.value?.includes("FULL_TEXT")&&(0,b.jsx)(k.Check,{className:"h-3.5 w-3.5 text-[hsl(var(--primary))]"}),"全文检索"]})]})}),(0,b.jsx)(s.FormMessage,{})]})}),(0,b.jsx)(s.FormField,{control:e.control,name:"retrievalConfiguration.rerankingConfiguration.numberOfResults",render:({field:a})=>(0,b.jsxs)(s.FormItem,{children:[(0,b.jsx)(s.FormLabel,{children:"返回数量 (Top K)"}),(0,b.jsx)(s.FormControl,{children:(0,b.jsx)(n.Input,{type:"number",placeholder:"20",...a,value:a.value??"",onChange:b=>a.onChange(b.target.value?Number(b.target.value):void 0)})}),(0,b.jsx)(s.FormMessage,{})]})}),(0,b.jsx)(s.FormField,{control:e.control,name:"retrievalConfiguration.rerankingConfiguration.type",render:({field:a})=>(0,b.jsxs)(s.FormItem,{children:[(0,b.jsx)(s.FormLabel,{children:"默认 Rerank 策略"}),(0,b.jsx)(s.FormControl,{children:(0,b.jsxs)(v.ToggleGroup,{type:"single",value:a.value??"",onValueChange:b=>{b&&a.onChange(b)},className:"grid w-full grid-cols-3 gap-0 overflow-hidden rounded-lg border border-border bg-[hsl(var(--muted)/0.4)] p-0 sm:max-w-md",children:[(0,b.jsx)(v.ToggleGroupItem,{value:"MODEL",className:"h-9",children:"Model"}),(0,b.jsx)(v.ToggleGroupItem,{value:"WEIGHT",className:"h-9",children:"Weight"}),(0,b.jsx)(v.ToggleGroupItem,{value:"RRF",className:"h-9",children:"RRF"})]})}),(0,b.jsx)(s.FormDescription,{className:"text-xs",children:"切换策略会影响检索时的默认行为;下方三套参数都会保存到知识库,方便临时切换"}),(0,b.jsx)(s.FormMessage,{})]})}),(0,b.jsxs)("div",{className:q("RRF"===p),children:[(0,b.jsx)("p",{className:"text-sm font-medium text-muted-foreground",children:"RRF 参数"}),(0,b.jsxs)("div",{className:"grid grid-cols-3 gap-4",children:[(0,b.jsx)(s.FormField,{control:e.control,name:"retrievalConfiguration.rerankingConfiguration.rrfConfiguration.denseVectorSearchWeight",render:({field:a})=>(0,b.jsxs)(s.FormItem,{children:[(0,b.jsx)(s.FormLabel,{children:"向量检索权重"}),(0,b.jsx)(s.FormControl,{children:(0,b.jsx)(n.Input,{type:"number",step:"0.1",placeholder:"0.5",...a,value:a.value??"",onChange:(0,l.handleNumberInput)(a.onChange)})}),(0,b.jsx)(s.FormMessage,{})]})}),(0,b.jsx)(s.FormField,{control:e.control,name:"retrievalConfiguration.rerankingConfiguration.rrfConfiguration.fullTextSearchWeight",render:({field:a})=>(0,b.jsxs)(s.FormItem,{children:[(0,b.jsx)(s.FormLabel,{children:"全文检索权重"}),(0,b.jsx)(s.FormControl,{children:(0,b.jsx)(n.Input,{type:"number",step:"0.1",placeholder:"0.5",...a,value:a.value??"",onChange:(0,l.handleNumberInput)(a.onChange)})}),(0,b.jsx)(s.FormMessage,{})]})}),(0,b.jsx)(s.FormField,{control:e.control,name:"retrievalConfiguration.rerankingConfiguration.rrfConfiguration.k",render:({field:a})=>(0,b.jsxs)(s.FormItem,{children:[(0,b.jsx)(s.FormLabel,{children:"K 值"}),(0,b.jsx)(s.FormControl,{children:(0,b.jsx)(n.Input,{type:"number",placeholder:"60",...a,value:a.value??"",onChange:(0,l.handleNumberInput)(a.onChange)})}),(0,b.jsx)(s.FormMessage,{})]})})]})]}),(0,b.jsxs)("div",{className:q("WEIGHT"===p),children:[(0,b.jsx)("p",{className:"text-sm font-medium text-muted-foreground",children:"Weight 参数"}),(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,b.jsx)(s.FormField,{control:e.control,name:"retrievalConfiguration.rerankingConfiguration.weightConfiguration.denseVectorSearchWeight",render:({field:a})=>(0,b.jsxs)(s.FormItem,{children:[(0,b.jsx)(s.FormLabel,{children:"向量检索权重"}),(0,b.jsx)(s.FormControl,{children:(0,b.jsx)(n.Input,{type:"number",step:"0.1",min:"0",max:"1",placeholder:"0.5",...a,value:a.value??"",onChange:(0,l.handleNumberInput)(a.onChange)})}),(0,b.jsx)(s.FormDescription,{children:"0 ~ 1 之间"}),(0,b.jsx)(s.FormMessage,{})]})}),(0,b.jsx)(s.FormField,{control:e.control,name:"retrievalConfiguration.rerankingConfiguration.weightConfiguration.fullTextSearchWeight",render:({field:a})=>(0,b.jsxs)(s.FormItem,{children:[(0,b.jsx)(s.FormLabel,{children:"全文检索权重"}),(0,b.jsx)(s.FormControl,{children:(0,b.jsx)(n.Input,{type:"number",step:"0.1",min:"0",max:"1",placeholder:"0.5",...a,value:a.value??"",onChange:(0,l.handleNumberInput)(a.onChange)})}),(0,b.jsx)(s.FormDescription,{children:"0 ~ 1 之间"}),(0,b.jsx)(s.FormMessage,{})]})})]})]}),(0,b.jsxs)("div",{className:q("MODEL"===p),children:[(0,b.jsx)("p",{className:"text-sm font-medium text-muted-foreground",children:"Model 参数"}),(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,b.jsx)(s.FormField,{control:e.control,name:"retrievalConfiguration.rerankingConfiguration.modelConfiguration.provider",render:({field:a})=>(0,b.jsxs)(s.FormItem,{children:[(0,b.jsx)(s.FormLabel,{children:"提供方"}),(0,b.jsxs)(u.Select,{onValueChange:a.onChange,value:a.value??"",children:[(0,b.jsx)(s.FormControl,{children:(0,b.jsx)(u.SelectTrigger,{children:(0,b.jsx)(u.SelectValue,{placeholder:"选择提供方"})})}),(0,b.jsx)(u.SelectContent,{children:(0,b.jsx)(u.SelectItem,{value:"bailian",children:"百炼 (Bailian)"})})]}),(0,b.jsx)(s.FormMessage,{})]})}),(0,b.jsx)(s.FormField,{control:e.control,name:"retrievalConfiguration.rerankingConfiguration.modelConfiguration.model",render:({field:a})=>{let c=e.watch("retrievalConfiguration.rerankingConfiguration.modelConfiguration.provider");return(0,b.jsxs)(s.FormItem,{children:[(0,b.jsx)(s.FormLabel,{children:"模型名称"}),(0,b.jsx)(s.FormControl,{children:"bailian"===c?(0,b.jsxs)(u.Select,{onValueChange:a.onChange,value:a.value??"",children:[(0,b.jsx)(u.SelectTrigger,{children:(0,b.jsx)(u.SelectValue,{placeholder:"选择模型"})}),(0,b.jsxs)(u.SelectContent,{children:[(0,b.jsx)(u.SelectItem,{value:"gte-rerank-v2",children:"gte-rerank-v2"}),(0,b.jsx)(u.SelectItem,{value:"qwen3-rerank",children:"qwen3-rerank"})]})]}):(0,b.jsx)(n.Input,{placeholder:"输入模型名称",...a,value:a.value??""})}),(0,b.jsx)(s.FormMessage,{})]})}})]})]})]})]})]}),(0,b.jsxs)("div",{className:"flex justify-end gap-3 pt-4 border-t",children:[(0,b.jsx)(m.Button,{type:"button",variant:"outline",onClick:()=>c.back(),children:"取消"}),(0,b.jsx)(m.Button,{type:"submit",disabled:d.isPending,children:d.isPending?"创建中...":"创建知识库"})]})]})})}a.s(["default",0,function(){return(0,b.jsxs)("div",{className:"space-y-6",children:[(0,b.jsxs)("div",{children:[(0,b.jsxs)(c.default,{href:"/knowledge-base",className:"inline-flex items-center gap-1 text-sm text-muted-foreground hover:text-foreground transition-colors mb-4",children:[(0,b.jsx)(d.ArrowLeft,{className:"h-4 w-4"}),"返回知识库列表"]}),(0,b.jsx)(e.PageHeader,{title:"创建知识库"})]}),(0,b.jsx)("div",{className:"max-w-2xl",children:(0,b.jsx)(I,{})})]})}],25538)}];
|
|
1
|
+
module.exports=[25538,a=>{"use strict";var b=a.i(34020),c=a.i(12583),d=a.i(623),e=a.i(2482),f=a.i(80470),g=a.i(71562),h=a.i(71071),i=a.i(63265),j=a.i(1927),k=a.i(53520),l=a.i(49707),m=a.i(76192),n=a.i(72518),o=a.i(70535),p=a.i(71938),q=a.i(64565);let r=p.forwardRef(({className:a,checked:c=!1,onCheckedChange:d,disabled:e,...f},g)=>(0,b.jsx)("button",{ref:g,type:"button",role:"switch","aria-checked":c,"data-state":c?"checked":"unchecked",disabled:e,onClick:()=>d?.(!c),className:(0,q.cn)("peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full transition-colors duration-200","shadow-[inset_0_0_0_1px_rgba(0,0,0,0.04),inset_0_1px_2px_rgba(0,0,0,0.06)]","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background","disabled:cursor-not-allowed disabled:opacity-50",c?"bg-[hsl(var(--primary-600))]":"bg-[hsl(var(--muted))] hover:bg-[hsl(var(--muted)/0.8)]",a),...f,children:(0,b.jsx)("span",{"aria-hidden":!0,className:(0,q.cn)("pointer-events-none block h-5 w-5 rounded-full bg-white transition-transform duration-200","shadow-[0_1px_2px_rgba(0,0,0,0.1),0_2px_6px_rgba(0,0,0,0.15)] ring-1 ring-black/4","ease-[cubic-bezier(0.34,1.56,0.64,1)]",c?"translate-x-5":"translate-x-0.5")})}));r.displayName="Switch";var s=a.i(92942),t=a.i(27692),u=a.i(63525),v=a.i(36965),w=a.i(23331),x=a.i(25825),y=a.i(55295);let z=[{value:"string",label:"String"},{value:"long",label:"Long"},{value:"double",label:"Double"},{value:"boolean",label:"Boolean"},{value:"date",label:"Date"},{value:"string_list",label:"String List"},{value:"long_list",label:"Long List"},{value:"double_list",label:"Double List"},{value:"boolean_list",label:"Boolean List"},{value:"date_list",label:"Date List"}];function A({value:a,onChange:c}){let d=(0,p.useCallback)(()=>{c([...a,{name:"",type:"string"}])},[a,c]),e=(0,p.useCallback)(b=>{c(a.filter((a,c)=>c!==b))},[a,c]),f=(0,p.useCallback)((b,d)=>{c(a.map((a,c)=>c===b?{...a,...d}:a))},[a,c]);return(0,b.jsxs)("div",{className:"space-y-2",children:[a.map((a,c)=>(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(n.Input,{value:a.name,onChange:a=>f(c,{name:a.target.value}),placeholder:"字段名",className:"h-9 flex-1"}),(0,b.jsxs)(u.Select,{value:a.type,onValueChange:a=>f(c,{type:a}),children:[(0,b.jsx)(u.SelectTrigger,{className:"h-9 w-[140px]",children:(0,b.jsx)(u.SelectValue,{})}),(0,b.jsx)(u.SelectContent,{children:z.map(a=>(0,b.jsx)(u.SelectItem,{value:a.value,children:a.label},a.value))})]}),(0,b.jsx)(m.Button,{type:"button",variant:"ghost",size:"icon",onClick:()=>e(c),className:"h-9 w-9 text-muted-foreground hover:text-destructive hover:bg-destructive/10","aria-label":`删除字段 ${a.name||c+1}`,children:(0,b.jsx)(y.Trash2,{size:16})})]},c)),(0,b.jsxs)(m.Button,{type:"button",variant:"ghost",onClick:d,className:"gap-1.5 text-primary hover:bg-primary/10",children:[(0,b.jsx)(x.Plus,{size:16}),"添加字段"]})]})}let B=[1024,768,512,256,128,64],C=[2048,1536,1024,768,512,256,128,64];function D({form:a}){let c=(0,g.useWatch)({control:a.control,name:"embeddingConfiguration.provider"}),d="text-embedding-v3"===(0,g.useWatch)({control:a.control,name:"embeddingConfiguration.model"})?B:C,e=b=>{a.setValue("embeddingConfiguration.model",b),a.setValue("embeddingConfiguration.dimension",1024)};return(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsx)(s.FormField,{control:a.control,name:"embeddingConfiguration.provider",render:({field:c})=>(0,b.jsxs)(s.FormItem,{children:[(0,b.jsx)(s.FormLabel,{children:"提供方"}),(0,b.jsxs)(u.Select,{onValueChange:b=>{c.onChange(b),"bailian"===b?(a.setValue("embeddingConfiguration.model","text-embedding-v4"),a.setValue("embeddingConfiguration.dimension",1024)):a.setValue("embeddingConfiguration.model","")},defaultValue:c.value,children:[(0,b.jsx)(s.FormControl,{children:(0,b.jsx)(u.SelectTrigger,{children:(0,b.jsx)(u.SelectValue,{placeholder:"选择 Embedding 提供方"})})}),(0,b.jsxs)(u.SelectContent,{children:[(0,b.jsx)(u.SelectItem,{value:"bailian",children:"百炼 (Bailian)"}),(0,b.jsx)(u.SelectItem,{value:"custom",children:"自定义 (Custom)"})]})]}),(0,b.jsx)(s.FormMessage,{})]})}),(0,b.jsx)(s.FormField,{control:a.control,name:"embeddingConfiguration.model",render:({field:a})=>(0,b.jsxs)(s.FormItem,{children:[(0,b.jsx)(s.FormLabel,{children:"模型名称"}),(0,b.jsx)(s.FormControl,{children:"bailian"===c?(0,b.jsxs)(u.Select,{onValueChange:e,value:a.value,children:[(0,b.jsx)(u.SelectTrigger,{children:(0,b.jsx)(u.SelectValue,{placeholder:"选择模型"})}),(0,b.jsxs)(u.SelectContent,{children:[(0,b.jsx)(u.SelectItem,{value:"text-embedding-v3",children:"text-embedding-v3"}),(0,b.jsx)(u.SelectItem,{value:"text-embedding-v4",children:"text-embedding-v4"})]})]}):(0,b.jsx)(n.Input,{placeholder:"输入模型名称",...a})}),(0,b.jsx)(s.FormMessage,{})]})}),(0,b.jsx)(s.FormField,{control:a.control,name:"embeddingConfiguration.dimension",render:({field:a})=>(0,b.jsxs)(s.FormItem,{children:[(0,b.jsx)(s.FormLabel,{children:"向量维度"}),(0,b.jsx)(s.FormControl,{children:"bailian"===c?(0,b.jsxs)(u.Select,{onValueChange:b=>a.onChange(Number(b)),value:String(a.value),children:[(0,b.jsx)(u.SelectTrigger,{children:(0,b.jsx)(u.SelectValue,{placeholder:"选择维度"})}),(0,b.jsx)(u.SelectContent,{children:d.map(a=>(0,b.jsx)(u.SelectItem,{value:String(a),children:a.toLocaleString()},a))})]}):(0,b.jsx)(n.Input,{type:"number",placeholder:"例如: 1024",...a,onChange:b=>a.onChange(Number(b.target.value))})}),(0,b.jsx)(s.FormMessage,{})]})}),"custom"===c&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(s.FormField,{control:a.control,name:"embeddingConfiguration.apiKey",render:({field:a})=>(0,b.jsxs)(s.FormItem,{children:[(0,b.jsx)(s.FormLabel,{children:"API Key"}),(0,b.jsx)(s.FormControl,{children:(0,b.jsx)(n.Input,{type:"password",placeholder:"输入 API Key",...a,value:a.value??""})}),(0,b.jsx)(s.FormMessage,{})]})}),(0,b.jsx)(s.FormField,{control:a.control,name:"embeddingConfiguration.url",render:({field:a})=>(0,b.jsxs)(s.FormItem,{children:[(0,b.jsx)(s.FormLabel,{children:"API URL"}),(0,b.jsx)(s.FormControl,{children:(0,b.jsx)(n.Input,{placeholder:"https://your-embedding-service.com/v1/embeddings",...a,value:a.value??""})}),(0,b.jsx)(s.FormMessage,{})]})})]})]})}var E=a.i(33596),F=a.i(77072),G=a.i(69024),H=a.i(25377),I=a.i(17566);function J(){let a,c=(0,f.useRouter)(),d=(a=(0,F.useQueryClient)(),(0,E.useMutation)({mutationFn:a=>(0,G.createKnowledgeBase)(a),onSuccess:()=>{(0,H.invalidateKnowledgeBaseQueries)(a)}})),e=(0,g.useForm)({resolver:(0,h.zodResolver)(I.createKBSchema),defaultValues:{knowledgeBaseName:"",description:"",subspace:!1,tags:[],metadata:[],embeddingConfiguration:{provider:"bailian",model:"text-embedding-v4",dimension:1024},retrievalConfiguration:{searchType:["DENSE_VECTOR","FULL_TEXT"],rerankingConfiguration:{type:"WEIGHT",numberOfResults:20,rrfConfiguration:{denseVectorSearchWeight:.5,fullTextSearchWeight:.5,k:60},weightConfiguration:{denseVectorSearchWeight:.7,fullTextSearchWeight:.3},modelConfiguration:{provider:"bailian",model:"gte-rerank-v2"}}}}}),p=e.watch("retrievalConfiguration.rerankingConfiguration.type"),q=a=>"space-y-4 rounded-md border p-4 transition-colors "+(a?"border-[hsl(var(--primary)/0.4)] bg-[hsl(var(--primary)/0.04)]":"border-border bg-transparent");async function x(a){try{let b={...a,retrievalConfiguration:a.retrievalConfiguration?{...a.retrievalConfiguration,rerankingConfiguration:a.retrievalConfiguration.rerankingConfiguration?{...a.retrievalConfiguration.rerankingConfiguration,numberOfResults:a.retrievalConfiguration.rerankingConfiguration.numberOfResults??20}:void 0}:void 0};await d.mutateAsync(b),i.toast.success("知识库创建成功"),c.push("/knowledge-base")}catch(b){let a=b instanceof Error?b.message:"创建知识库失败";i.toast.error(a)}}return(0,b.jsx)(s.Form,{...e,children:(0,b.jsxs)("form",{onSubmit:e.handleSubmit(x),className:"space-y-8",children:[(0,b.jsxs)("section",{className:"space-y-4",children:[(0,b.jsx)("h3",{className:"text-lg font-semibold",children:"基本信息"}),(0,b.jsx)(s.FormField,{control:e.control,name:"knowledgeBaseName",render:({field:a})=>(0,b.jsxs)(s.FormItem,{children:[(0,b.jsxs)(s.FormLabel,{children:["名称 ",(0,b.jsx)("span",{className:"text-[hsl(var(--destructive))]",children:"*"})]}),(0,b.jsx)(s.FormControl,{children:(0,b.jsx)(n.Input,{placeholder:"my_knowledge_base",...a})}),(0,b.jsx)(s.FormDescription,{children:"以字母开头,仅包含字母、数字和下划线,最长 64 字符"}),(0,b.jsx)(s.FormMessage,{})]})}),(0,b.jsx)(s.FormField,{control:e.control,name:"description",render:({field:a})=>(0,b.jsxs)(s.FormItem,{children:[(0,b.jsx)(s.FormLabel,{children:"描述"}),(0,b.jsx)(s.FormControl,{children:(0,b.jsx)(o.Textarea,{placeholder:"描述这个知识库的用途...",className:"resize-none",rows:3,...a})}),(0,b.jsx)(s.FormMessage,{})]})}),(0,b.jsx)(s.FormField,{control:e.control,name:"tags",render:({field:a})=>(0,b.jsxs)(s.FormItem,{children:[(0,b.jsx)(s.FormLabel,{children:"标签"}),(0,b.jsx)(s.FormControl,{children:(0,b.jsx)(w.TagInput,{value:a.value??[],onChange:a.onChange,placeholder:"输入标签后按回车"})}),(0,b.jsx)(s.FormMessage,{})]})}),(0,b.jsx)(s.FormField,{control:e.control,name:"subspace",render:({field:a})=>(0,b.jsxs)(s.FormItem,{className:"flex flex-row items-center justify-between gap-4 space-y-0 rounded-md border border-border p-3",children:[(0,b.jsxs)("div",{className:"space-y-0.5",children:[(0,b.jsx)(s.FormLabel,{className:"text-sm",children:"启用 Subspace"}),(0,b.jsx)(s.FormDescription,{className:"text-xs",children:"为该知识库开启子空间隔离,不同业务线的数据互不干扰"})]}),(0,b.jsx)(s.FormControl,{children:(0,b.jsx)(r,{checked:a.value??!1,onCheckedChange:a.onChange})})]})})]}),(0,b.jsxs)("section",{className:"space-y-4",children:[(0,b.jsx)("h3",{className:"text-lg font-semibold",children:"Metadata Schema"}),(0,b.jsx)(s.FormField,{control:e.control,name:"metadata",render:({field:a})=>(0,b.jsxs)(s.FormItem,{children:[(0,b.jsx)(s.FormControl,{children:(0,b.jsx)(A,{value:a.value??[],onChange:a.onChange})}),(0,b.jsx)(s.FormMessage,{})]})})]}),(0,b.jsxs)(t.Collapsible,{children:[(0,b.jsx)(t.CollapsibleTrigger,{asChild:!0,children:(0,b.jsxs)(m.Button,{type:"button",variant:"ghost",className:"flex w-full items-center justify-between p-0 text-lg font-semibold hover:bg-transparent",children:["高级配置",(0,b.jsx)(j.ChevronDown,{className:"h-4 w-4 transition-transform duration-200 [[data-state=open]>&]:rotate-180"})]})}),(0,b.jsxs)(t.CollapsibleContent,{className:"mt-4 space-y-6",children:[(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsx)("h4",{className:"text-base font-medium text-foreground",children:"Embedding 配置"}),(0,b.jsx)(D,{form:e})]}),(0,b.jsx)("hr",{className:"border-border"}),(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsx)("h4",{className:"text-base font-medium text-foreground",children:"检索配置"}),(0,b.jsx)(s.FormField,{control:e.control,name:"retrievalConfiguration.searchType",render:({field:a})=>(0,b.jsxs)(s.FormItem,{children:[(0,b.jsx)(s.FormLabel,{children:"搜索类型"}),(0,b.jsx)(s.FormControl,{children:(0,b.jsxs)(v.ToggleGroup,{type:"multiple",value:a.value??[],onValueChange:b=>{b?.length&&a.onChange(b)},className:"grid w-full grid-cols-2 gap-0 overflow-hidden rounded-lg border border-border bg-[hsl(var(--muted)/0.4)] p-0 sm:max-w-md",children:[(0,b.jsxs)(v.ToggleGroupItem,{value:"DENSE_VECTOR",className:"h-9 gap-1.5",children:[a.value?.includes("DENSE_VECTOR")&&(0,b.jsx)(k.Check,{className:"h-3.5 w-3.5 text-[hsl(var(--primary))]"}),"向量检索"]}),(0,b.jsxs)(v.ToggleGroupItem,{value:"FULL_TEXT",className:"h-9 gap-1.5",children:[a.value?.includes("FULL_TEXT")&&(0,b.jsx)(k.Check,{className:"h-3.5 w-3.5 text-[hsl(var(--primary))]"}),"全文检索"]})]})}),(0,b.jsx)(s.FormMessage,{})]})}),(0,b.jsx)(s.FormField,{control:e.control,name:"retrievalConfiguration.rerankingConfiguration.numberOfResults",render:({field:a})=>(0,b.jsxs)(s.FormItem,{children:[(0,b.jsx)(s.FormLabel,{children:"返回数量 (Top K)"}),(0,b.jsx)(s.FormControl,{children:(0,b.jsx)(n.Input,{type:"number",placeholder:"20",...a,value:a.value??"",onChange:b=>a.onChange(b.target.value?Number(b.target.value):void 0)})}),(0,b.jsx)(s.FormMessage,{})]})}),(0,b.jsx)(s.FormField,{control:e.control,name:"retrievalConfiguration.rerankingConfiguration.type",render:({field:a})=>(0,b.jsxs)(s.FormItem,{children:[(0,b.jsx)(s.FormLabel,{children:"默认 Rerank 策略"}),(0,b.jsx)(s.FormControl,{children:(0,b.jsxs)(v.ToggleGroup,{type:"single",value:a.value??"",onValueChange:b=>{b&&a.onChange(b)},className:"grid w-full grid-cols-3 gap-0 overflow-hidden rounded-lg border border-border bg-[hsl(var(--muted)/0.4)] p-0 sm:max-w-md",children:[(0,b.jsx)(v.ToggleGroupItem,{value:"MODEL",className:"h-9",children:"Model"}),(0,b.jsx)(v.ToggleGroupItem,{value:"WEIGHT",className:"h-9",children:"Weight"}),(0,b.jsx)(v.ToggleGroupItem,{value:"RRF",className:"h-9",children:"RRF"})]})}),(0,b.jsx)(s.FormDescription,{className:"text-xs",children:"切换策略会影响检索时的默认行为;下方三套参数都会保存到知识库,方便临时切换"}),(0,b.jsx)(s.FormMessage,{})]})}),(0,b.jsxs)("div",{className:q("RRF"===p),children:[(0,b.jsx)("p",{className:"text-sm font-medium text-muted-foreground",children:"RRF 参数"}),(0,b.jsxs)("div",{className:"grid grid-cols-3 gap-4",children:[(0,b.jsx)(s.FormField,{control:e.control,name:"retrievalConfiguration.rerankingConfiguration.rrfConfiguration.denseVectorSearchWeight",render:({field:a})=>(0,b.jsxs)(s.FormItem,{children:[(0,b.jsx)(s.FormLabel,{children:"向量检索权重"}),(0,b.jsx)(s.FormControl,{children:(0,b.jsx)(n.Input,{type:"number",step:"0.1",placeholder:"0.5",...a,value:a.value??"",onChange:(0,l.handleNumberInput)(a.onChange)})}),(0,b.jsx)(s.FormMessage,{})]})}),(0,b.jsx)(s.FormField,{control:e.control,name:"retrievalConfiguration.rerankingConfiguration.rrfConfiguration.fullTextSearchWeight",render:({field:a})=>(0,b.jsxs)(s.FormItem,{children:[(0,b.jsx)(s.FormLabel,{children:"全文检索权重"}),(0,b.jsx)(s.FormControl,{children:(0,b.jsx)(n.Input,{type:"number",step:"0.1",placeholder:"0.5",...a,value:a.value??"",onChange:(0,l.handleNumberInput)(a.onChange)})}),(0,b.jsx)(s.FormMessage,{})]})}),(0,b.jsx)(s.FormField,{control:e.control,name:"retrievalConfiguration.rerankingConfiguration.rrfConfiguration.k",render:({field:a})=>(0,b.jsxs)(s.FormItem,{children:[(0,b.jsx)(s.FormLabel,{children:"K 值"}),(0,b.jsx)(s.FormControl,{children:(0,b.jsx)(n.Input,{type:"number",placeholder:"60",...a,value:a.value??"",onChange:(0,l.handleNumberInput)(a.onChange)})}),(0,b.jsx)(s.FormMessage,{})]})})]})]}),(0,b.jsxs)("div",{className:q("WEIGHT"===p),children:[(0,b.jsx)("p",{className:"text-sm font-medium text-muted-foreground",children:"Weight 参数"}),(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,b.jsx)(s.FormField,{control:e.control,name:"retrievalConfiguration.rerankingConfiguration.weightConfiguration.denseVectorSearchWeight",render:({field:a})=>(0,b.jsxs)(s.FormItem,{children:[(0,b.jsx)(s.FormLabel,{children:"向量检索权重"}),(0,b.jsx)(s.FormControl,{children:(0,b.jsx)(n.Input,{type:"number",step:"0.1",min:"0",max:"1",placeholder:"0.5",...a,value:a.value??"",onChange:(0,l.handleNumberInput)(a.onChange)})}),(0,b.jsx)(s.FormDescription,{children:"0 ~ 1 之间"}),(0,b.jsx)(s.FormMessage,{})]})}),(0,b.jsx)(s.FormField,{control:e.control,name:"retrievalConfiguration.rerankingConfiguration.weightConfiguration.fullTextSearchWeight",render:({field:a})=>(0,b.jsxs)(s.FormItem,{children:[(0,b.jsx)(s.FormLabel,{children:"全文检索权重"}),(0,b.jsx)(s.FormControl,{children:(0,b.jsx)(n.Input,{type:"number",step:"0.1",min:"0",max:"1",placeholder:"0.5",...a,value:a.value??"",onChange:(0,l.handleNumberInput)(a.onChange)})}),(0,b.jsx)(s.FormDescription,{children:"0 ~ 1 之间"}),(0,b.jsx)(s.FormMessage,{})]})})]})]}),(0,b.jsxs)("div",{className:q("MODEL"===p),children:[(0,b.jsx)("p",{className:"text-sm font-medium text-muted-foreground",children:"Model 参数"}),(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,b.jsx)(s.FormField,{control:e.control,name:"retrievalConfiguration.rerankingConfiguration.modelConfiguration.provider",render:({field:a})=>(0,b.jsxs)(s.FormItem,{children:[(0,b.jsx)(s.FormLabel,{children:"提供方"}),(0,b.jsxs)(u.Select,{onValueChange:a.onChange,value:a.value??"",children:[(0,b.jsx)(s.FormControl,{children:(0,b.jsx)(u.SelectTrigger,{children:(0,b.jsx)(u.SelectValue,{placeholder:"选择提供方"})})}),(0,b.jsx)(u.SelectContent,{children:(0,b.jsx)(u.SelectItem,{value:"bailian",children:"百炼 (Bailian)"})})]}),(0,b.jsx)(s.FormMessage,{})]})}),(0,b.jsx)(s.FormField,{control:e.control,name:"retrievalConfiguration.rerankingConfiguration.modelConfiguration.model",render:({field:a})=>{let c=e.watch("retrievalConfiguration.rerankingConfiguration.modelConfiguration.provider");return(0,b.jsxs)(s.FormItem,{children:[(0,b.jsx)(s.FormLabel,{children:"模型名称"}),(0,b.jsx)(s.FormControl,{children:"bailian"===c?(0,b.jsxs)(u.Select,{onValueChange:a.onChange,value:a.value??"",children:[(0,b.jsx)(u.SelectTrigger,{children:(0,b.jsx)(u.SelectValue,{placeholder:"选择模型"})}),(0,b.jsxs)(u.SelectContent,{children:[(0,b.jsx)(u.SelectItem,{value:"gte-rerank-v2",children:"gte-rerank-v2"}),(0,b.jsx)(u.SelectItem,{value:"qwen3-rerank",children:"qwen3-rerank"})]})]}):(0,b.jsx)(n.Input,{placeholder:"输入模型名称",...a,value:a.value??""})}),(0,b.jsx)(s.FormMessage,{})]})}})]})]})]})]})]}),(0,b.jsxs)("div",{className:"flex justify-end gap-3 pt-4 border-t",children:[(0,b.jsx)(m.Button,{type:"button",variant:"outline",onClick:()=>c.back(),children:"取消"}),(0,b.jsx)(m.Button,{type:"submit",disabled:d.isPending,children:d.isPending?"创建中...":"创建知识库"})]})]})})}a.s(["default",0,function(){return(0,b.jsxs)("div",{className:"space-y-6",children:[(0,b.jsxs)("div",{children:[(0,b.jsxs)(c.default,{href:"/knowledge-base",className:"inline-flex items-center gap-1 text-sm text-muted-foreground hover:text-foreground transition-colors mb-4",children:[(0,b.jsx)(d.ArrowLeft,{className:"h-4 w-4"}),"返回知识库列表"]}),(0,b.jsx)(e.PageHeader,{title:"创建知识库"})]}),(0,b.jsx)("div",{className:"max-w-2xl",children:(0,b.jsx)(J,{})})]})}],25538)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=dashboard_src_app_%28dashboard%29_knowledge-base_create_page_tsx_0916~g-._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[32759,a=>{"use strict";var b=a.i(34020),c=a.i(80470),d=a.i(4395),e=a.i(11697),f=a.i(71938),g=a.i(63265),h=a.i(76192),i=a.i(62491),j=a.i(70535),k=a.i(33596),l=a.i(77072),m=a.i(21347);function
|
|
1
|
+
module.exports=[32759,a=>{"use strict";var b=a.i(34020),c=a.i(80470),d=a.i(4395),e=a.i(11697),f=a.i(71938),g=a.i(63265),h=a.i(76192),i=a.i(62491),j=a.i(70535),k=a.i(33596),l=a.i(77072),m=a.i(21347),n=a.i(25377);function o({memoryStore:a}){let c,d=(c=(0,l.useQueryClient)(),(0,k.useMutation)({mutationFn:a=>(0,m.updateMemoryStore)(a),onSuccess:()=>{(0,n.invalidateMemoryQueries)(c)}})),[e,p]=(0,f.useState)(a.description??"");async function q(b){b.preventDefault();try{await d.mutateAsync({memoryStoreName:a.memoryStoreName,description:e.trim()||void 0}),g.toast.success("记忆库设置已更新")}catch(a){g.toast.error(a instanceof Error?a.message:"更新记忆库失败")}}return(0,b.jsxs)("form",{onSubmit:q,className:"space-y-4",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(i.Label,{htmlFor:"memory-settings-description",children:"描述"}),(0,b.jsx)(j.Textarea,{id:"memory-settings-description",value:e,onChange:a=>p(a.target.value),rows:5,placeholder:"描述这个记忆库的用途..."})]}),(0,b.jsx)(h.Button,{type:"submit",disabled:d.isPending,children:d.isPending?"保存中...":"保存设置"})]})}function p(a){if(!a)return"-";try{let b=new Date(a);if(isNaN(b.getTime()))return String(a);return b.toLocaleString("zh-CN",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"})}catch{return String(a)}}a.s(["default",0,function(){let a=decodeURIComponent((0,c.useParams)().store),{data:f,isLoading:g}=(0,e.useMemoryStore)(a);return g?(0,b.jsxs)("div",{className:"space-y-6",children:[(0,b.jsx)(d.Skeleton,{className:"h-8 w-48"}),(0,b.jsx)(d.Skeleton,{className:"h-32 w-full"})]}):f?(0,b.jsxs)("div",{className:"max-w-2xl space-y-8",children:[(0,b.jsx)(o,{memoryStore:f}),(0,b.jsxs)("div",{className:"rounded-lg border p-4",children:[(0,b.jsx)("h3",{className:"mb-4 text-sm font-semibold",children:"记忆库信息"}),(0,b.jsxs)("dl",{className:"grid gap-3 sm:grid-cols-2",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("dt",{className:"text-xs text-muted-foreground",children:"OTS 实例"}),(0,b.jsx)("dd",{className:"mt-0.5 text-sm font-mono",children:f.otsInstance??"-"})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("dt",{className:"text-xs text-muted-foreground",children:"创建时间"}),(0,b.jsx)("dd",{className:"mt-0.5 text-sm",children:p(f.createdAt)})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("dt",{className:"text-xs text-muted-foreground",children:"更新时间"}),(0,b.jsx)("dd",{className:"mt-0.5 text-sm",children:p(f.updatedAt)})]})]})]})]}):(0,b.jsx)("div",{className:"py-12 text-center text-muted-foreground",children:"记忆库不存在"})}],32759)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=dashboard_src_app_%28dashboard%29_memory_%5Bstore%5D_settings_page_tsx_0y26.xu._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[25909,a=>{"use strict";var b=a.i(34020),c=a.i(71938),d=a.i(80470),e=a.i(65173),f=a.i(7704),g=a.i(25825),h=a.i(9380),i=a.i(63265),j=a.i(76192),k=a.i(72518),l=a.i(2482),m=a.i(24567),n=a.i(87617),o=a.i(4395),p=a.i(34841),q=a.i(83366),r=a.i(21347),s=a.i(33596),t=a.i(77072),u=a.i(8264),v=a.i(43836),w=a.i(62491),x=a.i(70535);function y({memoryStoreName:a,scope:d,open:e,onOpenChange:f,onSuccess:g}){let h,k=(h=(0,t.useQueryClient)(),(0,s.useMutation)({mutationFn:a=>(0,r.addMemory)(a),onSuccess:(a,b)=>{h.invalidateQueries({queryKey:["memory","stores",b.memoryStoreName,"units"]}),h.invalidateQueries({queryKey:["memory","stores",b.memoryStoreName,"requests"]}),h.invalidateQueries({queryKey:["memory","stores",b.memoryStoreName,"messages"]})}})),[l,m]=(0,c.useState)(""),[n,o]=(0,c.useState)("");async function p(){try{let b=(0,u.parseJsonObject)(n);if(!l.trim())return void i.toast.error("请输入要提取为记忆的文本");await k.mutateAsync({memoryStoreName:a,scope:d,text:l.trim(),metadata:b,sync:!1}),i.toast.success("记忆正在加工中,请稍后查看"),m(""),o(""),f(!1),g?.()}catch(a){i.toast.error(a instanceof Error?a.message:"添加记忆失败")}}return(0,b.jsx)(v.Dialog,{open:e,onOpenChange:f,children:(0,b.jsxs)(v.DialogContent,{className:"max-w-xl",children:[(0,b.jsx)(v.DialogHeader,{children:(0,b.jsx)(v.DialogTitle,{children:"添加记忆"})}),(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(w.Label,{children:"Text"}),(0,b.jsx)(x.Textarea,{value:l,onChange:a=>m(a.target.value),placeholder:"输入要提取为记忆的文本...",rows:5})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(w.Label,{children:"Metadata JSON(可选)"}),(0,b.jsx)(x.Textarea,{value:n,onChange:a=>o(a.target.value),placeholder:'{"source":"dashboard"}',rows:3})]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:"记忆将通过异步方式处理,添加后可在记忆单元中查看结果。"})]}),(0,b.jsxs)(v.DialogFooter,{children:[(0,b.jsx)(j.Button,{variant:"outline",onClick:()=>f(!1),children:"取消"}),(0,b.jsx)(j.Button,{onClick:p,disabled:k.isPending,children:k.isPending?"提交中...":"提交"})]})]})})}var z=a.i(87491),A=a.i(12537),B=a.i(55295),C=a.i(23301);let D="当前记忆单元缺少精确 scope 或 ID,无法操作";function E(a){return a.id??a.memoryId??"-"}let F=(0,c.memo)(function({unit:a,actionDisabled:d,onView:e,onEdit:f,onDelete:g}){let h=(0,c.useCallback)(()=>e?.(a),[e,a]),i=(0,c.useCallback)(()=>f?.(a),[f,a]),k=(0,c.useCallback)(()=>g?.(a),[g,a]);return(0,b.jsxs)(C.TableRow,{children:[(0,b.jsx)(C.TableCell,{className:"font-mono text-xs",children:E(a)}),(0,b.jsxs)(C.TableCell,{className:"max-w-[420px]",children:[(0,b.jsx)("p",{className:"line-clamp-2 text-sm",children:a.text}),a.search_text&&(0,b.jsx)("p",{className:"mt-1 line-clamp-1 text-xs text-muted-foreground",children:a.search_text})]}),(0,b.jsx)(C.TableCell,{children:a.unit_type??"-"}),(0,b.jsx)(C.TableCell,{children:a.version??"-"}),(0,b.jsx)(C.TableCell,{className:"text-xs text-muted-foreground",children:function(a){if(!a)return"-";try{let b=new Date(a);if(isNaN(b.getTime()))return String(a);return b.toLocaleString("zh-CN",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"})}catch{return String(a)}}(a.created_at??a.createdAt)}),(0,b.jsx)(C.TableCell,{children:(0,b.jsxs)("div",{className:"flex justify-end gap-1",children:[(0,b.jsx)(j.Button,{type:"button",variant:"ghost",size:"icon",disabled:d,onClick:h,title:d?D:"查看详情",children:(0,b.jsx)(z.Eye,{className:"h-4 w-4"})}),(0,b.jsx)(j.Button,{type:"button",variant:"ghost",size:"icon",disabled:d,onClick:i,title:d?D:"编辑",children:(0,b.jsx)(A.Pencil,{className:"h-4 w-4"})}),(0,b.jsx)(j.Button,{type:"button",variant:"ghost",size:"icon",disabled:d,onClick:k,title:d?D:"删除",children:(0,b.jsx)(B.Trash2,{className:"h-4 w-4 text-[hsl(var(--destructive))]"})})]})})]})});function G({units:a,readOnly:c=!1,isActionDisabled:d,onView:e,onEdit:f,onDelete:g}){return a.length?(0,b.jsx)("div",{className:"rounded-lg border",children:(0,b.jsxs)(C.Table,{children:[(0,b.jsx)(C.TableHeader,{children:(0,b.jsxs)(C.TableRow,{children:[(0,b.jsx)(C.TableHead,{className:"w-[180px]",children:"ID"}),(0,b.jsx)(C.TableHead,{children:"内容"}),(0,b.jsx)(C.TableHead,{className:"w-[140px]",children:"类型"}),(0,b.jsx)(C.TableHead,{className:"w-[120px]",children:"版本"}),(0,b.jsx)(C.TableHead,{className:"w-[170px]",children:"创建时间"}),(0,b.jsx)(C.TableHead,{className:"w-[160px] text-right",children:"操作"})]})}),(0,b.jsx)(C.TableBody,{children:a.map((a,h)=>{let i=c||d?.(a)||!1,j=E(a);return(0,b.jsx)(F,{unit:a,actionDisabled:i,onView:e,onEdit:f,onDelete:g},"-"===j?h:j)})})]})}):(0,b.jsx)("div",{className:"rounded-lg border border-dashed py-12 text-center text-sm text-muted-foreground",children:"当前 scope 下暂无记忆单元"})}function H({memoryStoreName:a,scope:c,unit:d,open:e,onOpenChange:f}){let g,h=(g=(0,t.useQueryClient)(),(0,s.useMutation)({mutationFn:a=>(0,r.updateMemoryUnit)(a),onSuccess:(a,b)=>{g.invalidateQueries({queryKey:["memory","stores",b.memoryStoreName,"units"]})}})),k=d?E(d):"empty";async function l(b){if(b.preventDefault(),!d)return;let e=E(d);if("-"===e)return void i.toast.error("记忆单元缺少 ID,无法编辑");let g=new FormData(b.currentTarget),j=String(g.get("text")??"").trim(),k=String(g.get("metadata")??"");try{await h.mutateAsync({memoryStoreName:a,memoryId:e,scope:c,text:j||void 0,metadata:(0,u.parseJsonObject)(k)}),i.toast.success("记忆单元已更新"),f(!1)}catch(a){i.toast.error(a instanceof Error?a.message:"更新记忆失败")}}return(0,b.jsx)(v.Dialog,{open:e,onOpenChange:f,children:(0,b.jsxs)(v.DialogContent,{className:"max-w-2xl",children:[(0,b.jsx)(v.DialogHeader,{children:(0,b.jsx)(v.DialogTitle,{children:"编辑记忆单元"})}),(0,b.jsxs)("form",{onSubmit:l,className:"space-y-4",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(w.Label,{children:"Text"}),(0,b.jsx)(x.Textarea,{name:"text",defaultValue:d?.text??"",rows:5})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(w.Label,{children:"Metadata JSON"}),(0,b.jsx)(x.Textarea,{name:"metadata",defaultValue:d?.metadata?JSON.stringify(d.metadata,null,2):"",rows:4})]}),(0,b.jsxs)(v.DialogFooter,{children:[(0,b.jsx)(j.Button,{type:"button",variant:"outline",onClick:()=>f(!1),children:"取消"}),(0,b.jsx)(j.Button,{type:"submit",disabled:h.isPending,children:h.isPending?"保存中...":"保存"})]})]},k)]})})}function I({label:a,children:c}){return(0,b.jsxs)("div",{className:"grid grid-cols-[120px_1fr] items-start gap-3",children:[(0,b.jsx)("span",{className:"pt-0.5 text-xs font-medium text-muted-foreground",children:a}),(0,b.jsx)("div",{className:"min-w-0 text-sm text-foreground",children:c})]})}function J({memoryStoreName:a,scope:c,unit:d,open:e,onOpenChange:f}){let g=d?E(d):void 0,h=function(a,b,c,d=!0){return(0,q.useQuery)({queryKey:["memory","stores",a,"units","detail",b,c],queryFn:()=>(0,r.getMemoryUnit)({memoryStoreName:a,memoryId:b,scope:c}),enabled:d&&!!a&&!!c?.appId&&!!b&&"-"!==b})}(a,g,c,e),i=h.data?.memory;return(0,b.jsx)(v.Dialog,{open:e,onOpenChange:f,children:(0,b.jsxs)(v.DialogContent,{className:"max-w-2xl",children:[(0,b.jsx)(v.DialogHeader,{children:(0,b.jsx)(v.DialogTitle,{children:"记忆单元详情"})}),d?"-"===g?(0,b.jsx)("p",{className:"text-sm text-destructive",children:"记忆单元缺少 ID,无法加载详情。"}):h.isLoading?(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(o.Skeleton,{className:"h-4 w-16"}),(0,b.jsx)(o.Skeleton,{className:"h-5 w-64"})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(o.Skeleton,{className:"h-4 w-16"}),(0,b.jsx)(o.Skeleton,{className:"h-24 w-full"})]}),(0,b.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2",children:[(0,b.jsx)(o.Skeleton,{className:"h-14 w-full"}),(0,b.jsx)(o.Skeleton,{className:"h-14 w-full"}),(0,b.jsx)(o.Skeleton,{className:"h-14 w-full"}),(0,b.jsx)(o.Skeleton,{className:"h-14 w-full"})]})]}):h.isError?(0,b.jsx)("p",{className:"rounded-md bg-destructive/5 p-3 text-sm text-destructive",children:h.error instanceof Error?h.error.message:"加载记忆单元详情失败"}):i?(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsx)(I,{label:"ID",children:(0,b.jsx)("span",{className:"break-all font-mono text-xs",children:i.id??i.memoryId??"-"})}),(0,b.jsx)(I,{label:"内容",children:(0,b.jsx)("p",{className:"whitespace-pre-wrap rounded-md bg-muted p-3 text-sm",children:i.text})}),i.search_text&&(0,b.jsx)(I,{label:"Search Text",children:(0,b.jsx)("p",{className:"whitespace-pre-wrap rounded-md bg-muted p-3 text-sm",children:i.search_text})}),(0,b.jsx)(I,{label:"Scope",children:(0,u.formatScope)(i.scope)}),(0,b.jsx)(I,{label:"类型",children:i.unit_type??"-"}),(0,b.jsx)(I,{label:"Salience",children:i.salience??"-"}),(0,b.jsx)(I,{label:"版本",children:i.version??"-"}),i.metadata&&(0,b.jsx)(I,{label:"Metadata",children:(0,b.jsx)("pre",{className:"overflow-auto rounded-md bg-muted p-3 text-xs",children:JSON.stringify(i.metadata,null,2)})})]}):(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:"未找到记忆单元详情。"}):null]})})}var K=a.i(53141);a.s(["default",0,function(){let a,v=(0,d.useParams)(),w=(0,d.useSearchParams)(),x=decodeURIComponent(v.store),z=(0,c.useMemo)(()=>(0,u.buildMemoryScope)(w),[w.toString()]),A=(0,u.hasWildcardScope)(z),B=(0,c.useMemo)(()=>`${z.appId}|${z.tenantId??""}|${z.agentId??""}|${z.runId??""}`,[z.appId,z.tenantId,z.agentId,z.runId]),[C,D]=(0,c.useState)({scopeKey:B,tokenStack:[]}),[F]=(0,c.useState)(20),[I,L]=(0,c.useState)(""),[M,N]=(0,c.useState)(null),[O,P]=(0,c.useState)(!1),[Q,R]=(0,c.useState)({scopeKey:B,open:!1}),[S,T]=(0,c.useState)({scopeKey:B,unit:null}),[U,V]=(0,c.useState)({scopeKey:B,unit:null}),[W,X]=(0,c.useState)({scopeKey:B,unit:null}),Y=C.scopeKey===B?C.tokenStack:[],Z=C.scopeKey===B?C.currentToken:void 0,$=Q.scopeKey===B&&Q.open,_=S.scopeKey===B?S.unit:null,aa=U.scopeKey===B?U.unit:null,ab=W.scopeKey===B?W.unit:null,ac=function(a,b,c,d=20){return(0,q.useQuery)({queryKey:["memory","stores",a,"units",b,c,d],queryFn:()=>(0,r.listMemoryUnits)(a,b,{nextToken:c,limit:d}),enabled:!!a&&!!b?.appId,staleTime:3e4})}(x,z.appId?z:null,Z,F),ad=(a=(0,t.useQueryClient)(),(0,s.useMutation)({mutationFn:a=>(0,r.deleteMemoryUnit)(a),onSuccess:(b,c)=>{a.invalidateQueries({queryKey:["memory","stores",c.memoryStoreName,"units"]}),a.invalidateQueries({queryKey:["memory","stores",c.memoryStoreName,"requests"]})}})),ae=ac.data?.items??[];function af(a,b){return a.scope?.appId?a.scope:b}function ag(a,b){let c=E(a),d=af(a,b);return!!d.appId&&!(0,u.hasWildcardScope)(d)&&"-"!==c}let ah=_?af(_,z):z,ai=aa?af(aa,z):z,aj=ab?af(ab,z):z;async function ak(){if(!ab)return;let a=E(ab);if("-"===a)return void i.toast.error("记忆单元缺少 ID,无法删除");if(!ag(ab,z))return void i.toast.error("当前记忆单元缺少精确 scope,无法删除");try{await ad.mutateAsync({memoryStoreName:x,memoryId:a,scope:aj}),i.toast.success("记忆单元已删除"),X({scopeKey:B,unit:null}),ac.refetch()}catch(a){i.toast.error(a instanceof Error?a.message:"删除记忆单元失败")}}async function al(){if(!I.trim())return void i.toast.error("请输入 Memory ID");if(!z.appId)return void i.toast.error("请先设置精确的 Scope");P(!0);try{let a=await (0,K.apiGet)(`/api/v1/memory/stores/${encodeURIComponent(x)}/units/${encodeURIComponent(I.trim())}?${new URLSearchParams({appId:z.appId,...z.tenantId?{tenantId:z.tenantId}:{},...z.agentId?{agentId:z.agentId}:{},...z.runId?{runId:z.runId}:{}}).toString()}`);N(a.memory),i.toast.success("找到记忆单元")}catch(a){N(null),i.toast.error(a instanceof Error?a.message:"未找到该记忆单元")}finally{P(!1)}}function am(){L(""),N(null)}let an=M?[M]:ae,ao=M?1:ac.data?.totalCount??0;return ac.isLoading&&!M?(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsx)(o.Skeleton,{className:"h-8 w-48"}),(0,b.jsx)(o.Skeleton,{className:"h-10 w-full"}),(0,b.jsx)(o.Skeleton,{className:"h-64 w-full"})]}):(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsx)(l.PageHeader,{title:`长期记忆 (${ao})`,children:(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(n.RefreshButton,{loading:ac.isRefetching,onClick:()=>{ac.refetch(),am()}}),A?(0,b.jsx)(p.TooltipProvider,{delayDuration:200,children:(0,b.jsxs)(p.Tooltip,{children:[(0,b.jsx)(p.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("span",{tabIndex:0,className:"inline-flex",children:(0,b.jsxs)(j.Button,{disabled:!0,className:"pointer-events-none",children:[(0,b.jsx)(g.Plus,{className:"mr-2 h-4 w-4"}),"添加记忆"]})})}),(0,b.jsx)(p.TooltipContent,{side:"bottom",className:"max-w-[240px]",children:(0,b.jsx)("p",{children:"请在上方 Scope 栏中为所有字段设置具体值后再添加记忆"})})]})}):(0,b.jsxs)(j.Button,{onClick:()=>R({scopeKey:B,open:!0}),children:[(0,b.jsx)(g.Plus,{className:"mr-2 h-4 w-4"}),"添加记忆"]})]})}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)(k.Input,{value:I,onChange:a=>L(a.target.value),placeholder:"输入 Memory ID 查询单条记忆...",className:"max-w-md",onKeyDown:a=>"Enter"===a.key&&al()}),(0,b.jsxs)(j.Button,{onClick:al,disabled:O||!z.appId,children:[(0,b.jsx)(h.Search,{className:"mr-1.5 h-4 w-4"}),O?"查询中...":"查询"]}),M&&(0,b.jsx)(j.Button,{variant:"outline",onClick:am,children:"返回列表"})]}),A&&!M&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:"当前 scope 含通配符,仅支持只读查询,无法执行新增、查看详情、编辑或删除。"}),(0,b.jsx)(G,{units:an,readOnly:!!M,isActionDisabled:a=>!!M||!ag(a,z),onView:a=>T({scopeKey:B,unit:a}),onEdit:a=>V({scopeKey:B,unit:a}),onDelete:a=>X({scopeKey:B,unit:a})}),!M&&(0,b.jsxs)("div",{className:"flex items-center justify-between py-2",children:[(0,b.jsxs)("span",{className:"text-sm text-muted-foreground",children:["第 ",Y.length+1," 页"]}),(0,b.jsxs)("div",{className:"flex items-center gap-4",children:[(0,b.jsxs)(j.Button,{variant:"outline",size:"sm",onClick:()=>{D(a=>{let b=[...a.scopeKey===B?a.tokenStack:[]],c=b.pop();return{scopeKey:B,tokenStack:b,currentToken:c||void 0}})},disabled:0===Y.length,children:[(0,b.jsx)(e.ChevronLeft,{className:"mr-1 h-4 w-4"}),"上一页"]}),(0,b.jsxs)(j.Button,{variant:"outline",size:"sm",onClick:()=>{ac.data?.nextToken&&D(a=>({scopeKey:B,tokenStack:[...a.scopeKey===B?a.tokenStack:[],Z??""],currentToken:ac.data.nextToken}))},disabled:!ac.data?.nextToken,children:["下一页",(0,b.jsx)(f.ChevronRight,{className:"ml-1 h-4 w-4"})]})]})]}),(0,b.jsx)(y,{memoryStoreName:x,scope:z,open:$,onOpenChange:a=>R({scopeKey:B,open:a}),onSuccess:()=>{ac.refetch(),am()}}),(0,b.jsx)(J,{memoryStoreName:x,scope:ah,unit:_,open:!!_&&ag(_,z),onOpenChange:a=>{a||T({scopeKey:B,unit:null})}}),(0,b.jsx)(H,{memoryStoreName:x,scope:ai,unit:aa,open:!!aa&&ag(aa,z),onOpenChange:a=>{a||V({scopeKey:B,unit:null})}}),(0,b.jsx)(m.ConfirmDialog,{open:!!ab&&ag(ab,z),onOpenChange:a=>{a||X({scopeKey:B,unit:null})},title:"删除记忆单元",description:`确定要删除记忆单元 "${ab?E(ab):""}" 吗?此操作不可撤销。`,variant:"danger",onConfirm:ak})]})}],25909)}];
|
|
1
|
+
module.exports=[25909,a=>{"use strict";var b=a.i(34020),c=a.i(71938),d=a.i(80470),e=a.i(65173),f=a.i(7704),g=a.i(25825),h=a.i(9380),i=a.i(63265),j=a.i(76192),k=a.i(72518),l=a.i(2482),m=a.i(24567),n=a.i(87617),o=a.i(4395),p=a.i(34841),q=a.i(83366),r=a.i(21347),s=a.i(25377),t=a.i(39096),u=a.i(33596),v=a.i(77072),w=a.i(8264),x=a.i(43836),y=a.i(62491),z=a.i(70535);function A({memoryStoreName:a,scope:d,open:e,onOpenChange:f,onSuccess:g}){let h,k=(h=(0,v.useQueryClient)(),(0,u.useMutation)({mutationFn:a=>(0,r.addMemory)(a),onSuccess:()=>{(0,s.invalidateMemoryQueries)(h)}})),[l,m]=(0,c.useState)(""),[n,o]=(0,c.useState)("");async function p(){try{let b=(0,w.parseJsonObject)(n);if(!l.trim())return void i.toast.error("请输入要提取为记忆的文本");await k.mutateAsync({memoryStoreName:a,scope:d,text:l.trim(),metadata:b,sync:!1}),i.toast.success("记忆正在加工中,请稍后查看"),m(""),o(""),f(!1),g?.()}catch(a){i.toast.error(a instanceof Error?a.message:"添加记忆失败")}}return(0,b.jsx)(x.Dialog,{open:e,onOpenChange:f,children:(0,b.jsxs)(x.DialogContent,{className:"max-w-xl",children:[(0,b.jsx)(x.DialogHeader,{children:(0,b.jsx)(x.DialogTitle,{children:"添加记忆"})}),(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(y.Label,{children:"Text"}),(0,b.jsx)(z.Textarea,{value:l,onChange:a=>m(a.target.value),placeholder:"输入要提取为记忆的文本...",rows:5})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(y.Label,{children:"Metadata JSON(可选)"}),(0,b.jsx)(z.Textarea,{value:n,onChange:a=>o(a.target.value),placeholder:'{"source":"dashboard"}',rows:3})]}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:"记忆将通过异步方式处理,添加后可在记忆单元中查看结果。"})]}),(0,b.jsxs)(x.DialogFooter,{children:[(0,b.jsx)(j.Button,{variant:"outline",onClick:()=>f(!1),children:"取消"}),(0,b.jsx)(j.Button,{onClick:p,disabled:k.isPending,children:k.isPending?"提交中...":"提交"})]})]})})}var B=a.i(87491),C=a.i(12537),D=a.i(55295),E=a.i(23301);let F="当前记忆单元缺少精确 scope 或 ID,无法操作";function G(a){return a.id??a.memoryId??"-"}let H=(0,c.memo)(function({unit:a,actionDisabled:d,onView:e,onEdit:f,onDelete:g}){let h=(0,c.useCallback)(()=>e?.(a),[e,a]),i=(0,c.useCallback)(()=>f?.(a),[f,a]),k=(0,c.useCallback)(()=>g?.(a),[g,a]);return(0,b.jsxs)(E.TableRow,{children:[(0,b.jsx)(E.TableCell,{className:"font-mono text-xs",children:G(a)}),(0,b.jsxs)(E.TableCell,{className:"max-w-[420px]",children:[(0,b.jsx)("p",{className:"line-clamp-2 text-sm",children:a.text}),a.search_text&&(0,b.jsx)("p",{className:"mt-1 line-clamp-1 text-xs text-muted-foreground",children:a.search_text})]}),(0,b.jsx)(E.TableCell,{children:a.unit_type??"-"}),(0,b.jsx)(E.TableCell,{children:a.version??"-"}),(0,b.jsx)(E.TableCell,{className:"text-xs text-muted-foreground",children:function(a){if(!a)return"-";try{let b=new Date(a);if(isNaN(b.getTime()))return String(a);return b.toLocaleString("zh-CN",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"})}catch{return String(a)}}(a.created_at??a.createdAt)}),(0,b.jsx)(E.TableCell,{children:(0,b.jsxs)("div",{className:"flex justify-end gap-1",children:[(0,b.jsx)(j.Button,{type:"button",variant:"ghost",size:"icon",disabled:d,onClick:h,title:d?F:"查看详情",children:(0,b.jsx)(B.Eye,{className:"h-4 w-4"})}),(0,b.jsx)(j.Button,{type:"button",variant:"ghost",size:"icon",disabled:d,onClick:i,title:d?F:"编辑",children:(0,b.jsx)(C.Pencil,{className:"h-4 w-4"})}),(0,b.jsx)(j.Button,{type:"button",variant:"ghost",size:"icon",disabled:d,onClick:k,title:d?F:"删除",children:(0,b.jsx)(D.Trash2,{className:"h-4 w-4 text-[hsl(var(--destructive))]"})})]})})]})});function I({units:a,readOnly:c=!1,isActionDisabled:d,onView:e,onEdit:f,onDelete:g}){return a.length?(0,b.jsx)("div",{className:"rounded-lg border",children:(0,b.jsxs)(E.Table,{children:[(0,b.jsx)(E.TableHeader,{children:(0,b.jsxs)(E.TableRow,{children:[(0,b.jsx)(E.TableHead,{className:"w-[180px]",children:"ID"}),(0,b.jsx)(E.TableHead,{children:"内容"}),(0,b.jsx)(E.TableHead,{className:"w-[140px]",children:"类型"}),(0,b.jsx)(E.TableHead,{className:"w-[120px]",children:"版本"}),(0,b.jsx)(E.TableHead,{className:"w-[170px]",children:"创建时间"}),(0,b.jsx)(E.TableHead,{className:"w-[160px] text-right",children:"操作"})]})}),(0,b.jsx)(E.TableBody,{children:a.map((a,h)=>{let i=c||d?.(a)||!1,j=G(a);return(0,b.jsx)(H,{unit:a,actionDisabled:i,onView:e,onEdit:f,onDelete:g},"-"===j?h:j)})})]})}):(0,b.jsx)("div",{className:"rounded-lg border border-dashed py-12 text-center text-sm text-muted-foreground",children:"当前 scope 下暂无记忆单元"})}function J({memoryStoreName:a,scope:c,unit:d,open:e,onOpenChange:f}){let g,h=(g=(0,v.useQueryClient)(),(0,u.useMutation)({mutationFn:a=>(0,r.updateMemoryUnit)(a),onSuccess:()=>{(0,s.invalidateMemoryQueries)(g)}})),k=d?G(d):"empty";async function l(b){if(b.preventDefault(),!d)return;let e=G(d);if("-"===e)return void i.toast.error("记忆单元缺少 ID,无法编辑");let g=new FormData(b.currentTarget),j=String(g.get("text")??"").trim(),k=String(g.get("metadata")??"");try{await h.mutateAsync({memoryStoreName:a,memoryId:e,scope:c,text:j||void 0,metadata:(0,w.parseJsonObject)(k)}),i.toast.success("记忆单元已更新"),f(!1)}catch(a){i.toast.error(a instanceof Error?a.message:"更新记忆失败")}}return(0,b.jsx)(x.Dialog,{open:e,onOpenChange:f,children:(0,b.jsxs)(x.DialogContent,{className:"max-w-2xl",children:[(0,b.jsx)(x.DialogHeader,{children:(0,b.jsx)(x.DialogTitle,{children:"编辑记忆单元"})}),(0,b.jsxs)("form",{onSubmit:l,className:"space-y-4",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(y.Label,{children:"Text"}),(0,b.jsx)(z.Textarea,{name:"text",defaultValue:d?.text??"",rows:5})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(y.Label,{children:"Metadata JSON"}),(0,b.jsx)(z.Textarea,{name:"metadata",defaultValue:d?.metadata?JSON.stringify(d.metadata,null,2):"",rows:4})]}),(0,b.jsxs)(x.DialogFooter,{children:[(0,b.jsx)(j.Button,{type:"button",variant:"outline",onClick:()=>f(!1),children:"取消"}),(0,b.jsx)(j.Button,{type:"submit",disabled:h.isPending,children:h.isPending?"保存中...":"保存"})]})]},k)]})})}function K({label:a,children:c}){return(0,b.jsxs)("div",{className:"grid grid-cols-[120px_1fr] items-start gap-3",children:[(0,b.jsx)("span",{className:"pt-0.5 text-xs font-medium text-muted-foreground",children:a}),(0,b.jsx)("div",{className:"min-w-0 text-sm text-foreground",children:c})]})}function L({memoryStoreName:a,scope:c,unit:d,open:e,onOpenChange:f}){let g=d?G(d):void 0,h=function(a,b,c,d=!0){let{context:e,ready:f}=(0,t.useRuntimeContext)();return(0,q.useQuery)({queryKey:s.queryKeys.memoryUnit(e.dataScopeKey,a,b,c),queryFn:()=>(0,r.getMemoryUnit)({memoryStoreName:a,memoryId:b,scope:c}),enabled:f&&d&&!!a&&!!c?.appId&&!!b&&"-"!==b})}(a,g,c,e),i=h.data?.memory;return(0,b.jsx)(x.Dialog,{open:e,onOpenChange:f,children:(0,b.jsxs)(x.DialogContent,{className:"max-w-2xl",children:[(0,b.jsx)(x.DialogHeader,{children:(0,b.jsx)(x.DialogTitle,{children:"记忆单元详情"})}),d?"-"===g?(0,b.jsx)("p",{className:"text-sm text-destructive",children:"记忆单元缺少 ID,无法加载详情。"}):h.isLoading?(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(o.Skeleton,{className:"h-4 w-16"}),(0,b.jsx)(o.Skeleton,{className:"h-5 w-64"})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(o.Skeleton,{className:"h-4 w-16"}),(0,b.jsx)(o.Skeleton,{className:"h-24 w-full"})]}),(0,b.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2",children:[(0,b.jsx)(o.Skeleton,{className:"h-14 w-full"}),(0,b.jsx)(o.Skeleton,{className:"h-14 w-full"}),(0,b.jsx)(o.Skeleton,{className:"h-14 w-full"}),(0,b.jsx)(o.Skeleton,{className:"h-14 w-full"})]})]}):h.isError?(0,b.jsx)("p",{className:"rounded-md bg-destructive/5 p-3 text-sm text-destructive",children:h.error instanceof Error?h.error.message:"加载记忆单元详情失败"}):i?(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsx)(K,{label:"ID",children:(0,b.jsx)("span",{className:"break-all font-mono text-xs",children:i.id??i.memoryId??"-"})}),(0,b.jsx)(K,{label:"内容",children:(0,b.jsx)("p",{className:"whitespace-pre-wrap rounded-md bg-muted p-3 text-sm",children:i.text})}),i.search_text&&(0,b.jsx)(K,{label:"Search Text",children:(0,b.jsx)("p",{className:"whitespace-pre-wrap rounded-md bg-muted p-3 text-sm",children:i.search_text})}),(0,b.jsx)(K,{label:"Scope",children:(0,w.formatScope)(i.scope)}),(0,b.jsx)(K,{label:"类型",children:i.unit_type??"-"}),(0,b.jsx)(K,{label:"Salience",children:i.salience??"-"}),(0,b.jsx)(K,{label:"版本",children:i.version??"-"}),i.metadata&&(0,b.jsx)(K,{label:"Metadata",children:(0,b.jsx)("pre",{className:"overflow-auto rounded-md bg-muted p-3 text-xs",children:JSON.stringify(i.metadata,null,2)})})]}):(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:"未找到记忆单元详情。"}):null]})})}var M=a.i(53141);a.s(["default",0,function(){let a,x=(0,d.useParams)(),y=(0,d.useSearchParams)(),z=decodeURIComponent(x.store),B=(0,c.useMemo)(()=>(0,w.buildMemoryScope)(y),[y.toString()]),C=(0,w.hasWildcardScope)(B),D=(0,c.useMemo)(()=>`${B.appId}|${B.tenantId??""}|${B.agentId??""}|${B.runId??""}`,[B.appId,B.tenantId,B.agentId,B.runId]),[E,F]=(0,c.useState)({scopeKey:D,tokenStack:[]}),[H]=(0,c.useState)(20),[K,N]=(0,c.useState)(""),[O,P]=(0,c.useState)(null),[Q,R]=(0,c.useState)(!1),[S,T]=(0,c.useState)({scopeKey:D,open:!1}),[U,V]=(0,c.useState)({scopeKey:D,unit:null}),[W,X]=(0,c.useState)({scopeKey:D,unit:null}),[Y,Z]=(0,c.useState)({scopeKey:D,unit:null}),$=E.scopeKey===D?E.tokenStack:[],_=E.scopeKey===D?E.currentToken:void 0,aa=S.scopeKey===D&&S.open,ab=U.scopeKey===D?U.unit:null,ac=W.scopeKey===D?W.unit:null,ad=Y.scopeKey===D?Y.unit:null,ae=function(a,b,c,d=20){let{context:e,ready:f}=(0,t.useRuntimeContext)();return(0,q.useQuery)({queryKey:s.queryKeys.memoryUnits(e.dataScopeKey,a,b,c,d),queryFn:()=>(0,r.listMemoryUnits)(a,b,{nextToken:c,limit:d}),enabled:f&&!!a&&!!b?.appId,staleTime:3e4})}(z,B.appId?B:null,_,H),af=(a=(0,v.useQueryClient)(),(0,u.useMutation)({mutationFn:a=>(0,r.deleteMemoryUnit)(a),onSuccess:()=>{(0,s.invalidateMemoryQueries)(a)}})),ag=ae.data?.items??[];function ah(a,b){return a.scope?.appId?a.scope:b}function ai(a,b){let c=G(a),d=ah(a,b);return!!d.appId&&!(0,w.hasWildcardScope)(d)&&"-"!==c}let aj=ab?ah(ab,B):B,ak=ac?ah(ac,B):B,al=ad?ah(ad,B):B;async function am(){if(!ad)return;let a=G(ad);if("-"===a)return void i.toast.error("记忆单元缺少 ID,无法删除");if(!ai(ad,B))return void i.toast.error("当前记忆单元缺少精确 scope,无法删除");try{await af.mutateAsync({memoryStoreName:z,memoryId:a,scope:al}),i.toast.success("记忆单元已删除"),Z({scopeKey:D,unit:null}),ae.refetch()}catch(a){i.toast.error(a instanceof Error?a.message:"删除记忆单元失败")}}async function an(){if(!K.trim())return void i.toast.error("请输入 Memory ID");if(!B.appId)return void i.toast.error("请先设置精确的 Scope");R(!0);try{let a=await (0,M.apiGet)(`/api/v1/memory/stores/${encodeURIComponent(z)}/units/${encodeURIComponent(K.trim())}?${new URLSearchParams({appId:B.appId,...B.tenantId?{tenantId:B.tenantId}:{},...B.agentId?{agentId:B.agentId}:{},...B.runId?{runId:B.runId}:{}}).toString()}`);P(a.memory),i.toast.success("找到记忆单元")}catch(a){P(null),i.toast.error(a instanceof Error?a.message:"未找到该记忆单元")}finally{R(!1)}}function ao(){N(""),P(null)}let ap=O?[O]:ag,aq=O?1:ae.data?.totalCount??0;return ae.isLoading&&!O?(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsx)(o.Skeleton,{className:"h-8 w-48"}),(0,b.jsx)(o.Skeleton,{className:"h-10 w-full"}),(0,b.jsx)(o.Skeleton,{className:"h-64 w-full"})]}):(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsx)(l.PageHeader,{title:`长期记忆 (${aq})`,children:(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(n.RefreshButton,{loading:ae.isRefetching,onClick:()=>{ae.refetch(),ao()}}),C?(0,b.jsx)(p.TooltipProvider,{delayDuration:200,children:(0,b.jsxs)(p.Tooltip,{children:[(0,b.jsx)(p.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("span",{tabIndex:0,className:"inline-flex",children:(0,b.jsxs)(j.Button,{disabled:!0,className:"pointer-events-none",children:[(0,b.jsx)(g.Plus,{className:"mr-2 h-4 w-4"}),"添加记忆"]})})}),(0,b.jsx)(p.TooltipContent,{side:"bottom",className:"max-w-[240px]",children:(0,b.jsx)("p",{children:"请在上方 Scope 栏中为所有字段设置具体值后再添加记忆"})})]})}):(0,b.jsxs)(j.Button,{onClick:()=>T({scopeKey:D,open:!0}),children:[(0,b.jsx)(g.Plus,{className:"mr-2 h-4 w-4"}),"添加记忆"]})]})}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)(k.Input,{value:K,onChange:a=>N(a.target.value),placeholder:"输入 Memory ID 查询单条记忆...",className:"max-w-md",onKeyDown:a=>"Enter"===a.key&&an()}),(0,b.jsxs)(j.Button,{onClick:an,disabled:Q||!B.appId,children:[(0,b.jsx)(h.Search,{className:"mr-1.5 h-4 w-4"}),Q?"查询中...":"查询"]}),O&&(0,b.jsx)(j.Button,{variant:"outline",onClick:ao,children:"返回列表"})]}),C&&!O&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:"当前 scope 含通配符,仅支持只读查询,无法执行新增、查看详情、编辑或删除。"}),(0,b.jsx)(I,{units:ap,readOnly:!!O,isActionDisabled:a=>!!O||!ai(a,B),onView:a=>V({scopeKey:D,unit:a}),onEdit:a=>X({scopeKey:D,unit:a}),onDelete:a=>Z({scopeKey:D,unit:a})}),!O&&(0,b.jsxs)("div",{className:"flex items-center justify-between py-2",children:[(0,b.jsxs)("span",{className:"text-sm text-muted-foreground",children:["第 ",$.length+1," 页"]}),(0,b.jsxs)("div",{className:"flex items-center gap-4",children:[(0,b.jsxs)(j.Button,{variant:"outline",size:"sm",onClick:()=>{F(a=>{let b=[...a.scopeKey===D?a.tokenStack:[]],c=b.pop();return{scopeKey:D,tokenStack:b,currentToken:c||void 0}})},disabled:0===$.length,children:[(0,b.jsx)(e.ChevronLeft,{className:"mr-1 h-4 w-4"}),"上一页"]}),(0,b.jsxs)(j.Button,{variant:"outline",size:"sm",onClick:()=>{ae.data?.nextToken&&F(a=>({scopeKey:D,tokenStack:[...a.scopeKey===D?a.tokenStack:[],_??""],currentToken:ae.data.nextToken}))},disabled:!ae.data?.nextToken,children:["下一页",(0,b.jsx)(f.ChevronRight,{className:"ml-1 h-4 w-4"})]})]})]}),(0,b.jsx)(A,{memoryStoreName:z,scope:B,open:aa,onOpenChange:a=>T({scopeKey:D,open:a}),onSuccess:()=>{ae.refetch(),ao()}}),(0,b.jsx)(L,{memoryStoreName:z,scope:aj,unit:ab,open:!!ab&&ai(ab,B),onOpenChange:a=>{a||V({scopeKey:D,unit:null})}}),(0,b.jsx)(J,{memoryStoreName:z,scope:ak,unit:ac,open:!!ac&&ai(ac,B),onOpenChange:a=>{a||X({scopeKey:D,unit:null})}}),(0,b.jsx)(m.ConfirmDialog,{open:!!ad&&ai(ad,B),onOpenChange:a=>{a||Z({scopeKey:D,unit:null})},title:"删除记忆单元",description:`确定要删除记忆单元 "${ad?G(ad):""}" 吗?此操作不可撤销。`,variant:"danger",onConfirm:am})]})}],25909)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=dashboard_src_app_%28dashboard%29_memory_%5Bstore%5D_units_page_tsx_0.6xnei._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[97703,a=>{"use strict";var b=a.i(34020),c=a.i(71938);a.s(["default",0,function({error:a,reset:
|
|
1
|
+
module.exports=[97703,a=>{"use strict";var b=a.i(34020),c=a.i(71938),d=a.i(23834);a.s(["default",0,function({error:a,reset:e}){return(0,c.useEffect)(()=>{console.error("Global error:",a),(0,d.reportClientError)({event:"browser.error_boundary.global",message:a.message,name:a.name,stack:a.stack,digest:a.digest})},[a]),(0,b.jsxs)("div",{className:"flex min-h-screen flex-col items-center justify-center gap-4 px-6",children:[(0,b.jsx)("h2",{className:"font-display text-3xl font-semibold tracking-tight text-foreground",children:"出错了"}),(0,b.jsx)("p",{className:"max-w-md text-center text-sm text-muted-foreground",children:"页面加载时出错了,您可以重试或返回上一步。"}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)("button",{type:"button",onClick:e,className:"rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground shadow-sm transition-colors hover:bg-primary/90",children:"重试"}),(0,b.jsx)("button",{type:"button",onClick:()=>{},className:"rounded-md border border-border bg-background px-4 py-2 text-sm font-medium text-foreground shadow-sm transition-colors hover:bg-muted",children:"返回首页"})]}),a.digest&&(0,b.jsxs)("details",{className:"mt-4 max-w-2xl rounded-md border border-border bg-muted/40 px-4 py-3 text-xs text-muted-foreground",children:[(0,b.jsx)("summary",{className:"cursor-pointer select-none font-medium",children:"技术详情"}),a.digest&&(0,b.jsxs)("p",{className:"mt-2",children:[(0,b.jsx)("span",{className:"font-medium",children:"Digest:"})," ",(0,b.jsx)("code",{className:"font-mono",children:a.digest})]}),a.message&&(0,b.jsxs)("p",{className:"mt-2",children:[(0,b.jsx)("span",{className:"font-medium",children:"Message:"})," ",(0,b.jsx)("code",{className:"font-mono break-all",children:a.message})]}),!1]})]})}])}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=dashboard_src_app_error_tsx_01x7ppm._.js.map
|