@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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,30068,e=>{"use strict";let t=(0,e.i(86620).default)("refresh-cw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);e.s(["RefreshCw",0,t],30068)},23516,e=>{"use strict";var t=e.i(44501),s=e.i(70978),a=e.i(65581),r=e.i(79980),n=e.i(76490);let l={"knowledge-base":"知识库",memory:"记忆库","llm-providers":"大模型",projects:"项目管理",documents:"文档",retrieval:"检索测试",qa:"问答测试",search:"记忆检索",units:"长期记忆",messages:"短期记忆",requests:"请求审计",settings:"设置",create:"新建",new:"新建",chat:"对话"};e.s(["PageHeader",0,function({title:e,description:i,hideBreadcrumb:o,children:c,className:d}){let u=(0,a.usePathname)()??"/",m=o?[]:function(e){if(/^\/knowledge-base\/[^/]+(?:\/.*)?$/.test(e)||/^\/memory\/[^/]+(?:\/.*)?$/.test(e))return[];let t=e.split("/").filter(Boolean);if(0===t.length)return[];let s=[],a="";return t.forEach((e,r)=>{a+=`/${e}`;let n=decodeURIComponent(e),i=l[n]??n;s.push({label:i,href:r<t.length-1?a:void 0})}),s}(u);return(0,t.jsxs)("div",{className:(0,n.cn)("mb-5 flex flex-col gap-2",d),children:[m.length>1&&(0,t.jsxs)("nav",{"aria-label":"面包屑",className:"flex items-center gap-1 text-[13px] text-[hsl(var(--muted-foreground))]",children:[(0,t.jsx)(s.default,{href:"/",className:"transition-colors hover:text-[hsl(var(--foreground))]",children:"主页"}),m.map((e,a)=>(0,t.jsxs)("span",{className:"flex items-center gap-1",children:[(0,t.jsx)(r.ChevronRight,{className:"h-3 w-3 opacity-60"}),e.href?(0,t.jsx)(s.default,{href:e.href,className:"transition-colors hover:text-[hsl(var(--foreground))]",children:e.label}):(0,t.jsx)("span",{className:"font-medium text-[hsl(var(--foreground))]",children:e.label})]},`${e.label}-${a}`))]}),(0,t.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsx)("h1",{className:"text-xl font-semibold leading-tight text-[hsl(var(--foreground))]",children:e}),i&&(0,t.jsx)("p",{className:"text-[13px] text-[hsl(var(--muted-foreground))]",children:i})]}),c&&(0,t.jsx)("div",{className:"flex shrink-0 items-center gap-2",children:c})]})]})}])},33153,e=>{"use strict";let t=(0,e.i(86620).default)("pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);e.s(["Pencil",0,t],33153)},22740,e=>{"use strict";var t=e.i(44501),s=e.i(17635),a=e.i(76490);let r=s.forwardRef(({className:e,...s},r)=>(0,t.jsx)("div",{className:"relative w-full overflow-auto",children:(0,t.jsx)("table",{ref:r,className:(0,a.cn)("w-full caption-bottom text-sm",e),...s})}));r.displayName="Table";let n=s.forwardRef(({className:e,...s},r)=>(0,t.jsx)("thead",{ref:r,className:(0,a.cn)("[&_tr]:border-b [&_tr]:border-[hsl(var(--border))] [&_tr]:bg-[hsl(var(--secondary))]",e),...s}));n.displayName="TableHeader";let l=s.forwardRef(({className:e,...s},r)=>(0,t.jsx)("tbody",{ref:r,className:(0,a.cn)("[&_tr:last-child]:border-0",e),...s}));l.displayName="TableBody",s.forwardRef(({className:e,...s},r)=>(0,t.jsx)("tfoot",{ref:r,className:(0,a.cn)("border-t border-[hsl(var(--border))] bg-[hsl(var(--secondary)/0.5)] font-medium [&>tr]:last:border-b-0",e),...s})).displayName="TableFooter";let i=s.forwardRef(({className:e,...s},r)=>(0,t.jsx)("tr",{ref:r,className:(0,a.cn)("border-b border-[hsl(var(--border-light))] transition-colors hover:bg-[hsl(var(--secondary)/0.5)] data-[state=selected]:bg-[hsl(var(--primary-soft))]",e),...s}));i.displayName="TableRow";let o=s.forwardRef(({className:e,...s},r)=>(0,t.jsx)("th",{ref:r,className:(0,a.cn)("h-9 px-3 text-left align-middle text-xs font-medium text-[hsl(var(--muted-foreground))] [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",e),...s}));o.displayName="TableHead";let c=s.forwardRef(({className:e,...s},r)=>(0,t.jsx)("td",{ref:r,className:(0,a.cn)("px-3 py-2 align-middle text-sm [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",e),...s}));c.displayName="TableCell",s.forwardRef(({className:e,...s},r)=>(0,t.jsx)("caption",{ref:r,className:(0,a.cn)("mt-4 text-sm text-[hsl(var(--muted-foreground))]",e),...s})).displayName="TableCaption",e.s(["Table",0,r,"TableBody",0,l,"TableCell",0,c,"TableHead",0,o,"TableHeader",0,n,"TableRow",0,i])},31592,73581,e=>{"use strict";var t=e.i(44501),s=e.i(17635),a=e.i(30068),r=e.i(42595),n=e.i(76490);e.s(["RefreshButton",0,function({loading:e,onClick:l,title:i="刷新",className:o,size:c="icon",label:d,variant:u="ghost"}){let m=(0,s.useRef)(null),x=(0,s.useRef)(null),h=(0,s.useRef)(e),p=()=>{let e=m.current;if(!e||x.current)return;let t=e.animate([{transform:"rotate(0deg)"},{transform:"rotate(360deg)"}],{duration:800,easing:"linear",iterations:1,fill:"none"});x.current=t,t.addEventListener("finish",()=>{x.current=null,h.current&&p()}),t.addEventListener("cancel",()=>{x.current=null})};(0,s.useEffect)(()=>{h.current=e},[e]),(0,s.useEffect)(()=>{e&&p()},[e]),(0,s.useEffect)(()=>()=>{x.current?.cancel(),x.current=null},[]);let f="icon"!==c&&!!d;return(0,t.jsxs)(r.Button,{type:"button",variant:u,size:c,onClick:()=>{e||(p(),l())},title:i,"aria-label":d??i,"aria-busy":e||void 0,className:(0,n.cn)("group text-muted-foreground transition-colors duration-150","hover:text-foreground active:scale-[0.96]","ghost"===u&&"hover:bg-[hsl(var(--accent))]",o),children:[(0,t.jsx)("span",{ref:m,"aria-hidden":!0,className:(0,n.cn)("inline-flex transform-gpu",f&&"mr-1.5"),children:(0,t.jsx)(a.RefreshCw,{className:"sm"===c?"h-3.5 w-3.5":"h-4 w-4"})}),f&&d]})}],31592);let l=(0,e.i(86620).default)("eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);e.s(["Eye",0,l],73581)},144,e=>{"use strict";var t=e.i(44501),s=e.i(17635),a=e.i(65581),r=e.i(68432),n=e.i(79980),l=e.i(58204),i=e.i(96416),o=e.i(87014),c=e.i(42595),d=e.i(23888),u=e.i(23516),m=e.i(12251),x=e.i(31592),h=e.i(31211),p=e.i(12122),f=e.i(43876),j=e.i(64204),g=e.i(47570),y=e.i(7166),b=e.i(37500),v=e.i(12984),N=e.i(81015),w=e.i(33253),k=e.i(66476),S=e.i(45123);function C({memoryStoreName:e,scope:a,open:r,onOpenChange:n,onSuccess:l}){let i,d=(i=(0,v.useQueryClient)(),(0,b.useMutation)({mutationFn:e=>(0,j.addMemory)(e),onSuccess:()=>{(0,g.invalidateMemoryQueries)(i)}})),[u,m]=(0,s.useState)(""),[x,h]=(0,s.useState)("");async function p(){try{let t=(0,N.parseJsonObject)(x);if(!u.trim())return void o.toast.error("请输入要提取为记忆的文本");await d.mutateAsync({memoryStoreName:e,scope:a,text:u.trim(),metadata:t,sync:!1}),o.toast.success("记忆正在加工中,请稍后查看"),m(""),h(""),n(!1),l?.()}catch(e){o.toast.error(e instanceof Error?e.message:"添加记忆失败")}}return(0,t.jsx)(w.Dialog,{open:r,onOpenChange:n,children:(0,t.jsxs)(w.DialogContent,{className:"max-w-xl",children:[(0,t.jsx)(w.DialogHeader,{children:(0,t.jsx)(w.DialogTitle,{children:"添加记忆"})}),(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(k.Label,{children:"Text"}),(0,t.jsx)(S.Textarea,{value:u,onChange:e=>m(e.target.value),placeholder:"输入要提取为记忆的文本...",rows:5})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(k.Label,{children:"Metadata JSON(可选)"}),(0,t.jsx)(S.Textarea,{value:x,onChange:e=>h(e.target.value),placeholder:'{"source":"dashboard"}',rows:3})]}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:"记忆将通过异步方式处理,添加后可在记忆单元中查看结果。"})]}),(0,t.jsxs)(w.DialogFooter,{children:[(0,t.jsx)(c.Button,{variant:"outline",onClick:()=>n(!1),children:"取消"}),(0,t.jsx)(c.Button,{onClick:p,disabled:d.isPending,children:d.isPending?"提交中...":"提交"})]})]})})}var T=e.i(73581),I=e.i(33153),D=e.i(30363),R=e.i(22740);let M="当前记忆单元缺少精确 scope 或 ID,无法操作";function B(e){return e.id??e.memoryId??"-"}let E=(0,s.memo)(function({unit:e,actionDisabled:a,onView:r,onEdit:n,onDelete:l}){let i=(0,s.useCallback)(()=>r?.(e),[r,e]),o=(0,s.useCallback)(()=>n?.(e),[n,e]),d=(0,s.useCallback)(()=>l?.(e),[l,e]);return(0,t.jsxs)(R.TableRow,{children:[(0,t.jsx)(R.TableCell,{className:"font-mono text-xs",children:B(e)}),(0,t.jsxs)(R.TableCell,{className:"max-w-[420px]",children:[(0,t.jsx)("p",{className:"line-clamp-2 text-sm",children:e.text}),e.search_text&&(0,t.jsx)("p",{className:"mt-1 line-clamp-1 text-xs text-muted-foreground",children:e.search_text})]}),(0,t.jsx)(R.TableCell,{children:e.unit_type??"-"}),(0,t.jsx)(R.TableCell,{children:e.version??"-"}),(0,t.jsx)(R.TableCell,{className:"text-xs text-muted-foreground",children:function(e){if(!e)return"-";try{let t=new Date(e);if(isNaN(t.getTime()))return String(e);return t.toLocaleString("zh-CN",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"})}catch{return String(e)}}(e.created_at??e.createdAt)}),(0,t.jsx)(R.TableCell,{children:(0,t.jsxs)("div",{className:"flex justify-end gap-1",children:[(0,t.jsx)(c.Button,{type:"button",variant:"ghost",size:"icon",disabled:a,onClick:i,title:a?M:"查看详情",children:(0,t.jsx)(T.Eye,{className:"h-4 w-4"})}),(0,t.jsx)(c.Button,{type:"button",variant:"ghost",size:"icon",disabled:a,onClick:o,title:a?M:"编辑",children:(0,t.jsx)(I.Pencil,{className:"h-4 w-4"})}),(0,t.jsx)(c.Button,{type:"button",variant:"ghost",size:"icon",disabled:a,onClick:d,title:a?M:"删除",children:(0,t.jsx)(D.Trash2,{className:"h-4 w-4 text-[hsl(var(--destructive))]"})})]})})]})});function H({units:e,readOnly:s=!1,isActionDisabled:a,onView:r,onEdit:n,onDelete:l}){return e.length?(0,t.jsx)("div",{className:"rounded-lg border",children:(0,t.jsxs)(R.Table,{children:[(0,t.jsx)(R.TableHeader,{children:(0,t.jsxs)(R.TableRow,{children:[(0,t.jsx)(R.TableHead,{className:"w-[180px]",children:"ID"}),(0,t.jsx)(R.TableHead,{children:"内容"}),(0,t.jsx)(R.TableHead,{className:"w-[140px]",children:"类型"}),(0,t.jsx)(R.TableHead,{className:"w-[120px]",children:"版本"}),(0,t.jsx)(R.TableHead,{className:"w-[170px]",children:"创建时间"}),(0,t.jsx)(R.TableHead,{className:"w-[160px] text-right",children:"操作"})]})}),(0,t.jsx)(R.TableBody,{children:e.map((e,i)=>{let o=s||a?.(e)||!1,c=B(e);return(0,t.jsx)(E,{unit:e,actionDisabled:o,onView:r,onEdit:n,onDelete:l},"-"===c?i:c)})})]})}):(0,t.jsx)("div",{className:"rounded-lg border border-dashed py-12 text-center text-sm text-muted-foreground",children:"当前 scope 下暂无记忆单元"})}function K({memoryStoreName:e,scope:s,unit:a,open:r,onOpenChange:n}){let l,i=(l=(0,v.useQueryClient)(),(0,b.useMutation)({mutationFn:e=>(0,j.updateMemoryUnit)(e),onSuccess:()=>{(0,g.invalidateMemoryQueries)(l)}})),d=a?B(a):"empty";async function u(t){if(t.preventDefault(),!a)return;let r=B(a);if("-"===r)return void o.toast.error("记忆单元缺少 ID,无法编辑");let l=new FormData(t.currentTarget),c=String(l.get("text")??"").trim(),d=String(l.get("metadata")??"");try{await i.mutateAsync({memoryStoreName:e,memoryId:r,scope:s,text:c||void 0,metadata:(0,N.parseJsonObject)(d)}),o.toast.success("记忆单元已更新"),n(!1)}catch(e){o.toast.error(e instanceof Error?e.message:"更新记忆失败")}}return(0,t.jsx)(w.Dialog,{open:r,onOpenChange:n,children:(0,t.jsxs)(w.DialogContent,{className:"max-w-2xl",children:[(0,t.jsx)(w.DialogHeader,{children:(0,t.jsx)(w.DialogTitle,{children:"编辑记忆单元"})}),(0,t.jsxs)("form",{onSubmit:u,className:"space-y-4",children:[(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(k.Label,{children:"Text"}),(0,t.jsx)(S.Textarea,{name:"text",defaultValue:a?.text??"",rows:5})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(k.Label,{children:"Metadata JSON"}),(0,t.jsx)(S.Textarea,{name:"metadata",defaultValue:a?.metadata?JSON.stringify(a.metadata,null,2):"",rows:4})]}),(0,t.jsxs)(w.DialogFooter,{children:[(0,t.jsx)(c.Button,{type:"button",variant:"outline",onClick:()=>n(!1),children:"取消"}),(0,t.jsx)(c.Button,{type:"submit",disabled:i.isPending,children:i.isPending?"保存中...":"保存"})]})]},d)]})})}function P({label:e,children:s}){return(0,t.jsxs)("div",{className:"grid grid-cols-[120px_1fr] items-start gap-3",children:[(0,t.jsx)("span",{className:"pt-0.5 text-xs font-medium text-muted-foreground",children:e}),(0,t.jsx)("div",{className:"min-w-0 text-sm text-foreground",children:s})]})}function O({memoryStoreName:e,scope:s,unit:a,open:r,onOpenChange:n}){let l=a?B(a):void 0,i=function(e,t,s,a=!0){let{context:r,ready:n}=(0,y.useRuntimeContext)();return(0,f.useQuery)({queryKey:g.queryKeys.memoryUnit(r.dataScopeKey,e,t,s),queryFn:()=>(0,j.getMemoryUnit)({memoryStoreName:e,memoryId:t,scope:s}),enabled:n&&a&&!!e&&!!s?.appId&&!!t&&"-"!==t})}(e,l,s,r),o=i.data?.memory;return(0,t.jsx)(w.Dialog,{open:r,onOpenChange:n,children:(0,t.jsxs)(w.DialogContent,{className:"max-w-2xl",children:[(0,t.jsx)(w.DialogHeader,{children:(0,t.jsx)(w.DialogTitle,{children:"记忆单元详情"})}),a?"-"===l?(0,t.jsx)("p",{className:"text-sm text-destructive",children:"记忆单元缺少 ID,无法加载详情。"}):i.isLoading?(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(h.Skeleton,{className:"h-4 w-16"}),(0,t.jsx)(h.Skeleton,{className:"h-5 w-64"})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(h.Skeleton,{className:"h-4 w-16"}),(0,t.jsx)(h.Skeleton,{className:"h-24 w-full"})]}),(0,t.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2",children:[(0,t.jsx)(h.Skeleton,{className:"h-14 w-full"}),(0,t.jsx)(h.Skeleton,{className:"h-14 w-full"}),(0,t.jsx)(h.Skeleton,{className:"h-14 w-full"}),(0,t.jsx)(h.Skeleton,{className:"h-14 w-full"})]})]}):i.isError?(0,t.jsx)("p",{className:"rounded-md bg-destructive/5 p-3 text-sm text-destructive",children:i.error instanceof Error?i.error.message:"加载记忆单元详情失败"}):o?(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsx)(P,{label:"ID",children:(0,t.jsx)("span",{className:"break-all font-mono text-xs",children:o.id??o.memoryId??"-"})}),(0,t.jsx)(P,{label:"内容",children:(0,t.jsx)("p",{className:"whitespace-pre-wrap rounded-md bg-muted p-3 text-sm",children:o.text})}),o.search_text&&(0,t.jsx)(P,{label:"Search Text",children:(0,t.jsx)("p",{className:"whitespace-pre-wrap rounded-md bg-muted p-3 text-sm",children:o.search_text})}),(0,t.jsx)(P,{label:"Scope",children:(0,N.formatScope)(o.scope)}),(0,t.jsx)(P,{label:"类型",children:o.unit_type??"-"}),(0,t.jsx)(P,{label:"Salience",children:o.salience??"-"}),(0,t.jsx)(P,{label:"版本",children:o.version??"-"}),o.metadata&&(0,t.jsx)(P,{label:"Metadata",children:(0,t.jsx)("pre",{className:"overflow-auto rounded-md bg-muted p-3 text-xs",children:JSON.stringify(o.metadata,null,2)})})]}):(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:"未找到记忆单元详情。"}):null]})})}var L=e.i(93321);e.s(["default",0,function(){let e,w=(0,a.useParams)(),k=(0,a.useSearchParams)(),S=decodeURIComponent(w.store),T=(0,s.useMemo)(()=>(0,N.buildMemoryScope)(k),[k.toString()]),I=(0,N.hasWildcardScope)(T),D=(0,s.useMemo)(()=>`${T.appId}|${T.tenantId??""}|${T.agentId??""}|${T.runId??""}`,[T.appId,T.tenantId,T.agentId,T.runId]),[R,M]=(0,s.useState)({scopeKey:D,tokenStack:[]}),[E]=(0,s.useState)(20),[P,$]=(0,s.useState)(""),[U,_]=(0,s.useState)(null),[z,q]=(0,s.useState)(!1),[F,Q]=(0,s.useState)({scopeKey:D,open:!1}),[A,J]=(0,s.useState)({scopeKey:D,unit:null}),[V,W]=(0,s.useState)({scopeKey:D,unit:null}),[G,X]=(0,s.useState)({scopeKey:D,unit:null}),Y=R.scopeKey===D?R.tokenStack:[],Z=R.scopeKey===D?R.currentToken:void 0,ee=F.scopeKey===D&&F.open,et=A.scopeKey===D?A.unit:null,es=V.scopeKey===D?V.unit:null,ea=G.scopeKey===D?G.unit:null,er=function(e,t,s,a=20){let{context:r,ready:n}=(0,y.useRuntimeContext)();return(0,f.useQuery)({queryKey:g.queryKeys.memoryUnits(r.dataScopeKey,e,t,s,a),queryFn:()=>(0,j.listMemoryUnits)(e,t,{nextToken:s,limit:a}),enabled:n&&!!e&&!!t?.appId,staleTime:3e4})}(S,T.appId?T:null,Z,E),en=(e=(0,v.useQueryClient)(),(0,b.useMutation)({mutationFn:e=>(0,j.deleteMemoryUnit)(e),onSuccess:()=>{(0,g.invalidateMemoryQueries)(e)}})),el=er.data?.items??[];function ei(e,t){return e.scope?.appId?e.scope:t}function eo(e,t){let s=B(e),a=ei(e,t);return!!a.appId&&!(0,N.hasWildcardScope)(a)&&"-"!==s}let ec=et?ei(et,T):T,ed=es?ei(es,T):T,eu=ea?ei(ea,T):T;async function em(){if(!ea)return;let e=B(ea);if("-"===e)return void o.toast.error("记忆单元缺少 ID,无法删除");if(!eo(ea,T))return void o.toast.error("当前记忆单元缺少精确 scope,无法删除");try{await en.mutateAsync({memoryStoreName:S,memoryId:e,scope:eu}),o.toast.success("记忆单元已删除"),X({scopeKey:D,unit:null}),er.refetch()}catch(e){o.toast.error(e instanceof Error?e.message:"删除记忆单元失败")}}async function ex(){if(!P.trim())return void o.toast.error("请输入 Memory ID");if(!T.appId)return void o.toast.error("请先设置精确的 Scope");q(!0);try{let e=await (0,L.apiGet)(`/api/v1/memory/stores/${encodeURIComponent(S)}/units/${encodeURIComponent(P.trim())}?${new URLSearchParams({appId:T.appId,...T.tenantId?{tenantId:T.tenantId}:{},...T.agentId?{agentId:T.agentId}:{},...T.runId?{runId:T.runId}:{}}).toString()}`);_(e.memory),o.toast.success("找到记忆单元")}catch(e){_(null),o.toast.error(e instanceof Error?e.message:"未找到该记忆单元")}finally{q(!1)}}function eh(){$(""),_(null)}let ep=U?[U]:el,ef=U?1:er.data?.totalCount??0;return er.isLoading&&!U?(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsx)(h.Skeleton,{className:"h-8 w-48"}),(0,t.jsx)(h.Skeleton,{className:"h-10 w-full"}),(0,t.jsx)(h.Skeleton,{className:"h-64 w-full"})]}):(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsx)(u.PageHeader,{title:`长期记忆 (${ef})`,children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(x.RefreshButton,{loading:er.isRefetching,onClick:()=>{er.refetch(),eh()}}),I?(0,t.jsx)(p.TooltipProvider,{delayDuration:200,children:(0,t.jsxs)(p.Tooltip,{children:[(0,t.jsx)(p.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("span",{tabIndex:0,className:"inline-flex",children:(0,t.jsxs)(c.Button,{disabled:!0,className:"pointer-events-none",children:[(0,t.jsx)(l.Plus,{className:"mr-2 h-4 w-4"}),"添加记忆"]})})}),(0,t.jsx)(p.TooltipContent,{side:"bottom",className:"max-w-[240px]",children:(0,t.jsx)("p",{children:"请在上方 Scope 栏中为所有字段设置具体值后再添加记忆"})})]})}):(0,t.jsxs)(c.Button,{onClick:()=>Q({scopeKey:D,open:!0}),children:[(0,t.jsx)(l.Plus,{className:"mr-2 h-4 w-4"}),"添加记忆"]})]})}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(d.Input,{value:P,onChange:e=>$(e.target.value),placeholder:"输入 Memory ID 查询单条记忆...",className:"max-w-md",onKeyDown:e=>"Enter"===e.key&&ex()}),(0,t.jsxs)(c.Button,{onClick:ex,disabled:z||!T.appId,children:[(0,t.jsx)(i.Search,{className:"mr-1.5 h-4 w-4"}),z?"查询中...":"查询"]}),U&&(0,t.jsx)(c.Button,{variant:"outline",onClick:eh,children:"返回列表"})]}),I&&!U&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:"当前 scope 含通配符,仅支持只读查询,无法执行新增、查看详情、编辑或删除。"}),(0,t.jsx)(H,{units:ep,readOnly:!!U,isActionDisabled:e=>!!U||!eo(e,T),onView:e=>J({scopeKey:D,unit:e}),onEdit:e=>W({scopeKey:D,unit:e}),onDelete:e=>X({scopeKey:D,unit:e})}),!U&&(0,t.jsxs)("div",{className:"flex items-center justify-between py-2",children:[(0,t.jsxs)("span",{className:"text-sm text-muted-foreground",children:["第 ",Y.length+1," 页"]}),(0,t.jsxs)("div",{className:"flex items-center gap-4",children:[(0,t.jsxs)(c.Button,{variant:"outline",size:"sm",onClick:()=>{M(e=>{let t=[...e.scopeKey===D?e.tokenStack:[]],s=t.pop();return{scopeKey:D,tokenStack:t,currentToken:s||void 0}})},disabled:0===Y.length,children:[(0,t.jsx)(r.ChevronLeft,{className:"mr-1 h-4 w-4"}),"上一页"]}),(0,t.jsxs)(c.Button,{variant:"outline",size:"sm",onClick:()=>{er.data?.nextToken&&M(e=>({scopeKey:D,tokenStack:[...e.scopeKey===D?e.tokenStack:[],Z??""],currentToken:er.data.nextToken}))},disabled:!er.data?.nextToken,children:["下一页",(0,t.jsx)(n.ChevronRight,{className:"ml-1 h-4 w-4"})]})]})]}),(0,t.jsx)(C,{memoryStoreName:S,scope:T,open:ee,onOpenChange:e=>Q({scopeKey:D,open:e}),onSuccess:()=>{er.refetch(),eh()}}),(0,t.jsx)(O,{memoryStoreName:S,scope:ec,unit:et,open:!!et&&eo(et,T),onOpenChange:e=>{e||J({scopeKey:D,unit:null})}}),(0,t.jsx)(K,{memoryStoreName:S,scope:ed,unit:es,open:!!es&&eo(es,T),onOpenChange:e=>{e||W({scopeKey:D,unit:null})}}),(0,t.jsx)(m.ConfirmDialog,{open:!!ea&&eo(ea,T),onOpenChange:e=>{e||X({scopeKey:D,unit:null})},title:"删除记忆单元",description:`确定要删除记忆单元 "${ea?B(ea):""}" 吗?此操作不可撤销。`,variant:"danger",onConfirm:em})]})}],144)}]);
|
|
@@ -4,6 +4,7 @@ import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
|
4
4
|
import { Settings2 } from "lucide-react";
|
|
5
5
|
|
|
6
6
|
import { Button } from "@/components/ui/button";
|
|
7
|
+
import { AppShellLayout } from "@/components/layout/detail-sidebar";
|
|
7
8
|
import { QaChatPanel } from "@/components/qa/qa-chat-panel";
|
|
8
9
|
import { ChatHistorySidebar } from "@/components/chat/chat-history-sidebar";
|
|
9
10
|
import { ChatMountConfig } from "@/components/chat/chat-mount-config";
|
|
@@ -293,7 +294,7 @@ function ChatHomepage() {
|
|
|
293
294
|
: null;
|
|
294
295
|
|
|
295
296
|
return (
|
|
296
|
-
<
|
|
297
|
+
<AppShellLayout>
|
|
297
298
|
<ChatHistorySidebar
|
|
298
299
|
sessions={history.sessions}
|
|
299
300
|
activeSessionId={activeSessionId}
|
|
@@ -303,11 +304,13 @@ function ChatHomepage() {
|
|
|
303
304
|
onClearAll={clearAll}
|
|
304
305
|
/>
|
|
305
306
|
|
|
306
|
-
<div className="flex min-w-0 flex-1 flex-col">
|
|
307
|
-
<header className="flex items-center justify-between border-b border-[hsl(var(--border))]
|
|
307
|
+
<div className="flex min-w-0 flex-1 flex-col bg-[hsl(var(--card))]">
|
|
308
|
+
<header className="flex h-14 shrink-0 items-center justify-between gap-3 border-b border-[hsl(var(--border))] px-5">
|
|
308
309
|
<div className="min-w-0">
|
|
309
|
-
<h1 className="truncate text-sm font-semibold">
|
|
310
|
-
|
|
310
|
+
<h1 className="truncate text-sm font-semibold text-[hsl(var(--foreground))]">
|
|
311
|
+
{headerTitle}
|
|
312
|
+
</h1>
|
|
313
|
+
<p className="mt-0.5 truncate text-xs text-[hsl(var(--muted-foreground))]">
|
|
311
314
|
{cfg.providerId && cfg.model ? (
|
|
312
315
|
<>
|
|
313
316
|
{cfg.model} · {mountCount} 个知识库 · 聚合 {cfg.aggregateTopK}
|
|
@@ -328,38 +331,36 @@ function ChatHomepage() {
|
|
|
328
331
|
</Button>
|
|
329
332
|
</header>
|
|
330
333
|
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
/>
|
|
362
|
-
</div>
|
|
334
|
+
{/*
|
|
335
|
+
The composer is always rendered (even on a fresh session) so
|
|
336
|
+
users can start typing immediately. Empty-state copy + a CTA
|
|
337
|
+
into the config drawer surface inside the panel; this matches
|
|
338
|
+
the ChatGPT / Claude convention of a sticky composer at the
|
|
339
|
+
bottom and contextual guidance above it.
|
|
340
|
+
*/}
|
|
341
|
+
<QaChatPanel
|
|
342
|
+
messages={chat.messages}
|
|
343
|
+
isStreaming={chat.isStreaming}
|
|
344
|
+
canSend={canSend}
|
|
345
|
+
error={chat.error}
|
|
346
|
+
onSend={handleSend}
|
|
347
|
+
onStop={chat.stop}
|
|
348
|
+
onDelete={chat.deleteMessage}
|
|
349
|
+
onResend={chat.reissueTurn}
|
|
350
|
+
onRegenerate={handleRegenerate}
|
|
351
|
+
onEditSave={handleEditSave}
|
|
352
|
+
emptyState={{
|
|
353
|
+
title: canSend ? "可以开始对话了" : "开始对话",
|
|
354
|
+
description: mountsCarryover
|
|
355
|
+
? `${mountsCarryover} 直接在下方输入你的问题。`
|
|
356
|
+
: canSend
|
|
357
|
+
? "直接在下方输入你的问题;随时可以通过右上角齿轮调整模型或挂载的知识库"
|
|
358
|
+
: "点击右上角齿轮,选择模型并挂载知识库,即可开始问答",
|
|
359
|
+
actionLabel: "打开配置",
|
|
360
|
+
onAction: () => setSheetOpen(true),
|
|
361
|
+
}}
|
|
362
|
+
disabledPlaceholder="请先点击右上角齿轮配置模型与知识库"
|
|
363
|
+
/>
|
|
363
364
|
</div>
|
|
364
365
|
|
|
365
366
|
<ChatMountConfig
|
|
@@ -367,6 +368,6 @@ function ChatHomepage() {
|
|
|
367
368
|
onOpenChange={setSheetOpen}
|
|
368
369
|
onSave={handleSaveConfig}
|
|
369
370
|
/>
|
|
370
|
-
</
|
|
371
|
+
</AppShellLayout>
|
|
371
372
|
);
|
|
372
373
|
}
|
|
@@ -43,7 +43,7 @@ export default function DashboardError({
|
|
|
43
43
|
<AlertTriangle className="h-7 w-7" aria-hidden="true" />
|
|
44
44
|
</div>
|
|
45
45
|
<div className="space-y-2 max-w-md">
|
|
46
|
-
<h2 className="
|
|
46
|
+
<h2 className="text-xl font-semibold tracking-tight text-foreground">
|
|
47
47
|
页面出错了
|
|
48
48
|
</h2>
|
|
49
49
|
<p className="text-sm text-muted-foreground break-words">
|
package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/knowledge-base/[name]/layout-client.tsx
CHANGED
|
@@ -1,13 +1,49 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
3
|
import { Suspense, useState } from "react";
|
|
4
|
-
import { useParams } from "next/navigation";
|
|
4
|
+
import { useParams, useSearchParams } from "next/navigation";
|
|
5
|
+
import {
|
|
6
|
+
BookOpenText,
|
|
7
|
+
FileText,
|
|
8
|
+
MoreVertical,
|
|
9
|
+
MessagesSquare,
|
|
10
|
+
Search,
|
|
11
|
+
Settings,
|
|
12
|
+
Trash2,
|
|
13
|
+
} from "lucide-react";
|
|
14
|
+
|
|
5
15
|
import { Skeleton } from "@/components/ui/skeleton";
|
|
16
|
+
import {
|
|
17
|
+
DropdownMenu,
|
|
18
|
+
DropdownMenuContent,
|
|
19
|
+
DropdownMenuItem,
|
|
20
|
+
DropdownMenuTrigger,
|
|
21
|
+
} from "@/components/ui/dropdown-menu";
|
|
22
|
+
import { Badge } from "@/components/ui/badge";
|
|
23
|
+
import {
|
|
24
|
+
DetailLayout,
|
|
25
|
+
DetailSidebar,
|
|
26
|
+
DetailSidebarBack,
|
|
27
|
+
DetailSidebarHeader,
|
|
28
|
+
DetailSidebarMenu,
|
|
29
|
+
} from "@/components/layout/detail-sidebar";
|
|
6
30
|
import { useKnowledgeBase } from "@/hooks/use-knowledge-base";
|
|
7
|
-
import { KBHeader } from "@/components/knowledge-base/kb-header";
|
|
8
|
-
import { KBTabNav } from "@/components/knowledge-base/kb-tab-nav";
|
|
9
31
|
import { KBDeleteDialog } from "@/components/knowledge-base/kb-delete-dialog";
|
|
10
|
-
import { SubspaceProvider } from "@/contexts/subspace-context";
|
|
32
|
+
import { SubspaceProvider, useSubspaceOptional } from "@/contexts/subspace-context";
|
|
33
|
+
import { SubspaceSwitcher } from "@/components/knowledge-base/subspace-switcher";
|
|
34
|
+
import { RelativeTime } from "@/components/shared/relative-time";
|
|
35
|
+
import type { KnowledgeBase } from "@/types/knowledge-base";
|
|
36
|
+
|
|
37
|
+
const TABS = [
|
|
38
|
+
{ label: "文档", segment: "documents", icon: <FileText className="h-4 w-4" /> },
|
|
39
|
+
{ label: "检索测试", segment: "retrieval", icon: <Search className="h-4 w-4" /> },
|
|
40
|
+
{
|
|
41
|
+
label: "问答测试",
|
|
42
|
+
segment: "qa",
|
|
43
|
+
icon: <MessagesSquare className="h-4 w-4" />,
|
|
44
|
+
},
|
|
45
|
+
{ label: "设置", segment: "settings", icon: <Settings className="h-4 w-4" /> },
|
|
46
|
+
] as const;
|
|
11
47
|
|
|
12
48
|
export default function KnowledgeBaseDetailLayoutClient({
|
|
13
49
|
children,
|
|
@@ -21,58 +57,173 @@ export default function KnowledgeBaseDetailLayoutClient({
|
|
|
21
57
|
|
|
22
58
|
if (isLoading) {
|
|
23
59
|
return (
|
|
24
|
-
<
|
|
25
|
-
<
|
|
60
|
+
<DetailLayout
|
|
61
|
+
sidebar={<DetailSidebarSkeleton />}
|
|
62
|
+
>
|
|
63
|
+
<div className="space-y-6">
|
|
26
64
|
<Skeleton className="h-10 w-64" />
|
|
27
|
-
<Skeleton className="h-
|
|
28
|
-
<Skeleton className="h-
|
|
65
|
+
<Skeleton className="h-10 w-full" />
|
|
66
|
+
<Skeleton className="h-64 w-full" />
|
|
29
67
|
</div>
|
|
30
|
-
|
|
31
|
-
<Skeleton className="h-64 w-full" />
|
|
32
|
-
</div>
|
|
68
|
+
</DetailLayout>
|
|
33
69
|
);
|
|
34
70
|
}
|
|
35
71
|
|
|
36
72
|
if (!knowledgeBase) {
|
|
37
73
|
return (
|
|
38
|
-
<
|
|
39
|
-
|
|
40
|
-
|
|
74
|
+
<DetailLayout sidebar={<DetailSidebarSkeleton />}>
|
|
75
|
+
<div className="flex items-center justify-center py-20 text-muted-foreground">
|
|
76
|
+
知识库不存在或已被删除
|
|
77
|
+
</div>
|
|
78
|
+
</DetailLayout>
|
|
41
79
|
);
|
|
42
80
|
}
|
|
43
81
|
|
|
44
82
|
return (
|
|
45
|
-
<
|
|
46
|
-
<Suspense
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
<Skeleton className="h-10 w-full" />
|
|
55
|
-
<Skeleton className="h-[400px] w-full" />
|
|
56
|
-
</div>
|
|
57
|
-
}
|
|
58
|
-
>
|
|
59
|
-
<SubspaceProvider knowledgeBaseName={knowledgeBaseName}>
|
|
60
|
-
<div className="space-y-6">
|
|
61
|
-
<KBHeader
|
|
62
|
-
knowledgeBase={knowledgeBase}
|
|
63
|
-
onDelete={() => setShowDeleteDialog(true)}
|
|
64
|
-
/>
|
|
65
|
-
<KBTabNav knowledgeBaseName={knowledgeBaseName} />
|
|
66
|
-
<div>{children}</div>
|
|
67
|
-
</div>
|
|
68
|
-
</SubspaceProvider>
|
|
83
|
+
<SubspaceProvider knowledgeBaseName={knowledgeBaseName}>
|
|
84
|
+
<Suspense fallback={null}>
|
|
85
|
+
<KBDetailShell
|
|
86
|
+
knowledgeBase={knowledgeBase}
|
|
87
|
+
knowledgeBaseName={knowledgeBaseName}
|
|
88
|
+
onRequestDelete={() => setShowDeleteDialog(true)}
|
|
89
|
+
>
|
|
90
|
+
{children}
|
|
91
|
+
</KBDetailShell>
|
|
69
92
|
</Suspense>
|
|
70
|
-
|
|
71
93
|
<KBDeleteDialog
|
|
72
94
|
knowledgeBaseName={knowledgeBaseName}
|
|
73
95
|
open={showDeleteDialog}
|
|
74
96
|
onOpenChange={setShowDeleteDialog}
|
|
75
97
|
/>
|
|
76
|
-
</
|
|
98
|
+
</SubspaceProvider>
|
|
99
|
+
);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
function KBDetailShell({
|
|
103
|
+
knowledgeBase,
|
|
104
|
+
knowledgeBaseName,
|
|
105
|
+
onRequestDelete,
|
|
106
|
+
children,
|
|
107
|
+
}: {
|
|
108
|
+
knowledgeBase: KnowledgeBase;
|
|
109
|
+
knowledgeBaseName: string;
|
|
110
|
+
onRequestDelete: () => void;
|
|
111
|
+
children: React.ReactNode;
|
|
112
|
+
}) {
|
|
113
|
+
const searchParams = useSearchParams();
|
|
114
|
+
const activeSubspace = useSubspaceOptional()?.subspace ?? null;
|
|
115
|
+
|
|
116
|
+
// Carry the subspace querystring through to each menu link so
|
|
117
|
+
// middle-click / copy-link continues to land on the same scope.
|
|
118
|
+
const params = new URLSearchParams(searchParams.toString());
|
|
119
|
+
if (activeSubspace) params.set("subspace", activeSubspace);
|
|
120
|
+
else params.delete("subspace");
|
|
121
|
+
const qs = params.toString();
|
|
122
|
+
const querySuffix = qs ? `?${qs}` : "";
|
|
123
|
+
|
|
124
|
+
const basePath = `/knowledge-base/${encodeURIComponent(knowledgeBaseName)}`;
|
|
125
|
+
const items = TABS.map((tab) => ({
|
|
126
|
+
href: `${basePath}/${tab.segment}${querySuffix}`,
|
|
127
|
+
label: tab.label,
|
|
128
|
+
icon: tab.icon,
|
|
129
|
+
}));
|
|
130
|
+
|
|
131
|
+
return (
|
|
132
|
+
<DetailLayout
|
|
133
|
+
sidebar={
|
|
134
|
+
<DetailSidebar>
|
|
135
|
+
<DetailSidebarHeader
|
|
136
|
+
icon={<BookOpenText />}
|
|
137
|
+
accent="primary"
|
|
138
|
+
name={knowledgeBase.knowledgeBaseName}
|
|
139
|
+
typeLabel="知识库 · KNOWLEDGE BASE"
|
|
140
|
+
description={knowledgeBase.description}
|
|
141
|
+
actions={
|
|
142
|
+
<DropdownMenu>
|
|
143
|
+
<DropdownMenuTrigger asChild>
|
|
144
|
+
<button
|
|
145
|
+
type="button"
|
|
146
|
+
aria-label="更多操作"
|
|
147
|
+
className="flex h-7 w-7 items-center justify-center rounded-md text-[hsl(var(--muted-foreground))] transition-colors hover:bg-[hsl(var(--background))] hover:text-[hsl(var(--foreground))]"
|
|
148
|
+
>
|
|
149
|
+
<MoreVertical className="h-4 w-4" />
|
|
150
|
+
</button>
|
|
151
|
+
</DropdownMenuTrigger>
|
|
152
|
+
<DropdownMenuContent align="end">
|
|
153
|
+
<DropdownMenuItem
|
|
154
|
+
onSelect={(e) => {
|
|
155
|
+
e.preventDefault();
|
|
156
|
+
onRequestDelete();
|
|
157
|
+
}}
|
|
158
|
+
className="text-[hsl(var(--destructive))] focus:bg-[hsl(var(--danger-soft))] focus:text-[hsl(var(--destructive))] hover:bg-[hsl(var(--danger-soft))] hover:text-[hsl(var(--destructive))]"
|
|
159
|
+
>
|
|
160
|
+
<Trash2 className="h-3.5 w-3.5" />
|
|
161
|
+
删除知识库
|
|
162
|
+
</DropdownMenuItem>
|
|
163
|
+
</DropdownMenuContent>
|
|
164
|
+
</DropdownMenu>
|
|
165
|
+
}
|
|
166
|
+
extra={
|
|
167
|
+
<>
|
|
168
|
+
{knowledgeBase.tags && knowledgeBase.tags.length > 0 ? (
|
|
169
|
+
<div className="-mt-0.5 flex flex-wrap gap-1">
|
|
170
|
+
{knowledgeBase.tags.map((tag) => (
|
|
171
|
+
<Badge
|
|
172
|
+
key={tag}
|
|
173
|
+
variant="primary"
|
|
174
|
+
className="text-[10px]"
|
|
175
|
+
>
|
|
176
|
+
{tag}
|
|
177
|
+
</Badge>
|
|
178
|
+
))}
|
|
179
|
+
</div>
|
|
180
|
+
) : null}
|
|
181
|
+
{knowledgeBase.subspace ? (
|
|
182
|
+
<div className="space-y-1">
|
|
183
|
+
<div className="inline-flex items-center gap-1.5 text-[hsl(var(--success))]">
|
|
184
|
+
<span className="h-1.5 w-1.5 rounded-full bg-current" />
|
|
185
|
+
子空间隔离已开启
|
|
186
|
+
</div>
|
|
187
|
+
<SubspaceSwitcher />
|
|
188
|
+
</div>
|
|
189
|
+
) : null}
|
|
190
|
+
{knowledgeBase.createdAt ? (
|
|
191
|
+
<div>
|
|
192
|
+
创建于 <RelativeTime timestamp={knowledgeBase.createdAt} />
|
|
193
|
+
</div>
|
|
194
|
+
) : null}
|
|
195
|
+
{knowledgeBase.updatedAt ? (
|
|
196
|
+
<div>
|
|
197
|
+
更新于 <RelativeTime timestamp={knowledgeBase.updatedAt} />
|
|
198
|
+
</div>
|
|
199
|
+
) : null}
|
|
200
|
+
</>
|
|
201
|
+
}
|
|
202
|
+
/>
|
|
203
|
+
<DetailSidebarMenu items={items} />
|
|
204
|
+
<DetailSidebarBack href="/knowledge-base" label="返回列表" />
|
|
205
|
+
</DetailSidebar>
|
|
206
|
+
}
|
|
207
|
+
>
|
|
208
|
+
{children}
|
|
209
|
+
</DetailLayout>
|
|
210
|
+
);
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
function DetailSidebarSkeleton() {
|
|
214
|
+
return (
|
|
215
|
+
<DetailSidebar>
|
|
216
|
+
<div className="space-y-3 px-4 pt-4 pb-4 border-b border-[hsl(var(--border-light))]">
|
|
217
|
+
<Skeleton className="h-9 w-9 rounded-lg" />
|
|
218
|
+
<Skeleton className="h-4 w-3/4" />
|
|
219
|
+
<Skeleton className="h-3 w-1/2" />
|
|
220
|
+
</div>
|
|
221
|
+
<div className="space-y-1 px-2 py-2">
|
|
222
|
+
<Skeleton className="h-8 w-full" />
|
|
223
|
+
<Skeleton className="h-8 w-full" />
|
|
224
|
+
<Skeleton className="h-8 w-full" />
|
|
225
|
+
<Skeleton className="h-8 w-full" />
|
|
226
|
+
</div>
|
|
227
|
+
</DetailSidebar>
|
|
77
228
|
);
|
|
78
229
|
}
|
package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/knowledge-base/[name]/qa/page.tsx
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { use, useCallback, useState } from "react";
|
|
4
4
|
|
|
5
|
+
import { WorkbenchLayout } from "@/components/layout/detail-sidebar";
|
|
5
6
|
import { QaChatPanel } from "@/components/qa/qa-chat-panel";
|
|
6
7
|
import { QaForm, type QaFormState } from "@/components/qa/qa-form";
|
|
7
8
|
import { useKnowledgeBase } from "@/hooks/use-knowledge-base";
|
|
@@ -51,8 +52,8 @@ export default function QaPlaygroundPage({ params }: PageProps) {
|
|
|
51
52
|
);
|
|
52
53
|
|
|
53
54
|
return (
|
|
54
|
-
<
|
|
55
|
-
|
|
55
|
+
<WorkbenchLayout
|
|
56
|
+
aside={
|
|
56
57
|
<QaForm
|
|
57
58
|
knowledgeBaseName={knowledgeBaseName}
|
|
58
59
|
knowledgeBase={knowledgeBase}
|
|
@@ -60,22 +61,20 @@ export default function QaPlaygroundPage({ params }: PageProps) {
|
|
|
60
61
|
onClearConversation={chat.clear}
|
|
61
62
|
disabled={chat.isStreaming}
|
|
62
63
|
/>
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
<
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
</section>
|
|
79
|
-
</div>
|
|
64
|
+
}
|
|
65
|
+
>
|
|
66
|
+
<QaChatPanel
|
|
67
|
+
messages={chat.messages}
|
|
68
|
+
isStreaming={chat.isStreaming}
|
|
69
|
+
canSend={canSend}
|
|
70
|
+
error={chat.error}
|
|
71
|
+
onSend={chat.send}
|
|
72
|
+
onStop={chat.stop}
|
|
73
|
+
onDelete={chat.deleteMessage}
|
|
74
|
+
onResend={chat.reissueTurn}
|
|
75
|
+
onRegenerate={handleRegenerate}
|
|
76
|
+
onEditSave={handleEditSave}
|
|
77
|
+
/>
|
|
78
|
+
</WorkbenchLayout>
|
|
80
79
|
);
|
|
81
80
|
}
|
|
@@ -4,6 +4,7 @@ import { useState, useCallback } from "react";
|
|
|
4
4
|
import { useParams } from "next/navigation";
|
|
5
5
|
import { toast } from "sonner";
|
|
6
6
|
import { Skeleton } from "@/components/ui/skeleton";
|
|
7
|
+
import { WorkbenchLayout } from "@/components/layout/detail-sidebar";
|
|
7
8
|
import { useKnowledgeBase } from "@/hooks/use-knowledge-base";
|
|
8
9
|
import { useRetrieve } from "@/hooks/use-retrieve";
|
|
9
10
|
import { RetrievalForm } from "@/components/retrieval/retrieval-form";
|
|
@@ -48,20 +49,20 @@ export default function RetrievalClient() {
|
|
|
48
49
|
}
|
|
49
50
|
|
|
50
51
|
return (
|
|
51
|
-
<
|
|
52
|
-
|
|
53
|
-
|
|
52
|
+
<WorkbenchLayout
|
|
53
|
+
asideWidth={400}
|
|
54
|
+
aside={
|
|
54
55
|
<RetrievalForm
|
|
55
56
|
knowledgeBaseName={knowledgeBaseName}
|
|
56
57
|
knowledgeBase={knowledgeBase ?? undefined}
|
|
57
58
|
onSubmit={handleSubmit}
|
|
58
59
|
isLoading={retrieve.isPending}
|
|
59
60
|
/>
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
<div>
|
|
61
|
+
}
|
|
62
|
+
>
|
|
63
|
+
<div className="min-h-0 flex-1 overflow-y-auto px-7 py-5 max-md:px-4">
|
|
63
64
|
<RetrievalResults results={results} elapsedMs={elapsedMs} />
|
|
64
65
|
</div>
|
|
65
|
-
</
|
|
66
|
+
</WorkbenchLayout>
|
|
66
67
|
);
|
|
67
68
|
}
|
|
@@ -2,7 +2,6 @@ import { redirect } from 'next/navigation';
|
|
|
2
2
|
|
|
3
3
|
import { listInstances } from '@tablestore/tablestore-agent-shared';
|
|
4
4
|
|
|
5
|
-
import { BreadcrumbBar } from '@/components/layout/breadcrumb-bar';
|
|
6
5
|
import { Sidebar } from '@/components/layout/sidebar';
|
|
7
6
|
import { SidebarMobile } from '@/components/layout/sidebar-mobile';
|
|
8
7
|
import { SidebarOffset } from '@/components/layout/sidebar-offset';
|
|
@@ -45,7 +44,7 @@ export default function DashboardLayout({
|
|
|
45
44
|
}
|
|
46
45
|
|
|
47
46
|
return (
|
|
48
|
-
<div className="min-h-screen">
|
|
47
|
+
<div className="min-h-screen bg-[hsl(var(--background))]">
|
|
49
48
|
{/*
|
|
50
49
|
Skip-to-content link: visually hidden until focused. Keyboard users
|
|
51
50
|
can press Tab once on the page to jump straight to the main region,
|
|
@@ -58,15 +57,9 @@ export default function DashboardLayout({
|
|
|
58
57
|
跳转到主内容
|
|
59
58
|
</a>
|
|
60
59
|
<Sidebar />
|
|
60
|
+
<SidebarMobile />
|
|
61
61
|
<SidebarOffset>
|
|
62
|
-
<
|
|
63
|
-
<BreadcrumbBar />
|
|
64
|
-
<main
|
|
65
|
-
id="main-content"
|
|
66
|
-
tabIndex={-1}
|
|
67
|
-
aria-label="主内容"
|
|
68
|
-
className="mx-auto max-w-350 px-8 py-8 max-md:px-4 animate-in fade-in duration-300"
|
|
69
|
-
>
|
|
62
|
+
<main id="main-content" className="min-h-screen px-7 py-5 max-md:px-4">
|
|
70
63
|
{children}
|
|
71
64
|
</main>
|
|
72
65
|
</SidebarOffset>
|