@tablestore/tablestore-agent-cli 0.1.9 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dashboard-runtime/dashboard/.next/BUILD_ID +1 -1
- package/dist/dashboard-runtime/dashboard/.next/build-manifest.json +3 -3
- package/dist/dashboard-runtime/dashboard/.next/prerender-manifest.json +3 -3
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/chat/page.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/documents/page.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/documents/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/documents/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/page.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/qa/page.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/qa/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/qa/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/retrieval/page.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/retrieval/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/retrieval/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/settings/page.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/settings/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/settings/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/create/page.js +1 -1
- 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.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/[id]/page.js +1 -1
- 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.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.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/messages/page.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/messages/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/messages/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/page.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/requests/page/react-loadable-manifest.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/requests/page.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/requests/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/requests/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/search/page.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/search/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/search/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/settings/page.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/settings/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/settings/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/units/page.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/units/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/units/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/create/page.js +1 -1
- 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.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/projects/page.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/projects/page.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/projects/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.html +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.html +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.rsc +3 -3
- package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
- package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
- package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/auth/status/route.js.nft.json +1 -1
- 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.nft.json +1 -1
- 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.nft.json +1 -1
- 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.nft.json +1 -1
- 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.nft.json +1 -1
- 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.nft.json +1 -1
- 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.nft.json +1 -1
- 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.nft.json +1 -1
- 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.nft.json +1 -1
- 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.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/logs/client/route.js.nft.json +1 -1
- 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.nft.json +1 -1
- 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.nft.json +1 -1
- 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.nft.json +1 -1
- 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.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/index.html +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/index.rsc +3 -3
- package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/_full.segment.rsc +3 -3
- package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/_index.segment.rsc +3 -3
- 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.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 +5 -5
- package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/_full.segment.rsc +5 -5
- package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/_head.segment.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/_index.segment.rsc +3 -3
- package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/_tree.segment.rsc +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/onboarding/__PAGE__.segment.rsc +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/onboarding.segment.rsc +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/app/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/0b1r_app_(dashboard)_knowledge-base_[name]_documents_documents-client_tsx_0g2uxmt._.js +2 -2
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0aqzu8w._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0id.4_g._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0jb9ccl._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0jhpb-b._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0p7j-9i._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0.1szyw._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_01-2v37._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0251rsp._.js +7 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_038vjn1._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_04f2u4t._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_06tznmj._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_09y~hs8._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0_ow0x1._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0ddbh97._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0f4u0.1._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0fj8l5g._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0hnw-ok._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0j-q~ro._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0jghj2_._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0l~-9i0._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0mtqe24._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0n4gd_6._.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/_0q748rf._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0t373jc._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0u4elhp._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0vtm7dh._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0xdioxg._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_12guzbo._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_12r9c8h._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_00ofp7q._.js +3 -0
- 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_0ejgygh._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_0jns2ew._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_0o9jhcn._.js +9 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_0xf3ffa._.js +3 -0
- 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_components_0ls1exu._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_components_0ugdjlb._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_components_shared_relative-time_tsx_0b7s9rc._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_components_ui_dropdown-menu_tsx_0c~d-fd._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_components_ui_select_tsx_0ys.i47._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/node_modules__pnpm_0ld4qfm._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/node_modules__pnpm_125b4co._.js +3 -0
- package/dist/dashboard-runtime/dashboard/.next/server/middleware-build-manifest.js +3 -3
- package/dist/dashboard-runtime/dashboard/.next/server/pages/404.html +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/pages/500.html +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/server-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/server-reference-manifest.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0-2yqm.ft6yzy.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0-ov0wxgu5b65.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0.2e8ciiogw04.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/00-qnlax_4630.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/03zdsc.dicedw.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/069zf4m5f.se2.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/08e9vvmr~0bqr.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/08i99xsvs8o5s.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/08tdws.ontiw1.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0azwigiwuhh08.css +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0b54rtt1-cxht.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/{154aheeo3m6bg.js → 0bpginsuceywq.js} +1 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/{0ai8f~-9ig.gz.js → 0cdo38.8y_jr2.js} +5 -5
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0cto67_iw~p9z.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0cy.fvgx7dgqx.js +4 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0fa.nak91jfo-.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0fv6q06wgazh_.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0g9y74cipd10n.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0ga6neugwmh.1.js +5 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0h77.bqx5ltem.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0ix_suxk3spjj.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0k-x6_7dhqb~c.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0lrw.bnws62y9.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0mea2ylxe.umh.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/{0yzz97.2e6if6.js → 0n42fh.zwyk35.js} +5 -5
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/{0dqag6qsw7xv8.js → 0px2r0l_3kp2t.js} +1 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0q6lk_p74rti7.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0t0yqi68~eil6.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0td9nhfbpbmyt.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0u39cc6mmeqb3.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0u6_s-0w8.yr..js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0uay29z9qqouw.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0v0e.nl_9fjba.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0wd0_x8u.jzur.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0wf-nssu2qd_2.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0x7pw1zo7nxno.js +1 -0
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/{05_578ka0ga8d.js → 12pz6ag1s~te_.js} +1 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/15bzqpm440jvz.js +1 -0
- package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/chat/page.tsx +39 -38
- package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/error.tsx +1 -1
- package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/knowledge-base/[name]/documents/documents-client.tsx +0 -1
- package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/knowledge-base/[name]/layout-client.tsx +191 -40
- package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/knowledge-base/[name]/qa/page.tsx +18 -19
- package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/knowledge-base/[name]/retrieval/retrieval-client.tsx +8 -7
- package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/layout.tsx +3 -10
- package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/memory/[store]/layout.tsx +128 -22
- package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/memory/[store]/search/page.tsx +15 -8
- package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/projects/page.tsx +1 -1
- package/dist/dashboard-runtime/dashboard/src/app/error.tsx +1 -1
- package/dist/dashboard-runtime/dashboard/src/app/globals.css +115 -95
- package/dist/dashboard-runtime/dashboard/src/app/not-found.tsx +1 -1
- package/dist/dashboard-runtime/dashboard/src/app/onboarding/page.tsx +2 -2
- package/dist/dashboard-runtime/dashboard/src/components/chat/add-mount-row.tsx +48 -39
- package/dist/dashboard-runtime/dashboard/src/components/documents/doc-chunks-dialog.tsx +49 -25
- package/dist/dashboard-runtime/dashboard/src/components/documents/doc-columns.tsx +57 -46
- package/dist/dashboard-runtime/dashboard/src/components/documents/doc-table.tsx +2 -4
- package/dist/dashboard-runtime/dashboard/src/components/documents/doc-toolbar.tsx +1 -1
- package/dist/dashboard-runtime/dashboard/src/components/layout/detail-sidebar.tsx +331 -0
- package/dist/dashboard-runtime/dashboard/src/components/layout/help-link.tsx +58 -0
- package/dist/dashboard-runtime/dashboard/src/components/layout/page-header.tsx +130 -11
- package/dist/dashboard-runtime/dashboard/src/components/layout/sidebar-instance-card.tsx +203 -0
- package/dist/dashboard-runtime/dashboard/src/components/layout/sidebar-item.tsx +14 -11
- package/dist/dashboard-runtime/dashboard/src/components/layout/sidebar-mobile.tsx +37 -29
- package/dist/dashboard-runtime/dashboard/src/components/layout/sidebar-usage-stats.tsx +26 -0
- package/dist/dashboard-runtime/dashboard/src/components/layout/sidebar.tsx +94 -46
- package/dist/dashboard-runtime/dashboard/src/components/layout/theme-toggle.tsx +161 -41
- package/dist/dashboard-runtime/dashboard/src/components/memory/requests-histogram-chart.tsx +2 -2
- package/dist/dashboard-runtime/dashboard/src/components/qa/qa-chat-panel.tsx +1 -1
- package/dist/dashboard-runtime/dashboard/src/components/retrieval/retrieval-form.tsx +100 -17
- package/dist/dashboard-runtime/dashboard/src/components/retrieval/retrieval-rerank-fields.tsx +60 -23
- package/dist/dashboard-runtime/dashboard/src/components/shared/empty-state.tsx +1 -1
- package/dist/dashboard-runtime/dashboard/src/components/shared/error-state.tsx +1 -1
- package/dist/dashboard-runtime/dashboard/src/components/shared/llm-model-selector.tsx +160 -70
- package/dist/dashboard-runtime/dashboard/src/components/shared/relative-time.tsx +30 -6
- package/dist/dashboard-runtime/dashboard/src/components/ui/badge.tsx +16 -5
- package/dist/dashboard-runtime/dashboard/src/components/ui/button.tsx +9 -8
- package/dist/dashboard-runtime/dashboard/src/components/ui/card.tsx +14 -8
- package/dist/dashboard-runtime/dashboard/src/components/ui/chat-bubble.tsx +60 -0
- package/dist/dashboard-runtime/dashboard/src/components/ui/command.tsx +1 -1
- package/dist/dashboard-runtime/dashboard/src/components/ui/data-card.tsx +57 -0
- package/dist/dashboard-runtime/dashboard/src/components/ui/detail-section.tsx +40 -0
- package/dist/dashboard-runtime/dashboard/src/components/ui/dialog.tsx +7 -7
- package/dist/dashboard-runtime/dashboard/src/components/ui/dropdown-menu.tsx +6 -6
- package/dist/dashboard-runtime/dashboard/src/components/ui/empty-state.tsx +42 -0
- package/dist/dashboard-runtime/dashboard/src/components/ui/filter-pill.tsx +90 -0
- package/dist/dashboard-runtime/dashboard/src/components/ui/form.tsx +3 -3
- package/dist/dashboard-runtime/dashboard/src/components/ui/input.tsx +5 -1
- package/dist/dashboard-runtime/dashboard/src/components/ui/item-card.tsx +88 -0
- package/dist/dashboard-runtime/dashboard/src/components/ui/label.tsx +1 -1
- package/dist/dashboard-runtime/dashboard/src/components/ui/memory-row.tsx +63 -0
- package/dist/dashboard-runtime/dashboard/src/components/ui/mini-stat.tsx +48 -0
- package/dist/dashboard-runtime/dashboard/src/components/ui/nav-tab-bar.tsx +60 -0
- package/dist/dashboard-runtime/dashboard/src/components/ui/playground-shell.tsx +69 -0
- package/dist/dashboard-runtime/dashboard/src/components/ui/popover.tsx +1 -1
- package/dist/dashboard-runtime/dashboard/src/components/ui/result-row.tsx +37 -0
- package/dist/dashboard-runtime/dashboard/src/components/ui/scope-tag.tsx +30 -0
- package/dist/dashboard-runtime/dashboard/src/components/ui/select.tsx +6 -5
- package/dist/dashboard-runtime/dashboard/src/components/ui/sheet.tsx +4 -4
- package/dist/dashboard-runtime/dashboard/src/components/ui/sonner.tsx +1 -1
- package/dist/dashboard-runtime/dashboard/src/components/ui/stat-card.tsx +58 -0
- package/dist/dashboard-runtime/dashboard/src/components/ui/table.tsx +13 -6
- package/dist/dashboard-runtime/dashboard/src/components/ui/textarea.tsx +4 -1
- package/dist/dashboard-runtime/dashboard/src/components/ui/tooltip.tsx +1 -1
- package/dist/dashboard-runtime/dashboard/src/components/ui/usage-card.tsx +43 -0
- package/dist/dashboard-runtime/dashboard/src/config/navigation.ts +50 -9
- package/dist/dashboard-runtime/dashboard/tailwind.config.ts +47 -12
- package/package.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0-kiaf5._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0_r24-c._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__11yei-s._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0303qx7._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_06l.12l._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_09eom0_._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0cd.__9._.js +0 -7
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0dqi8bq._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0e9y.xc._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0f9u8i2._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0fbjpet._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0i8py_a._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0jlt.cx._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0n5uozy._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0o32d.y._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0suxzcc._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0tyxwr3._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0u9md36._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0v4jb2q._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0vzw0pw._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0z0rlpq._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0zn.ayc._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_13l7w34._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_0o4a.29._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_0suis9l._.js +0 -9
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_10mc58z._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_app_(dashboard)_knowledge-base_[name]_layout-client_tsx_05momc5._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_components_retrieval_02c2uck._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/node_modules__pnpm_0qdd37m._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/node_modules__pnpm_11mc1z9._.js +0 -3
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0-etecbti5x22.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0-xqk6wfme5fu.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0.yj.t1hbwkg4.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/031-scv-8sah9.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/05ow1qzcjz3pz.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/07iqor2nl~iqc.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/087x52iesmpfe.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/08an3157he_ad.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0aak.679si-3m.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0c5tcbhzpwen7.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0dheju1t18upn.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0ffr1_o~ss8r8.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0h38qfpz-dmiu.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0l1fmyhvp-k49.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0pcp6pjjz7o49.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0pdq-gljpy7gd.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0q6-s11w9.sgo.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0rnm58mg0whfk.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0rxp5ykl1_lyb.js +0 -4
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0sg6z8.ci0l2b.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0v_~favugkv_a.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0x3ysmon_~xsv.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0x7sjde5wit~i.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0~alekqkiwwaq.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0~e2n9bhosscr.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0~i4llb9-utpp.css +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/0~n-y9cstar6b.js +0 -5
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/14z_j1qzycpe1.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/17k4h5zgalxqj.js +0 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/17m1wc_o0.5iz.js +0 -1
- package/dist/dashboard-runtime/dashboard/src/components/knowledge-base/kb-header.tsx +0 -91
- package/dist/dashboard-runtime/dashboard/src/components/knowledge-base/kb-tab-nav.tsx +0 -62
- package/dist/dashboard-runtime/dashboard/src/components/layout/breadcrumb-bar.tsx +0 -115
- package/dist/dashboard-runtime/dashboard/src/components/memory/memory-header.tsx +0 -46
- package/dist/dashboard-runtime/dashboard/src/components/memory/memory-tab-nav.tsx +0 -54
- /package/dist/dashboard-runtime/dashboard/.next/static/{nPPow7lCVx1fYDGH2XCxQ → uYteIiFtKdPhUhmILps5X}/_buildManifest.js +0 -0
- /package/dist/dashboard-runtime/dashboard/.next/static/{nPPow7lCVx1fYDGH2XCxQ → uYteIiFtKdPhUhmILps5X}/_clientMiddlewareManifest.js +0 -0
- /package/dist/dashboard-runtime/dashboard/.next/static/{nPPow7lCVx1fYDGH2XCxQ → uYteIiFtKdPhUhmILps5X}/_ssgManifest.js +0 -0
|
@@ -12,6 +12,12 @@ import {
|
|
|
12
12
|
DialogTitle,
|
|
13
13
|
DialogDescription,
|
|
14
14
|
} from "@/components/ui/dialog";
|
|
15
|
+
import {
|
|
16
|
+
Tooltip,
|
|
17
|
+
TooltipContent,
|
|
18
|
+
TooltipProvider,
|
|
19
|
+
TooltipTrigger,
|
|
20
|
+
} from "@/components/ui/tooltip";
|
|
15
21
|
import { listChunks, updateChunks } from "@/services/chunks";
|
|
16
22
|
import { queryKeys } from "@/lib/query-keys";
|
|
17
23
|
import { extractFileName } from "@/lib/utils";
|
|
@@ -145,34 +151,52 @@ function ChunkCard({
|
|
|
145
151
|
<div className="flex items-center gap-1">
|
|
146
152
|
{/* 状态开关 */}
|
|
147
153
|
{chunk.status !== "failed" && (
|
|
148
|
-
<
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
154
|
+
<TooltipProvider delayDuration={200}>
|
|
155
|
+
<Tooltip>
|
|
156
|
+
<TooltipTrigger asChild>
|
|
157
|
+
<Button
|
|
158
|
+
variant="ghost"
|
|
159
|
+
size="icon"
|
|
160
|
+
className="h-7 w-7"
|
|
161
|
+
onClick={handleToggleStatus}
|
|
162
|
+
disabled={toggling}
|
|
163
|
+
aria-label={isActive ? "停用切片" : "启用切片"}
|
|
164
|
+
>
|
|
165
|
+
{toggling ? (
|
|
166
|
+
<Loader2 className="h-3.5 w-3.5 animate-spin" />
|
|
167
|
+
) : isActive ? (
|
|
168
|
+
<Power className="h-3.5 w-3.5 text-[hsl(var(--success))]" />
|
|
169
|
+
) : (
|
|
170
|
+
<PowerOff className="h-3.5 w-3.5 text-[hsl(var(--muted-foreground))]" />
|
|
171
|
+
)}
|
|
172
|
+
</Button>
|
|
173
|
+
</TooltipTrigger>
|
|
174
|
+
<TooltipContent side="top">
|
|
175
|
+
{isActive
|
|
176
|
+
? "停用切片:检索时跳过此切片"
|
|
177
|
+
: "启用切片:纳入检索"}
|
|
178
|
+
</TooltipContent>
|
|
179
|
+
</Tooltip>
|
|
180
|
+
</TooltipProvider>
|
|
164
181
|
)}
|
|
165
182
|
{/* 编辑按钮 */}
|
|
166
183
|
{!editing && (
|
|
167
|
-
<
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
184
|
+
<TooltipProvider delayDuration={200}>
|
|
185
|
+
<Tooltip>
|
|
186
|
+
<TooltipTrigger asChild>
|
|
187
|
+
<Button
|
|
188
|
+
variant="ghost"
|
|
189
|
+
size="icon"
|
|
190
|
+
className="h-7 w-7"
|
|
191
|
+
onClick={() => setEditing(true)}
|
|
192
|
+
aria-label="编辑切片"
|
|
193
|
+
>
|
|
194
|
+
<Pencil className="h-3.5 w-3.5" />
|
|
195
|
+
</Button>
|
|
196
|
+
</TooltipTrigger>
|
|
197
|
+
<TooltipContent side="top">编辑切片</TooltipContent>
|
|
198
|
+
</Tooltip>
|
|
199
|
+
</TooltipProvider>
|
|
176
200
|
)}
|
|
177
201
|
</div>
|
|
178
202
|
</div>
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import type { ColumnDef } from "@tanstack/react-table";
|
|
2
|
-
import {
|
|
2
|
+
import { Eye, Trash2, Layers } from "lucide-react";
|
|
3
3
|
import { Checkbox } from "@/components/ui/checkbox";
|
|
4
4
|
import { Button } from "@/components/ui/button";
|
|
5
5
|
import {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
} from "@/components/ui/
|
|
6
|
+
Tooltip,
|
|
7
|
+
TooltipContent,
|
|
8
|
+
TooltipProvider,
|
|
9
|
+
TooltipTrigger,
|
|
10
|
+
} from "@/components/ui/tooltip";
|
|
11
11
|
import { RelativeTime } from "@/components/shared/relative-time";
|
|
12
12
|
import { DocStatusBadge } from "./doc-status-badge";
|
|
13
13
|
import { extractFileName } from "@/lib/utils";
|
|
@@ -17,14 +17,12 @@ interface DocColumnsOptions {
|
|
|
17
17
|
onView?: (document: Document) => void;
|
|
18
18
|
onDelete?: (document: Document) => void;
|
|
19
19
|
onViewChunks?: (document: Document) => void;
|
|
20
|
-
hideSubspace?: boolean;
|
|
21
20
|
}
|
|
22
21
|
|
|
23
22
|
export function createDocColumns({
|
|
24
23
|
onView,
|
|
25
24
|
onDelete,
|
|
26
25
|
onViewChunks,
|
|
27
|
-
hideSubspace,
|
|
28
26
|
}: DocColumnsOptions): ColumnDef<Document>[] {
|
|
29
27
|
const columns: ColumnDef<Document>[] = [
|
|
30
28
|
{
|
|
@@ -79,48 +77,61 @@ export function createDocColumns({
|
|
|
79
77
|
},
|
|
80
78
|
{
|
|
81
79
|
id: "actions",
|
|
80
|
+
header: () => <span className="sr-only">操作</span>,
|
|
82
81
|
cell: ({ row }) => (
|
|
83
|
-
<
|
|
84
|
-
<
|
|
85
|
-
<
|
|
86
|
-
<
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
82
|
+
<TooltipProvider delayDuration={200}>
|
|
83
|
+
<div className="flex items-center justify-end gap-0.5">
|
|
84
|
+
<Tooltip>
|
|
85
|
+
<TooltipTrigger asChild>
|
|
86
|
+
<Button
|
|
87
|
+
variant="ghost"
|
|
88
|
+
size="icon"
|
|
89
|
+
className="h-7 w-7"
|
|
90
|
+
onClick={() => onView?.(row.original)}
|
|
91
|
+
aria-label="查看详情"
|
|
92
|
+
>
|
|
93
|
+
<Eye className="h-3.5 w-3.5" />
|
|
94
|
+
</Button>
|
|
95
|
+
</TooltipTrigger>
|
|
96
|
+
<TooltipContent side="top">查看详情</TooltipContent>
|
|
97
|
+
</Tooltip>
|
|
98
|
+
<Tooltip>
|
|
99
|
+
<TooltipTrigger asChild>
|
|
100
|
+
<Button
|
|
101
|
+
variant="ghost"
|
|
102
|
+
size="icon"
|
|
103
|
+
className="h-7 w-7"
|
|
104
|
+
onClick={() => onViewChunks?.(row.original)}
|
|
105
|
+
aria-label="查看切片"
|
|
106
|
+
>
|
|
107
|
+
<Layers className="h-3.5 w-3.5" />
|
|
108
|
+
</Button>
|
|
109
|
+
</TooltipTrigger>
|
|
110
|
+
<TooltipContent side="top">查看切片</TooltipContent>
|
|
111
|
+
</Tooltip>
|
|
112
|
+
<Tooltip>
|
|
113
|
+
<TooltipTrigger asChild>
|
|
114
|
+
<Button
|
|
115
|
+
variant="ghost"
|
|
116
|
+
size="icon"
|
|
117
|
+
className="h-7 w-7 text-[hsl(var(--muted-foreground))] hover:bg-[hsl(var(--danger-soft))] hover:text-[hsl(var(--destructive))]"
|
|
118
|
+
onClick={() => onDelete?.(row.original)}
|
|
119
|
+
aria-label="删除"
|
|
120
|
+
>
|
|
121
|
+
<Trash2 className="h-3.5 w-3.5" />
|
|
122
|
+
</Button>
|
|
123
|
+
</TooltipTrigger>
|
|
124
|
+
<TooltipContent side="top">删除</TooltipContent>
|
|
125
|
+
</Tooltip>
|
|
126
|
+
</div>
|
|
127
|
+
</TooltipProvider>
|
|
107
128
|
),
|
|
108
129
|
},
|
|
109
130
|
];
|
|
110
131
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
accessorKey: "subspace",
|
|
116
|
-
header: "子空间",
|
|
117
|
-
cell: ({ row }) => (
|
|
118
|
-
<span className="text-sm text-muted-foreground">
|
|
119
|
-
{row.original.subspace || "—"}
|
|
120
|
-
</span>
|
|
121
|
-
),
|
|
122
|
-
});
|
|
123
|
-
}
|
|
124
|
-
|
|
132
|
+
// The subspace column is intentionally absent: when subspace is disabled
|
|
133
|
+
// it is always "_default" (no signal), and when subspace is enabled the
|
|
134
|
+
// user has already chosen one at the SubspaceGate so it is shown in the
|
|
135
|
+
// detail sidebar. Surfacing it again per-row is redundant noise.
|
|
125
136
|
return columns;
|
|
126
137
|
}
|
|
@@ -7,7 +7,6 @@ import type { Document } from "@/types/knowledge-base";
|
|
|
7
7
|
|
|
8
8
|
interface DocTableProps {
|
|
9
9
|
documents: Document[];
|
|
10
|
-
hideSubspace?: boolean;
|
|
11
10
|
onView?: (document: Document) => void;
|
|
12
11
|
onDelete?: (document: Document) => void;
|
|
13
12
|
onViewChunks?: (document: Document) => void;
|
|
@@ -16,7 +15,6 @@ interface DocTableProps {
|
|
|
16
15
|
|
|
17
16
|
export function DocTable({
|
|
18
17
|
documents,
|
|
19
|
-
hideSubspace,
|
|
20
18
|
onView,
|
|
21
19
|
onDelete,
|
|
22
20
|
onViewChunks,
|
|
@@ -25,8 +23,8 @@ export function DocTable({
|
|
|
25
23
|
const [rowSelection, setRowSelection] = useState<Record<string, boolean>>({});
|
|
26
24
|
|
|
27
25
|
const columns = useMemo(
|
|
28
|
-
() => createDocColumns({ onView, onDelete, onViewChunks
|
|
29
|
-
[onView, onDelete, onViewChunks
|
|
26
|
+
() => createDocColumns({ onView, onDelete, onViewChunks }),
|
|
27
|
+
[onView, onDelete, onViewChunks]
|
|
30
28
|
);
|
|
31
29
|
|
|
32
30
|
const handleRowSelectionChange = (
|
|
@@ -0,0 +1,331 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import Link from "next/link";
|
|
5
|
+
import { usePathname } from "next/navigation";
|
|
6
|
+
import { ArrowLeft } from "lucide-react";
|
|
7
|
+
import { cva, type VariantProps } from "class-variance-authority";
|
|
8
|
+
|
|
9
|
+
import { cn } from "@/lib/utils";
|
|
10
|
+
import { useSidebarCollapsed } from "@/hooks/use-sidebar-collapsed";
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* webUI-style "detail-page" secondary sidebar. Pairs with the primary
|
|
14
|
+
* application sidebar to give a master-detail layout for entity pages
|
|
15
|
+
* (knowledge bases, memory stores) that have many sub-routes and rich
|
|
16
|
+
* persistent context (description, tags, timestamps, etc.).
|
|
17
|
+
*
|
|
18
|
+
* The component is generic — consumers compose Header / Menu / Footer
|
|
19
|
+
* children to fit their entity, mirroring the way webUI's `.detail-layout`
|
|
20
|
+
* pattern is assembled around different entity types.
|
|
21
|
+
*/
|
|
22
|
+
export function DetailSidebar({
|
|
23
|
+
className,
|
|
24
|
+
children,
|
|
25
|
+
}: {
|
|
26
|
+
className?: string;
|
|
27
|
+
children: React.ReactNode;
|
|
28
|
+
}) {
|
|
29
|
+
return (
|
|
30
|
+
<aside
|
|
31
|
+
className={cn(
|
|
32
|
+
// Hidden on mobile (the primary mobile drawer already provides
|
|
33
|
+
// entity-level navigation); on desktop renders as a flex column
|
|
34
|
+
// that fills the parent shell's full height. Inside, header is
|
|
35
|
+
// auto-sized, menu fills with `flex-1 overflow-y-auto`, and the
|
|
36
|
+
// back button is anchored to the bottom — even when the menu is
|
|
37
|
+
// short or the page content is shorter than the viewport.
|
|
38
|
+
"hidden h-full w-[220px] shrink-0 flex-col border-r border-[hsl(var(--border))] bg-[hsl(var(--card))] overflow-hidden md:flex",
|
|
39
|
+
className,
|
|
40
|
+
)}
|
|
41
|
+
>
|
|
42
|
+
{children}
|
|
43
|
+
</aside>
|
|
44
|
+
);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
const detailIconAccent = cva(
|
|
48
|
+
"flex h-9 w-9 items-center justify-center rounded-lg [&>svg]:h-[18px] [&>svg]:w-[18px]",
|
|
49
|
+
{
|
|
50
|
+
variants: {
|
|
51
|
+
accent: {
|
|
52
|
+
primary: "bg-[hsl(var(--primary-soft))] text-[hsl(var(--primary))]",
|
|
53
|
+
success: "bg-[hsl(var(--success-soft))] text-[hsl(var(--success))]",
|
|
54
|
+
warning: "bg-[hsl(var(--warning-soft))] text-[hsl(var(--warning))]",
|
|
55
|
+
danger: "bg-[hsl(var(--danger-soft))] text-[hsl(var(--danger))]",
|
|
56
|
+
purple: "bg-[hsl(var(--purple-soft))] text-[hsl(var(--purple))]",
|
|
57
|
+
},
|
|
58
|
+
},
|
|
59
|
+
defaultVariants: {
|
|
60
|
+
accent: "primary",
|
|
61
|
+
},
|
|
62
|
+
},
|
|
63
|
+
);
|
|
64
|
+
|
|
65
|
+
interface DetailSidebarHeaderProps
|
|
66
|
+
extends VariantProps<typeof detailIconAccent> {
|
|
67
|
+
icon: React.ReactNode;
|
|
68
|
+
name: React.ReactNode;
|
|
69
|
+
typeLabel?: React.ReactNode;
|
|
70
|
+
description?: React.ReactNode;
|
|
71
|
+
actions?: React.ReactNode;
|
|
72
|
+
/** Tags / chips / dates / extra info. Wrapped in a flex container with
|
|
73
|
+
* small text already applied. */
|
|
74
|
+
extra?: React.ReactNode;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
export function DetailSidebarHeader({
|
|
78
|
+
icon,
|
|
79
|
+
accent,
|
|
80
|
+
name,
|
|
81
|
+
typeLabel,
|
|
82
|
+
description,
|
|
83
|
+
actions,
|
|
84
|
+
extra,
|
|
85
|
+
}: DetailSidebarHeaderProps) {
|
|
86
|
+
return (
|
|
87
|
+
<header className="flex flex-col gap-2 border-b border-[hsl(var(--border-light))] px-4 pb-4 pt-4">
|
|
88
|
+
<div className="flex items-start justify-between gap-2">
|
|
89
|
+
<div className={detailIconAccent({ accent })}>{icon}</div>
|
|
90
|
+
{actions ? <div className="-mt-1 -mr-1">{actions}</div> : null}
|
|
91
|
+
</div>
|
|
92
|
+
<div className="space-y-0.5">
|
|
93
|
+
<div className="text-sm font-semibold leading-tight text-[hsl(var(--foreground))]">
|
|
94
|
+
{name}
|
|
95
|
+
</div>
|
|
96
|
+
{typeLabel ? (
|
|
97
|
+
<div className="text-[11px] font-semibold uppercase tracking-wider text-[hsl(var(--muted-foreground))]">
|
|
98
|
+
{typeLabel}
|
|
99
|
+
</div>
|
|
100
|
+
) : null}
|
|
101
|
+
</div>
|
|
102
|
+
{description ? (
|
|
103
|
+
<p className="line-clamp-3 text-[13px] leading-snug text-[hsl(var(--muted-foreground))]">
|
|
104
|
+
{description}
|
|
105
|
+
</p>
|
|
106
|
+
) : null}
|
|
107
|
+
{extra ? (
|
|
108
|
+
<div className="flex flex-col gap-1.5 text-[11px] text-[hsl(var(--subtle))]">
|
|
109
|
+
{extra}
|
|
110
|
+
</div>
|
|
111
|
+
) : null}
|
|
112
|
+
</header>
|
|
113
|
+
);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
interface DetailSidebarMenuItem {
|
|
117
|
+
/** Full URL including any search params; passed straight to next/link. */
|
|
118
|
+
href: string;
|
|
119
|
+
label: React.ReactNode;
|
|
120
|
+
icon?: React.ReactNode;
|
|
121
|
+
/** Optional badge or count rendered on the right edge. */
|
|
122
|
+
endAdornment?: React.ReactNode;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
export function DetailSidebarMenu({
|
|
126
|
+
items,
|
|
127
|
+
className,
|
|
128
|
+
}: {
|
|
129
|
+
items: DetailSidebarMenuItem[];
|
|
130
|
+
className?: string;
|
|
131
|
+
}) {
|
|
132
|
+
const pathname = usePathname() ?? "";
|
|
133
|
+
return (
|
|
134
|
+
<nav className={cn("flex-1 overflow-y-auto px-2 py-2", className)}>
|
|
135
|
+
<ul className="space-y-0.5">
|
|
136
|
+
{items.map((item) => {
|
|
137
|
+
// Strip any querystring from the href so we can match it against
|
|
138
|
+
// the bare pathname; otherwise an href like "/foo?bar=baz" never
|
|
139
|
+
// equals pathname "/foo" and the active state is missed.
|
|
140
|
+
const hrefPath = item.href.split("?")[0];
|
|
141
|
+
const active =
|
|
142
|
+
pathname === hrefPath || pathname.startsWith(`${hrefPath}/`);
|
|
143
|
+
return (
|
|
144
|
+
<li key={item.href}>
|
|
145
|
+
<Link
|
|
146
|
+
href={item.href}
|
|
147
|
+
className={cn(
|
|
148
|
+
"flex h-8 items-center gap-2 rounded-md px-3 text-[13px] font-medium transition-colors duration-150",
|
|
149
|
+
active
|
|
150
|
+
? "bg-[hsl(var(--sidebar-active-bg))] text-[hsl(var(--sidebar-active-fg))]"
|
|
151
|
+
: "text-[hsl(var(--sidebar-text))] hover:bg-[hsl(var(--background))] hover:text-[hsl(var(--foreground))]",
|
|
152
|
+
)}
|
|
153
|
+
>
|
|
154
|
+
{item.icon ? (
|
|
155
|
+
<span className="[&>svg]:h-4 [&>svg]:w-4">{item.icon}</span>
|
|
156
|
+
) : null}
|
|
157
|
+
<span className="flex-1 truncate">{item.label}</span>
|
|
158
|
+
{item.endAdornment ? (
|
|
159
|
+
<span className="ml-auto text-[11px]">
|
|
160
|
+
{item.endAdornment}
|
|
161
|
+
</span>
|
|
162
|
+
) : null}
|
|
163
|
+
</Link>
|
|
164
|
+
</li>
|
|
165
|
+
);
|
|
166
|
+
})}
|
|
167
|
+
</ul>
|
|
168
|
+
</nav>
|
|
169
|
+
);
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
interface DetailSidebarBackProps {
|
|
173
|
+
href: string;
|
|
174
|
+
label?: React.ReactNode;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
export function DetailSidebarBack({
|
|
178
|
+
href,
|
|
179
|
+
label = "返回列表",
|
|
180
|
+
}: DetailSidebarBackProps) {
|
|
181
|
+
return (
|
|
182
|
+
<div className="border-t border-[hsl(var(--border-light))] p-3">
|
|
183
|
+
<Link
|
|
184
|
+
href={href}
|
|
185
|
+
className="flex h-8 items-center justify-center gap-1.5 rounded-md text-[13px] font-medium text-[hsl(var(--muted-foreground))] transition-colors hover:bg-[hsl(var(--background))] hover:text-[hsl(var(--primary))]"
|
|
186
|
+
>
|
|
187
|
+
<ArrowLeft className="h-3.5 w-3.5" />
|
|
188
|
+
{label}
|
|
189
|
+
</Link>
|
|
190
|
+
</div>
|
|
191
|
+
);
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
/**
|
|
195
|
+
* Master-detail shell. Uses the "fixed shell, internal scroll" pattern that
|
|
196
|
+
* Slack / Linear / Notion use for chrome-heavy apps: the layout pins to
|
|
197
|
+
* the viewport with `position: fixed` so it stays exactly one viewport
|
|
198
|
+
* tall regardless of `<main>`'s padding or any sibling page content. The
|
|
199
|
+
* sidebar fills the full available height as a static column; only the
|
|
200
|
+
* right content area scrolls.
|
|
201
|
+
*
|
|
202
|
+
* The fixed positioning sidesteps the body-scroll / negative-margin math
|
|
203
|
+
* that an in-flow shell would have to do — `<main>` keeps its standard
|
|
204
|
+
* `min-h-screen + px-7 py-5`, body never overflows past the viewport, and
|
|
205
|
+
* the back button stays anchored to the bottom of the viewport even when
|
|
206
|
+
* the right pane's content is shorter than one screen.
|
|
207
|
+
*
|
|
208
|
+
* Left offset mirrors the primary sidebar's collapsed state via
|
|
209
|
+
* `useSidebarCollapsed`, keeping the master-detail row in lockstep with
|
|
210
|
+
* the rest of the application chrome.
|
|
211
|
+
*/
|
|
212
|
+
/**
|
|
213
|
+
* Generic full-viewport application shell. Pins to the viewport with
|
|
214
|
+
* `position: fixed`, accounts for the primary sidebar's collapse state,
|
|
215
|
+
* and reserves the mobile primary-nav bar's 56px above. Used as the
|
|
216
|
+
* foundation for any page that wants a chrome-heavy "app surface" feel
|
|
217
|
+
* — the master-detail layout, the chat homepage, etc.
|
|
218
|
+
*/
|
|
219
|
+
export function AppShellLayout({
|
|
220
|
+
children,
|
|
221
|
+
className,
|
|
222
|
+
}: {
|
|
223
|
+
children: React.ReactNode;
|
|
224
|
+
className?: string;
|
|
225
|
+
}) {
|
|
226
|
+
const { collapsed } = useSidebarCollapsed();
|
|
227
|
+
return (
|
|
228
|
+
<div
|
|
229
|
+
className={cn(
|
|
230
|
+
"fixed inset-0 z-30 flex items-stretch overflow-hidden bg-[hsl(var(--background))] transition-[left] duration-200 ease-out",
|
|
231
|
+
"max-md:top-14",
|
|
232
|
+
collapsed ? "md:left-16" : "md:left-[220px]",
|
|
233
|
+
className,
|
|
234
|
+
)}
|
|
235
|
+
>
|
|
236
|
+
{children}
|
|
237
|
+
</div>
|
|
238
|
+
);
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
export function DetailLayout({
|
|
242
|
+
sidebar,
|
|
243
|
+
children,
|
|
244
|
+
}: {
|
|
245
|
+
sidebar: React.ReactNode;
|
|
246
|
+
children: React.ReactNode;
|
|
247
|
+
}) {
|
|
248
|
+
return (
|
|
249
|
+
<AppShellLayout>
|
|
250
|
+
{sidebar}
|
|
251
|
+
<div className="min-w-0 flex-1 overflow-y-auto px-7 py-5 max-md:px-4">
|
|
252
|
+
{children}
|
|
253
|
+
</div>
|
|
254
|
+
</AppShellLayout>
|
|
255
|
+
);
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
/**
|
|
259
|
+
* Cancels the surrounding right-pane padding so a child component can
|
|
260
|
+
* span the full height/width of the detail layout. Used by workbench-
|
|
261
|
+
* style pages (split form + workspace) that own their internal padding
|
|
262
|
+
* and scroll regions and don't want to inherit the page-level inset.
|
|
263
|
+
*
|
|
264
|
+
* The negative `-mx-7 -my-5` matches the right pane's `px-7 py-5`
|
|
265
|
+
* padding so the cancellation is exact; mobile uses px-4 / no extra
|
|
266
|
+
* vertical padding so we only cancel the horizontal axis there.
|
|
267
|
+
*
|
|
268
|
+
* `h-full` plus `overflow-hidden` forces the child to be exactly one
|
|
269
|
+
* pane tall — no body-scroll fall-back — so workbench panes can lay
|
|
270
|
+
* out flex columns with internal scroll without overflowing the shell.
|
|
271
|
+
*/
|
|
272
|
+
export function DetailFullBleed({
|
|
273
|
+
className,
|
|
274
|
+
children,
|
|
275
|
+
}: {
|
|
276
|
+
className?: string;
|
|
277
|
+
children: React.ReactNode;
|
|
278
|
+
}) {
|
|
279
|
+
return (
|
|
280
|
+
<div
|
|
281
|
+
className={cn(
|
|
282
|
+
"-mx-7 -my-5 flex h-[calc(100%+2.5rem)] overflow-hidden max-md:-mx-4 max-md:my-0 max-md:h-full",
|
|
283
|
+
className,
|
|
284
|
+
)}
|
|
285
|
+
>
|
|
286
|
+
{children}
|
|
287
|
+
</div>
|
|
288
|
+
);
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
interface WorkbenchLayoutProps {
|
|
292
|
+
/** Left configuration column (form / parameters). Scrolls internally. */
|
|
293
|
+
aside: React.ReactNode;
|
|
294
|
+
/** Right work surface (chat / results). Owns its own scroll. */
|
|
295
|
+
children: React.ReactNode;
|
|
296
|
+
/** Width of the aside on desktop. Defaults to 360px. */
|
|
297
|
+
asideWidth?: number;
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
/**
|
|
301
|
+
* Two-pane workbench shell for detail-page subroutes that want a fixed
|
|
302
|
+
* configuration column on the left and a full-height work surface on the
|
|
303
|
+
* right (QA test, retrieval test, memory search). On viewports below the
|
|
304
|
+
* `lg` breakpoint the configuration stacks above the workspace instead
|
|
305
|
+
* of sitting beside it.
|
|
306
|
+
*
|
|
307
|
+
* Wraps with `DetailFullBleed` so the panes go edge-to-edge — pages don't
|
|
308
|
+
* need to think about the surrounding right-pane padding.
|
|
309
|
+
*/
|
|
310
|
+
export function WorkbenchLayout({
|
|
311
|
+
aside,
|
|
312
|
+
children,
|
|
313
|
+
asideWidth = 360,
|
|
314
|
+
}: WorkbenchLayoutProps) {
|
|
315
|
+
return (
|
|
316
|
+
<DetailFullBleed className="flex-col lg:flex-row">
|
|
317
|
+
<aside
|
|
318
|
+
style={{ ["--workbench-aside-w" as string]: `${asideWidth}px` }}
|
|
319
|
+
className={cn(
|
|
320
|
+
"shrink-0 overflow-y-auto border-b border-[hsl(var(--border))] bg-[hsl(var(--card))] px-6 py-5 max-md:px-4",
|
|
321
|
+
"lg:w-[var(--workbench-aside-w)] lg:border-b-0 lg:border-r",
|
|
322
|
+
)}
|
|
323
|
+
>
|
|
324
|
+
{aside}
|
|
325
|
+
</aside>
|
|
326
|
+
<main className="flex min-h-0 min-w-0 flex-1 flex-col">
|
|
327
|
+
{children}
|
|
328
|
+
</main>
|
|
329
|
+
</DetailFullBleed>
|
|
330
|
+
);
|
|
331
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { usePathname } from "next/navigation";
|
|
4
|
+
import { HelpCircle } from "lucide-react";
|
|
5
|
+
|
|
6
|
+
import { cn } from "@/lib/utils";
|
|
7
|
+
|
|
8
|
+
const HELP_URL_KB = "https://help.aliyun.com/zh/tablestore/knowledge-base-rag/";
|
|
9
|
+
const HELP_URL_DEFAULT = "https://help.aliyun.com/zh/tablestore/";
|
|
10
|
+
|
|
11
|
+
function resolveHelpUrl(pathname: string | null): string {
|
|
12
|
+
if (pathname?.startsWith("/knowledge-base")) return HELP_URL_KB;
|
|
13
|
+
return HELP_URL_DEFAULT;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
interface HelpLinkProps {
|
|
17
|
+
collapsed?: boolean;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Pathname-aware help link, surfaced in the sidebar footer. Knowledge-base
|
|
22
|
+
* pages get the RAG help URL; other surfaces fall back to the general portal,
|
|
23
|
+
* preserving the routing previously hosted in the deprecated breadcrumb bar.
|
|
24
|
+
*/
|
|
25
|
+
export function HelpLink({ collapsed }: HelpLinkProps) {
|
|
26
|
+
const pathname = usePathname();
|
|
27
|
+
const url = resolveHelpUrl(pathname);
|
|
28
|
+
|
|
29
|
+
if (collapsed) {
|
|
30
|
+
return (
|
|
31
|
+
<a
|
|
32
|
+
href={url}
|
|
33
|
+
target="_blank"
|
|
34
|
+
rel="noreferrer"
|
|
35
|
+
title="帮助"
|
|
36
|
+
aria-label="帮助"
|
|
37
|
+
className="flex h-8 w-8 items-center justify-center rounded-md text-[hsl(var(--muted-foreground))] transition-colors hover:bg-[hsl(var(--background))] hover:text-[hsl(var(--foreground))]"
|
|
38
|
+
>
|
|
39
|
+
<HelpCircle className="h-4 w-4" />
|
|
40
|
+
</a>
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
return (
|
|
45
|
+
<a
|
|
46
|
+
href={url}
|
|
47
|
+
target="_blank"
|
|
48
|
+
rel="noreferrer"
|
|
49
|
+
title="帮助"
|
|
50
|
+
className={cn(
|
|
51
|
+
"flex h-8 items-center gap-2 rounded-md px-3 text-sm text-[hsl(var(--muted-foreground))] transition-colors hover:bg-[hsl(var(--background))] hover:text-[hsl(var(--foreground))]",
|
|
52
|
+
)}
|
|
53
|
+
>
|
|
54
|
+
<HelpCircle className="h-4 w-4 shrink-0" />
|
|
55
|
+
<span>帮助</span>
|
|
56
|
+
</a>
|
|
57
|
+
);
|
|
58
|
+
}
|