@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.
Files changed (351) hide show
  1. package/dist/dashboard-runtime/dashboard/.next/BUILD_ID +1 -1
  2. package/dist/dashboard-runtime/dashboard/.next/build-manifest.json +3 -3
  3. package/dist/dashboard-runtime/dashboard/.next/prerender-manifest.json +3 -3
  4. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/chat/page.js +1 -1
  5. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
  6. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
  7. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/documents/page.js +1 -1
  8. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/documents/page.js.nft.json +1 -1
  9. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/documents/page_client-reference-manifest.js +1 -1
  10. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/page.js +1 -1
  11. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/page.js.nft.json +1 -1
  12. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/page_client-reference-manifest.js +1 -1
  13. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/qa/page.js +1 -1
  14. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/qa/page.js.nft.json +1 -1
  15. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/qa/page_client-reference-manifest.js +1 -1
  16. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/retrieval/page.js +1 -1
  17. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/retrieval/page.js.nft.json +1 -1
  18. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/retrieval/page_client-reference-manifest.js +1 -1
  19. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/settings/page.js +1 -1
  20. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/settings/page.js.nft.json +1 -1
  21. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/settings/page_client-reference-manifest.js +1 -1
  22. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/create/page.js +1 -1
  23. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/create/page.js.nft.json +1 -1
  24. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/create/page_client-reference-manifest.js +1 -1
  25. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/page.js +1 -1
  26. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/page.js.nft.json +1 -1
  27. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/page_client-reference-manifest.js +1 -1
  28. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/[id]/page.js +1 -1
  29. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/[id]/page.js.nft.json +1 -1
  30. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/[id]/page_client-reference-manifest.js +1 -1
  31. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/new/page.js +2 -2
  32. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/new/page.js.nft.json +1 -1
  33. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/new/page_client-reference-manifest.js +1 -1
  34. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/page.js +1 -1
  35. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/page.js.nft.json +1 -1
  36. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/page_client-reference-manifest.js +1 -1
  37. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/messages/page.js +1 -1
  38. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/messages/page.js.nft.json +1 -1
  39. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/messages/page_client-reference-manifest.js +1 -1
  40. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/page.js +1 -1
  41. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/page.js.nft.json +1 -1
  42. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/page_client-reference-manifest.js +1 -1
  43. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/requests/page/react-loadable-manifest.json +1 -1
  44. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/requests/page.js +1 -1
  45. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/requests/page.js.nft.json +1 -1
  46. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/requests/page_client-reference-manifest.js +1 -1
  47. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/search/page.js +1 -1
  48. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/search/page.js.nft.json +1 -1
  49. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/search/page_client-reference-manifest.js +1 -1
  50. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/settings/page.js +1 -1
  51. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/settings/page.js.nft.json +1 -1
  52. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/settings/page_client-reference-manifest.js +1 -1
  53. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/units/page.js +1 -1
  54. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/units/page.js.nft.json +1 -1
  55. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/units/page_client-reference-manifest.js +1 -1
  56. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/create/page.js +1 -1
  57. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/create/page.js.nft.json +1 -1
  58. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/create/page_client-reference-manifest.js +1 -1
  59. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/page.js +1 -1
  60. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/page.js.nft.json +1 -1
  61. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/page_client-reference-manifest.js +1 -1
  62. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/projects/page.js +1 -1
  63. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/projects/page.js.nft.json +1 -1
  64. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/projects/page_client-reference-manifest.js +1 -1
  65. package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.html +1 -1
  66. package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.rsc +1 -1
  67. package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  68. package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  69. package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  70. package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  71. package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  72. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  73. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.html +1 -1
  74. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.rsc +3 -3
  75. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  76. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  77. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
  78. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  79. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  80. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  81. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/auth/status/route.js.nft.json +1 -1
  82. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/auth/token/route.js.nft.json +1 -1
  83. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/[name]/route.js.nft.json +1 -1
  84. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/[name]/token/route.js.nft.json +1 -1
  85. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/[name]/use/route.js.nft.json +1 -1
  86. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/route.js.nft.json +1 -1
  87. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/chunks/route.js.nft.json +1 -1
  88. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/[docId]/chunks/route.js.nft.json +1 -1
  89. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/[docId]/route.js.nft.json +1 -1
  90. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/route.js.nft.json +1 -1
  91. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/upload/route.js.nft.json +1 -1
  92. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/retrieve/route.js.nft.json +1 -1
  93. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/route.js.nft.json +1 -1
  94. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/route.js.nft.json +1 -1
  95. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/chat/route.js.nft.json +1 -1
  96. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/[id]/models/route.js.nft.json +1 -1
  97. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/[id]/route.js.nft.json +1 -1
  98. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/[id]/test/route.js.nft.json +1 -1
  99. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/route.js.nft.json +1 -1
  100. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/logs/client/route.js.nft.json +1 -1
  101. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/messages/route.js.nft.json +1 -1
  102. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/requests/route.js.nft.json +1 -1
  103. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/route.js.nft.json +1 -1
  104. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/search/route.js.nft.json +1 -1
  105. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/units/[memoryId]/route.js.nft.json +1 -1
  106. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/units/route.js.nft.json +1 -1
  107. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/route.js.nft.json +1 -1
  108. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/runtime/context/route.js.nft.json +1 -1
  109. package/dist/dashboard-runtime/dashboard/.next/server/app/index.html +1 -1
  110. package/dist/dashboard-runtime/dashboard/.next/server/app/index.rsc +3 -3
  111. package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  112. package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/_full.segment.rsc +3 -3
  113. package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/_head.segment.rsc +1 -1
  114. package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/_index.segment.rsc +3 -3
  115. package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  116. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding/page.js.nft.json +1 -1
  117. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  118. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.html +1 -1
  119. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.rsc +5 -5
  120. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/_full.segment.rsc +5 -5
  121. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/_head.segment.rsc +1 -1
  122. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/_index.segment.rsc +3 -3
  123. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/_tree.segment.rsc +2 -2
  124. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/onboarding/__PAGE__.segment.rsc +2 -2
  125. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/onboarding.segment.rsc +2 -2
  126. package/dist/dashboard-runtime/dashboard/.next/server/app/page_client-reference-manifest.js +1 -1
  127. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/0b1r_app_(dashboard)_knowledge-base_[name]_documents_documents-client_tsx_0g2uxmt._.js +2 -2
  128. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0aqzu8w._.js +1 -1
  129. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0id.4_g._.js +3 -0
  130. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0jb9ccl._.js +1 -1
  131. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0jhpb-b._.js +3 -0
  132. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0p7j-9i._.js +3 -0
  133. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0.1szyw._.js +3 -0
  134. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_01-2v37._.js +3 -0
  135. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0251rsp._.js +7 -0
  136. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_038vjn1._.js +3 -0
  137. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_04f2u4t._.js +1 -1
  138. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_06tznmj._.js +3 -0
  139. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_09y~hs8._.js +3 -0
  140. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0_ow0x1._.js +3 -0
  141. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0ddbh97._.js +1 -1
  142. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0f4u0.1._.js +3 -0
  143. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0fj8l5g._.js +3 -0
  144. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0hnw-ok._.js +3 -0
  145. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0j-q~ro._.js +3 -0
  146. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0jghj2_._.js +3 -0
  147. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0l~-9i0._.js +3 -0
  148. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0mtqe24._.js +3 -0
  149. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0n4gd_6._.js +3 -0
  150. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0o665bf._.js +1 -1
  151. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0q748rf._.js +1 -1
  152. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0t373jc._.js +3 -0
  153. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0u4elhp._.js +3 -0
  154. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0vtm7dh._.js +3 -0
  155. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0xdioxg._.js +3 -0
  156. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_12guzbo._.js +3 -0
  157. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_12r9c8h._.js +3 -0
  158. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_00ofp7q._.js +3 -0
  159. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_065m1.j._.js +1 -1
  160. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_0ejgygh._.js +1 -1
  161. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_0jns2ew._.js +3 -0
  162. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_0o9jhcn._.js +9 -0
  163. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_0xf3ffa._.js +3 -0
  164. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_app_error_tsx_01x7ppm._.js +1 -1
  165. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_components_0ls1exu._.js +3 -0
  166. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_components_0ugdjlb._.js +3 -0
  167. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_components_shared_relative-time_tsx_0b7s9rc._.js +1 -1
  168. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_components_ui_dropdown-menu_tsx_0c~d-fd._.js +1 -1
  169. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_components_ui_select_tsx_0ys.i47._.js +1 -1
  170. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/node_modules__pnpm_0ld4qfm._.js +3 -0
  171. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/node_modules__pnpm_125b4co._.js +3 -0
  172. package/dist/dashboard-runtime/dashboard/.next/server/middleware-build-manifest.js +3 -3
  173. package/dist/dashboard-runtime/dashboard/.next/server/pages/404.html +1 -1
  174. package/dist/dashboard-runtime/dashboard/.next/server/pages/500.html +1 -1
  175. package/dist/dashboard-runtime/dashboard/.next/server/server-reference-manifest.js +1 -1
  176. package/dist/dashboard-runtime/dashboard/.next/server/server-reference-manifest.json +1 -1
  177. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0-2yqm.ft6yzy.js +1 -0
  178. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0-ov0wxgu5b65.js +1 -0
  179. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0.2e8ciiogw04.js +1 -0
  180. package/dist/dashboard-runtime/dashboard/.next/static/chunks/00-qnlax_4630.js +1 -0
  181. package/dist/dashboard-runtime/dashboard/.next/static/chunks/03zdsc.dicedw.js +1 -0
  182. package/dist/dashboard-runtime/dashboard/.next/static/chunks/069zf4m5f.se2.js +1 -0
  183. package/dist/dashboard-runtime/dashboard/.next/static/chunks/08e9vvmr~0bqr.js +1 -0
  184. package/dist/dashboard-runtime/dashboard/.next/static/chunks/08i99xsvs8o5s.js +1 -0
  185. package/dist/dashboard-runtime/dashboard/.next/static/chunks/08tdws.ontiw1.js +1 -0
  186. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0azwigiwuhh08.css +1 -0
  187. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0b54rtt1-cxht.js +1 -0
  188. package/dist/dashboard-runtime/dashboard/.next/static/chunks/{154aheeo3m6bg.js → 0bpginsuceywq.js} +1 -1
  189. package/dist/dashboard-runtime/dashboard/.next/static/chunks/{0ai8f~-9ig.gz.js → 0cdo38.8y_jr2.js} +5 -5
  190. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0cto67_iw~p9z.js +1 -0
  191. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0cy.fvgx7dgqx.js +4 -0
  192. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0fa.nak91jfo-.js +1 -0
  193. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0fv6q06wgazh_.js +1 -0
  194. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0g9y74cipd10n.js +1 -0
  195. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0ga6neugwmh.1.js +5 -0
  196. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0h77.bqx5ltem.js +1 -0
  197. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0ix_suxk3spjj.js +1 -0
  198. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0k-x6_7dhqb~c.js +1 -0
  199. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0lrw.bnws62y9.js +1 -0
  200. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0mea2ylxe.umh.js +1 -0
  201. package/dist/dashboard-runtime/dashboard/.next/static/chunks/{0yzz97.2e6if6.js → 0n42fh.zwyk35.js} +5 -5
  202. package/dist/dashboard-runtime/dashboard/.next/static/chunks/{0dqag6qsw7xv8.js → 0px2r0l_3kp2t.js} +1 -1
  203. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0q6lk_p74rti7.js +1 -0
  204. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0t0yqi68~eil6.js +1 -0
  205. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0td9nhfbpbmyt.js +1 -0
  206. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0u39cc6mmeqb3.js +1 -0
  207. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0u6_s-0w8.yr..js +1 -0
  208. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0uay29z9qqouw.js +1 -0
  209. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0v0e.nl_9fjba.js +1 -0
  210. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0wd0_x8u.jzur.js +1 -0
  211. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0wf-nssu2qd_2.js +1 -0
  212. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0x7pw1zo7nxno.js +1 -0
  213. package/dist/dashboard-runtime/dashboard/.next/static/chunks/{05_578ka0ga8d.js → 12pz6ag1s~te_.js} +1 -1
  214. package/dist/dashboard-runtime/dashboard/.next/static/chunks/15bzqpm440jvz.js +1 -0
  215. package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/chat/page.tsx +39 -38
  216. package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/error.tsx +1 -1
  217. package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/knowledge-base/[name]/documents/documents-client.tsx +0 -1
  218. package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/knowledge-base/[name]/layout-client.tsx +191 -40
  219. package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/knowledge-base/[name]/qa/page.tsx +18 -19
  220. package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/knowledge-base/[name]/retrieval/retrieval-client.tsx +8 -7
  221. package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/layout.tsx +3 -10
  222. package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/memory/[store]/layout.tsx +128 -22
  223. package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/memory/[store]/search/page.tsx +15 -8
  224. package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/projects/page.tsx +1 -1
  225. package/dist/dashboard-runtime/dashboard/src/app/error.tsx +1 -1
  226. package/dist/dashboard-runtime/dashboard/src/app/globals.css +115 -95
  227. package/dist/dashboard-runtime/dashboard/src/app/not-found.tsx +1 -1
  228. package/dist/dashboard-runtime/dashboard/src/app/onboarding/page.tsx +2 -2
  229. package/dist/dashboard-runtime/dashboard/src/components/chat/add-mount-row.tsx +48 -39
  230. package/dist/dashboard-runtime/dashboard/src/components/documents/doc-chunks-dialog.tsx +49 -25
  231. package/dist/dashboard-runtime/dashboard/src/components/documents/doc-columns.tsx +57 -46
  232. package/dist/dashboard-runtime/dashboard/src/components/documents/doc-table.tsx +2 -4
  233. package/dist/dashboard-runtime/dashboard/src/components/documents/doc-toolbar.tsx +1 -1
  234. package/dist/dashboard-runtime/dashboard/src/components/layout/detail-sidebar.tsx +331 -0
  235. package/dist/dashboard-runtime/dashboard/src/components/layout/help-link.tsx +58 -0
  236. package/dist/dashboard-runtime/dashboard/src/components/layout/page-header.tsx +130 -11
  237. package/dist/dashboard-runtime/dashboard/src/components/layout/sidebar-instance-card.tsx +203 -0
  238. package/dist/dashboard-runtime/dashboard/src/components/layout/sidebar-item.tsx +14 -11
  239. package/dist/dashboard-runtime/dashboard/src/components/layout/sidebar-mobile.tsx +37 -29
  240. package/dist/dashboard-runtime/dashboard/src/components/layout/sidebar-usage-stats.tsx +26 -0
  241. package/dist/dashboard-runtime/dashboard/src/components/layout/sidebar.tsx +94 -46
  242. package/dist/dashboard-runtime/dashboard/src/components/layout/theme-toggle.tsx +161 -41
  243. package/dist/dashboard-runtime/dashboard/src/components/memory/requests-histogram-chart.tsx +2 -2
  244. package/dist/dashboard-runtime/dashboard/src/components/qa/qa-chat-panel.tsx +1 -1
  245. package/dist/dashboard-runtime/dashboard/src/components/retrieval/retrieval-form.tsx +100 -17
  246. package/dist/dashboard-runtime/dashboard/src/components/retrieval/retrieval-rerank-fields.tsx +60 -23
  247. package/dist/dashboard-runtime/dashboard/src/components/shared/empty-state.tsx +1 -1
  248. package/dist/dashboard-runtime/dashboard/src/components/shared/error-state.tsx +1 -1
  249. package/dist/dashboard-runtime/dashboard/src/components/shared/llm-model-selector.tsx +160 -70
  250. package/dist/dashboard-runtime/dashboard/src/components/shared/relative-time.tsx +30 -6
  251. package/dist/dashboard-runtime/dashboard/src/components/ui/badge.tsx +16 -5
  252. package/dist/dashboard-runtime/dashboard/src/components/ui/button.tsx +9 -8
  253. package/dist/dashboard-runtime/dashboard/src/components/ui/card.tsx +14 -8
  254. package/dist/dashboard-runtime/dashboard/src/components/ui/chat-bubble.tsx +60 -0
  255. package/dist/dashboard-runtime/dashboard/src/components/ui/command.tsx +1 -1
  256. package/dist/dashboard-runtime/dashboard/src/components/ui/data-card.tsx +57 -0
  257. package/dist/dashboard-runtime/dashboard/src/components/ui/detail-section.tsx +40 -0
  258. package/dist/dashboard-runtime/dashboard/src/components/ui/dialog.tsx +7 -7
  259. package/dist/dashboard-runtime/dashboard/src/components/ui/dropdown-menu.tsx +6 -6
  260. package/dist/dashboard-runtime/dashboard/src/components/ui/empty-state.tsx +42 -0
  261. package/dist/dashboard-runtime/dashboard/src/components/ui/filter-pill.tsx +90 -0
  262. package/dist/dashboard-runtime/dashboard/src/components/ui/form.tsx +3 -3
  263. package/dist/dashboard-runtime/dashboard/src/components/ui/input.tsx +5 -1
  264. package/dist/dashboard-runtime/dashboard/src/components/ui/item-card.tsx +88 -0
  265. package/dist/dashboard-runtime/dashboard/src/components/ui/label.tsx +1 -1
  266. package/dist/dashboard-runtime/dashboard/src/components/ui/memory-row.tsx +63 -0
  267. package/dist/dashboard-runtime/dashboard/src/components/ui/mini-stat.tsx +48 -0
  268. package/dist/dashboard-runtime/dashboard/src/components/ui/nav-tab-bar.tsx +60 -0
  269. package/dist/dashboard-runtime/dashboard/src/components/ui/playground-shell.tsx +69 -0
  270. package/dist/dashboard-runtime/dashboard/src/components/ui/popover.tsx +1 -1
  271. package/dist/dashboard-runtime/dashboard/src/components/ui/result-row.tsx +37 -0
  272. package/dist/dashboard-runtime/dashboard/src/components/ui/scope-tag.tsx +30 -0
  273. package/dist/dashboard-runtime/dashboard/src/components/ui/select.tsx +6 -5
  274. package/dist/dashboard-runtime/dashboard/src/components/ui/sheet.tsx +4 -4
  275. package/dist/dashboard-runtime/dashboard/src/components/ui/sonner.tsx +1 -1
  276. package/dist/dashboard-runtime/dashboard/src/components/ui/stat-card.tsx +58 -0
  277. package/dist/dashboard-runtime/dashboard/src/components/ui/table.tsx +13 -6
  278. package/dist/dashboard-runtime/dashboard/src/components/ui/textarea.tsx +4 -1
  279. package/dist/dashboard-runtime/dashboard/src/components/ui/tooltip.tsx +1 -1
  280. package/dist/dashboard-runtime/dashboard/src/components/ui/usage-card.tsx +43 -0
  281. package/dist/dashboard-runtime/dashboard/src/config/navigation.ts +50 -9
  282. package/dist/dashboard-runtime/dashboard/tailwind.config.ts +47 -12
  283. package/package.json +1 -1
  284. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0-kiaf5._.js +0 -3
  285. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0_r24-c._.js +0 -3
  286. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__11yei-s._.js +0 -3
  287. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0303qx7._.js +0 -3
  288. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_06l.12l._.js +0 -3
  289. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_09eom0_._.js +0 -3
  290. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0cd.__9._.js +0 -7
  291. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0dqi8bq._.js +0 -3
  292. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0e9y.xc._.js +0 -3
  293. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0f9u8i2._.js +0 -3
  294. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0fbjpet._.js +0 -3
  295. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0i8py_a._.js +0 -3
  296. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0jlt.cx._.js +0 -3
  297. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0n5uozy._.js +0 -3
  298. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0o32d.y._.js +0 -3
  299. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0suxzcc._.js +0 -3
  300. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0tyxwr3._.js +0 -3
  301. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0u9md36._.js +0 -3
  302. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0v4jb2q._.js +0 -3
  303. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0vzw0pw._.js +0 -3
  304. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0z0rlpq._.js +0 -3
  305. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0zn.ayc._.js +0 -3
  306. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_13l7w34._.js +0 -3
  307. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_0o4a.29._.js +0 -3
  308. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_0suis9l._.js +0 -9
  309. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_10mc58z._.js +0 -3
  310. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_app_(dashboard)_knowledge-base_[name]_layout-client_tsx_05momc5._.js +0 -3
  311. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_components_retrieval_02c2uck._.js +0 -3
  312. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/node_modules__pnpm_0qdd37m._.js +0 -3
  313. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/node_modules__pnpm_11mc1z9._.js +0 -3
  314. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0-etecbti5x22.js +0 -1
  315. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0-xqk6wfme5fu.js +0 -1
  316. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0.yj.t1hbwkg4.js +0 -1
  317. package/dist/dashboard-runtime/dashboard/.next/static/chunks/031-scv-8sah9.js +0 -1
  318. package/dist/dashboard-runtime/dashboard/.next/static/chunks/05ow1qzcjz3pz.js +0 -1
  319. package/dist/dashboard-runtime/dashboard/.next/static/chunks/07iqor2nl~iqc.js +0 -1
  320. package/dist/dashboard-runtime/dashboard/.next/static/chunks/087x52iesmpfe.js +0 -1
  321. package/dist/dashboard-runtime/dashboard/.next/static/chunks/08an3157he_ad.js +0 -1
  322. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0aak.679si-3m.js +0 -1
  323. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0c5tcbhzpwen7.js +0 -1
  324. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0dheju1t18upn.js +0 -1
  325. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0ffr1_o~ss8r8.js +0 -1
  326. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0h38qfpz-dmiu.js +0 -1
  327. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0l1fmyhvp-k49.js +0 -1
  328. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0pcp6pjjz7o49.js +0 -1
  329. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0pdq-gljpy7gd.js +0 -1
  330. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0q6-s11w9.sgo.js +0 -1
  331. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0rnm58mg0whfk.js +0 -1
  332. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0rxp5ykl1_lyb.js +0 -4
  333. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0sg6z8.ci0l2b.js +0 -1
  334. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0v_~favugkv_a.js +0 -1
  335. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0x3ysmon_~xsv.js +0 -1
  336. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0x7sjde5wit~i.js +0 -1
  337. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0~alekqkiwwaq.js +0 -1
  338. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0~e2n9bhosscr.js +0 -1
  339. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0~i4llb9-utpp.css +0 -1
  340. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0~n-y9cstar6b.js +0 -5
  341. package/dist/dashboard-runtime/dashboard/.next/static/chunks/14z_j1qzycpe1.js +0 -1
  342. package/dist/dashboard-runtime/dashboard/.next/static/chunks/17k4h5zgalxqj.js +0 -1
  343. package/dist/dashboard-runtime/dashboard/.next/static/chunks/17m1wc_o0.5iz.js +0 -1
  344. package/dist/dashboard-runtime/dashboard/src/components/knowledge-base/kb-header.tsx +0 -91
  345. package/dist/dashboard-runtime/dashboard/src/components/knowledge-base/kb-tab-nav.tsx +0 -62
  346. package/dist/dashboard-runtime/dashboard/src/components/layout/breadcrumb-bar.tsx +0 -115
  347. package/dist/dashboard-runtime/dashboard/src/components/memory/memory-header.tsx +0 -46
  348. package/dist/dashboard-runtime/dashboard/src/components/memory/memory-tab-nav.tsx +0 -54
  349. /package/dist/dashboard-runtime/dashboard/.next/static/{nPPow7lCVx1fYDGH2XCxQ → uYteIiFtKdPhUhmILps5X}/_buildManifest.js +0 -0
  350. /package/dist/dashboard-runtime/dashboard/.next/static/{nPPow7lCVx1fYDGH2XCxQ → uYteIiFtKdPhUhmILps5X}/_clientMiddlewareManifest.js +0 -0
  351. /package/dist/dashboard-runtime/dashboard/.next/static/{nPPow7lCVx1fYDGH2XCxQ → uYteIiFtKdPhUhmILps5X}/_ssgManifest.js +0 -0
