@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
@@ -19,6 +19,7 @@ import {
19
19
  SelectTrigger,
20
20
  SelectValue,
21
21
  } from "@/components/ui/select";
22
+ import { Slider } from "@/components/ui/slider";
22
23
  import type { RetrievalInput } from "@/schemas/retrieval";
23
24
 
24
25
  interface RerankFieldsProps {
@@ -106,32 +107,63 @@ function RrfFields({ form }: { form: UseFormReturn<RetrievalInput> }) {
106
107
  }
107
108
 
108
109
  function WeightFields({ form }: { form: UseFormReturn<RetrievalInput> }) {
110
+ // WEIGHT rerank weights are bounded 0–1 floats — the previous "0 ~ 1"
111
+ // FormDescription read as a clunky bottom caption. A slider with the
112
+ // numeric value pinned inline next to the label communicates the
113
+ // range visually and gives instant tactile feedback, no caption needed.
109
114
  return (
110
- <RerankPanel cols={2}>
111
- <NumField
112
- form={form}
113
- name="weightDense"
114
- label="向量权重"
115
- step={0.1}
116
- min={0}
117
- max={1}
118
- placeholder="0.5"
119
- description="0 ~ 1"
120
- />
121
- <NumField
122
- form={form}
123
- name="weightFullText"
124
- label="全文权重"
125
- step={0.1}
126
- min={0}
127
- max={1}
128
- placeholder="0.5"
129
- description="0 ~ 1"
130
- />
115
+ <RerankPanel cols={1}>
116
+ <WeightSliderField form={form} name="weightDense" label="向量权重" />
117
+ <WeightSliderField form={form} name="weightFullText" label="全文权重" />
131
118
  </RerankPanel>
132
119
  );
133
120
  }
134
121
 
122
+ function WeightSliderField({
123
+ form,
124
+ name,
125
+ label,
126
+ }: {
127
+ form: UseFormReturn<RetrievalInput>;
128
+ name: "weightDense" | "weightFullText";
129
+ label: string;
130
+ }) {
131
+ return (
132
+ <FormField
133
+ control={form.control}
134
+ name={name}
135
+ render={({ field }) => {
136
+ const value =
137
+ typeof field.value === "number" && Number.isFinite(field.value)
138
+ ? field.value
139
+ : 0.5;
140
+ return (
141
+ <FormItem>
142
+ <div className="flex items-center justify-between gap-3">
143
+ <FormLabel>{label}</FormLabel>
144
+ <span className="rounded bg-[hsl(var(--secondary))] px-2 py-0.5 text-xs font-medium tabular-nums text-[hsl(var(--foreground))]">
145
+ {value.toFixed(2)}
146
+ </span>
147
+ </div>
148
+ <FormControl>
149
+ <Slider
150
+ min={0}
151
+ max={1}
152
+ step={0.05}
153
+ value={[value]}
154
+ onValueChange={(values) => field.onChange(values[0] ?? 0)}
155
+ onBlur={field.onBlur}
156
+ aria-label={label}
157
+ />
158
+ </FormControl>
159
+ <FormMessage />
160
+ </FormItem>
161
+ );
162
+ }}
163
+ />
164
+ );
165
+ }
166
+
135
167
  /** Providers currently wired up on the server side. Kept inline because the
136
168
  * list is short and the settings page uses the same hard-coded catalogue. */
137
169
  const PROVIDER_OPTIONS: { value: string; label: string }[] = [
@@ -185,10 +217,15 @@ function RerankPanel({
185
217
  cols = 3,
186
218
  children,
187
219
  }: {
188
- cols?: 2 | 3;
220
+ cols?: 1 | 2 | 3;
189
221
  children: React.ReactNode;
190
222
  }) {
191
- const colClass = cols === 2 ? "sm:grid-cols-2" : "sm:grid-cols-3";
223
+ const colClass =
224
+ cols === 1
225
+ ? "grid-cols-1"
226
+ : cols === 2
227
+ ? "sm:grid-cols-2"
228
+ : "sm:grid-cols-3";
192
229
  return (
193
230
  <div className={"grid gap-3 px-0.5 pt-1 " + colClass}>{children}</div>
194
231
  );
@@ -25,7 +25,7 @@ export function EmptyState({
25
25
  <Icon className="text-primary" size={36} strokeWidth={1.75} />
26
26
  </div>
27
27
  )}
28
- <h3 className="mb-2 font-display text-lg font-semibold text-foreground">
28
+ <h3 className="mb-2 text-base font-semibold text-foreground">
29
29
  {title}
30
30
  </h3>
31
31
  <p className="mb-6 max-w-sm text-sm text-muted-foreground">
@@ -31,7 +31,7 @@ export function ErrorState({ error, onRetry }: ErrorStateProps) {
31
31
  strokeWidth={1.75}
32
32
  />
33
33
  </div>
34
- <h3 className="mb-2 font-display text-lg font-semibold text-foreground">
34
+ <h3 className="mb-2 text-base font-semibold text-foreground">
35
35
  Failed to load data
36
36
  </h3>
37
37
  <p className="mb-1 max-w-md text-sm text-muted-foreground">
@@ -1,11 +1,23 @@
1
1
  "use client";
2
2
 
3
- import { useEffect, useMemo } from "react";
4
- import { Loader2, RefreshCw } from "lucide-react";
3
+ import { useEffect, useMemo, useState } from "react";
4
+ import { Check, ChevronsUpDown, Loader2, Plus, RefreshCw } from "lucide-react";
5
5
 
6
6
  import { Button } from "@/components/ui/button";
7
- import { Input } from "@/components/ui/input";
7
+ import {
8
+ Command,
9
+ CommandEmpty,
10
+ CommandGroup,
11
+ CommandInput,
12
+ CommandItem,
13
+ CommandList,
14
+ } from "@/components/ui/command";
8
15
  import { Label } from "@/components/ui/label";
16
+ import {
17
+ Popover,
18
+ PopoverContent,
19
+ PopoverTrigger,
20
+ } from "@/components/ui/popover";
9
21
  import {
10
22
  Select,
11
23
  SelectContent,
@@ -15,18 +27,15 @@ import {
15
27
  } from "@/components/ui/select";
16
28
  import { useLLMProviders } from "@/hooks/use-llm-providers";
17
29
  import { useLLMProviderModels } from "@/hooks/use-llm-provider-models";
30
+ import { cn } from "@/lib/utils";
18
31
 
19
32
  interface LLMModelSelectorProps {
20
33
  providerId: string;
21
34
  model: string;
22
35
  onProviderChange: (providerId: string, defaultModel?: string) => void;
23
36
  onModelChange: (model: string) => void;
24
- /**
25
- * Show a free-text input next to the model dropdown so users can type any
26
- * model id (useful when the provider's model list isn't exhaustive).
27
- * Defaults to false; the chat config drawer keeps the dropdown only,
28
- * while the QA tester opts in.
29
- */
37
+ /** @deprecated Free-text typing is now part of the unified combobox in
38
+ * every surface; this flag is ignored. Kept for callsite compatibility. */
30
39
  allowFreeText?: boolean;
31
40
  /** Auto-select the first provider on mount when no providerId is set. */
32
41
  autoSelectFirst?: boolean;
@@ -37,17 +46,19 @@ interface LLMModelSelectorProps {
37
46
  }
38
47
 
39
48
  /**
40
- * Reusable Provider + Model selector. Both QA test page and chat config
41
- * drawer mounted nearly identical inline copies of this widget; centralising
42
- * the data fetch + auto-select + refresh-list affordance keeps behaviour
43
- * uniform across surfaces.
49
+ * Reusable Provider + Model selector. The provider stays a plain Select
50
+ * (the list is small and authoritative), but the model widget is a
51
+ * typeable combobox: it filters known model ids as the user types and
52
+ * always offers a `使用 "<typed>"` row so callers can submit a model
53
+ * the upstream `/models` endpoint did not return — useful when a
54
+ * provider exposes a partial list, or when the user wants to test a
55
+ * preview / private model id.
44
56
  */
45
57
  export function LLMModelSelector({
46
58
  providerId,
47
59
  model,
48
60
  onProviderChange,
49
61
  onModelChange,
50
- allowFreeText = false,
51
62
  autoSelectFirst = false,
52
63
  providerLabel = "Provider",
53
64
  modelLabel = "Model",
@@ -101,7 +112,7 @@ export function LLMModelSelector({
101
112
  providersLoading
102
113
  ? "加载中..."
103
114
  : providers.length === 0
104
- ? "请先在「大模型」中创建配置"
115
+ ? "请先在「模型提供商」中创建配置"
105
116
  : "选择 Provider"
106
117
  }
107
118
  />
@@ -135,62 +146,141 @@ export function LLMModelSelector({
135
146
  刷新列表
136
147
  </Button>
137
148
  </div>
138
- {allowFreeText ? (
139
- <div className="flex gap-2">
140
- <Select
141
- value={modelOptions.includes(model) ? model : ""}
142
- onValueChange={onModelChange}
143
- disabled={!providerId}
144
- >
145
- <SelectTrigger className="flex-1">
146
- <SelectValue placeholder="选择或输入模型名" />
147
- </SelectTrigger>
148
- <SelectContent>
149
- {modelOptions.length === 0 ? (
150
- <div className="px-3 py-2 text-xs text-muted-foreground">
151
- 点击「刷新列表」拉取可用模型
152
- </div>
153
- ) : (
154
- modelOptions.map((id) => (
155
- <SelectItem key={id} value={id}>
156
- {id}
157
- </SelectItem>
158
- ))
159
- )}
160
- </SelectContent>
161
- </Select>
162
- <Input
163
- placeholder="或手动输入"
164
- value={model}
165
- onChange={(e) => onModelChange(e.target.value)}
166
- className="flex-1"
167
- />
168
- </div>
169
- ) : (
170
- <Select
171
- value={model}
172
- onValueChange={onModelChange}
173
- disabled={!providerId}
174
- >
175
- <SelectTrigger>
176
- <SelectValue placeholder="选择模型" />
177
- </SelectTrigger>
178
- <SelectContent>
179
- {modelOptions.length === 0 ? (
180
- <SelectItem value="__empty" disabled>
181
- 无可用模型
182
- </SelectItem>
183
- ) : (
184
- modelOptions.map((id) => (
185
- <SelectItem key={id} value={id}>
186
- {id}
187
- </SelectItem>
188
- ))
189
- )}
190
- </SelectContent>
191
- </Select>
192
- )}
149
+ <LLMModelCombobox
150
+ value={model}
151
+ options={modelOptions}
152
+ onChange={onModelChange}
153
+ disabled={!providerId}
154
+ fetching={modelsFetching}
155
+ />
193
156
  </div>
194
157
  </div>
195
158
  );
196
159
  }
160
+
161
+ interface LLMModelComboboxProps {
162
+ value: string;
163
+ options: string[];
164
+ onChange: (model: string) => void;
165
+ disabled?: boolean;
166
+ fetching?: boolean;
167
+ }
168
+
169
+ /**
170
+ * Typeable model picker with custom-value escape hatch. Built on
171
+ * Popover + Command (cmdk) so the input filters the known list as the
172
+ * user types; if no exact match exists, an "use <typed>" row appears at
173
+ * the bottom of the list, letting the user commit a model id the
174
+ * upstream `/models` endpoint never returned.
175
+ */
176
+ function LLMModelCombobox({
177
+ value,
178
+ options,
179
+ onChange,
180
+ disabled,
181
+ fetching,
182
+ }: LLMModelComboboxProps) {
183
+ const [open, setOpen] = useState(false);
184
+ const [query, setQuery] = useState("");
185
+
186
+ // We do our own filtering so we can show a "use custom" row even when
187
+ // the typed value doesn't match any existing option.
188
+ const trimmed = query.trim();
189
+ const filtered = useMemo(() => {
190
+ if (!trimmed) return options;
191
+ const lower = trimmed.toLowerCase();
192
+ return options.filter((opt) => opt.toLowerCase().includes(lower));
193
+ }, [options, trimmed]);
194
+ const hasExactMatch = options.some(
195
+ (opt) => opt.toLowerCase() === trimmed.toLowerCase(),
196
+ );
197
+ const showCustom = trimmed.length > 0 && !hasExactMatch;
198
+
199
+ const commit = (next: string) => {
200
+ onChange(next);
201
+ setQuery("");
202
+ setOpen(false);
203
+ };
204
+
205
+ return (
206
+ <Popover open={open} onOpenChange={setOpen}>
207
+ <PopoverTrigger asChild>
208
+ <Button
209
+ type="button"
210
+ variant="outline"
211
+ role="combobox"
212
+ aria-expanded={open}
213
+ disabled={disabled}
214
+ className="w-full justify-between font-normal"
215
+ >
216
+ <span
217
+ className={cn(
218
+ "truncate text-left",
219
+ !value && "text-[hsl(var(--subtle))]",
220
+ )}
221
+ >
222
+ {value || "选择或输入模型名"}
223
+ </span>
224
+ <ChevronsUpDown className="h-4 w-4 shrink-0 opacity-50" />
225
+ </Button>
226
+ </PopoverTrigger>
227
+ <PopoverContent
228
+ align="start"
229
+ // cmdk's Command primitive sizes to its content, so widen the
230
+ // popover to match the trigger width for visual continuity.
231
+ className="w-[var(--radix-popover-trigger-width)] p-0"
232
+ >
233
+ <Command shouldFilter={false}>
234
+ <CommandInput
235
+ placeholder="搜索或输入模型名"
236
+ value={query}
237
+ onValueChange={setQuery}
238
+ />
239
+ <CommandList>
240
+ {filtered.length === 0 && !showCustom ? (
241
+ <CommandEmpty>
242
+ {fetching
243
+ ? "正在拉取模型列表..."
244
+ : options.length === 0
245
+ ? "点击「刷新列表」拉取可用模型"
246
+ : "无匹配结果"}
247
+ </CommandEmpty>
248
+ ) : null}
249
+ {filtered.length > 0 && (
250
+ <CommandGroup heading={showCustom ? "可选模型" : undefined}>
251
+ {filtered.map((id) => (
252
+ <CommandItem
253
+ key={id}
254
+ value={id}
255
+ onSelect={() => commit(id)}
256
+ >
257
+ <Check
258
+ className={cn(
259
+ "h-4 w-4",
260
+ value === id ? "opacity-100" : "opacity-0",
261
+ )}
262
+ />
263
+ <span className="truncate">{id}</span>
264
+ </CommandItem>
265
+ ))}
266
+ </CommandGroup>
267
+ )}
268
+ {showCustom && (
269
+ <CommandGroup heading="使用自定义">
270
+ <CommandItem
271
+ value={`__custom__${trimmed}`}
272
+ onSelect={() => commit(trimmed)}
273
+ >
274
+ <Plus className="h-4 w-4 text-[hsl(var(--primary))]" />
275
+ <span className="truncate">
276
+ 使用 &quot;{trimmed}&quot;
277
+ </span>
278
+ </CommandItem>
279
+ </CommandGroup>
280
+ )}
281
+ </CommandList>
282
+ </Command>
283
+ </PopoverContent>
284
+ </Popover>
285
+ );
286
+ }
@@ -1,10 +1,16 @@
1
-
2
1
  "use client";
3
2
 
4
3
  import { useSyncExternalStore } from "react";
5
4
  import { formatDistanceToNow, format } from "date-fns";
6
5
  import { zhCN } from "date-fns/locale";
7
6
 
7
+ import {
8
+ Tooltip,
9
+ TooltipContent,
10
+ TooltipProvider,
11
+ TooltipTrigger,
12
+ } from "@/components/ui/tooltip";
13
+
8
14
  // Shared singleton timer — all RelativeTime instances share one tick
9
15
  let tick = 0;
10
16
  const listeners: Set<() => void> = new Set();
@@ -39,21 +45,39 @@ interface RelativeTimeProps {
39
45
  timestamp: number;
40
46
  }
41
47
 
48
+ /**
49
+ * Shows a relative-time label (e.g. "2 小时前") with a styled tooltip
50
+ * exposing the absolute local-timezone timestamp on hover. Replaces
51
+ * the previous native `title` attribute, which had a 1.5 s delay and
52
+ * unstyled OS tooltip; the shadcn Tooltip surfaces instantly with the
53
+ * dashboard's own typography + shadow tokens.
54
+ */
42
55
  export function RelativeTime({ timestamp }: RelativeTimeProps) {
43
56
  useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);
44
57
 
45
- const relativeText = formatDistanceToNow(new Date(timestamp), {
58
+ const date = new Date(timestamp);
59
+ const relativeText = formatDistanceToNow(date, {
46
60
  addSuffix: true,
47
61
  locale: zhCN,
48
62
  });
49
63
 
50
- const fullDate = format(new Date(timestamp), "yyyy-MM-dd HH:mm:ss", {
64
+ // `format` from date-fns uses the runtime's local timezone implicitly;
65
+ // showing the timezone offset tag (e.g. UTC+8) makes that explicit so
66
+ // users in different regions can interpret the value unambiguously.
67
+ const localText = format(date, "yyyy-MM-dd HH:mm:ss (OOOO)", {
51
68
  locale: zhCN,
52
69
  });
53
70
 
54
71
  return (
55
- <span title={fullDate} className="cursor-default text-sm text-muted-foreground">
56
- {relativeText}
57
- </span>
72
+ <TooltipProvider delayDuration={150}>
73
+ <Tooltip>
74
+ <TooltipTrigger asChild>
75
+ <span className="cursor-default text-sm text-muted-foreground">
76
+ {relativeText}
77
+ </span>
78
+ </TooltipTrigger>
79
+ <TooltipContent side="top">{localText}</TooltipContent>
80
+ </Tooltip>
81
+ </TooltipProvider>
58
82
  );
59
83
  }
@@ -4,17 +4,28 @@ import { cva, type VariantProps } from "class-variance-authority"
4
4
  import { cn } from "@/lib/utils"
5
5
 
6
6
  const badgeVariants = cva(
7
- "inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
7
+ "inline-flex items-center rounded border px-2 py-0.5 text-xs font-medium transition-colors focus:outline-none focus:ring-2 focus:ring-[hsl(var(--primary)/0.3)] focus:ring-offset-1",
8
8
  {
9
9
  variants: {
10
10
  variant: {
11
11
  default:
12
- "border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",
12
+ "border-transparent bg-[hsl(var(--primary))] text-[hsl(var(--primary-foreground))] hover:opacity-90",
13
13
  secondary:
14
- "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",
14
+ "border-transparent bg-[hsl(var(--secondary))] text-[hsl(var(--secondary-foreground))] hover:opacity-80",
15
15
  destructive:
16
- "border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",
17
- outline: "text-foreground",
16
+ "border-transparent bg-[hsl(var(--destructive))] text-[hsl(var(--destructive-foreground))] hover:opacity-90",
17
+ outline:
18
+ "border-[hsl(var(--border))] text-[hsl(var(--foreground))] bg-[hsl(var(--card))]",
19
+ primary:
20
+ "border-transparent bg-[hsl(var(--primary-soft))] text-[hsl(var(--primary))]",
21
+ success:
22
+ "border-transparent bg-[hsl(var(--success-soft))] text-[hsl(var(--success))]",
23
+ warning:
24
+ "border-transparent bg-[hsl(var(--warning-soft))] text-[hsl(var(--warning))]",
25
+ danger:
26
+ "border-transparent bg-[hsl(var(--danger-soft))] text-[hsl(var(--danger))]",
27
+ purple:
28
+ "border-transparent bg-[hsl(var(--purple-soft))] text-[hsl(var(--purple))]",
18
29
  },
19
30
  },
20
31
  defaultVariants: {
@@ -5,26 +5,27 @@ import { cva, type VariantProps } from "class-variance-authority"
5
5
  import { cn } from "@/lib/utils"
6
6
 
7
7
  const buttonVariants = cva(
8
- "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
8
+ "inline-flex items-center justify-center gap-1.5 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[hsl(var(--primary)/0.3)] focus-visible:ring-offset-1 focus-visible:ring-offset-[hsl(var(--background))] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
9
9
  {
10
10
  variants: {
11
11
  variant: {
12
12
  default:
13
- "bg-[hsl(var(--primary))] text-[hsl(var(--primary-foreground))] shadow hover:opacity-90",
13
+ "bg-[hsl(var(--primary))] text-[hsl(var(--primary-foreground))] shadow-sm hover:opacity-90",
14
14
  destructive:
15
15
  "bg-[hsl(var(--destructive))] text-[hsl(var(--destructive-foreground))] shadow-sm hover:opacity-90",
16
16
  outline:
17
- "border border-[hsl(var(--input))] bg-[hsl(var(--background))] shadow-sm hover:bg-[hsl(var(--accent))] hover:text-[hsl(var(--accent-foreground))]",
17
+ "border border-[hsl(var(--border))] bg-[hsl(var(--card))] text-[hsl(var(--foreground))] shadow-sm hover:border-[hsl(var(--primary))] hover:text-[hsl(var(--primary))]",
18
18
  secondary:
19
19
  "bg-[hsl(var(--secondary))] text-[hsl(var(--secondary-foreground))] shadow-sm hover:opacity-80",
20
- ghost: "hover:bg-[hsl(var(--accent))] hover:text-[hsl(var(--accent-foreground))]",
20
+ ghost:
21
+ "hover:bg-[hsl(var(--accent))] hover:text-[hsl(var(--accent-foreground))]",
21
22
  link: "text-[hsl(var(--primary))] underline-offset-4 hover:underline",
22
23
  },
23
24
  size: {
24
- default: "h-9 px-4 py-2",
25
- sm: "h-8 rounded-md px-3 text-xs",
26
- lg: "h-10 rounded-md px-8",
27
- icon: "h-9 w-9",
25
+ default: "h-8 px-3 py-1",
26
+ sm: "h-7 rounded-md px-3 text-xs",
27
+ lg: "h-10 rounded-md px-4",
28
+ icon: "h-8 w-8",
28
29
  },
29
30
  },
30
31
  defaultVariants: {
@@ -9,7 +9,7 @@ const Card = React.forwardRef<
9
9
  <div
10
10
  ref={ref}
11
11
  className={cn(
12
- "rounded-xl border bg-card text-card-foreground shadow",
12
+ "rounded-lg border border-[hsl(var(--border))] bg-[hsl(var(--card))] text-[hsl(var(--card-foreground))] shadow-sm",
13
13
  className
14
14
  )}
15
15
  {...props}
@@ -23,7 +23,10 @@ const CardHeader = React.forwardRef<
23
23
  >(({ className, ...props }, ref) => (
24
24
  <div
25
25
  ref={ref}
26
- className={cn("flex flex-col space-y-1.5 p-6", className)}
26
+ className={cn(
27
+ "flex flex-col space-y-1 px-5 pt-5 pb-3 border-b border-[hsl(var(--border-light))]",
28
+ className,
29
+ )}
27
30
  {...props}
28
31
  />
29
32
  ))
@@ -35,7 +38,7 @@ const CardTitle = React.forwardRef<
35
38
  >(({ className, ...props }, ref) => (
36
39
  <div
37
40
  ref={ref}
38
- className={cn("font-semibold leading-none tracking-tight", className)}
41
+ className={cn("text-base font-semibold leading-tight", className)}
39
42
  {...props}
40
43
  />
41
44
  ))
@@ -47,7 +50,7 @@ const CardDescription = React.forwardRef<
47
50
  >(({ className, ...props }, ref) => (
48
51
  <div
49
52
  ref={ref}
50
- className={cn("text-sm text-muted-foreground", className)}
53
+ className={cn("text-sm text-[hsl(var(--muted-foreground))]", className)}
51
54
  {...props}
52
55
  />
53
56
  ))
@@ -57,7 +60,7 @@ const CardContent = React.forwardRef<
57
60
  HTMLDivElement,
58
61
  React.HTMLAttributes<HTMLDivElement>
59
62
  >(({ className, ...props }, ref) => (
60
- <div ref={ref} className={cn("p-6 pt-0", className)} {...props} />
63
+ <div ref={ref} className={cn("px-5 py-4", className)} {...props} />
61
64
  ))
62
65
  CardContent.displayName = "CardContent"
63
66
 
@@ -67,7 +70,10 @@ const CardFooter = React.forwardRef<
67
70
  >(({ className, ...props }, ref) => (
68
71
  <div
69
72
  ref={ref}
70
- className={cn("flex items-center p-6 pt-0", className)}
73
+ className={cn(
74
+ "flex items-center px-5 py-3 border-t border-[hsl(var(--border-light))]",
75
+ className,
76
+ )}
71
77
  {...props}
72
78
  />
73
79
  ))
@@ -84,9 +90,9 @@ const CardInteractive = React.forwardRef<
84
90
  <div
85
91
  ref={ref}
86
92
  className={cn(
87
- "rounded-xl border bg-card text-card-foreground shadow-sm",
93
+ "rounded-lg border border-[hsl(var(--border))] bg-[hsl(var(--card))] text-[hsl(var(--card-foreground))] shadow-sm",
88
94
  "transition-[transform,box-shadow,border-color] duration-200 ease-[cubic-bezier(0.34,1.56,0.64,1)]",
89
- "hover:-translate-y-0.5 hover:border-primary/30 hover:shadow-md",
95
+ "hover:border-[hsl(var(--primary))] hover:shadow-primary-soft",
90
96
  className,
91
97
  )}
92
98
  {...props}
@@ -0,0 +1,60 @@
1
+ import * as React from "react"
2
+
3
+ import { cn } from "@/lib/utils"
4
+
5
+ type ChatRole = "user" | "assistant"
6
+
7
+ interface ChatMessageProps extends React.HTMLAttributes<HTMLDivElement> {
8
+ role: ChatRole
9
+ avatar?: React.ReactNode
10
+ }
11
+
12
+ export const ChatMessage = React.forwardRef<HTMLDivElement, ChatMessageProps>(
13
+ ({ className, role, avatar, children, ...props }, ref) => (
14
+ <div
15
+ ref={ref}
16
+ className={cn(
17
+ "mb-4 flex items-start gap-2.5",
18
+ role === "user" && "flex-row-reverse",
19
+ className,
20
+ )}
21
+ {...props}
22
+ >
23
+ {avatar ? (
24
+ <div
25
+ className={cn(
26
+ "flex h-8 w-8 shrink-0 items-center justify-center rounded-full text-sm",
27
+ role === "user"
28
+ ? "bg-[hsl(var(--primary))] text-[hsl(var(--primary-foreground))]"
29
+ : "bg-[hsl(var(--border-light))] text-[hsl(var(--muted-foreground))]",
30
+ )}
31
+ >
32
+ {avatar}
33
+ </div>
34
+ ) : null}
35
+ <div className="flex max-w-[75%] flex-col gap-1">{children}</div>
36
+ </div>
37
+ ),
38
+ )
39
+ ChatMessage.displayName = "ChatMessage"
40
+
41
+ interface ChatBubbleProps extends React.HTMLAttributes<HTMLDivElement> {
42
+ role: ChatRole
43
+ }
44
+
45
+ export const ChatBubble = React.forwardRef<HTMLDivElement, ChatBubbleProps>(
46
+ ({ className, role, ...props }, ref) => (
47
+ <div
48
+ ref={ref}
49
+ className={cn(
50
+ "rounded-xl px-4 py-3 text-sm leading-6",
51
+ role === "user"
52
+ ? "bg-[hsl(var(--primary))] text-[hsl(var(--primary-foreground))] rounded-tr-sm"
53
+ : "rounded-tl-sm border border-[hsl(var(--border))] bg-[hsl(var(--background))] text-[hsl(var(--foreground))] hover:border-[hsl(var(--primary))]",
54
+ className,
55
+ )}
56
+ {...props}
57
+ />
58
+ ),
59
+ )
60
+ ChatBubble.displayName = "ChatBubble"