@@ -1,23 +1,142 @@
1
+ "use client";
2
+
1
3
  import type { ReactNode } from 'react';
4
+ import Link from 'next/link';
5
+ import { usePathname } from 'next/navigation';
6
+ import { ChevronRight } from 'lucide-react';
7
+
8
+ import { cn } from '@/lib/utils';
9
+
10
+ const SEGMENT_LABELS: Record<string, string> = {
11
+ 'knowledge-base': '知识库',
12
+ memory: '记忆库',
13
+ 'llm-providers': '大模型',
14
+ projects: '项目管理',
15
+ documents: '文档',
16
+ retrieval: '检索测试',
17
+ qa: '问答测试',
18
+ search: '记忆检索',
19
+ units: '长期记忆',
20
+ messages: '短期记忆',
21
+ requests: '请求审计',
22
+ settings: '设置',
23
+ create: '新建',
24
+ new: '新建',
25
+ chat: '对话',
26
+ };
27
+
28
+ interface Crumb {
29
+ label: string;
30
+ href?: string;
31
+ }
32
+
33
+ function buildCrumbs(pathname: string): Crumb[] {
34
+ // Detail-page sub-routes are wrapped by a DetailSidebar that already
35
+ // surfaces entity context + a "返回列表" affordance. Suppress the
36
+ // automatic breadcrumb there so we don't repeat the hierarchy in two
37
+ // places (sidebar AND header).
38
+ if (
39
+ /^\/knowledge-base\/[^/]+(?:\/.*)?$/.test(pathname) ||
40
+ /^\/memory\/[^/]+(?:\/.*)?$/.test(pathname)
41
+ ) {
42
+ return [];
43
+ }
44
+
45
+ const parts = pathname.split('/').filter(Boolean);
46
+ if (parts.length === 0) return [];
47
+
48
+ const crumbs: Crumb[] = [];
49
+ let acc = '';
50
+ parts.forEach((raw, index) => {
51
+ acc += `/${raw}`;
52
+ const decoded = decodeURIComponent(raw);
53
+ const label = SEGMENT_LABELS[decoded] ?? decoded;
54
+ crumbs.push({
55
+ label,
56
+ href: index < parts.length - 1 ? acc : undefined,
57
+ });
58
+ });
59
+ return crumbs;
60
+ }
2
61
 
3
62
  interface PageHeaderProps {
4
- title: string;
5
- description?: string;
63
+ title: ReactNode;
64
+ description?: ReactNode;
65
+ /** Hide the auto-derived breadcrumb above the title. */
66
+ hideBreadcrumb?: boolean;
67
+ /** Action buttons rendered on the right side. */
6
68
  children?: ReactNode;
69
+ className?: string;
7
70
  }
8
71
 
9
- export function PageHeader({ title, description, children }: PageHeaderProps) {
72
+ /**
73
+ * Page-level header with a webUI-flavoured layout: small breadcrumb on top,
74
+ * 20px h1 with optional description on the next line, optional action slot
75
+ * on the right. Replaces the old separate BreadcrumbBar — by deriving the
76
+ * crumbs from `usePathname()` we keep the same surface the dashboard had
77
+ * while merging it into the page-header position webUI uses.
78
+ */
79
+ export function PageHeader({
80
+ title,
81
+ description,
82
+ hideBreadcrumb,
83
+ children,
84
+ className,
85
+ }: PageHeaderProps) {
86
+ const pathname = usePathname() ?? '/';
87
+ const crumbs = hideBreadcrumb ? [] : buildCrumbs(pathname);
88
+
10
89
  return (
11
- <div className="flex items-start justify-between gap-4">
12
- <div className="space-y-1">
13
- <h1 className="text-[32px] font-semibold leading-tight text-foreground">
14
- {title}
15
- </h1>
16
- {description && (
17
- <p className="text-sm text-muted-foreground">{description}</p>
90
+ <div className={cn('mb-5 flex flex-col gap-2', className)}>
91
+ {crumbs.length > 1 && (
92
+ <nav
93
+ aria-label="面包屑"
94
+ className="flex items-center gap-1 text-[13px] text-[hsl(var(--muted-foreground))]"
95
+ >
96
+ <Link
97
+ href="/"
98
+ className="transition-colors hover:text-[hsl(var(--foreground))]"
99
+ >
100
+ 主页
101
+ </Link>
102
+ {crumbs.map((crumb, index) => (
103
+ <span
104
+ key={`${crumb.label}-${index}`}
105
+ className="flex items-center gap-1"
106
+ >
107
+ <ChevronRight className="h-3 w-3 opacity-60" />
108
+ {crumb.href ? (
109
+ <Link
110
+ href={crumb.href}
111
+ className="transition-colors hover:text-[hsl(var(--foreground))]"
112
+ >
113
+ {crumb.label}
114
+ </Link>
115
+ ) : (
116
+ <span className="font-medium text-[hsl(var(--foreground))]">
117
+ {crumb.label}
118
+ </span>
119
+ )}
120
+ </span>
121
+ ))}
122
+ </nav>
123
+ )}
124
+
125
+ <div className="flex items-start justify-between gap-4">
126
+ <div className="space-y-1">
127
+ <h1 className="text-xl font-semibold leading-tight text-[hsl(var(--foreground))]">
128
+ {title}
129
+ </h1>
130
+ {description && (
131
+ <p className="text-[13px] text-[hsl(var(--muted-foreground))]">
132
+ {description}
133
+ </p>
134
+ )}
135
+ </div>
136
+ {children && (
137
+ <div className="flex shrink-0 items-center gap-2">{children}</div>
18
138
  )}
19
139
  </div>
20
- {children && <div className="flex items-center gap-2">{children}</div>}
21
140
  </div>
22
141
  );
23
142
  }
@@ -0,0 +1,203 @@
1
+ "use client";
2
+
3
+ import { useState } from "react";
4
+ import { usePathname, useRouter } from "next/navigation";
5
+ import { Check, ChevronsUpDown, Plus, Settings2 } from "lucide-react";
6
+
7
+ import {
8
+ DropdownMenu,
9
+ DropdownMenuContent,
10
+ DropdownMenuItem,
11
+ DropdownMenuLabel,
12
+ DropdownMenuSeparator,
13
+ DropdownMenuTrigger,
14
+ } from "@/components/ui/dropdown-menu";
15
+ import { ConnectInstanceDialog } from "@/components/instance/connect-instance-dialog";
16
+ import { useInstances, useSwitchInstance } from "@/hooks/use-instances";
17
+ import { cn } from "@/lib/utils";
18
+
19
+ function resolveSwitchTarget(pathname: string | null): string | null {
20
+ if (!pathname) return null;
21
+ if (pathname.match(/^\/knowledge-base\/[^/]+(?:\/.*)?$/)) return "/knowledge-base";
22
+ if (pathname.match(/^\/memory\/[^/]+(?:\/.*)?$/)) return "/memory";
23
+ return null;
24
+ }
25
+
26
+ interface SidebarInstanceCardProps {
27
+ collapsed?: boolean;
28
+ }
29
+
30
+ /**
31
+ * Sidebar-embedded instance switcher: an inline card sitting just below the
32
+ * brand line. Reuses the existing `useInstances` / `useSwitchInstance` data
33
+ * layer so behaviour parity with the previous top-bar switcher is preserved.
34
+ */
35
+ export function SidebarInstanceCard({ collapsed }: SidebarInstanceCardProps) {
36
+ const router = useRouter();
37
+ const pathname = usePathname();
38
+ const [connectOpen, setConnectOpen] = useState(false);
39
+ const { data, isLoading } = useInstances();
40
+ const switchMutation = useSwitchInstance();
41
+
42
+ const activeName = data?.activeInstance ?? null;
43
+ const instances = data?.instances ?? [];
44
+
45
+ async function handleSwitch(name: string) {
46
+ if (name === activeName || switchMutation.isPending) return;
47
+ try {
48
+ await switchMutation.mutateAsync(name);
49
+ const target = resolveSwitchTarget(pathname) ?? window.location.pathname;
50
+ window.location.assign(target);
51
+ } catch {
52
+ // toast handled in the hook
53
+ }
54
+ }
55
+
56
+ if (collapsed) {
57
+ return (
58
+ <div className="flex justify-center px-0 pt-3">
59
+ <DropdownMenu>
60
+ <DropdownMenuTrigger asChild>
61
+ <button
62
+ type="button"
63
+ aria-label={activeName ? `当前实例:${activeName}` : "选择项目"}
64
+ title={activeName ?? "选择项目"}
65
+ disabled={isLoading}
66
+ className={cn(
67
+ // Circular avatar to differentiate the instance switcher
68
+ // from the rectangular menu items below; subtle border +
69
+ // card surface keeps it readable on the white sidebar.
70
+ "flex h-8 w-8 items-center justify-center rounded-full border border-[hsl(var(--border))] bg-[hsl(var(--card))] text-[11px] font-semibold uppercase text-[hsl(var(--foreground))] transition-colors",
71
+ "hover:border-[hsl(var(--primary))] hover:text-[hsl(var(--primary))]",
72
+ "disabled:opacity-50",
73
+ )}
74
+ >
75
+ {(activeName ?? "?").charAt(0)}
76
+ </button>
77
+ </DropdownMenuTrigger>
78
+ <InstanceMenu
79
+ activeName={activeName}
80
+ instances={instances}
81
+ onSelect={handleSwitch}
82
+ onCreate={() => setConnectOpen(true)}
83
+ onManage={() => router.push("/projects")}
84
+ />
85
+ </DropdownMenu>
86
+ <ConnectInstanceDialog
87
+ open={connectOpen}
88
+ onOpenChange={setConnectOpen}
89
+ onSuccess={() => router.refresh()}
90
+ />
91
+ </div>
92
+ );
93
+ }
94
+
95
+ return (
96
+ <div className="px-3 pt-3">
97
+ <DropdownMenu>
98
+ <DropdownMenuTrigger asChild>
99
+ <button
100
+ type="button"
101
+ disabled={isLoading}
102
+ className="group flex w-full items-center gap-2 rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--secondary))] px-3 py-2 text-left transition-colors hover:bg-[hsl(var(--accent))]"
103
+ >
104
+ <div className="flex flex-1 flex-col overflow-hidden">
105
+ <span className="text-[11px] uppercase tracking-wider text-[hsl(var(--muted-foreground))]">
106
+ 当前实例
107
+ </span>
108
+ <span className="truncate text-sm font-semibold text-[hsl(var(--foreground))]">
109
+ {activeName ?? "未选择"}
110
+ </span>
111
+ </div>
112
+ <ChevronsUpDown className="h-3.5 w-3.5 shrink-0 text-[hsl(var(--muted-foreground))]" />
113
+ </button>
114
+ </DropdownMenuTrigger>
115
+ <InstanceMenu
116
+ activeName={activeName}
117
+ instances={instances}
118
+ onSelect={handleSwitch}
119
+ onCreate={() => setConnectOpen(true)}
120
+ onManage={() => router.push("/projects")}
121
+ />
122
+ </DropdownMenu>
123
+ <ConnectInstanceDialog
124
+ open={connectOpen}
125
+ onOpenChange={setConnectOpen}
126
+ onSuccess={() => router.refresh()}
127
+ />
128
+ </div>
129
+ );
130
+ }
131
+
132
+ interface InstanceMenuProps {
133
+ activeName: string | null;
134
+ instances: Array<{ name: string; region?: string }>;
135
+ onSelect: (name: string) => void;
136
+ onCreate: () => void;
137
+ onManage: () => void;
138
+ }
139
+
140
+ function InstanceMenu({
141
+ activeName,
142
+ instances,
143
+ onSelect,
144
+ onCreate,
145
+ onManage,
146
+ }: InstanceMenuProps) {
147
+ return (
148
+ <DropdownMenuContent align="start" className="min-w-[220px]">
149
+ <DropdownMenuLabel>切换项目</DropdownMenuLabel>
150
+ {instances.length === 0 ? (
151
+ <div className="px-3 py-2 text-xs text-[hsl(var(--muted-foreground))]">
152
+ 暂无项目,先创建一个。
153
+ </div>
154
+ ) : (
155
+ instances.map((item) => {
156
+ const isActive = item.name === activeName;
157
+ return (
158
+ <DropdownMenuItem
159
+ key={item.name}
160
+ onSelect={(event) => {
161
+ event.preventDefault();
162
+ onSelect(item.name);
163
+ }}
164
+ className="flex items-center gap-2 pr-2"
165
+ >
166
+ <Check
167
+ className={cn(
168
+ "h-3.5 w-3.5 shrink-0",
169
+ isActive ? "text-[hsl(var(--primary))]" : "opacity-0",
170
+ )}
171
+ />
172
+ <span className="flex-1 truncate">{item.name}</span>
173
+ {item.region && (
174
+ <span className="text-[11px] text-[hsl(var(--muted-foreground))]">
175
+ {item.region}
176
+ </span>
177
+ )}
178
+ </DropdownMenuItem>
179
+ );
180
+ })
181
+ )}
182
+ <DropdownMenuSeparator />
183
+ <DropdownMenuItem
184
+ onSelect={(event) => {
185
+ event.preventDefault();
186
+ onCreate();
187
+ }}
188
+ >
189
+ <Plus className="h-3.5 w-3.5" />
190
+ 创建新项目
191
+ </DropdownMenuItem>
192
+ <DropdownMenuItem
193
+ onSelect={(event) => {
194
+ event.preventDefault();
195
+ onManage();
196
+ }}
197
+ >
198
+ <Settings2 className="h-3.5 w-3.5" />
199
+ 项目管理
200
+ </DropdownMenuItem>
201
+ </DropdownMenuContent>
202
+ );
203
+ }
@@ -27,23 +27,27 @@ export function SidebarItem({ item, collapsed = false }: SidebarItemProps) {
27
27
  const content = (
28
28
  <span
29
29
  className={cn(
30
- "group relative flex h-10 items-center gap-2.5 rounded-lg px-3 text-sm font-medium transition-colors duration-150",
31
- collapsed && "justify-center px-0",
30
+ "group relative flex items-center font-medium transition-colors duration-150",
31
+ // Expanded: full-width row with icon + label.
32
+ // Collapsed: 32×32 icon-only chip centered horizontally so the
33
+ // rail reads as a column of evenly-sized affordances rather
34
+ // than full-width tinted bars.
35
+ collapsed
36
+ ? "mx-auto h-8 w-8 justify-center rounded-md text-[14px]"
37
+ : "h-9 gap-2.5 rounded-md px-3 text-[14px]",
32
38
  isActive
33
- ? "bg-[hsl(var(--primary)/0.1)] text-primary"
34
- : "text-muted-foreground hover:bg-accent hover:text-foreground",
35
- disabled && "cursor-not-allowed opacity-50 hover:bg-transparent hover:text-muted-foreground",
39
+ ? "bg-[hsl(var(--sidebar-active-bg))] text-[hsl(var(--sidebar-active-fg))]"
40
+ : "text-[hsl(var(--sidebar-text))] hover:bg-[hsl(var(--background))] hover:text-[hsl(var(--foreground))]",
41
+ disabled &&
42
+ "cursor-not-allowed opacity-50 hover:bg-transparent hover:text-[hsl(var(--sidebar-text))]",
36
43
  )}
37
44
  >
38
- {isActive && !collapsed && (
39
- <span className="absolute left-0 top-1/2 h-5 w-[3px] -translate-y-1/2 rounded-r-full bg-primary" />
40
- )}
41
- <Icon className={cn("h-[18px] w-[18px] shrink-0", isActive && "text-primary")} />
45
+ <Icon className={cn("shrink-0", collapsed ? "h-[18px] w-[18px]" : "h-4 w-4")} />
42
46
  {!collapsed && (
43
47
  <>
44
48
  <span className="flex-1 truncate">{item.title}</span>
45
49
  {item.comingSoon && (
46
- <span className="flex items-center gap-1 rounded-md bg-muted px-1.5 py-0.5 text-[10px] font-medium text-muted-foreground">
50
+ <span className="flex items-center gap-1 rounded-md bg-[hsl(var(--muted))] px-1.5 py-0.5 text-[10px] font-medium text-[hsl(var(--muted-foreground))]">
47
51
  <Lock className="h-3 w-3" />
48
52
  即将开放
49
53
  </span>
@@ -53,7 +57,6 @@ export function SidebarItem({ item, collapsed = false }: SidebarItemProps) {
53
57
  </span>
54
58
  );
55
59
 
56
- // Collapsed state or disabled items: wrap with tooltip for discoverability
57
60
  const needsTooltip = collapsed || disabled;
58
61
  const tooltipLabel = item.tooltip ?? item.title;
59
62
 
@@ -4,15 +4,20 @@ import { useEffect, useState } from "react";
4
4
  import Link from "next/link";
5
5
  import { usePathname } from "next/navigation";
6
6
  import * as Dialog from "@radix-ui/react-dialog";
7
- import { Database, Menu, X } from "lucide-react";
8
- import { sidebarNav, sidebarResources } from "@/config/navigation";
7
+ import { Menu, X, Zap } from "lucide-react";
8
+
9
+ import { sidebarGroups } from "@/config/navigation";
10
+ import { cn } from "@/lib/utils";
9
11
  import { SidebarItem } from "./sidebar-item";
12
+ import { SidebarInstanceCard } from "./sidebar-instance-card";
13
+ import { SidebarUsageStats } from "./sidebar-usage-stats";
14
+ import { HelpLink } from "./help-link";
15
+ import { ThemeToggle } from "./theme-toggle";
10
16
 
11
17
  export function SidebarMobile() {
12
18
  const [open, setOpen] = useState(false);
13
19
  const pathname = usePathname();
14
20
 
15
- // Auto-close drawer after navigation
16
21
  useEffect(() => {
17
22
  setOpen(false);
18
23
  }, [pathname]);
@@ -24,21 +29,21 @@ export function SidebarMobile() {
24
29
  <button
25
30
  type="button"
26
31
  aria-label="打开菜单"
27
- className="rounded-md p-2 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground"
32
+ className="rounded-md p-2 text-[hsl(var(--muted-foreground))] transition-colors hover:bg-[hsl(var(--background))] hover:text-[hsl(var(--foreground))]"
28
33
  >
29
34
  <Menu className="h-5 w-5" />
30
35
  </button>
31
36
  </Dialog.Trigger>
32
37
  <Dialog.Portal>
33
- <Dialog.Overlay className="fixed inset-0 z-50 bg-black/40 backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0" />
34
- <Dialog.Content className="fixed left-0 top-0 z-50 flex h-full w-[260px] flex-col border-r border-[hsl(var(--sidebar-border))] bg-[hsl(var(--sidebar-bg))] shadow-xl data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left data-[state=open]:duration-200">
38
+ <Dialog.Overlay className="fixed inset-0 z-50 bg-black/30 backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0" />
39
+ <Dialog.Content className="fixed left-0 top-0 z-50 flex h-full w-[260px] flex-col border-r border-[hsl(var(--sidebar-border))] bg-[hsl(var(--sidebar-bg))] shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left data-[state=open]:duration-200">
35
40
  <Dialog.Title className="sr-only">导航菜单</Dialog.Title>
36
- <div className="flex h-16 items-center justify-between border-b border-[hsl(var(--sidebar-border))] px-4">
37
- <Link href="/" className="flex items-center gap-2">
38
- <span className="flex h-8 w-8 items-center justify-center rounded-lg bg-primary text-primary-foreground shadow-sm">
39
- <Database className="h-4 w-4" />
41
+ <div className="flex h-14 items-center justify-between border-b border-[hsl(var(--sidebar-border))] px-4">
42
+ <Link href="/" className="flex items-center gap-2.5">
43
+ <span className="flex h-7 w-7 items-center justify-center rounded-md bg-[hsl(var(--primary))] text-[hsl(var(--primary-foreground))] shadow-sm">
44
+ <Zap className="h-4 w-4" />
40
45
  </span>
41
- <span className="font-display text-[15px] font-semibold tracking-tight text-foreground">
46
+ <span className="text-[15px] font-semibold tracking-tight text-[hsl(var(--foreground))]">
42
47
  Agent Storage
43
48
  </span>
44
49
  </Link>
@@ -46,40 +51,43 @@ export function SidebarMobile() {
46
51
  <button
47
52
  type="button"
48
53
  aria-label="关闭菜单"
49
- className="rounded-md p-2 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground"
54
+ className="rounded-md p-2 text-[hsl(var(--muted-foreground))] transition-colors hover:bg-[hsl(var(--background))] hover:text-[hsl(var(--foreground))]"
50
55
  >
51
56
  <X className="h-4 w-4" />
52
57
  </button>
53
58
  </Dialog.Close>
54
59
  </div>
55
- <nav className="flex-1 overflow-y-auto px-3 py-4">
56
- <div className="space-y-1">
57
- {sidebarNav.map((item) => (
58
- <SidebarItem key={item.title} item={item} />
59
- ))}
60
- </div>
61
- {sidebarResources.length > 0 && (
62
- <>
63
- <div className="mt-6 mb-2 px-3 text-[11px] font-semibold uppercase tracking-wider text-muted-foreground/70">
64
- 资源
60
+ <SidebarInstanceCard />
61
+ <nav className="flex-1 overflow-y-auto px-3 py-3">
62
+ {sidebarGroups.map((group, groupIndex) => (
63
+ <div key={group.title} className={cn(groupIndex > 0 && "mt-4")}>
64
+ <div className="mb-1.5 px-3 text-[11px] font-semibold uppercase tracking-wider text-[hsl(var(--muted-foreground))]">
65
+ {group.title}
65
66
  </div>
66
- <div className="space-y-1">
67
- {sidebarResources.map((item) => (
67
+ <div className="space-y-0.5">
68
+ {group.items.map((item) => (
68
69
  <SidebarItem key={item.title} item={item} />
69
70
  ))}
70
71
  </div>
71
- </>
72
- )}
72
+ </div>
73
+ ))}
73
74
  </nav>
75
+ <div className="border-t border-[hsl(var(--sidebar-border))] p-3 space-y-2">
76
+ <SidebarUsageStats />
77
+ <div className="flex items-center justify-between gap-1">
78
+ <HelpLink />
79
+ <ThemeToggle />
80
+ </div>
81
+ </div>
74
82
  </Dialog.Content>
75
83
  </Dialog.Portal>
76
84
  </Dialog.Root>
77
85
 
78
86
  <Link href="/" className="flex items-center gap-2">
79
- <span className="flex h-7 w-7 items-center justify-center rounded-md bg-primary text-primary-foreground">
80
- <Database className="h-3.5 w-3.5" />
87
+ <span className="flex h-7 w-7 items-center justify-center rounded-md bg-[hsl(var(--primary))] text-[hsl(var(--primary-foreground))]">
88
+ <Zap className="h-3.5 w-3.5" />
81
89
  </span>
82
- <span className="font-display text-sm font-semibold tracking-tight text-foreground">
90
+ <span className="text-sm font-semibold tracking-tight text-[hsl(var(--foreground))]">
83
91
  Agent Storage
84
92
  </span>
85
93
  </Link>
@@ -0,0 +1,26 @@
1
+ "use client";
2
+
3
+ import { UsageCard } from "@/components/ui/usage-card";
4
+ import { useKnowledgeBases } from "@/hooks/use-knowledge-bases";
5
+ import { useMemoryStores } from "@/hooks/use-memory-stores";
6
+
7
+ /**
8
+ * Sidebar footer "Usage" card. Reuses the cached KB / memory-store list
9
+ * queries so the counts share their cache with the actual list pages and
10
+ * never trigger duplicate network calls beyond the one initial fetch.
11
+ */
12
+ export function SidebarUsageStats() {
13
+ const kb = useKnowledgeBases();
14
+ const ms = useMemoryStores();
15
+ const kbCount = kb.data?.totalCount ?? kb.data?.items?.length;
16
+ const msCount = ms.data?.totalCount ?? ms.data?.items?.length;
17
+
18
+ return (
19
+ <UsageCard
20
+ items={[
21
+ { label: "知识库", value: kbCount ?? "—" },
22
+ { label: "记忆库", value: msCount ?? "—" },
23
+ ]}
24
+ />
25
+ );
26
+ }