@tablestore/tablestore-agent-cli 0.2.1 → 0.2.4

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 (342) hide show
  1. package/dist/commands/kb/create.d.ts.map +1 -1
  2. package/dist/commands/kb/create.js +9 -0
  3. package/dist/commands/kb/create.js.map +1 -1
  4. package/dist/commands/kb/retrieve.d.ts.map +1 -1
  5. package/dist/commands/kb/retrieve.js +40 -3
  6. package/dist/commands/kb/retrieve.js.map +1 -1
  7. package/dist/dashboard-runtime/dashboard/.next/BUILD_ID +1 -1
  8. package/dist/dashboard-runtime/dashboard/.next/build-manifest.json +5 -5
  9. package/dist/dashboard-runtime/dashboard/.next/prerender-manifest.json +3 -3
  10. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/chat/page/build-manifest.json +2 -2
  11. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
  12. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
  13. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/documents/page/build-manifest.json +2 -2
  14. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/documents/page.js.nft.json +1 -1
  15. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/documents/page_client-reference-manifest.js +1 -1
  16. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/page/build-manifest.json +2 -2
  17. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/page.js.nft.json +1 -1
  18. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/page_client-reference-manifest.js +1 -1
  19. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/qa/page/build-manifest.json +2 -2
  20. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/qa/page.js.nft.json +1 -1
  21. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/qa/page_client-reference-manifest.js +1 -1
  22. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/retrieval/page/build-manifest.json +2 -2
  23. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/retrieval/page.js.nft.json +1 -1
  24. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/retrieval/page_client-reference-manifest.js +1 -1
  25. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/settings/page/build-manifest.json +2 -2
  26. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/settings/page.js.nft.json +1 -1
  27. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/settings/page_client-reference-manifest.js +1 -1
  28. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/create/page/build-manifest.json +2 -2
  29. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/create/page.js.nft.json +1 -1
  30. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/create/page_client-reference-manifest.js +1 -1
  31. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/page/build-manifest.json +2 -2
  32. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/page.js.nft.json +1 -1
  33. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/page_client-reference-manifest.js +1 -1
  34. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/[id]/page/build-manifest.json +2 -2
  35. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/[id]/page.js.nft.json +1 -1
  36. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/[id]/page_client-reference-manifest.js +1 -1
  37. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/new/page/build-manifest.json +2 -2
  38. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/new/page.js.nft.json +1 -1
  39. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/new/page_client-reference-manifest.js +1 -1
  40. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/page/build-manifest.json +2 -2
  41. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/page.js.nft.json +1 -1
  42. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/page_client-reference-manifest.js +1 -1
  43. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/messages/page/build-manifest.json +2 -2
  44. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/messages/page.js.nft.json +1 -1
  45. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/messages/page_client-reference-manifest.js +1 -1
  46. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/page/build-manifest.json +2 -2
  47. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/page.js.nft.json +1 -1
  48. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/page_client-reference-manifest.js +1 -1
  49. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/requests/page/build-manifest.json +2 -2
  50. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/requests/page.js.nft.json +1 -1
  51. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/requests/page_client-reference-manifest.js +1 -1
  52. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/search/page/build-manifest.json +2 -2
  53. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/search/page.js.nft.json +1 -1
  54. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/search/page_client-reference-manifest.js +1 -1
  55. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/settings/page/build-manifest.json +2 -2
  56. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/settings/page.js.nft.json +1 -1
  57. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/settings/page_client-reference-manifest.js +1 -1
  58. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/units/page/build-manifest.json +2 -2
  59. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/units/page.js.nft.json +1 -1
  60. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/units/page_client-reference-manifest.js +1 -1
  61. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/create/page/build-manifest.json +2 -2
  62. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/create/page.js.nft.json +1 -1
  63. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/create/page_client-reference-manifest.js +1 -1
  64. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/page/build-manifest.json +2 -2
  65. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/page.js.nft.json +1 -1
  66. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/page_client-reference-manifest.js +1 -1
  67. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/projects/page/build-manifest.json +2 -2
  68. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/projects/page.js.nft.json +1 -1
  69. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/projects/page_client-reference-manifest.js +1 -1
  70. package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error/page/build-manifest.json +2 -2
  71. package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.html +1 -1
  72. package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.rsc +1 -1
  73. package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  74. package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  75. package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  76. package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  77. package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  78. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found/page/build-manifest.json +2 -2
  79. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  80. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.html +1 -1
  81. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.rsc +14 -14
  82. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_full.segment.rsc +14 -14
  83. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_head.segment.rsc +3 -3
  84. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_index.segment.rsc +10 -10
  85. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
  86. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  87. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  88. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/auth/status/route.js.nft.json +1 -1
  89. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/auth/token/route.js.nft.json +1 -1
  90. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/[name]/route.js.nft.json +1 -1
  91. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/[name]/token/route.js.nft.json +1 -1
  92. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/[name]/use/route.js.nft.json +1 -1
  93. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/route.js.nft.json +1 -1
  94. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/chunks/route.js.nft.json +1 -1
  95. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/[docId]/chunks/route.js.nft.json +1 -1
  96. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/[docId]/route.js.nft.json +1 -1
  97. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/route.js.nft.json +1 -1
  98. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/upload/route.js.nft.json +1 -1
  99. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/retrieve/route.js.nft.json +1 -1
  100. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/route.js.nft.json +1 -1
  101. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/route.js.nft.json +1 -1
  102. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/chat/route.js.nft.json +1 -1
  103. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/[id]/models/route.js.nft.json +1 -1
  104. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/[id]/route.js.nft.json +1 -1
  105. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/[id]/test/route.js.nft.json +1 -1
  106. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/route.js.nft.json +1 -1
  107. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/logs/client/route.js.nft.json +1 -1
  108. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/messages/route.js.nft.json +1 -1
  109. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/requests/route.js.nft.json +1 -1
  110. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/route.js.nft.json +1 -1
  111. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/search/route.js.nft.json +1 -1
  112. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/units/[memoryId]/route.js.nft.json +1 -1
  113. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/units/route.js.nft.json +1 -1
  114. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/route.js.nft.json +1 -1
  115. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/oss/list/route.js.nft.json +1 -1
  116. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/runtime/context/route.js.nft.json +1 -1
  117. package/dist/dashboard-runtime/dashboard/.next/server/app/index.html +1 -1
  118. package/dist/dashboard-runtime/dashboard/.next/server/app/index.rsc +14 -14
  119. package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  120. package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/_full.segment.rsc +14 -14
  121. package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/_head.segment.rsc +3 -3
  122. package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/_index.segment.rsc +10 -10
  123. package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  124. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding/page/build-manifest.json +2 -2
  125. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  126. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.html +1 -1
  127. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.rsc +17 -17
  128. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/_full.segment.rsc +17 -17
  129. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/_head.segment.rsc +3 -3
  130. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/_index.segment.rsc +10 -10
  131. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/_tree.segment.rsc +2 -2
  132. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/onboarding/__PAGE__.segment.rsc +4 -4
  133. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/onboarding.segment.rsc +4 -4
  134. package/dist/dashboard-runtime/dashboard/.next/server/app/page/build-manifest.json +2 -2
  135. package/dist/dashboard-runtime/dashboard/.next/server/app/page_client-reference-manifest.js +1 -1
  136. package/dist/dashboard-runtime/dashboard/.next/server/chunks/0p91_next_dist_esm_build_templates_app-route_0n~ec7s.js +9 -6
  137. package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__02p1x3t._.js +1 -1
  138. package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0fglxiw._.js +1 -1
  139. package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0lvi0g-._.js +2 -2
  140. package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0q8vcw8._.js +1 -1
  141. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/0b1r_app_(dashboard)_knowledge-base_[name]_documents_documents-client_tsx_0g2uxmt._.js +2 -2
  142. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/0e95_src_app_(dashboard)_knowledge-base_[name]_settings_settings-client_tsx_13312zk._.js +1 -1
  143. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__08faq-z._.js +3 -0
  144. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0c94d.y._.js +3 -0
  145. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0jb9ccl._.js +1 -1
  146. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/{[root-of-the-server]__13ylf4x._.js → [root-of-the-server]__0lgg04c._.js} +2 -2
  147. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__10rkv6z._.js +1 -1
  148. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_01-2v37._.js +1 -1
  149. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_01ag-vl._.js +3 -0
  150. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_09yzbcp._.js +1 -1
  151. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0atzifq._.js +3 -0
  152. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0f4u0.1._.js +1 -1
  153. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0gbt~hy._.js +1 -1
  154. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0gl7kh7._.js +3 -0
  155. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0j-q~ro._.js +1 -1
  156. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0jghj2_._.js +1 -1
  157. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0jlyg05._.js +3 -0
  158. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0n4gd_6._.js +1 -1
  159. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/{_0l~-9i0._.js → _0tdjkbc._.js} +2 -2
  160. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0tej2s.._.js +1 -1
  161. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_10u~-xc._.js +3 -0
  162. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_12r9c8h._.js +1 -1
  163. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_0.glq39._.js +3 -0
  164. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_00ofp7q._.js +1 -1
  165. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_05.qn9h._.js +3 -0
  166. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_065m1.j._.js +1 -1
  167. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_0xf3ffa._.js +1 -1
  168. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_0y49vhd._.js +1 -1
  169. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_10dsqx~._.js +1 -1
  170. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_app_(dashboard)_knowledge-base_create_page_tsx_0916~g-._.js +1 -1
  171. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_app_(dashboard)_memory_[store]_settings_page_tsx_0y26.xu._.js +1 -1
  172. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_app_(dashboard)_memory_[store]_units_page_tsx_0.6xnei._.js +1 -1
  173. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_components_0ls1exu._.js +1 -1
  174. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_components_0ugdjlb._.js +1 -1
  175. package/dist/dashboard-runtime/dashboard/.next/server/middleware-build-manifest.js +5 -5
  176. package/dist/dashboard-runtime/dashboard/.next/server/pages/404.html +1 -1
  177. package/dist/dashboard-runtime/dashboard/.next/server/pages/500.html +1 -1
  178. package/dist/dashboard-runtime/dashboard/.next/server/server-reference-manifest.js +1 -1
  179. package/dist/dashboard-runtime/dashboard/.next/server/server-reference-manifest.json +1 -1
  180. package/dist/dashboard-runtime/dashboard/.next/static/chunks/00wmf85833643.js +1 -0
  181. package/dist/dashboard-runtime/dashboard/.next/static/chunks/02tj1_rhgobzv.js +1 -0
  182. package/dist/dashboard-runtime/dashboard/.next/static/chunks/{0mea2ylxe.umh.js → 02zf3qddfaw~u.js} +1 -1
  183. package/dist/dashboard-runtime/dashboard/.next/static/chunks/039i70t10axdd.css +1 -0
  184. package/dist/dashboard-runtime/dashboard/.next/static/chunks/04bfame9rk.3d.js +5 -0
  185. package/dist/dashboard-runtime/dashboard/.next/static/chunks/07rwb_uq9qcx4.js +1 -0
  186. package/dist/dashboard-runtime/dashboard/.next/static/chunks/07ygw8215kyvc.js +1 -0
  187. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0b5hr027rat4w.js +138 -0
  188. package/dist/dashboard-runtime/dashboard/.next/static/chunks/{0__g1ogrdh412.js → 0bkm-5yza5~d2.js} +1 -1
  189. package/dist/dashboard-runtime/dashboard/.next/static/chunks/{0lrw.bnws62y9.js → 0d7d.b.v9noym.js} +1 -1
  190. package/dist/dashboard-runtime/dashboard/.next/static/chunks/{0cto67_iw~p9z.js → 0fdofp-3kkc4g.js} +1 -1
  191. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0i8hdbek9j-fu.js +1 -0
  192. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0ioivx4pbmayb.js +1 -0
  193. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0j-v5f_oscvfu.js +1 -0
  194. package/dist/dashboard-runtime/dashboard/.next/static/chunks/{0lp2g_27uyhuz.js → 0je7fmsrz2vok.js} +1 -1
  195. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0jukioxtp1mn3.js +138 -0
  196. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0klidr2i6cd.g.js +1 -0
  197. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0k~bkh1586r2i.js +1 -0
  198. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0nakvv2p1kjnf.js +1 -0
  199. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0t5vdnq4s.2yv.js +1 -0
  200. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0un~rqes29pcr.js +1 -0
  201. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0v.u57bsjppd_.js +1 -0
  202. package/dist/dashboard-runtime/dashboard/.next/static/chunks/{0fagnytrt.3oe.js → 0veza1g0elxa7.js} +1 -1
  203. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0x3w~yxvm1xsq.js +4 -0
  204. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0x5gol39unrgb.js +1 -0
  205. package/dist/dashboard-runtime/dashboard/.next/static/chunks/12s59v_sk0q-z.js +1 -0
  206. package/dist/dashboard-runtime/dashboard/.next/static/chunks/{06uuhz24tvdt..js → 14~eqof4660i3.js} +1 -1
  207. package/dist/dashboard-runtime/dashboard/.next/static/chunks/16y3764x-fh1n.js +1 -0
  208. package/dist/dashboard-runtime/dashboard/.next/static/chunks/17mcnyr~1j7ih.js +1 -0
  209. package/dist/dashboard-runtime/dashboard/.next/static/chunks/{turbopack-0w.hw6u8qra5z.js → turbopack-0~gu0g2v-1f11.js} +1 -1
  210. package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/chat/page.tsx +5 -0
  211. package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/knowledge-base/[name]/documents/documents-client.tsx +4 -1
  212. package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/knowledge-base/[name]/layout-client.tsx +62 -26
  213. package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/memory/[store]/messages/page.tsx +8 -4
  214. package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/memory/[store]/requests/page.tsx +6 -2
  215. package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/memory/[store]/requests/request-detail-dialog.tsx +9 -9
  216. package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/memory/[store]/requests/requests-table.tsx +2 -2
  217. package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/memory/[store]/search/page.tsx +5 -1
  218. package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/memory/[store]/settings/page.tsx +56 -17
  219. package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/memory/[store]/units/page.tsx +11 -7
  220. package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/memory/create/page.tsx +1 -1
  221. package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/memory/page.tsx +1 -1
  222. package/dist/dashboard-runtime/dashboard/src/app/api/v1/knowledge-bases/[name]/documents/[docId]/route.ts +67 -0
  223. package/dist/dashboard-runtime/dashboard/src/app/api/v1/llm/chat/memory-helpers.ts +45 -0
  224. package/dist/dashboard-runtime/dashboard/src/app/api/v1/llm/chat/route.ts +334 -16
  225. package/dist/dashboard-runtime/dashboard/src/app/api/v1/logs/client/route.ts +13 -0
  226. package/dist/dashboard-runtime/dashboard/src/app/api/v1/oss/list/route.ts +1 -0
  227. package/dist/dashboard-runtime/dashboard/src/app/globals.css +23 -0
  228. package/dist/dashboard-runtime/dashboard/src/components/chat/chat-config-context.tsx +116 -19
  229. package/dist/dashboard-runtime/dashboard/src/components/chat/chat-mount-config.tsx +5 -0
  230. package/dist/dashboard-runtime/dashboard/src/components/chat/memory-bind-section.tsx +372 -0
  231. package/dist/dashboard-runtime/dashboard/src/components/chat/mount-retrieval-dialog.tsx +360 -0
  232. package/dist/dashboard-runtime/dashboard/src/components/chat/mount-row.tsx +49 -5
  233. package/dist/dashboard-runtime/dashboard/src/components/chat/unified-retrieval-section.tsx +61 -26
  234. package/dist/dashboard-runtime/dashboard/src/components/documents/doc-chunks-dialog.tsx +72 -20
  235. package/dist/dashboard-runtime/dashboard/src/components/documents/doc-detail-panel.tsx +578 -76
  236. package/dist/dashboard-runtime/dashboard/src/components/documents/doc-upload-dialog.tsx +9 -81
  237. package/dist/dashboard-runtime/dashboard/src/components/documents/oss-browser.tsx +42 -26
  238. package/dist/dashboard-runtime/dashboard/src/components/instance/connect-instance-form.tsx +5 -0
  239. package/dist/dashboard-runtime/dashboard/src/components/knowledge-base/embedding-config-form.tsx +16 -2
  240. package/dist/dashboard-runtime/dashboard/src/components/knowledge-base/kb-card.tsx +37 -24
  241. package/dist/dashboard-runtime/dashboard/src/components/knowledge-base/kb-create-form.tsx +173 -86
  242. package/dist/dashboard-runtime/dashboard/src/components/knowledge-base/kb-settings-form.tsx +319 -280
  243. package/dist/dashboard-runtime/dashboard/src/components/layout/detail-sidebar.tsx +47 -18
  244. package/dist/dashboard-runtime/dashboard/src/components/layout/sidebar-instance-card.tsx +2 -2
  245. package/dist/dashboard-runtime/dashboard/src/components/memory/memory-add-dialog.tsx +2 -2
  246. package/dist/dashboard-runtime/dashboard/src/components/memory/memory-create-form.tsx +84 -56
  247. package/dist/dashboard-runtime/dashboard/src/components/memory/memory-edit-dialog.tsx +2 -2
  248. package/dist/dashboard-runtime/dashboard/src/components/memory/memory-messages-table.tsx +3 -3
  249. package/dist/dashboard-runtime/dashboard/src/components/memory/memory-requests-table.tsx +12 -12
  250. package/dist/dashboard-runtime/dashboard/src/components/memory/memory-scope-bar.tsx +20 -11
  251. package/dist/dashboard-runtime/dashboard/src/components/memory/memory-search-form.tsx +7 -7
  252. package/dist/dashboard-runtime/dashboard/src/components/memory/memory-search-results.tsx +6 -6
  253. package/dist/dashboard-runtime/dashboard/src/components/memory/memory-settings-form.tsx +90 -21
  254. package/dist/dashboard-runtime/dashboard/src/components/memory/memory-store-card.tsx +1 -1
  255. package/dist/dashboard-runtime/dashboard/src/components/memory/memory-store-list.tsx +1 -1
  256. package/dist/dashboard-runtime/dashboard/src/components/memory/memory-unit-detail-panel.tsx +4 -4
  257. package/dist/dashboard-runtime/dashboard/src/components/memory/memory-unit-table.tsx +2 -2
  258. package/dist/dashboard-runtime/dashboard/src/components/qa/qa-message.tsx +216 -5
  259. package/dist/dashboard-runtime/dashboard/src/components/retrieval/retrieval-form.tsx +241 -24
  260. package/dist/dashboard-runtime/dashboard/src/components/retrieval/retrieval-rerank-fields.tsx +1 -0
  261. package/dist/dashboard-runtime/dashboard/src/components/retrieval/retrieval-result-card.tsx +52 -4
  262. package/dist/dashboard-runtime/dashboard/src/components/shared/metadata-field-input.tsx +54 -0
  263. package/dist/dashboard-runtime/dashboard/src/components/shared/status-badge.tsx +10 -5
  264. package/dist/dashboard-runtime/dashboard/src/components/ui/nav-tab-bar.tsx +1 -1
  265. package/dist/dashboard-runtime/dashboard/src/hooks/use-chat-history.ts +60 -5
  266. package/dist/dashboard-runtime/dashboard/src/hooks/use-document.ts +29 -0
  267. package/dist/dashboard-runtime/dashboard/src/hooks/use-oss-list.ts +7 -5
  268. package/dist/dashboard-runtime/dashboard/src/hooks/use-qa-chat.ts +65 -11
  269. package/dist/dashboard-runtime/dashboard/src/hooks/use-update-document.ts +15 -0
  270. package/dist/dashboard-runtime/dashboard/src/lib/api-error-toast.ts +62 -0
  271. package/dist/dashboard-runtime/dashboard/src/lib/constants.ts +8 -0
  272. package/dist/dashboard-runtime/dashboard/src/lib/metadata-form.ts +88 -0
  273. package/dist/dashboard-runtime/dashboard/src/lib/query-keys.ts +14 -0
  274. package/dist/dashboard-runtime/dashboard/src/lib/server/api-helpers.ts +18 -5
  275. package/dist/dashboard-runtime/dashboard/src/lib/server/llm-client.ts +19 -1
  276. package/dist/dashboard-runtime/dashboard/src/lib/server/oss-client.ts +45 -16
  277. package/dist/dashboard-runtime/dashboard/src/schemas/knowledge-base.ts +6 -0
  278. package/dist/dashboard-runtime/dashboard/src/schemas/llm-chat.ts +20 -0
  279. package/dist/dashboard-runtime/dashboard/src/schemas/retrieval.ts +46 -27
  280. package/dist/dashboard-runtime/dashboard/src/services/api-client.ts +31 -2
  281. package/dist/dashboard-runtime/dashboard/src/services/documents.ts +36 -3
  282. package/dist/dashboard-runtime/dashboard/src/types/knowledge-base.ts +10 -0
  283. package/dist/dashboard-runtime/dashboard/src/types/llm-chat.ts +33 -0
  284. package/dist/dashboard-runtime/dashboard/src/types/retrieval.ts +9 -4
  285. package/dist/dashboard-runtime/dashboard/tailwind.config.ts +4 -0
  286. package/dist/dashboard-runtime/dashboard/vitest.config.mjs +5 -2
  287. package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/kb-client.d.ts +1 -0
  288. package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/kb-client.d.ts.map +1 -1
  289. package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/kb-client.js +4 -0
  290. package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/kb-client.js.map +1 -1
  291. package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/tsconfig.tsbuildinfo +1 -1
  292. package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-shared/dist/logging.js +1 -1
  293. package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-shared/dist/tsconfig.tsbuildinfo +1 -1
  294. package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-shared/dist/types.d.ts +21 -5
  295. package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-shared/dist/types.d.ts.map +1 -1
  296. package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/kb-client.d.ts +1 -0
  297. package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/kb-client.d.ts.map +1 -1
  298. package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/kb-client.js +4 -0
  299. package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/kb-client.js.map +1 -1
  300. package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/tsconfig.tsbuildinfo +1 -1
  301. package/dist/node_modules/@tablestore/tablestore-agent-shared/dist/logging.js +1 -1
  302. package/dist/node_modules/@tablestore/tablestore-agent-shared/dist/tsconfig.tsbuildinfo +1 -1
  303. package/dist/node_modules/@tablestore/tablestore-agent-shared/dist/types.d.ts +21 -5
  304. package/dist/node_modules/@tablestore/tablestore-agent-shared/dist/types.d.ts.map +1 -1
  305. package/dist/utils/read-image-input.d.ts +47 -0
  306. package/dist/utils/read-image-input.d.ts.map +1 -0
  307. package/dist/utils/read-image-input.js +89 -0
  308. package/dist/utils/read-image-input.js.map +1 -0
  309. package/package.json +2 -2
  310. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0aqzu8w._.js +0 -3
  311. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0hozzu6._.js +0 -3
  312. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0kd7szs._.js +0 -3
  313. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0tr8-3u._.js +0 -3
  314. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0xzh5yw._.js +0 -3
  315. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_12~3vfk._.js +0 -3
  316. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_13_lb.o._.js +0 -3
  317. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_0ejgygh._.js +0 -3
  318. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_components_ui_0-tuf-h._.js +0 -3
  319. package/dist/dashboard-runtime/dashboard/.next/static/chunks/00tz~p479bdgl.js +0 -1
  320. package/dist/dashboard-runtime/dashboard/.next/static/chunks/02i9olo-312mq.js +0 -138
  321. package/dist/dashboard-runtime/dashboard/.next/static/chunks/062k9jbtd9.lv.js +0 -1
  322. package/dist/dashboard-runtime/dashboard/.next/static/chunks/069zf4m5f.se2.js +0 -1
  323. package/dist/dashboard-runtime/dashboard/.next/static/chunks/07cp19da_kfld.js +0 -5
  324. package/dist/dashboard-runtime/dashboard/.next/static/chunks/086esp1n941jl.js +0 -138
  325. package/dist/dashboard-runtime/dashboard/.next/static/chunks/09uxq~55qug8c.js +0 -1
  326. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0d29.l~3ip181.js +0 -1
  327. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0ewpzgu_qf0wf.js +0 -4
  328. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0jc31diex030o.js +0 -1
  329. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0k79upjc40aky.css +0 -1
  330. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0snnsfosp3~gq.js +0 -1
  331. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0t0yqi68~eil6.js +0 -1
  332. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0th7u6qvdy3x2.js +0 -1
  333. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0tmwptel_4y0o.js +0 -1
  334. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0u6_s-0w8.yr..js +0 -1
  335. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0u9wtl06_b72x.js +0 -1
  336. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0v9d5wl9nsva3.js +0 -1
  337. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0~kfzxrhgbkaz.js +0 -1
  338. package/dist/dashboard-runtime/dashboard/.next/static/chunks/14.dp0-y_mhjo.js +0 -1
  339. package/dist/dashboard-runtime/dashboard/.next/static/chunks/15bzqpm440jvz.js +0 -1
  340. /package/dist/dashboard-runtime/dashboard/.next/static/{doYIl-pd6Sqax3bfUgN3q → EIbKHHti0Z1ephKfJzCKH}/_buildManifest.js +0 -0
  341. /package/dist/dashboard-runtime/dashboard/.next/static/{doYIl-pd6Sqax3bfUgN3q → EIbKHHti0Z1ephKfJzCKH}/_clientMiddlewareManifest.js +0 -0
  342. /package/dist/dashboard-runtime/dashboard/.next/static/{doYIl-pd6Sqax3bfUgN3q → EIbKHHti0Z1ephKfJzCKH}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- module.exports=[81619,a=>{"use strict";let b=(0,a.i(50053).default)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);a.s(["Loader2",0,b],81619)},35733,a=>{"use strict";let b=(0,a.i(50053).default)("calendar",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]]);a.s(["Calendar",0,b],35733)},1953,a=>{"use strict";var b=a.i(34020),c=a.i(71938),d=a.i(80470);let e=(0,a.i(50053).default)("arrow-down",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]);var f=a.i(25896),g=a.i(81619),h=a.i(88189),i=a.i(76192),j=a.i(4395),k=a.i(64565),l=a.i(8264),m=a.i(83366),n=a.i(21347),o=a.i(25377),p=a.i(39096);function q(a){let b=a.metadata?.speaker;if(b)return b;let c=(a.role??"user").toLowerCase();return"assistant"===c?"Assistant":"system"===c?"System":"User"}function r(a){if(!a)return"";try{return new Date(a).toDateString()}catch{return""}}function s(a){if(!a)return"";try{let b=new Date(a);if(isNaN(b.getTime()))return"";return b.toISOString()}catch{return""}}let t=[{bg:"bg-blue-600",text:"text-white"},{bg:"bg-emerald-600",text:"text-white"},{bg:"bg-violet-600",text:"text-white"},{bg:"bg-amber-500",text:"text-white"},{bg:"bg-rose-600",text:"text-white"},{bg:"bg-cyan-600",text:"text-white"},{bg:"bg-indigo-600",text:"text-white"},{bg:"bg-pink-600",text:"text-white"}];function u({label:a}){return(0,b.jsxs)("div",{className:"flex items-center gap-3 py-3",children:[(0,b.jsx)("div",{className:"h-px flex-1 bg-border"}),(0,b.jsx)("span",{className:"shrink-0 rounded-full bg-muted px-3 py-1 text-[11px] font-medium text-muted-foreground",children:a}),(0,b.jsx)("div",{className:"h-px flex-1 bg-border"})]})}let v=(0,c.memo)(function({message:a,showAvatar:c,showName:d,showTime:e}){var f;let g="user"===(a.role??"user").toLowerCase(),h=q(a),i=h?h.charAt(0).toUpperCase():"?",j=function(a){let b=0;for(let c=0;c<a.length;c++)b=31*b+a.charCodeAt(c)|0;return t[Math.abs(b)%t.length]}(h),l=function(a){if(!a)return"";try{let b=new Date(a);if(isNaN(b.getTime()))return"";return b.toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit"})}catch{return""}}(a.timestamp),m=(f=a.content)?f.replace(/^\[.*?\]\s*(?:\w+:\s*)?/,"").trim():"";return(0,b.jsxs)("div",{className:(0,k.cn)("flex gap-2.5",g?"flex-row-reverse":"flex-row",d?"mt-4":"mt-1"),children:[(0,b.jsx)("div",{className:"flex w-8 shrink-0 items-start pt-0.5",children:c&&(0,b.jsx)("div",{className:(0,k.cn)("flex h-8 w-8 items-center justify-center rounded-full text-xs font-semibold shadow-sm",j.bg,j.text),children:i})}),(0,b.jsxs)("div",{className:(0,k.cn)("flex max-w-[70%] flex-col",g?"items-end":"items-start"),children:[d&&(0,b.jsx)("span",{className:"mb-1 px-1 text-xs font-medium text-muted-foreground",children:h}),(0,b.jsx)("div",{className:(0,k.cn)("rounded-2xl px-3.5 py-2.5 text-[13.5px] leading-relaxed",g?"bg-blue-600 text-white rounded-tr-md":"bg-[hsl(var(--muted))] text-[hsl(var(--foreground))] rounded-tl-md"),children:(0,b.jsx)("p",{className:"whitespace-pre-wrap break-words",children:m})}),e&&l&&(0,b.jsx)("span",{className:"mt-1 px-1 text-[10px] text-muted-foreground/50",children:l})]})]})});var w=a.i(35733),x=a.i(72518),y=a.i(62491);function z({windowMinutes:a,onWindowChange:c,useCustom:d,customMin:e,customMax:f,onCustomMinChange:g,onCustomMaxChange:h,onToggleCustom:j}){return(0,b.jsxs)("div",{className:"flex flex-wrap items-end gap-3 border-b bg-background/80 px-5 py-3",children:[(0,b.jsx)(w.Calendar,{className:"h-4 w-4 shrink-0 text-muted-foreground mt-1"}),d?(0,b.jsxs)("div",{className:"flex items-end gap-2",children:[(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)(y.Label,{className:"text-[11px] text-muted-foreground",children:"起始时间"}),(0,b.jsx)(x.Input,{type:"datetime-local",value:e,onChange:a=>g(a.target.value),className:"h-8 w-[190px] text-xs"})]}),(0,b.jsx)("span",{className:"pb-1.5 text-xs text-muted-foreground",children:"—"}),(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)(y.Label,{className:"text-[11px] text-muted-foreground",children:"结束时间"}),(0,b.jsx)(x.Input,{type:"datetime-local",value:f,onChange:a=>h(a.target.value),className:"h-8 w-[190px] text-xs"})]}),(0,b.jsx)(i.Button,{variant:"link",size:"sm",className:"text-xs h-8",onClick:j,children:"快速选择"})]}):(0,b.jsxs)("div",{className:"flex items-end gap-2",children:[(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)(y.Label,{className:"text-[11px] text-muted-foreground",children:"时间窗口"}),(0,b.jsxs)("select",{className:"h-8 rounded-md border bg-background px-2 text-sm",value:a,onChange:a=>c(Number(a.target.value)),children:[(0,b.jsx)("option",{value:5,children:"最近 5 分钟"}),(0,b.jsx)("option",{value:30,children:"最近 30 分钟"}),(0,b.jsx)("option",{value:60,children:"最近 1 小时"}),(0,b.jsx)("option",{value:360,children:"最近 6 小时"}),(0,b.jsx)("option",{value:1440,children:"最近 1 天"}),(0,b.jsx)("option",{value:4320,children:"最近 3 天"}),(0,b.jsx)("option",{value:10080,children:"最近 7 天"}),(0,b.jsx)("option",{value:0,children:"不限"})]})]}),(0,b.jsx)(i.Button,{variant:"link",size:"sm",className:"text-xs h-8",onClick:j,children:"自定义范围"})]})]})}a.s(["default",0,function(){let a=(0,d.useParams)(),t=(0,d.useSearchParams)(),w=decodeURIComponent(a.store),x=(0,c.useMemo)(()=>(0,l.buildMemoryScope)(t),[t.toString()]),[y,A]=(0,c.useState)(1440),[B,C]=(0,c.useState)(!1),[D,E]=(0,c.useState)(""),[F,G]=(0,c.useState)(""),H=(0,c.useMemo)(()=>{if(B){let a={};return D&&(a.minTimestamp=s(D)),F&&(a.maxTimestamp=s(F)),Object.keys(a).length>0?a:void 0}if(0===y)return;let a=new Date;return{minTimestamp:new Date(a.getTime()-6e4*y).toISOString(),maxTimestamp:a.toISOString()}},[y,B,D,F]),I=JSON.stringify(H),J=(0,c.useRef)(I);(0,c.useEffect)(()=>{J.current!==I&&(J.current=I,L(void 0),N(new Set),P(new Map),V([]))},[I]);let[K,L]=(0,c.useState)(void 0),[M,N]=(0,c.useState)(new Set),[O,P]=(0,c.useState)(new Map),[Q,R]=(0,c.useState)(!0),S=(0,c.useRef)(null),[T]=(0,c.useState)(50),[U,V]=(0,c.useState)([]),W=(0,l.hasPreciseScope)(x),X=function(a,b,c,d=50,e=!0,f){let{context:g,ready:h}=(0,p.useRuntimeContext)();return(0,m.useQuery)({queryKey:o.queryKeys.memoryMessages(g.dataScopeKey,a,b,c,d,f),queryFn:()=>(0,n.listMemoryMessages)(a,b,{nextToken:c,limit:d,minTimestamp:f?.minTimestamp,maxTimestamp:f?.maxTimestamp}),enabled:h&&e&&!!a&&!!b?.appId,staleTime:3e4})}(w,W?x:null,K,T,W,H);(0,c.useEffect)(()=>{if(!X.data||!X.isFetched)return;let a=[...X.data.items??[]].reverse(),b=X.data.nextToken;M.has(K??"__initial__")||(V(b=>void 0===K?a:[...a,...b]),N(a=>new Set(a).add(K??"__initial__"))),void 0!==K&&P(a=>new Map(a).set(K,b))},[X.data,X.isFetched]),(0,c.useEffect)(()=>{!X.isFetching&&Q&&S.current&&(S.current.scrollTop=S.current.scrollHeight)},[U,X.isFetching,Q]);let Y=(0,c.useCallback)(()=>{let a=S.current;a&&R(a.scrollHeight-a.scrollTop-a.clientHeight<100)},[]),Z=(0,c.useCallback)(()=>{S.current?.scrollTo({top:S.current.scrollHeight,behavior:"smooth"}),R(!0)},[]),$=(0,c.useCallback)(()=>{if(X.isFetching)return;let a=K??"__initial__",b=void 0===K?X.data?.nextToken:O.get(a);b&&L(b)},[K,X.isFetching,X.data?.nextToken,O]),_=void 0===K?X.data?.nextToken:O.get(K??"__initial__"),aa=void 0!==_&&""!==_,ab=!!x.appId,ac={windowMinutes:y,onWindowChange:A,useCustom:B,customMin:D,customMax:F,onCustomMinChange:E,onCustomMaxChange:G,onToggleCustom:()=>C(a=>!a)};return ab?W?X.isLoading&&0===U.length?(0,b.jsxs)("div",{className:"rounded-xl border bg-muted/20",children:[(0,b.jsx)(z,{...ac}),(0,b.jsx)("div",{className:"space-y-3 p-6",children:Array.from({length:5}).map((a,c)=>(0,b.jsxs)("div",{className:(0,k.cn)("flex gap-3",c%2==0?"":"flex-row-reverse"),children:[(0,b.jsx)(j.Skeleton,{className:"h-8 w-8 shrink-0 rounded-full"}),(0,b.jsx)(j.Skeleton,{className:(0,k.cn)("h-14 rounded-2xl",c%2==0?"w-3/5":"w-2/5")})]},c))})]}):(0,b.jsxs)("div",{className:"relative flex flex-col rounded-xl border bg-muted/20",children:[(0,b.jsx)(z,{...ac}),!Q&&(0,b.jsx)("div",{className:"absolute bottom-12 right-4 z-10",children:(0,b.jsx)(i.Button,{variant:"secondary",size:"icon",className:"h-9 w-9 rounded-full shadow-lg border",onClick:Z,children:(0,b.jsx)(e,{className:"h-4 w-4"})})}),(0,b.jsxs)("div",{ref:S,onScroll:Y,className:"flex max-h-[calc(100vh-440px)] min-h-[320px] flex-col overflow-y-auto px-5 py-4",children:[aa&&(0,b.jsx)("div",{className:"mb-2 flex justify-center",children:(0,b.jsx)(i.Button,{variant:"ghost",size:"sm",onClick:$,disabled:X.isFetching,className:"gap-1.5 text-xs text-muted-foreground hover:text-foreground",children:X.isFetching?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(g.Loader2,{className:"h-3.5 w-3.5 animate-spin"}),"加载中…"]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(f.ChevronUp,{className:"h-3.5 w-3.5"}),"加载更早的消息"]})})}),!aa&&U.length>0&&(0,b.jsx)("p",{className:"mb-2 text-center text-[11px] text-muted-foreground/50",children:"— 已加载全部消息 —"}),function(){if(0===U.length)return(0,b.jsxs)("div",{className:"flex flex-col items-center justify-center py-20 text-muted-foreground",children:[(0,b.jsx)(h.MessageSquare,{className:"mb-2 h-5 w-5"}),(0,b.jsx)("span",{className:"text-sm",children:H?"该时间范围内暂无消息":"当前 scope 下暂无消息记录"})]});let a=[],c="",d="";return U.forEach((e,f)=>{let g=r(e.timestamp),h=function(a){if(!a)return"";try{let b=new Date(a);if(isNaN(b.getTime()))return"";let c=new Date,d=new Date(c);if(d.setDate(d.getDate()-1),b.toDateString()===c.toDateString())return"今天";if(b.toDateString()===d.toDateString())return"昨天";return b.toLocaleDateString("zh-CN",{year:"numeric",month:"long",day:"numeric"})}catch{return""}}(e.timestamp),i=q(e);g&&g!==c&&(a.push((0,b.jsx)(u,{label:h},`date-${g}-${f}`)),d="",c=g);let j=U[f+1],k=j?q(j):"",l=j?r(j.timestamp):"",m=!j||k!==i||l!==g,n=i!==d;a.push((0,b.jsx)(v,{message:e,showAvatar:n,showName:n,showTime:m},e.messageId??`${e.timestamp}-${f}`)),d=i}),a}()]}),U.length>0&&(0,b.jsx)("div",{className:"border-t px-5 py-2.5",children:(0,b.jsxs)("span",{className:"text-[11px] text-muted-foreground",children:["共 ",U.length," 条消息"]})})]}):(0,b.jsxs)("div",{className:"flex flex-col items-center justify-center rounded-xl border border-dashed py-16 text-muted-foreground",children:[(0,b.jsx)(h.MessageSquare,{className:"mb-2 h-5 w-5"}),(0,b.jsx)("span",{className:"text-sm",children:"请在上方 Scope 栏中为所有字段设置具体值以查询短期记忆"})]}):(0,b.jsxs)("div",{className:"flex flex-col items-center justify-center rounded-xl border border-dashed py-16 text-muted-foreground",children:[(0,b.jsx)(h.MessageSquare,{className:"mb-2 h-5 w-5"}),(0,b.jsx)("span",{className:"text-sm",children:"请先在上方 Scope 区域填写 appId"})]})}],1953)}];
1
+ module.exports=[81619,a=>{"use strict";let b=(0,a.i(50053).default)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);a.s(["Loader2",0,b],81619)},35733,a=>{"use strict";let b=(0,a.i(50053).default)("calendar",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]]);a.s(["Calendar",0,b],35733)},1953,a=>{"use strict";var b=a.i(34020),c=a.i(71938),d=a.i(80470);let e=(0,a.i(50053).default)("arrow-down",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]);var f=a.i(25896),g=a.i(81619),h=a.i(88189),i=a.i(76192),j=a.i(4395),k=a.i(64565),l=a.i(8264),m=a.i(83366),n=a.i(21347),o=a.i(25377),p=a.i(39096);function q(a){let b=a.metadata?.speaker;if(b)return b;let c=(a.role??"user").toLowerCase();return"assistant"===c?"Assistant":"system"===c?"System":"User"}function r(a){if(!a)return"";try{return new Date(a).toDateString()}catch{return""}}function s(a){if(!a)return"";try{let b=new Date(a);if(isNaN(b.getTime()))return"";return b.toISOString()}catch{return""}}let t=[{bg:"bg-blue-600",text:"text-white"},{bg:"bg-emerald-600",text:"text-white"},{bg:"bg-violet-600",text:"text-white"},{bg:"bg-amber-500",text:"text-white"},{bg:"bg-rose-600",text:"text-white"},{bg:"bg-cyan-600",text:"text-white"},{bg:"bg-indigo-600",text:"text-white"},{bg:"bg-pink-600",text:"text-white"}];function u({label:a}){return(0,b.jsxs)("div",{className:"flex items-center gap-3 py-3",children:[(0,b.jsx)("div",{className:"h-px flex-1 bg-border"}),(0,b.jsx)("span",{className:"shrink-0 rounded-full bg-muted px-3 py-1 text-[11px] font-medium text-muted-foreground",children:a}),(0,b.jsx)("div",{className:"h-px flex-1 bg-border"})]})}let v=(0,c.memo)(function({message:a,showAvatar:c,showName:d,showTime:e}){var f;let g="user"===(a.role??"user").toLowerCase(),h=q(a),i=h?h.charAt(0).toUpperCase():"?",j=function(a){let b=0;for(let c=0;c<a.length;c++)b=31*b+a.charCodeAt(c)|0;return t[Math.abs(b)%t.length]}(h),l=function(a){if(!a)return"";try{let b=new Date(a);if(isNaN(b.getTime()))return"";return b.toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit"})}catch{return""}}(a.timestamp),m=(f=a.content)?f.replace(/^\[.*?\]\s*(?:\w+:\s*)?/,"").trim():"";return(0,b.jsxs)("div",{className:(0,k.cn)("flex gap-2.5",g?"flex-row-reverse":"flex-row",d?"mt-4":"mt-1"),children:[(0,b.jsx)("div",{className:"flex w-8 shrink-0 items-start pt-0.5",children:c&&(0,b.jsx)("div",{className:(0,k.cn)("flex h-8 w-8 items-center justify-center rounded-full text-xs font-semibold shadow-sm",j.bg,j.text),children:i})}),(0,b.jsxs)("div",{className:(0,k.cn)("flex max-w-[70%] flex-col",g?"items-end":"items-start"),children:[d&&(0,b.jsx)("span",{className:"mb-1 px-1 text-xs font-medium text-muted-foreground",children:h}),(0,b.jsx)("div",{className:(0,k.cn)("rounded-2xl px-3.5 py-2.5 text-[13.5px] leading-relaxed",g?"bg-blue-600 text-white rounded-tr-md":"bg-[hsl(var(--muted))] text-[hsl(var(--foreground))] rounded-tl-md"),children:(0,b.jsx)("p",{className:"whitespace-pre-wrap break-words",children:m})}),e&&l&&(0,b.jsx)("span",{className:"mt-1 px-1 text-[10px] text-muted-foreground/50",children:l})]})]})});var w=a.i(35733),x=a.i(72518),y=a.i(62491);function z({windowMinutes:a,onWindowChange:c,useCustom:d,customMin:e,customMax:f,onCustomMinChange:g,onCustomMaxChange:h,onToggleCustom:j}){return(0,b.jsxs)("div",{className:"flex flex-wrap items-end gap-3 border-b bg-background/80 px-5 py-3",children:[(0,b.jsx)(w.Calendar,{className:"h-4 w-4 shrink-0 text-muted-foreground mt-1"}),d?(0,b.jsxs)("div",{className:"flex items-end gap-2",children:[(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)(y.Label,{className:"text-[11px] text-muted-foreground",children:"起始时间"}),(0,b.jsx)(x.Input,{type:"datetime-local",value:e,onChange:a=>g(a.target.value),className:"h-8 w-[190px] text-xs"})]}),(0,b.jsx)("span",{className:"pb-1.5 text-xs text-muted-foreground",children:"—"}),(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)(y.Label,{className:"text-[11px] text-muted-foreground",children:"结束时间"}),(0,b.jsx)(x.Input,{type:"datetime-local",value:f,onChange:a=>h(a.target.value),className:"h-8 w-[190px] text-xs"})]}),(0,b.jsx)(i.Button,{variant:"link",size:"sm",className:"text-xs h-8",onClick:j,children:"快速选择"})]}):(0,b.jsxs)("div",{className:"flex items-end gap-2",children:[(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)(y.Label,{className:"text-[11px] text-muted-foreground",children:"时间窗口"}),(0,b.jsxs)("select",{className:"h-8 rounded-md border bg-background px-2 text-sm",value:a,onChange:a=>c(Number(a.target.value)),children:[(0,b.jsx)("option",{value:5,children:"最近 5 分钟"}),(0,b.jsx)("option",{value:30,children:"最近 30 分钟"}),(0,b.jsx)("option",{value:60,children:"最近 1 小时"}),(0,b.jsx)("option",{value:360,children:"最近 6 小时"}),(0,b.jsx)("option",{value:1440,children:"最近 1 天"}),(0,b.jsx)("option",{value:4320,children:"最近 3 天"}),(0,b.jsx)("option",{value:10080,children:"最近 7 天"}),(0,b.jsx)("option",{value:0,children:"不限"})]})]}),(0,b.jsx)(i.Button,{variant:"link",size:"sm",className:"text-xs h-8",onClick:j,children:"自定义范围"})]})]})}a.s(["default",0,function(){let a=(0,d.useParams)(),t=(0,d.useSearchParams)(),w=decodeURIComponent(a.store),x=t.toString(),y=(0,c.useMemo)(()=>(0,l.buildMemoryScope)(new URLSearchParams(x)),[x]),[A,B]=(0,c.useState)(1440),[C,D]=(0,c.useState)(!1),[E,F]=(0,c.useState)(""),[G,H]=(0,c.useState)(""),I=(0,c.useMemo)(()=>{if(C){let a={};return E&&(a.minTimestamp=s(E)),G&&(a.maxTimestamp=s(G)),Object.keys(a).length>0?a:void 0}if(0===A)return;let a=new Date;return{minTimestamp:new Date(a.getTime()-6e4*A).toISOString(),maxTimestamp:a.toISOString()}},[A,C,E,G]),J=JSON.stringify(I),K=(0,c.useRef)(J);(0,c.useEffect)(()=>{K.current!==J&&(K.current=J,M(void 0),O(new Set),Q(new Map),W([]))},[J]);let[L,M]=(0,c.useState)(void 0),[N,O]=(0,c.useState)(new Set),[P,Q]=(0,c.useState)(new Map),[R,S]=(0,c.useState)(!0),T=(0,c.useRef)(null),[U]=(0,c.useState)(50),[V,W]=(0,c.useState)([]),X=(0,l.hasPreciseScope)(y),Y=function(a,b,c,d=50,e=!0,f){let{context:g,ready:h}=(0,p.useRuntimeContext)();return(0,m.useQuery)({queryKey:o.queryKeys.memoryMessages(g.dataScopeKey,a,b,c,d,f),queryFn:()=>(0,n.listMemoryMessages)(a,b,{nextToken:c,limit:d,minTimestamp:f?.minTimestamp,maxTimestamp:f?.maxTimestamp}),enabled:h&&e&&!!a&&!!b?.appId,staleTime:3e4})}(w,X?y:null,L,U,X,I);(0,c.useEffect)(()=>{if(!Y.data||!Y.isFetched)return;let a=[...Y.data.items??[]].reverse(),b=Y.data.nextToken;N.has(L??"__initial__")||(W(b=>void 0===L?a:[...a,...b]),O(a=>new Set(a).add(L??"__initial__"))),void 0!==L&&Q(a=>new Map(a).set(L,b))},[Y.data,Y.isFetched]),(0,c.useEffect)(()=>{!Y.isFetching&&R&&T.current&&(T.current.scrollTop=T.current.scrollHeight)},[V,Y.isFetching,R]);let Z=(0,c.useCallback)(()=>{let a=T.current;a&&S(a.scrollHeight-a.scrollTop-a.clientHeight<100)},[]),$=(0,c.useCallback)(()=>{T.current?.scrollTo({top:T.current.scrollHeight,behavior:"smooth"}),S(!0)},[]),_=(0,c.useCallback)(()=>{if(Y.isFetching)return;let a=L??"__initial__",b=void 0===L?Y.data?.nextToken:P.get(a);b&&M(b)},[L,Y.isFetching,Y.data?.nextToken,P]),aa=void 0===L?Y.data?.nextToken:P.get(L??"__initial__"),ab=void 0!==aa&&""!==aa,ac=!!y.appId,ad={windowMinutes:A,onWindowChange:B,useCustom:C,customMin:E,customMax:G,onCustomMinChange:F,onCustomMaxChange:H,onToggleCustom:()=>D(a=>!a)};return ac?X?Y.isLoading&&0===V.length?(0,b.jsxs)("div",{className:"rounded-xl border bg-muted/20",children:[(0,b.jsx)(z,{...ad}),(0,b.jsx)("div",{className:"space-y-3 p-6",children:Array.from({length:5}).map((a,c)=>(0,b.jsxs)("div",{className:(0,k.cn)("flex gap-3",c%2==0?"":"flex-row-reverse"),children:[(0,b.jsx)(j.Skeleton,{className:"h-8 w-8 shrink-0 rounded-full"}),(0,b.jsx)(j.Skeleton,{className:(0,k.cn)("h-14 rounded-2xl",c%2==0?"w-3/5":"w-2/5")})]},c))})]}):(0,b.jsxs)("div",{className:"relative flex flex-col rounded-xl border bg-muted/20",children:[(0,b.jsx)(z,{...ad}),!R&&(0,b.jsx)("div",{className:"absolute bottom-12 right-4 z-10",children:(0,b.jsx)(i.Button,{variant:"secondary",size:"icon",className:"h-9 w-9 rounded-full shadow-lg border",onClick:$,children:(0,b.jsx)(e,{className:"h-4 w-4"})})}),(0,b.jsxs)("div",{ref:T,onScroll:Z,className:"flex max-h-[calc(100vh-440px)] min-h-[320px] flex-col overflow-y-auto px-5 py-4",children:[ab&&(0,b.jsx)("div",{className:"mb-2 flex justify-center",children:(0,b.jsx)(i.Button,{variant:"ghost",size:"sm",onClick:_,disabled:Y.isFetching,className:"gap-1.5 text-xs text-muted-foreground hover:text-foreground",children:Y.isFetching?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(g.Loader2,{className:"h-3.5 w-3.5 animate-spin"}),"加载中…"]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(f.ChevronUp,{className:"h-3.5 w-3.5"}),"加载更早的消息"]})})}),!ab&&V.length>0&&(0,b.jsx)("p",{className:"mb-2 text-center text-[11px] text-muted-foreground/50",children:"— 已加载全部消息 —"}),function(){if(0===V.length)return(0,b.jsxs)("div",{className:"flex flex-col items-center justify-center py-20 text-muted-foreground",children:[(0,b.jsx)(h.MessageSquare,{className:"mb-2 h-5 w-5"}),(0,b.jsx)("span",{className:"text-sm",children:I?"该时间范围内暂无消息":"当前范围下暂无消息记录"})]});let a=[],c="",d="";return V.forEach((e,f)=>{let g=r(e.timestamp),h=function(a){if(!a)return"";try{let b=new Date(a);if(isNaN(b.getTime()))return"";let c=new Date,d=new Date(c);if(d.setDate(d.getDate()-1),b.toDateString()===c.toDateString())return"今天";if(b.toDateString()===d.toDateString())return"昨天";return b.toLocaleDateString("zh-CN",{year:"numeric",month:"long",day:"numeric"})}catch{return""}}(e.timestamp),i=q(e);g&&g!==c&&(a.push((0,b.jsx)(u,{label:h},`date-${g}-${f}`)),d="",c=g);let j=V[f+1],k=j?q(j):"",l=j?r(j.timestamp):"",m=!j||k!==i||l!==g,n=i!==d;a.push((0,b.jsx)(v,{message:e,showAvatar:n,showName:n,showTime:m},e.messageId??`${e.timestamp}-${f}`)),d=i}),a}()]}),V.length>0&&(0,b.jsx)("div",{className:"border-t px-5 py-2.5",children:(0,b.jsxs)("span",{className:"text-[11px] text-muted-foreground",children:["共 ",V.length," 条消息"]})})]}):(0,b.jsxs)("div",{className:"flex flex-col items-center justify-center rounded-xl border border-dashed py-16 text-muted-foreground",children:[(0,b.jsx)(h.MessageSquare,{className:"mb-2 h-5 w-5"}),(0,b.jsx)("span",{className:"text-sm",children:"请在上方范围栏中为所有字段设置具体值以查询短期记忆"})]}):(0,b.jsxs)("div",{className:"flex flex-col items-center justify-center rounded-xl border border-dashed py-16 text-muted-foreground",children:[(0,b.jsx)(h.MessageSquare,{className:"mb-2 h-5 w-5"}),(0,b.jsx)("span",{className:"text-sm",children:"请先在上方范围栏中填写「应用」"})]})}],1953)}];
2
2
 
3
3
  //# sourceMappingURL=_0tej2s.._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[10215,a=>{"use strict";var b=a.i(34020);a.s(["EmptyState",0,function({icon:a,title:c,description:d,action:e,illustration:f}){return(0,b.jsxs)("div",{className:"flex flex-col items-center justify-center py-16 px-4 text-center",children:[f??(0,b.jsx)("div",{className:"mb-5 flex h-20 w-20 items-center justify-center rounded-full bg-[hsl(var(--primary)/0.08)] ring-8 ring-[hsl(var(--primary)/0.04)]",children:(0,b.jsx)(a,{className:"text-primary",size:36,strokeWidth:1.75})}),(0,b.jsx)("h3",{className:"mb-2 text-base font-semibold text-foreground",children:c}),(0,b.jsx)("p",{className:"mb-6 max-w-sm text-sm text-muted-foreground",children:d}),e&&(0,b.jsx)("div",{children:e})]})}])},73524,a=>{"use strict";var b=a.i(34020),c=a.i(71938),d=a.i(64565);let e=c.forwardRef(({className:a,...c},e)=>(0,b.jsx)("div",{ref:e,className:(0,d.cn)("rounded-lg border border-[hsl(var(--border))] bg-[hsl(var(--card))] text-[hsl(var(--card-foreground))] shadow-sm",a),...c}));e.displayName="Card",c.forwardRef(({className:a,...c},e)=>(0,b.jsx)("div",{ref:e,className:(0,d.cn)("flex flex-col space-y-1 px-5 pt-5 pb-3 border-b border-[hsl(var(--border-light))]",a),...c})).displayName="CardHeader",c.forwardRef(({className:a,...c},e)=>(0,b.jsx)("div",{ref:e,className:(0,d.cn)("text-base font-semibold leading-tight",a),...c})).displayName="CardTitle",c.forwardRef(({className:a,...c},e)=>(0,b.jsx)("div",{ref:e,className:(0,d.cn)("text-sm text-[hsl(var(--muted-foreground))]",a),...c})).displayName="CardDescription";let f=c.forwardRef(({className:a,...c},e)=>(0,b.jsx)("div",{ref:e,className:(0,d.cn)("px-5 py-4",a),...c}));f.displayName="CardContent",c.forwardRef(({className:a,...c},e)=>(0,b.jsx)("div",{ref:e,className:(0,d.cn)("flex items-center px-5 py-3 border-t border-[hsl(var(--border-light))]",a),...c})).displayName="CardFooter";let g=c.forwardRef(({className:a,...c},e)=>(0,b.jsx)("div",{ref:e,className:(0,d.cn)("rounded-lg border border-[hsl(var(--border))] bg-[hsl(var(--card))] text-[hsl(var(--card-foreground))] shadow-sm","transition-[transform,box-shadow,border-color] duration-200 ease-[cubic-bezier(0.34,1.56,0.64,1)]","hover:border-[hsl(var(--primary))] hover:shadow-primary-soft",a),...c}));g.displayName="CardInteractive",a.s(["Card",0,e,"CardContent",0,f,"CardInteractive",0,g])},16772,a=>{"use strict";let b=(0,a.i(50053).default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);a.s(["Copy",0,b],16772)},99947,a=>{"use strict";let b=(0,a.i(50053).default)("upload",[["path",{d:"M12 3v12",key:"1x0j5s"}],["path",{d:"m17 8-5-5-5 5",key:"7q97r8"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}]]);a.s(["Upload",0,b],99947)},99016,a=>{"use strict";var b=a.i(34020),c=a.i(71938),d=a.i(71562),e=a.i(71071),f=a.i(53520),g=a.i(50053);let h=(0,g.default)("code-xml",[["path",{d:"m18 16 4-4-4-4",key:"1inbqp"}],["path",{d:"m6 8-4 4 4 4",key:"15zrgr"}],["path",{d:"m14.5 4-5 16",key:"e7oirm"}]]);var i=a.i(16772);let j=(0,g.default)("image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]);var k=a.i(9380),l=a.i(99947),m=a.i(14151),n=a.i(63265),o=a.i(76192),p=a.i(72518),q=a.i(92942),r=a.i(84252),s=a.i(34841),t=a.i(36965),u=a.i(18236),v=a.i(93078),w=a.i(15325);function x(a,b,c){let d=(0,v.assembleRetrievalConfiguration)(b,void 0)??{};c&&(d.filter=c);let e={knowledgeBaseName:a,retrievalQuery:"IMAGE"===b.queryType&&b.imageInput?{type:"IMAGE",imageBase64:b.imageInput,...b.query?{text:b.query}:{}}:{type:"TEXT",text:b.query??""}};return b.subspace?.length&&(e.subspace=b.subspace),Object.keys(d).length>0&&(e.retrievalConfiguration=d),e}function y(a,b){let c=b?.retrievalConfiguration?.searchType??["DENSE_VECTOR"],d=b?.retrievalConfiguration?.rerankingConfiguration,e=b?.retrievalConfiguration?.denseVectorSearchConfiguration,f=b?.retrievalConfiguration?.fullTextSearchConfiguration,g=d?.rrfConfiguration,h=d?.weightConfiguration,i=d?.modelConfiguration,j=c.includes("DENSE_VECTOR")&&c.includes("FULL_TEXT"),k=d?.type==="RRF"||d?.type==="WEIGHT"?j?d.type:"MODEL":d?.type==="MODEL"?"MODEL":"WEIGHT",l=e?.numberOfResults??d?.numberOfResults??20,m=f?.numberOfResults??d?.numberOfResults??20,n=d?.numberOfResults??20;return{knowledgeBaseName:a,queryType:"TEXT",query:"",imageInput:"",subspace:[],topK:n,denseTopK:l,fullTextTopK:m,rerankTopK:n,searchType:c,rerankType:k,rrfK:g?.k??60,rrfDenseWeight:g?.denseVectorSearchWeight??.5,rrfFullTextWeight:g?.fullTextSearchWeight??.5,weightDense:h?.denseVectorSearchWeight??.5,weightFullText:h?.fullTextSearchWeight??.5,modelProvider:i?.provider??"bailian",modelName:i?.model??"gte-rerank-v2"}}function z({buildRequestJson:a}){let[d,e]=(0,c.useState)(!1),[g,j]=(0,c.useState)(!1),k=d?JSON.stringify(a(),null,2):"",l=async()=>{try{await navigator.clipboard.writeText(k),j(!0),n.toast.success("已复制请求体"),setTimeout(()=>j(!1),1500)}catch{n.toast.error("复制失败,请手动选择")}};return(0,b.jsxs)(r.Popover,{open:d,onOpenChange:e,children:[(0,b.jsx)(s.TooltipProvider,{delayDuration:200,children:(0,b.jsxs)(s.Tooltip,{children:[(0,b.jsx)(s.TooltipTrigger,{asChild:!0,children:(0,b.jsx)(r.PopoverTrigger,{asChild:!0,children:(0,b.jsx)(o.Button,{type:"button",variant:"ghost",size:"icon",className:"h-7 w-7 text-[hsl(var(--muted-foreground))] hover:text-[hsl(var(--foreground))]","aria-label":"查看请求体",children:(0,b.jsx)(h,{className:"h-3.5 w-3.5"})})})}),(0,b.jsx)(s.TooltipContent,{side:"left",children:"查看 / 复制请求体 JSON"})]})}),(0,b.jsxs)(r.PopoverContent,{align:"end",sideOffset:6,className:"w-[420px] max-w-[90vw] p-0",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between border-b border-[hsl(var(--border-light))] px-3 py-2",children:[(0,b.jsx)("span",{className:"text-xs font-semibold text-[hsl(var(--foreground))]",children:"请求体(实时预览)"}),(0,b.jsx)(o.Button,{type:"button",variant:"ghost",size:"sm",className:"h-6 gap-1 px-2 text-xs",onClick:l,children:g?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(f.Check,{className:"h-3 w-3"})," 已复制"]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(i.Copy,{className:"h-3 w-3"})," 复制"]})})]}),(0,b.jsx)("pre",{className:"max-h-80 overflow-auto px-3 py-2 font-mono text-[11px] leading-snug text-[hsl(var(--foreground))]",children:k})]})]})}a.s(["RetrievalForm",0,function({knowledgeBaseName:a,knowledgeBase:f,onSubmit:g,isLoading:h}){let i=(0,c.useRef)(null),r=(0,c.useRef)(null),[s,v]=(0,c.useState)(""),[A,B]=(0,c.useState)(!1),C=(0,d.useForm)({resolver:(0,e.zodResolver)(w.retrievalSchema),defaultValues:y(a,f)}),D=f?.multimodal===!0,E=C.watch("queryType")??"TEXT",F=D?E:"TEXT";return(0,b.jsx)(q.Form,{...C,children:(0,b.jsxs)("form",{onSubmit:C.handleSubmit(function(b){g(x(a,b,i.current?.getFilter()))}),className:"space-y-5",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,b.jsx)("h3",{className:"text-base font-semibold",children:"检索测试"}),(0,b.jsx)(z,{buildRequestJson:()=>x(a,C.getValues(),i.current?.getFilter())})]}),D&&(0,b.jsx)(q.FormField,{control:C.control,name:"queryType",render:({field:a})=>(0,b.jsxs)(q.FormItem,{children:[(0,b.jsx)(q.FormLabel,{children:"查询类型"}),(0,b.jsx)(q.FormControl,{children:(0,b.jsxs)(t.ToggleGroup,{type:"single",value:a.value??"TEXT",onValueChange:b=>{b&&b!==a.value&&(a.onChange(b),C.setValue("query",""),C.setValue("imageInput",""))},className:"grid w-full grid-cols-2 gap-0 overflow-hidden rounded-lg border border-border bg-[hsl(var(--muted)/0.4)] p-0 sm:max-w-md",children:[(0,b.jsx)(t.ToggleGroupItem,{value:"TEXT",className:"h-9",children:"TEXT"}),(0,b.jsx)(t.ToggleGroupItem,{value:"IMAGE",className:"h-9",children:"IMAGE"})]})})]})}),"TEXT"===F?(0,b.jsx)(q.FormField,{control:C.control,name:"query",render:({field:a})=>(0,b.jsxs)(q.FormItem,{children:[(0,b.jsx)(q.FormLabel,{children:"查询内容"}),(0,b.jsx)(q.FormControl,{children:(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsx)(k.Search,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-[hsl(var(--muted-foreground))]"}),(0,b.jsx)(p.Input,{placeholder:"输入检索查询...",className:"pl-9",maxLength:128,...a})]})}),(0,b.jsx)(q.FormMessage,{})]})}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(q.FormField,{control:C.control,name:"imageInput",render:({field:a})=>{let c=["image/jpeg","image/png","image/webp","image/bmp","image/tiff"],d=b=>{if(!c.includes(b.type))return void n.toast.error("不支持的图片格式,请选择 JPG/PNG/WebP/BMP/TIFF 格式");let d=new FileReader;d.onload=()=>{a.onChange(d.result),v(b.name||"pasted-image")},d.onerror=()=>{n.toast.error("图片读取失败,请重试")},d.readAsDataURL(b)};return(0,b.jsxs)(q.FormItem,{children:[(0,b.jsx)(q.FormLabel,{children:"图片输入"}),(0,b.jsx)(q.FormControl,{children:(0,b.jsxs)("div",{onPaste:a=>{let b=a.clipboardData?.items;if(b){for(let c of Array.from(b))if(c.type.startsWith("image/")){a.preventDefault();let b=c.getAsFile();b&&d(b);return}}},tabIndex:0,className:"outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 rounded-md",children:[(0,b.jsx)("input",{ref:r,type:"file",accept:"image/jpeg,image/png,image/webp,image/bmp,image/tiff",className:"hidden",onChange:a=>{let b=a.target.files?.[0];b&&d(b)}}),a.value?(0,b.jsxs)("div",{className:"group border border-border rounded-md overflow-hidden",children:[(0,b.jsxs)("div",{className:"relative flex justify-center bg-muted/30 p-3",children:[(0,b.jsx)("img",{src:a.value,alt:"已选择的图片预览",className:"max-h-[200px] max-w-full rounded object-contain"}),(0,b.jsxs)("div",{className:"absolute inset-0 bg-black/40 opacity-0 group-hover:opacity-100 transition-opacity flex items-center justify-center gap-3",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>r.current?.click(),className:"px-3 py-1.5 rounded bg-white/90 text-sm font-medium text-foreground hover:bg-white flex items-center gap-1.5",children:[(0,b.jsx)(l.Upload,{className:"w-3.5 h-3.5"}),"重新选择"]}),(0,b.jsxs)("button",{type:"button",onClick:()=>{a.onChange(""),v(""),r.current&&(r.current.value="")},className:"px-3 py-1.5 rounded bg-white/90 text-sm font-medium text-destructive hover:bg-white flex items-center gap-1.5",children:[(0,b.jsx)(m.X,{className:"w-3.5 h-3.5"}),"删除"]})]})]}),(0,b.jsxs)("div",{className:"px-3 py-2 border-t border-border flex items-center gap-2 text-sm text-muted-foreground",children:[(0,b.jsx)(j,{className:"w-3.5 h-3.5"}),(0,b.jsx)("span",{className:"truncate",children:s})]})]}):(0,b.jsxs)("div",{onClick:()=>r.current?.click(),onDragOver:a=>{a.preventDefault(),B(!0)},onDragLeave:()=>B(!1),onDrop:a=>{a.preventDefault(),B(!1);let b=a.dataTransfer.files[0];b&&d(b)},className:`border-2 border-dashed rounded-lg p-8 flex flex-col items-center gap-3 cursor-pointer transition-colors ${A?"border-primary bg-accent/50":"border-border hover:border-primary/50 hover:bg-accent/50"}`,children:[(0,b.jsx)(l.Upload,{className:"w-8 h-8 text-muted-foreground"}),(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:"点击、拖拽或粘贴图片到此处"}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground/70",children:"支持 JPG/PNG/WebP/BMP/TIFF"})]})]},E)}),(0,b.jsx)(q.FormMessage,{})]})}}),(0,b.jsx)(q.FormField,{control:C.control,name:"query",render:({field:a})=>(0,b.jsxs)(q.FormItem,{children:[(0,b.jsx)(q.FormLabel,{children:"补充文本(可选)"}),(0,b.jsx)(q.FormControl,{children:(0,b.jsx)(p.Input,{placeholder:"补充文本描述...",maxLength:128,...a})}),(0,b.jsx)(q.FormMessage,{})]})})]}),(0,b.jsx)(u.RetrievalParamsFields,{form:C,knowledgeBase:f,filterRef:i}),(0,b.jsxs)(o.Button,{type:"submit",disabled:h,className:"w-full",children:[(0,b.jsx)(k.Search,{className:"mr-2 h-4 w-4"}),h?"检索中...":"执行检索"]})]})})},"assembleRetrievalRequest",0,x,"retrievalDefaultsFromKB",0,y],99016)},25535,a=>{"use strict";var b=a.i(34020),c=a.i(71938),d=a.i(80470),e=a.i(63265),f=a.i(4395),g=a.i(99443),h=a.i(33280),i=a.i(33596),j=a.i(53141);async function k(a){let{knowledgeBaseName:b,...c}=a;return(0,j.apiPost)(`/api/v1/knowledge-bases/${encodeURIComponent(b)}/retrieve`,c)}var l=a.i(99016);let m=(0,a.i(50053).default)("file-search",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["circle",{cx:"11.5",cy:"14.5",r:"2.5",key:"1bq0ko"}],["path",{d:"M13.3 16.3 15 18",key:"2quom7"}]]);var n=a.i(10215),o=a.i(73524),p=a.i(21989),q=a.i(43836),r=a.i(67558);function s({result:a,rank:d}){let[e,f]=(0,c.useState)(null),g=a.ossKey?.split("/").pop()||a.ossKey||"未知文件",h=a.chunkType?.toLowerCase()==="image",i=a.imageBase64?a.imageBase64.startsWith("data:")?a.imageBase64:`${r.IMAGE_FALLBACK_DATA_PREFIX}${a.imageBase64}`:void 0;return(0,b.jsxs)(o.Card,{className:"transition-shadow hover:shadow-sm",children:[(0,b.jsxs)(o.CardContent,{className:"p-4 space-y-3",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"flex h-6 w-6 items-center justify-center rounded-full bg-[hsl(var(--primary-50))] text-xs font-semibold text-primary",children:d}),(0,b.jsx)(p.Badge,{variant:"outline",className:"font-mono text-xs",children:a.score.toFixed(4)}),a.chunkType&&(0,b.jsx)(p.Badge,{variant:h?"default":"secondary",className:"text-xs",children:a.chunkType.toUpperCase()})]}),a.subspace&&(0,b.jsx)(p.Badge,{variant:"secondary",className:"text-xs",children:a.subspace})]}),(0,b.jsxs)("div",{className:"flex items-center gap-3 text-xs text-muted-foreground",children:[(0,b.jsx)("span",{className:"font-medium text-foreground",children:g}),(0,b.jsxs)("span",{children:["Chunk #",a.chunkId]})]}),h&&a.imageBase64&&i&&(0,b.jsx)("img",{src:i,alt:"检索结果图片",className:"max-w-[200px] rounded-md cursor-pointer hover:opacity-80 transition-opacity",onClick:()=>f(i)}),a.content&&(0,b.jsx)("p",{className:`leading-relaxed text-foreground/90 whitespace-pre-wrap ${h?"text-xs":"text-sm line-clamp-6"}`,children:a.content}),a.metadata&&Object.keys(a.metadata).length>0&&(0,b.jsx)("div",{className:"flex flex-wrap gap-1.5 pt-1",children:Object.entries(a.metadata).map(([a,c])=>(0,b.jsxs)(p.Badge,{variant:"secondary",className:"text-xs font-normal",children:[a,": ",String(c)]},a))})]}),(0,b.jsx)(q.Dialog,{open:!!e,onOpenChange:()=>f(null),children:(0,b.jsxs)(q.DialogContent,{className:"max-w-[90vw] max-h-[90vh] p-2 flex items-center justify-center border-none bg-black/90 data-[state=open]:animate-none data-[state=closed]:animate-none duration-0",children:[(0,b.jsx)(q.DialogTitle,{className:"sr-only",children:"图片放大预览"}),e&&(0,b.jsx)("img",{src:e,alt:"放大预览",className:"max-w-full max-h-[85vh] object-contain"})]})})]})}function t({results:a,elapsedMs:c}){return null===a?null:0===a.length?(0,b.jsx)(n.EmptyState,{icon:m,title:"没有检索到结果",description:"尝试调整查询内容或检索参数"}):(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,b.jsxs)("span",{children:["共 ",(0,b.jsx)("strong",{className:"text-foreground",children:a.length})," 条结果"]}),void 0!==c&&(0,b.jsxs)("span",{children:["· 耗时 ",c,"ms"]})]}),(0,b.jsx)("div",{className:"space-y-3",children:a.map((a,c)=>(0,b.jsx)(s,{result:a,rank:c+1},`${a.docId}-${a.chunkId}`))})]})}a.s(["default",0,function(){let a=decodeURIComponent((0,d.useParams)().name),{data:j,isLoading:m}=(0,h.useKnowledgeBase)(a),n=(0,i.useMutation)({mutationFn:a=>k(a)}),[o,p]=(0,c.useState)(null),[q,r]=(0,c.useState)(),s=(0,c.useCallback)(async a=>{let b=Date.now();try{let c=await n.mutateAsync(a);p(c.retrievalResults),r(Date.now()-b)}catch(b){let a=b instanceof Error?b.message:"检索失败";e.toast.error(a)}},[n]);return m?(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsx)(f.Skeleton,{className:"h-8 w-48"}),(0,b.jsx)(f.Skeleton,{className:"h-64 w-full"})]}):(0,b.jsx)(g.WorkbenchLayout,{asideWidth:400,aside:(0,b.jsx)(l.RetrievalForm,{knowledgeBaseName:a,knowledgeBase:j??void 0,onSubmit:s,isLoading:n.isPending}),children:(0,b.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto px-7 py-5 max-md:px-4",children:(0,b.jsx)(t,{results:o,elapsedMs:q})})})}],25535)}];
2
+
3
+ //# sourceMappingURL=_10u~-xc._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[4395,a=>{"use strict";var b=a.i(34020),c=a.i(71938),d=a.i(64565);a.s(["Skeleton",0,function({className:a,delay:c,style:e,...f}){return(0,b.jsx)("div",{className:(0,d.cn)("animate-pulse rounded-md bg-primary/10",a),style:{animationDelay:c?`${c}ms`:void 0,...e},...f})},"SkeletonGroup",0,function({children:a,stagger:d=80,className:e,...f}){let g=c.Children.toArray(a);return(0,b.jsx)("div",{className:e,...f,children:g.map((a,b)=>{if(!c.isValidElement(a))return a;let e=a.props.delay??0;return c.cloneElement(a,{delay:e+b*d})})})}])},37102,a=>{"use strict";let b=(0,a.i(50053).default)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);a.s(["AlertTriangle",0,b],37102)},68826,a=>{"use strict";let b=(0,a.i(50053).default)("refresh-cw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);a.s(["RefreshCw",0,b],68826)},2482,a=>{"use strict";var b=a.i(34020),c=a.i(12583),d=a.i(80470),e=a.i(7704),f=a.i(64565);let g={"knowledge-base":"知识库",memory:"记忆库","llm-providers":"大模型",projects:"项目管理",documents:"文档",retrieval:"检索测试",qa:"问答测试",search:"记忆检索",units:"长期记忆",messages:"短期记忆",requests:"请求审计",settings:"设置",create:"新建",new:"新建",chat:"对话"};a.s(["PageHeader",0,function({title:a,description:h,hideBreadcrumb:i,children:j,className:k}){let l=(0,d.usePathname)()??"/",m=i?[]:function(a){if(/^\/knowledge-base\/[^/]+(?:\/.*)?$/.test(a)||/^\/memory\/[^/]+(?:\/.*)?$/.test(a))return[];let b=a.split("/").filter(Boolean);if(0===b.length)return[];let c=[],d="";return b.forEach((a,e)=>{d+=`/${a}`;let f=decodeURIComponent(a),h=g[f]??f;c.push({label:h,href:e<b.length-1?d:void 0})}),c}(l);return(0,b.jsxs)("div",{className:(0,f.cn)("mb-5 flex flex-col gap-2",k),children:[m.length>1&&(0,b.jsxs)("nav",{"aria-label":"面包屑",className:"flex items-center gap-1 text-[13px] text-[hsl(var(--muted-foreground))]",children:[(0,b.jsx)(c.default,{href:"/",className:"transition-colors hover:text-[hsl(var(--foreground))]",children:"主页"}),m.map((a,d)=>(0,b.jsxs)("span",{className:"flex items-center gap-1",children:[(0,b.jsx)(e.ChevronRight,{className:"h-3 w-3 opacity-60"}),a.href?(0,b.jsx)(c.default,{href:a.href,className:"transition-colors hover:text-[hsl(var(--foreground))]",children:a.label}):(0,b.jsx)("span",{className:"font-medium text-[hsl(var(--foreground))]",children:a.label})]},`${a.label}-${d}`))]}),(0,b.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("h1",{className:"text-xl font-semibold leading-tight text-[hsl(var(--foreground))]",children:a}),h&&(0,b.jsx)("p",{className:"text-[13px] text-[hsl(var(--muted-foreground))]",children:h})]}),j&&(0,b.jsx)("div",{className:"flex shrink-0 items-center gap-2",children:j})]})]})}])},55295,a=>{"use strict";let b=(0,a.i(50053).default)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);a.s(["Trash2",0,b],55295)},9380,a=>{"use strict";let b=(0,a.i(50053).default)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);a.s(["Search",0,b],9380)},24567,a=>{"use strict";var b=a.i(34020),c=a.i(71938),d=a.i(43836),e=a.i(76192),f=a.i(72518);a.s(["ConfirmDialog",0,function({open:a,onOpenChange:g,title:h,description:i,confirmText:j="确认",cancelText:k="取消",variant:l="default",onConfirm:m,confirmInput:n,children:o}){let[p,q]=(0,c.useState)(""),r=void 0!==n&&""!==n,s=r&&p!==n,t=(0,c.useCallback)(()=>{s||(m(),q(""))},[s,m]),u=(0,c.useCallback)(a=>{a||q(""),g(a)},[g]);return(0,b.jsx)(d.Dialog,{open:a,onOpenChange:u,children:(0,b.jsxs)(d.DialogContent,{className:"sm:max-w-120",children:[(0,b.jsxs)(d.DialogHeader,{children:[(0,b.jsx)(d.DialogTitle,{children:h}),(0,b.jsx)(d.DialogDescription,{className:"break-all",children:i})]}),r&&(0,b.jsxs)("div",{className:"py-2",children:[(0,b.jsxs)("p",{className:"mb-2 text-sm text-muted-foreground",children:["请输入 ",(0,b.jsx)("strong",{children:n})," 以确认操作"]}),(0,b.jsx)(f.Input,{value:p,onChange:a=>q(a.target.value),placeholder:n,autoFocus:!0})]}),o&&(0,b.jsx)("div",{className:"py-1",children:o}),(0,b.jsxs)(d.DialogFooter,{children:[(0,b.jsx)(e.Button,{variant:"outline",onClick:()=>u(!1),children:k}),(0,b.jsx)(e.Button,{variant:"danger"===l?"destructive":"default",onClick:t,disabled:s,children:j})]})]})})}])},24215,a=>{"use strict";let b=(0,a.i(50053).default)("settings",[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);a.s(["Settings",0,b],24215)},10215,a=>{"use strict";var b=a.i(34020);a.s(["EmptyState",0,function({icon:a,title:c,description:d,action:e,illustration:f}){return(0,b.jsxs)("div",{className:"flex flex-col items-center justify-center py-16 px-4 text-center",children:[f??(0,b.jsx)("div",{className:"mb-5 flex h-20 w-20 items-center justify-center rounded-full bg-[hsl(var(--primary)/0.08)] ring-8 ring-[hsl(var(--primary)/0.04)]",children:(0,b.jsx)(a,{className:"text-primary",size:36,strokeWidth:1.75})}),(0,b.jsx)("h3",{className:"mb-2 text-base font-semibold text-foreground",children:c}),(0,b.jsx)("p",{className:"mb-6 max-w-sm text-sm text-muted-foreground",children:d}),e&&(0,b.jsx)("div",{children:e})]})}])},21989,a=>{"use strict";var b=a.i(34020),c=a.i(42261),d=a.i(64565);let e=(0,c.cva)("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",{variants:{variant:{default:"border-transparent bg-[hsl(var(--primary))] text-[hsl(var(--primary-foreground))] hover:opacity-90",secondary:"border-transparent bg-[hsl(var(--secondary))] text-[hsl(var(--secondary-foreground))] hover:opacity-80",destructive:"border-transparent bg-[hsl(var(--destructive))] text-[hsl(var(--destructive-foreground))] hover:opacity-90",outline:"border-[hsl(var(--border))] text-[hsl(var(--foreground))] bg-[hsl(var(--card))]",primary:"border-transparent bg-[hsl(var(--primary-soft))] text-[hsl(var(--primary))]",success:"border-transparent bg-[hsl(var(--success-soft))] text-[hsl(var(--success))]",warning:"border-transparent bg-[hsl(var(--warning-soft))] text-[hsl(var(--warning))]",danger:"border-transparent bg-[hsl(var(--danger-soft))] text-[hsl(var(--danger))]",purple:"border-transparent bg-[hsl(var(--purple-soft))] text-[hsl(var(--purple))]"}},defaultVariants:{variant:"default"}});a.s(["Badge",0,function({className:a,variant:c,...f}){return(0,b.jsx)("div",{className:(0,d.cn)(e({variant:c}),a),...f})}])},73524,a=>{"use strict";var b=a.i(34020),c=a.i(71938),d=a.i(64565);let e=c.forwardRef(({className:a,...c},e)=>(0,b.jsx)("div",{ref:e,className:(0,d.cn)("rounded-lg border border-[hsl(var(--border))] bg-[hsl(var(--card))] text-[hsl(var(--card-foreground))] shadow-sm",a),...c}));e.displayName="Card",c.forwardRef(({className:a,...c},e)=>(0,b.jsx)("div",{ref:e,className:(0,d.cn)("flex flex-col space-y-1 px-5 pt-5 pb-3 border-b border-[hsl(var(--border-light))]",a),...c})).displayName="CardHeader",c.forwardRef(({className:a,...c},e)=>(0,b.jsx)("div",{ref:e,className:(0,d.cn)("text-base font-semibold leading-tight",a),...c})).displayName="CardTitle",c.forwardRef(({className:a,...c},e)=>(0,b.jsx)("div",{ref:e,className:(0,d.cn)("text-sm text-[hsl(var(--muted-foreground))]",a),...c})).displayName="CardDescription";let f=c.forwardRef(({className:a,...c},e)=>(0,b.jsx)("div",{ref:e,className:(0,d.cn)("px-5 py-4",a),...c}));f.displayName="CardContent",c.forwardRef(({className:a,...c},e)=>(0,b.jsx)("div",{ref:e,className:(0,d.cn)("flex items-center px-5 py-3 border-t border-[hsl(var(--border-light))]",a),...c})).displayName="CardFooter";let g=c.forwardRef(({className:a,...c},e)=>(0,b.jsx)("div",{ref:e,className:(0,d.cn)("rounded-lg border border-[hsl(var(--border))] bg-[hsl(var(--card))] text-[hsl(var(--card-foreground))] shadow-sm","transition-[transform,box-shadow,border-color] duration-200 ease-[cubic-bezier(0.34,1.56,0.64,1)]","hover:border-[hsl(var(--primary))] hover:shadow-primary-soft",a),...c}));g.displayName="CardInteractive",a.s(["Card",0,e,"CardContent",0,f,"CardInteractive",0,g])},59058,a=>{"use strict";let b=(0,a.i(50053).default)("ellipsis",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]]);a.s(["MoreHorizontal",0,b],59058)},98791,a=>{"use strict";var b=a.i(34020),c=a.i(80470),d=a.i(63265),e=a.i(24567),f=a.i(33596),g=a.i(77072),h=a.i(21347),i=a.i(25377);a.s(["MemoryDeleteDialog",0,function({memoryStoreName:a,open:j,onOpenChange:k,redirectToList:l=!1}){let m,n=(0,c.useRouter)(),o=(m=(0,g.useQueryClient)(),(0,f.useMutation)({mutationFn:a=>(0,h.deleteMemoryStore)(a),onSuccess:()=>{(0,i.invalidateMemoryQueries)(m)}}));async function p(){if(a)try{await o.mutateAsync(a),d.toast.success("记忆库已删除"),k(!1),l&&n.push("/memory")}catch(a){d.toast.error(a instanceof Error?a.message:"删除记忆库失败")}}return(0,b.jsx)(e.ConfirmDialog,{open:j,onOpenChange:k,title:"删除记忆库",description:`确定要删除记忆库 "${a??""}" 吗?此操作不可撤销。`,confirmInput:a??void 0,confirmText:"删除",variant:"danger",onConfirm:p})}],98791)},82461,97798,a=>{"use strict";var b=a.i(34020),c=a.i(9380),d=a.i(14151),e=a.i(64565);a.s(["SearchInput",0,function({value:a,onChange:f,placeholder:g="搜索…",className:h}){return(0,b.jsxs)("div",{className:(0,e.cn)("relative flex items-center",h),children:[(0,b.jsx)(c.Search,{className:"absolute left-3 pointer-events-none text-muted-foreground",size:16}),(0,b.jsx)("input",{type:"text",value:a,onChange:a=>f(a.target.value),placeholder:g,className:(0,e.cn)("h-9 w-full rounded-md border border-input bg-background pl-9 pr-8 text-sm","placeholder:text-muted-foreground/60","focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-1")}),a&&(0,b.jsx)("button",{type:"button",onClick:()=>f(""),className:"absolute right-2 inline-flex items-center justify-center rounded-full p-0.5 text-gray-400 hover:text-gray-600 transition-colors","aria-label":"清除搜索",children:(0,b.jsx)(d.X,{size:14})})]})}],82461);var f=a.i(71938);a.s(["useDebounce",0,function(a,b=300){let[c,d]=(0,f.useState)(a);return(0,f.useEffect)(()=>{let c=setTimeout(()=>{d(a)},b);return()=>{clearTimeout(c)}},[a,b]),c}],97798)},54540,a=>{"use strict";var b=a.i(34020),c=a.i(37102),d=a.i(68826),e=a.i(76192),f=a.i(53141);a.s(["ErrorState",0,function({error:a,onRetry:g}){let h=function(a){if(!(a instanceof f.ApiClientError))return null;let{status:b}=a;return 401===b||403===b?"Please check your AccessKey credentials in the project settings.":503===b||"NETWORK_ERROR"===a.code?"The service may be unreachable. Verify the endpoint address and network connectivity.":null}(a);return(0,b.jsxs)("div",{className:"flex flex-col items-center justify-center py-16 px-4 text-center",children:[(0,b.jsx)("div",{className:"mb-5 flex h-20 w-20 items-center justify-center rounded-full bg-destructive/10 ring-8 ring-destructive/5",children:(0,b.jsx)(c.AlertTriangle,{className:"text-destructive",size:36,strokeWidth:1.75})}),(0,b.jsx)("h3",{className:"mb-2 text-base font-semibold text-foreground",children:"Failed to load data"}),(0,b.jsx)("p",{className:"mb-1 max-w-md text-sm text-muted-foreground",children:a.message}),h&&(0,b.jsx)("p",{className:"mb-6 max-w-md text-xs text-muted-foreground/80",children:h}),!h&&(0,b.jsx)("div",{className:"mb-6"}),g&&(0,b.jsxs)(e.Button,{variant:"outline",size:"sm",onClick:g,children:[(0,b.jsx)(d.RefreshCw,{className:"mr-2 h-4 w-4"}),"Retry"]})]})}])},55429,a=>{"use strict";var b=a.i(34020),c=a.i(12583),d=a.i(25825),e=a.i(76192),f=a.i(2482),g=a.i(71938),h=a.i(47845),i=a.i(4395),j=a.i(10215),k=a.i(54540),l=a.i(82461),m=a.i(97798),n=a.i(10220),o=a.i(98791),p=a.i(80470),q=a.i(59058),r=a.i(9380),s=a.i(24215);let t=(0,a.i(50053).default)("table-properties",[["path",{d:"M15 3v18",key:"14nvp0"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M21 9H3",key:"1338ky"}],["path",{d:"M21 15H3",key:"9uk58r"}]]);var u=a.i(55295),v=a.i(21989),w=a.i(73524),x=a.i(24666);let y=(0,g.memo)(function({memoryStore:a,onDelete:d}){let f=(0,p.useRouter)(),{memoryStoreName:g,description:i}=a,j=`/memory/${encodeURIComponent(g)}`,k=`/memory/${encodeURIComponent(g)}/units`;return(0,b.jsx)(c.default,{href:k,className:"no-underline",children:(0,b.jsx)(w.CardInteractive,{className:"group relative flex h-full cursor-pointer flex-col",children:(0,b.jsxs)(w.CardContent,{className:"flex flex-1 flex-col p-5",children:[(0,b.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[(0,b.jsx)(h.Brain,{className:"h-4 w-4 shrink-0 text-primary"}),(0,b.jsx)("h3",{className:"truncate text-base font-semibold text-foreground",children:g})]}),(0,b.jsx)("div",{className:"opacity-0 transition-opacity duration-150 delay-75 group-hover:opacity-100 focus-within:opacity-100",onClick:a=>a.preventDefault(),children:(0,b.jsxs)(x.DropdownMenu,{children:[(0,b.jsx)(x.DropdownMenuTrigger,{asChild:!0,children:(0,b.jsx)(e.Button,{variant:"ghost",size:"icon",className:"h-8 w-8",children:(0,b.jsx)(q.MoreHorizontal,{className:"h-4 w-4"})})}),(0,b.jsxs)(x.DropdownMenuContent,{align:"end",children:[(0,b.jsxs)(x.DropdownMenuItem,{onClick:()=>f.push(`${j}/units`),children:[(0,b.jsx)(t,{className:"mr-2 h-4 w-4"}),"长期记忆"]}),(0,b.jsxs)(x.DropdownMenuItem,{onClick:()=>f.push(`${j}/search`),children:[(0,b.jsx)(r.Search,{className:"mr-2 h-4 w-4"}),"记忆检索"]}),(0,b.jsxs)(x.DropdownMenuItem,{onClick:()=>f.push(`${j}/settings`),children:[(0,b.jsx)(s.Settings,{className:"mr-2 h-4 w-4"}),"设置"]}),(0,b.jsxs)(x.DropdownMenuItem,{className:"text-[hsl(var(--destructive))] focus:text-[hsl(var(--destructive))]",onClick:()=>d?.(g),children:[(0,b.jsx)(u.Trash2,{className:"mr-2 h-4 w-4"}),"删除"]})]})]})})]}),i?(0,b.jsx)("p",{className:"mt-2 line-clamp-3 text-sm text-muted-foreground",children:i}):(0,b.jsx)("p",{className:"mt-2 text-sm text-muted-foreground",children:"暂无描述"}),(0,b.jsx)("div",{className:"mt-auto flex items-center gap-2 pt-5",children:(0,b.jsx)(v.Badge,{variant:"secondary",className:"border-0 bg-[hsl(var(--primary-50))] text-primary",children:"Agent Memory"})})]})})})},(a,b)=>a.memoryStore===b.memoryStore||a.memoryStore.memoryStoreName===b.memoryStore.memoryStoreName&&a.memoryStore.description===b.memoryStore.description);function z(){let{data:a,isLoading:f,error:p,refetch:q}=(0,n.useMemoryStores)(),[r,s]=(0,g.useState)(""),[t,u]=(0,g.useState)(null),v=(0,m.useDebounce)(r,300),w=(0,g.useMemo)(()=>{let b=a?.items??[];if(!v)return b;let c=v.toLowerCase();return b.filter(a=>a.memoryStoreName.toLowerCase().includes(c)||a.description?.toLowerCase().includes(c))},[a?.items,v]);return f?(0,b.jsx)("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-3",children:Array.from({length:6}).map((a,c)=>(0,b.jsx)(i.Skeleton,{className:"h-[160px] rounded-lg",delay:80*c},c))}):p?(0,b.jsx)(k.ErrorState,{error:p,onRetry:()=>q()}):a?.items?.length?(0,b.jsxs)("div",{className:"space-y-6",children:[(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsx)(l.SearchInput,{placeholder:"搜索记忆库...",value:r,onChange:s,className:"max-w-sm"}),(0,b.jsxs)("span",{className:"text-sm text-muted-foreground",children:["共 ",w.length," 个记忆库"]})]}),0===w.length?(0,b.jsx)(j.EmptyState,{icon:h.Brain,title:"没有匹配的记忆库",description:"尝试调整搜索关键词"}):(0,b.jsx)("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-3",children:w.map(a=>(0,b.jsx)(y,{memoryStore:a,onDelete:u},a.memoryStoreName))}),(0,b.jsx)(o.MemoryDeleteDialog,{memoryStoreName:t,open:!!t,onOpenChange:a=>{a||u(null)}})]}):(0,b.jsx)(j.EmptyState,{icon:h.Brain,title:"还没有记忆库",description:"创建第一个记忆库,开始管理 Agent 的长期记忆",action:(0,b.jsx)(e.Button,{asChild:!0,children:(0,b.jsxs)(c.default,{href:"/memory/create",children:[(0,b.jsx)(d.Plus,{className:"mr-2 h-4 w-4"}),"创建记忆库"]})})})}y.displayName="MemoryStoreCard",a.s(["default",0,function(){return(0,b.jsxs)("div",{className:"space-y-6",children:[(0,b.jsx)(f.PageHeader,{title:"记忆库",description:"管理 Agent 的长期记忆、检索记忆单元并观测请求记录",children:(0,b.jsx)(e.Button,{asChild:!0,children:(0,b.jsxs)(c.default,{href:"/memory/create",children:[(0,b.jsx)(d.Plus,{className:"mr-2 h-4 w-4"}),"创建记忆库"]})})}),(0,b.jsx)(z,{})]})}],55429)}];
1
+ module.exports=[4395,a=>{"use strict";var b=a.i(34020),c=a.i(71938),d=a.i(64565);a.s(["Skeleton",0,function({className:a,delay:c,style:e,...f}){return(0,b.jsx)("div",{className:(0,d.cn)("animate-pulse rounded-md bg-primary/10",a),style:{animationDelay:c?`${c}ms`:void 0,...e},...f})},"SkeletonGroup",0,function({children:a,stagger:d=80,className:e,...f}){let g=c.Children.toArray(a);return(0,b.jsx)("div",{className:e,...f,children:g.map((a,b)=>{if(!c.isValidElement(a))return a;let e=a.props.delay??0;return c.cloneElement(a,{delay:e+b*d})})})}])},37102,a=>{"use strict";let b=(0,a.i(50053).default)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);a.s(["AlertTriangle",0,b],37102)},68826,a=>{"use strict";let b=(0,a.i(50053).default)("refresh-cw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);a.s(["RefreshCw",0,b],68826)},2482,a=>{"use strict";var b=a.i(34020),c=a.i(12583),d=a.i(80470),e=a.i(7704),f=a.i(64565);let g={"knowledge-base":"知识库",memory:"记忆库","llm-providers":"大模型",projects:"项目管理",documents:"文档",retrieval:"检索测试",qa:"问答测试",search:"记忆检索",units:"长期记忆",messages:"短期记忆",requests:"请求审计",settings:"设置",create:"新建",new:"新建",chat:"对话"};a.s(["PageHeader",0,function({title:a,description:h,hideBreadcrumb:i,children:j,className:k}){let l=(0,d.usePathname)()??"/",m=i?[]:function(a){if(/^\/knowledge-base\/[^/]+(?:\/.*)?$/.test(a)||/^\/memory\/[^/]+(?:\/.*)?$/.test(a))return[];let b=a.split("/").filter(Boolean);if(0===b.length)return[];let c=[],d="";return b.forEach((a,e)=>{d+=`/${a}`;let f=decodeURIComponent(a),h=g[f]??f;c.push({label:h,href:e<b.length-1?d:void 0})}),c}(l);return(0,b.jsxs)("div",{className:(0,f.cn)("mb-5 flex flex-col gap-2",k),children:[m.length>1&&(0,b.jsxs)("nav",{"aria-label":"面包屑",className:"flex items-center gap-1 text-[13px] text-[hsl(var(--muted-foreground))]",children:[(0,b.jsx)(c.default,{href:"/",className:"transition-colors hover:text-[hsl(var(--foreground))]",children:"主页"}),m.map((a,d)=>(0,b.jsxs)("span",{className:"flex items-center gap-1",children:[(0,b.jsx)(e.ChevronRight,{className:"h-3 w-3 opacity-60"}),a.href?(0,b.jsx)(c.default,{href:a.href,className:"transition-colors hover:text-[hsl(var(--foreground))]",children:a.label}):(0,b.jsx)("span",{className:"font-medium text-[hsl(var(--foreground))]",children:a.label})]},`${a.label}-${d}`))]}),(0,b.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("h1",{className:"text-xl font-semibold leading-tight text-[hsl(var(--foreground))]",children:a}),h&&(0,b.jsx)("p",{className:"text-[13px] text-[hsl(var(--muted-foreground))]",children:h})]}),j&&(0,b.jsx)("div",{className:"flex shrink-0 items-center gap-2",children:j})]})]})}])},55295,a=>{"use strict";let b=(0,a.i(50053).default)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);a.s(["Trash2",0,b],55295)},9380,a=>{"use strict";let b=(0,a.i(50053).default)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);a.s(["Search",0,b],9380)},24567,a=>{"use strict";var b=a.i(34020),c=a.i(71938),d=a.i(43836),e=a.i(76192),f=a.i(72518);a.s(["ConfirmDialog",0,function({open:a,onOpenChange:g,title:h,description:i,confirmText:j="确认",cancelText:k="取消",variant:l="default",onConfirm:m,confirmInput:n,children:o}){let[p,q]=(0,c.useState)(""),r=void 0!==n&&""!==n,s=r&&p!==n,t=(0,c.useCallback)(()=>{s||(m(),q(""))},[s,m]),u=(0,c.useCallback)(a=>{a||q(""),g(a)},[g]);return(0,b.jsx)(d.Dialog,{open:a,onOpenChange:u,children:(0,b.jsxs)(d.DialogContent,{className:"sm:max-w-120",children:[(0,b.jsxs)(d.DialogHeader,{children:[(0,b.jsx)(d.DialogTitle,{children:h}),(0,b.jsx)(d.DialogDescription,{className:"break-all",children:i})]}),r&&(0,b.jsxs)("div",{className:"py-2",children:[(0,b.jsxs)("p",{className:"mb-2 text-sm text-muted-foreground",children:["请输入 ",(0,b.jsx)("strong",{children:n})," 以确认操作"]}),(0,b.jsx)(f.Input,{value:p,onChange:a=>q(a.target.value),placeholder:n,autoFocus:!0})]}),o&&(0,b.jsx)("div",{className:"py-1",children:o}),(0,b.jsxs)(d.DialogFooter,{children:[(0,b.jsx)(e.Button,{variant:"outline",onClick:()=>u(!1),children:k}),(0,b.jsx)(e.Button,{variant:"danger"===l?"destructive":"default",onClick:t,disabled:s,children:j})]})]})})}])},24215,a=>{"use strict";let b=(0,a.i(50053).default)("settings",[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);a.s(["Settings",0,b],24215)},10215,a=>{"use strict";var b=a.i(34020);a.s(["EmptyState",0,function({icon:a,title:c,description:d,action:e,illustration:f}){return(0,b.jsxs)("div",{className:"flex flex-col items-center justify-center py-16 px-4 text-center",children:[f??(0,b.jsx)("div",{className:"mb-5 flex h-20 w-20 items-center justify-center rounded-full bg-[hsl(var(--primary)/0.08)] ring-8 ring-[hsl(var(--primary)/0.04)]",children:(0,b.jsx)(a,{className:"text-primary",size:36,strokeWidth:1.75})}),(0,b.jsx)("h3",{className:"mb-2 text-base font-semibold text-foreground",children:c}),(0,b.jsx)("p",{className:"mb-6 max-w-sm text-sm text-muted-foreground",children:d}),e&&(0,b.jsx)("div",{children:e})]})}])},21989,a=>{"use strict";var b=a.i(34020),c=a.i(42261),d=a.i(64565);let e=(0,c.cva)("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",{variants:{variant:{default:"border-transparent bg-[hsl(var(--primary))] text-[hsl(var(--primary-foreground))] hover:opacity-90",secondary:"border-transparent bg-[hsl(var(--secondary))] text-[hsl(var(--secondary-foreground))] hover:opacity-80",destructive:"border-transparent bg-[hsl(var(--destructive))] text-[hsl(var(--destructive-foreground))] hover:opacity-90",outline:"border-[hsl(var(--border))] text-[hsl(var(--foreground))] bg-[hsl(var(--card))]",primary:"border-transparent bg-[hsl(var(--primary-soft))] text-[hsl(var(--primary))]",success:"border-transparent bg-[hsl(var(--success-soft))] text-[hsl(var(--success))]",warning:"border-transparent bg-[hsl(var(--warning-soft))] text-[hsl(var(--warning))]",danger:"border-transparent bg-[hsl(var(--danger-soft))] text-[hsl(var(--danger))]",purple:"border-transparent bg-[hsl(var(--purple-soft))] text-[hsl(var(--purple))]"}},defaultVariants:{variant:"default"}});a.s(["Badge",0,function({className:a,variant:c,...f}){return(0,b.jsx)("div",{className:(0,d.cn)(e({variant:c}),a),...f})}])},73524,a=>{"use strict";var b=a.i(34020),c=a.i(71938),d=a.i(64565);let e=c.forwardRef(({className:a,...c},e)=>(0,b.jsx)("div",{ref:e,className:(0,d.cn)("rounded-lg border border-[hsl(var(--border))] bg-[hsl(var(--card))] text-[hsl(var(--card-foreground))] shadow-sm",a),...c}));e.displayName="Card",c.forwardRef(({className:a,...c},e)=>(0,b.jsx)("div",{ref:e,className:(0,d.cn)("flex flex-col space-y-1 px-5 pt-5 pb-3 border-b border-[hsl(var(--border-light))]",a),...c})).displayName="CardHeader",c.forwardRef(({className:a,...c},e)=>(0,b.jsx)("div",{ref:e,className:(0,d.cn)("text-base font-semibold leading-tight",a),...c})).displayName="CardTitle",c.forwardRef(({className:a,...c},e)=>(0,b.jsx)("div",{ref:e,className:(0,d.cn)("text-sm text-[hsl(var(--muted-foreground))]",a),...c})).displayName="CardDescription";let f=c.forwardRef(({className:a,...c},e)=>(0,b.jsx)("div",{ref:e,className:(0,d.cn)("px-5 py-4",a),...c}));f.displayName="CardContent",c.forwardRef(({className:a,...c},e)=>(0,b.jsx)("div",{ref:e,className:(0,d.cn)("flex items-center px-5 py-3 border-t border-[hsl(var(--border-light))]",a),...c})).displayName="CardFooter";let g=c.forwardRef(({className:a,...c},e)=>(0,b.jsx)("div",{ref:e,className:(0,d.cn)("rounded-lg border border-[hsl(var(--border))] bg-[hsl(var(--card))] text-[hsl(var(--card-foreground))] shadow-sm","transition-[transform,box-shadow,border-color] duration-200 ease-[cubic-bezier(0.34,1.56,0.64,1)]","hover:border-[hsl(var(--primary))] hover:shadow-primary-soft",a),...c}));g.displayName="CardInteractive",a.s(["Card",0,e,"CardContent",0,f,"CardInteractive",0,g])},59058,a=>{"use strict";let b=(0,a.i(50053).default)("ellipsis",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]]);a.s(["MoreHorizontal",0,b],59058)},98791,a=>{"use strict";var b=a.i(34020),c=a.i(80470),d=a.i(63265),e=a.i(24567),f=a.i(33596),g=a.i(77072),h=a.i(21347),i=a.i(25377);a.s(["MemoryDeleteDialog",0,function({memoryStoreName:a,open:j,onOpenChange:k,redirectToList:l=!1}){let m,n=(0,c.useRouter)(),o=(m=(0,g.useQueryClient)(),(0,f.useMutation)({mutationFn:a=>(0,h.deleteMemoryStore)(a),onSuccess:()=>{(0,i.invalidateMemoryQueries)(m)}}));async function p(){if(a)try{await o.mutateAsync(a),d.toast.success("记忆库已删除"),k(!1),l&&n.push("/memory")}catch(a){d.toast.error(a instanceof Error?a.message:"删除记忆库失败")}}return(0,b.jsx)(e.ConfirmDialog,{open:j,onOpenChange:k,title:"删除记忆库",description:`确定要删除记忆库 "${a??""}" 吗?此操作不可撤销。`,confirmInput:a??void 0,confirmText:"删除",variant:"danger",onConfirm:p})}],98791)},82461,97798,a=>{"use strict";var b=a.i(34020),c=a.i(9380),d=a.i(14151),e=a.i(64565);a.s(["SearchInput",0,function({value:a,onChange:f,placeholder:g="搜索…",className:h}){return(0,b.jsxs)("div",{className:(0,e.cn)("relative flex items-center",h),children:[(0,b.jsx)(c.Search,{className:"absolute left-3 pointer-events-none text-muted-foreground",size:16}),(0,b.jsx)("input",{type:"text",value:a,onChange:a=>f(a.target.value),placeholder:g,className:(0,e.cn)("h-9 w-full rounded-md border border-input bg-background pl-9 pr-8 text-sm","placeholder:text-muted-foreground/60","focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-1")}),a&&(0,b.jsx)("button",{type:"button",onClick:()=>f(""),className:"absolute right-2 inline-flex items-center justify-center rounded-full p-0.5 text-gray-400 hover:text-gray-600 transition-colors","aria-label":"清除搜索",children:(0,b.jsx)(d.X,{size:14})})]})}],82461);var f=a.i(71938);a.s(["useDebounce",0,function(a,b=300){let[c,d]=(0,f.useState)(a);return(0,f.useEffect)(()=>{let c=setTimeout(()=>{d(a)},b);return()=>{clearTimeout(c)}},[a,b]),c}],97798)},54540,a=>{"use strict";var b=a.i(34020),c=a.i(37102),d=a.i(68826),e=a.i(76192),f=a.i(53141);a.s(["ErrorState",0,function({error:a,onRetry:g}){let h=function(a){if(!(a instanceof f.ApiClientError))return null;let{status:b}=a;return 401===b||403===b?"Please check your AccessKey credentials in the project settings.":503===b||"NETWORK_ERROR"===a.code?"The service may be unreachable. Verify the endpoint address and network connectivity.":null}(a);return(0,b.jsxs)("div",{className:"flex flex-col items-center justify-center py-16 px-4 text-center",children:[(0,b.jsx)("div",{className:"mb-5 flex h-20 w-20 items-center justify-center rounded-full bg-destructive/10 ring-8 ring-destructive/5",children:(0,b.jsx)(c.AlertTriangle,{className:"text-destructive",size:36,strokeWidth:1.75})}),(0,b.jsx)("h3",{className:"mb-2 text-base font-semibold text-foreground",children:"Failed to load data"}),(0,b.jsx)("p",{className:"mb-1 max-w-md text-sm text-muted-foreground",children:a.message}),h&&(0,b.jsx)("p",{className:"mb-6 max-w-md text-xs text-muted-foreground/80",children:h}),!h&&(0,b.jsx)("div",{className:"mb-6"}),g&&(0,b.jsxs)(e.Button,{variant:"outline",size:"sm",onClick:g,children:[(0,b.jsx)(d.RefreshCw,{className:"mr-2 h-4 w-4"}),"Retry"]})]})}])},55429,a=>{"use strict";var b=a.i(34020),c=a.i(12583),d=a.i(25825),e=a.i(76192),f=a.i(2482),g=a.i(71938),h=a.i(47845),i=a.i(4395),j=a.i(10215),k=a.i(54540),l=a.i(82461),m=a.i(97798),n=a.i(10220),o=a.i(98791),p=a.i(80470),q=a.i(59058),r=a.i(9380),s=a.i(24215);let t=(0,a.i(50053).default)("table-properties",[["path",{d:"M15 3v18",key:"14nvp0"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M21 9H3",key:"1338ky"}],["path",{d:"M21 15H3",key:"9uk58r"}]]);var u=a.i(55295),v=a.i(21989),w=a.i(73524),x=a.i(24666);let y=(0,g.memo)(function({memoryStore:a,onDelete:d}){let f=(0,p.useRouter)(),{memoryStoreName:g,description:i}=a,j=`/memory/${encodeURIComponent(g)}`,k=`/memory/${encodeURIComponent(g)}/units`;return(0,b.jsx)(c.default,{href:k,className:"no-underline",children:(0,b.jsx)(w.CardInteractive,{className:"group relative flex h-full cursor-pointer flex-col",children:(0,b.jsxs)(w.CardContent,{className:"flex flex-1 flex-col p-5",children:[(0,b.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[(0,b.jsx)(h.Brain,{className:"h-4 w-4 shrink-0 text-primary"}),(0,b.jsx)("h3",{className:"truncate text-base font-semibold text-foreground",children:g})]}),(0,b.jsx)("div",{className:"opacity-0 transition-opacity duration-150 delay-75 group-hover:opacity-100 focus-within:opacity-100",onClick:a=>a.preventDefault(),children:(0,b.jsxs)(x.DropdownMenu,{children:[(0,b.jsx)(x.DropdownMenuTrigger,{asChild:!0,children:(0,b.jsx)(e.Button,{variant:"ghost",size:"icon",className:"h-8 w-8",children:(0,b.jsx)(q.MoreHorizontal,{className:"h-4 w-4"})})}),(0,b.jsxs)(x.DropdownMenuContent,{align:"end",children:[(0,b.jsxs)(x.DropdownMenuItem,{onClick:()=>f.push(`${j}/units`),children:[(0,b.jsx)(t,{className:"mr-2 h-4 w-4"}),"长期记忆"]}),(0,b.jsxs)(x.DropdownMenuItem,{onClick:()=>f.push(`${j}/search`),children:[(0,b.jsx)(r.Search,{className:"mr-2 h-4 w-4"}),"记忆检索"]}),(0,b.jsxs)(x.DropdownMenuItem,{onClick:()=>f.push(`${j}/settings`),children:[(0,b.jsx)(s.Settings,{className:"mr-2 h-4 w-4"}),"设置"]}),(0,b.jsxs)(x.DropdownMenuItem,{className:"text-[hsl(var(--destructive))] focus:text-[hsl(var(--destructive))]",onClick:()=>d?.(g),children:[(0,b.jsx)(u.Trash2,{className:"mr-2 h-4 w-4"}),"删除"]})]})]})})]}),i?(0,b.jsx)("p",{className:"mt-2 line-clamp-3 text-sm text-muted-foreground",children:i}):(0,b.jsx)("p",{className:"mt-2 text-sm text-muted-foreground",children:"暂无描述"}),(0,b.jsx)("div",{className:"mt-auto flex items-center gap-2 pt-5",children:(0,b.jsx)(v.Badge,{variant:"secondary",className:"border-0 bg-[hsl(var(--primary-50))] text-primary",children:"智能体记忆"})})]})})})},(a,b)=>a.memoryStore===b.memoryStore||a.memoryStore.memoryStoreName===b.memoryStore.memoryStoreName&&a.memoryStore.description===b.memoryStore.description);function z(){let{data:a,isLoading:f,error:p,refetch:q}=(0,n.useMemoryStores)(),[r,s]=(0,g.useState)(""),[t,u]=(0,g.useState)(null),v=(0,m.useDebounce)(r,300),w=(0,g.useMemo)(()=>{let b=a?.items??[];if(!v)return b;let c=v.toLowerCase();return b.filter(a=>a.memoryStoreName.toLowerCase().includes(c)||a.description?.toLowerCase().includes(c))},[a?.items,v]);return f?(0,b.jsx)("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-3",children:Array.from({length:6}).map((a,c)=>(0,b.jsx)(i.Skeleton,{className:"h-[160px] rounded-lg",delay:80*c},c))}):p?(0,b.jsx)(k.ErrorState,{error:p,onRetry:()=>q()}):a?.items?.length?(0,b.jsxs)("div",{className:"space-y-6",children:[(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsx)(l.SearchInput,{placeholder:"搜索记忆库...",value:r,onChange:s,className:"max-w-sm"}),(0,b.jsxs)("span",{className:"text-sm text-muted-foreground",children:["共 ",w.length," 个记忆库"]})]}),0===w.length?(0,b.jsx)(j.EmptyState,{icon:h.Brain,title:"没有匹配的记忆库",description:"尝试调整搜索关键词"}):(0,b.jsx)("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-3",children:w.map(a=>(0,b.jsx)(y,{memoryStore:a,onDelete:u},a.memoryStoreName))}),(0,b.jsx)(o.MemoryDeleteDialog,{memoryStoreName:t,open:!!t,onOpenChange:a=>{a||u(null)}})]}):(0,b.jsx)(j.EmptyState,{icon:h.Brain,title:"还没有记忆库",description:"创建第一个记忆库,开始管理智能体的长期记忆",action:(0,b.jsx)(e.Button,{asChild:!0,children:(0,b.jsxs)(c.default,{href:"/memory/create",children:[(0,b.jsx)(d.Plus,{className:"mr-2 h-4 w-4"}),"创建记忆库"]})})})}y.displayName="MemoryStoreCard",a.s(["default",0,function(){return(0,b.jsxs)("div",{className:"space-y-6",children:[(0,b.jsx)(f.PageHeader,{title:"记忆库",description:"管理智能体的长期记忆、检索记忆单元并观测请求记录",children:(0,b.jsx)(e.Button,{asChild:!0,children:(0,b.jsxs)(c.default,{href:"/memory/create",children:[(0,b.jsx)(d.Plus,{className:"mr-2 h-4 w-4"}),"创建记忆库"]})})}),(0,b.jsx)(z,{})]})}],55429)}];
2
2
 
3
3
  //# sourceMappingURL=_12r9c8h._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[67558,a=>{"use strict";a.s(["IMAGE_FALLBACK_DATA_PREFIX",0,"data:image/jpeg;base64,","KB_NAME_REGEX",0,/^[a-zA-Z][a-zA-Z0-9_-]{1,62}[a-zA-Z0-9]$/])},36965,23331,69622,a=>{"use strict";var b=a.i(34020),c=a.i(71938),d=a.i(84694),e=a.i(58036),f=a.i(56620),g=a.i(59653),h=a.i(83370),i="Toggle",j=c.forwardRef((a,c)=>{let{pressed:d,defaultPressed:f,onPressedChange:j,...k}=a,[l,m]=(0,h.useControllableState)({prop:d,onChange:j,defaultProp:f??!1,caller:i});return(0,b.jsx)(e.Primitive.button,{type:"button","aria-pressed":l,"data-state":l?"on":"off","data-disabled":a.disabled?"":void 0,...k,ref:c,onClick:(0,g.composeEventHandlers)(a.onClick,()=>{a.disabled||m(!l)})})});j.displayName=i;var k=a.i(74974),l="ToggleGroup",[m,n]=(0,d.createContextScope)(l,[f.createRovingFocusGroupScope]),o=(0,f.createRovingFocusGroupScope)(),p=c.default.forwardRef((a,c)=>{let{type:d,...e}=a;if("single"===d)return(0,b.jsx)(s,{...e,ref:c});if("multiple"===d)return(0,b.jsx)(t,{...e,ref:c});throw Error(`Missing prop \`type\` expected on \`${l}\``)});p.displayName=l;var[q,r]=m(l),s=c.default.forwardRef((a,d)=>{let{value:e,defaultValue:f,onValueChange:g=()=>{},...i}=a,[j,k]=(0,h.useControllableState)({prop:e,defaultProp:f??"",onChange:g,caller:l});return(0,b.jsx)(q,{scope:a.__scopeToggleGroup,type:"single",value:c.default.useMemo(()=>j?[j]:[],[j]),onItemActivate:k,onItemDeactivate:c.default.useCallback(()=>k(""),[k]),children:(0,b.jsx)(w,{...i,ref:d})})}),t=c.default.forwardRef((a,d)=>{let{value:e,defaultValue:f,onValueChange:g=()=>{},...i}=a,[j,k]=(0,h.useControllableState)({prop:e,defaultProp:f??[],onChange:g,caller:l}),m=c.default.useCallback(a=>k((b=[])=>[...b,a]),[k]),n=c.default.useCallback(a=>k((b=[])=>b.filter(b=>b!==a)),[k]);return(0,b.jsx)(q,{scope:a.__scopeToggleGroup,type:"multiple",value:j,onItemActivate:m,onItemDeactivate:n,children:(0,b.jsx)(w,{...i,ref:d})})});p.displayName=l;var[u,v]=m(l),w=c.default.forwardRef((a,c)=>{let{__scopeToggleGroup:d,disabled:g=!1,rovingFocus:h=!0,orientation:i,dir:j,loop:l=!0,...m}=a,n=o(d),p=(0,k.useDirection)(j),q={role:"group",dir:p,...m};return(0,b.jsx)(u,{scope:d,rovingFocus:h,disabled:g,children:h?(0,b.jsx)(f.Root,{asChild:!0,...n,orientation:i,dir:p,loop:l,children:(0,b.jsx)(e.Primitive.div,{...q,ref:c})}):(0,b.jsx)(e.Primitive.div,{...q,ref:c})})}),x="ToggleGroupItem",y=c.default.forwardRef((a,d)=>{let e=r(x,a.__scopeToggleGroup),g=v(x,a.__scopeToggleGroup),h=o(a.__scopeToggleGroup),i=e.value.includes(a.value),j=g.disabled||a.disabled,k={...a,pressed:i,disabled:j},l=c.default.useRef(null);return g.rovingFocus?(0,b.jsx)(f.Item,{asChild:!0,...h,focusable:!j,active:i,ref:l,children:(0,b.jsx)(z,{...k,ref:d})}):(0,b.jsx)(z,{...k,ref:d})});y.displayName=x;var z=c.default.forwardRef((a,c)=>{let{__scopeToggleGroup:d,value:e,...f}=a,g=r(x,d),h={role:"radio","aria-checked":a.pressed,"aria-pressed":void 0},i="single"===g.type?h:void 0;return(0,b.jsx)(j,{...i,...f,ref:c,onPressedChange:a=>{a?g.onItemActivate(e):g.onItemDeactivate(e)}})}),A=a.i(64565);let B=c.createContext({size:"default",variant:"default"}),C=c.forwardRef(({className:a,variant:c="default",size:d="default",children:e,...f},g)=>(0,b.jsx)(p,{ref:g,className:(0,A.cn)("inline-flex items-center justify-center gap-1",a),...f,children:(0,b.jsx)(B.Provider,{value:{variant:c,size:d},children:e})}));C.displayName=p.displayName;let D=c.forwardRef(({className:a,children:c,...d},e)=>(0,b.jsx)(y,{ref:e,className:(0,A.cn)("relative inline-flex items-center justify-center whitespace-nowrap","text-sm font-medium transition-all","first:rounded-l-[7px] last:rounded-r-[7px]","border-l border-[hsl(var(--border)/0.6)]","first:border-l-0","data-[state=on]:border-l-transparent","[&[data-state=on]+*]:border-l-transparent","ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2","disabled:pointer-events-none disabled:opacity-50","hover:bg-[hsl(var(--muted)/0.6)] hover:text-[hsl(var(--foreground))]","data-[state=on]:bg-[hsl(var(--background))] data-[state=on]:text-[hsl(var(--foreground))] data-[state=on]:shadow-sm",a),...d,children:c}));D.displayName=y.displayName,a.s(["ToggleGroup",0,C,"ToggleGroupItem",0,D],36965);var E=a.i(14151);a.s(["TagInput",0,function({value:a,onChange:d,placeholder:e="输入后按回车添加"}){let[f,g]=(0,c.useState)(""),h=(0,c.useCallback)(b=>{let c=b.trim();c&&!a.includes(c)&&d([...a,c]),g("")},[a,d]),i=(0,c.useCallback)(b=>{d(a.filter((a,c)=>c!==b))},[a,d]);return(0,b.jsxs)("div",{className:(0,A.cn)("flex flex-wrap items-center gap-1.5 rounded-md border border-[hsl(var(--input))] bg-background px-3 py-2","focus-within:border-[hsl(var(--ring))] focus-within:ring-2 focus-within:ring-ring focus-within:ring-offset-0","min-h-10 transition-colors"),children:[a.map((a,c)=>(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-full border border-primary-200 bg-primary-100 px-2 py-0.5 text-xs font-medium text-primary-700",children:[a,(0,b.jsx)("button",{type:"button",onClick:()=>i(c),className:"inline-flex items-center justify-center rounded-full p-0.5 hover:opacity-70 transition-opacity","aria-label":`删除标签 ${a}`,children:(0,b.jsx)(E.X,{size:12})})]},`${a}-${c}`)),(0,b.jsx)("input",{type:"text",value:f,onChange:a=>g(a.target.value),onKeyDown:b=>{("Enter"===b.key||","===b.key)&&(b.preventDefault(),h(f)),"Backspace"===b.key&&""===f&&a.length>0&&i(a.length-1)},placeholder:0===a.length?e:"",className:"flex-1 min-w-20 bg-transparent text-sm outline-none placeholder:text-muted-foreground"})]})}],23331);let F=(0,a.i(50053).default)("list-ordered",[["path",{d:"M11 5h10",key:"1cz7ny"}],["path",{d:"M11 12h10",key:"1438ji"}],["path",{d:"M11 19h10",key:"11t30w"}],["path",{d:"M4 4h1v5",key:"10yrso"}],["path",{d:"M4 9h2",key:"r1h2o0"}],["path",{d:"M6.5 20H3.4c0-1 2.6-1.925 2.6-3.5a1.5 1.5 0 0 0-2.6-1.02",key:"xtkcd5"}]]);var G=a.i(92942),H=a.i(72518);a.s(["RetrievalResultCountField",0,function({control:a,name:c,label:d="返回片段数",description:e="单次检索返回的最多片段数,Rerank 后取前 N 条。",min:f=0,max:g,muted:h=!1,className:i}){return(0,b.jsx)(G.FormField,{control:a,name:c,render:({field:a})=>{let c="number"==typeof a.value&&Number.isFinite(a.value)?String(a.value):"";return(0,b.jsxs)(G.FormItem,{className:(0,A.cn)("mb-0 rounded-md border border-[hsl(var(--border)/0.6)] bg-[hsl(var(--card)/0.72)] p-3 shadow-[0_1px_2px_hsl(var(--foreground)/0.04)]",h&&"opacity-65",i),children:[(0,b.jsxs)("div",{className:"grid gap-3 sm:grid-cols-[minmax(0,1fr)_auto] sm:items-center",children:[(0,b.jsxs)("div",{className:"flex min-w-0 gap-3",children:[(0,b.jsx)("span",{className:"mt-0.5 flex h-7 w-7 shrink-0 items-center justify-center rounded-md bg-[hsl(var(--primary)/0.08)] text-[hsl(var(--primary))]",children:(0,b.jsx)(F,{className:"h-3.5 w-3.5"})}),(0,b.jsxs)("div",{className:"min-w-0 space-y-1",children:[(0,b.jsx)(G.FormLabel,{className:"text-sm font-medium",children:d}),(0,b.jsx)("p",{className:"text-xs leading-relaxed text-[hsl(var(--muted-foreground))]",children:e})]})]}),(0,b.jsxs)("div",{className:"relative w-28 shrink-0",children:[(0,b.jsx)(G.FormControl,{children:(0,b.jsx)(H.Input,{ref:a.ref,name:a.name,type:"number",inputMode:"numeric",min:f,max:g,"aria-label":d,className:"h-9 w-full bg-[hsl(var(--background))] pr-8 text-right font-mono text-sm tabular-nums shadow-sm [appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none",value:c,onBlur:a.onBlur,onChange:b=>a.onChange(function(a){let b=a.trim();if(!b)return;let c=Number(b);return Number.isFinite(c)?c:void 0}(b.target.value))})}),(0,b.jsx)("span",{className:"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 text-xs text-[hsl(var(--muted-foreground))]",children:"条"})]})]}),(0,b.jsx)(G.FormMessage,{className:"pt-1"})]})}})}],69622)},27692,a=>{"use strict";var b=a.i(71938),c=a.i(59653),d=a.i(84694),e=a.i(83370),f=a.i(39166),g=a.i(68189),h=a.i(58036),i=a.i(98392),j=a.i(59231),k=a.i(34020),l="Collapsible",[m,n]=(0,d.createContextScope)(l),[o,p]=m(l),q=b.forwardRef((a,c)=>{let{__scopeCollapsible:d,open:f,defaultOpen:g,disabled:i,onOpenChange:m,...n}=a,[p,q]=(0,e.useControllableState)({prop:f,defaultProp:g??!1,onChange:m,caller:l});return(0,k.jsx)(o,{scope:d,disabled:i,contentId:(0,j.useId)(),open:p,onOpenToggle:b.useCallback(()=>q(a=>!a),[q]),children:(0,k.jsx)(h.Primitive.div,{"data-state":w(p),"data-disabled":i?"":void 0,...n,ref:c})})});q.displayName=l;var r="CollapsibleTrigger",s=b.forwardRef((a,b)=>{let{__scopeCollapsible:d,...e}=a,f=p(r,d);return(0,k.jsx)(h.Primitive.button,{type:"button","aria-controls":f.contentId,"aria-expanded":f.open||!1,"data-state":w(f.open),"data-disabled":f.disabled?"":void 0,disabled:f.disabled,...e,ref:b,onClick:(0,c.composeEventHandlers)(a.onClick,f.onOpenToggle)})});s.displayName=r;var t="CollapsibleContent",u=b.forwardRef((a,b)=>{let{forceMount:c,...d}=a,e=p(t,a.__scopeCollapsible);return(0,k.jsx)(i.Presence,{present:c||e.open,children:({present:a})=>(0,k.jsx)(v,{...d,ref:b,present:a})})});u.displayName=t;var v=b.forwardRef((a,c)=>{let{__scopeCollapsible:d,present:e,children:i,...j}=a,l=p(t,d),[m,n]=b.useState(e),o=b.useRef(null),q=(0,g.useComposedRefs)(c,o),r=b.useRef(0),s=r.current,u=b.useRef(0),v=u.current,x=l.open||m,y=b.useRef(x),z=b.useRef(void 0);return b.useEffect(()=>{let a=requestAnimationFrame(()=>y.current=!1);return()=>cancelAnimationFrame(a)},[]),(0,f.useLayoutEffect)(()=>{let a=o.current;if(a){z.current=z.current||{transitionDuration:a.style.transitionDuration,animationName:a.style.animationName},a.style.transitionDuration="0s",a.style.animationName="none";let b=a.getBoundingClientRect();r.current=b.height,u.current=b.width,y.current||(a.style.transitionDuration=z.current.transitionDuration,a.style.animationName=z.current.animationName),n(e)}},[l.open,e]),(0,k.jsx)(h.Primitive.div,{"data-state":w(l.open),"data-disabled":l.disabled?"":void 0,id:l.contentId,hidden:!x,...j,ref:q,style:{"--radix-collapsible-content-height":s?`${s}px`:void 0,"--radix-collapsible-content-width":v?`${v}px`:void 0,...a.style},children:x&&i})});function w(a){return a?"open":"closed"}a.s(["Collapsible",0,q,"CollapsibleContent",0,u,"CollapsibleTrigger",0,s],27692)}];
2
+
3
+ //# sourceMappingURL=dashboard_src_0.glq39._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[10215,a=>{"use strict";var b=a.i(34020);a.s(["EmptyState",0,function({icon:a,title:c,description:d,action:e,illustration:f}){return(0,b.jsxs)("div",{className:"flex flex-col items-center justify-center py-16 px-4 text-center",children:[f??(0,b.jsx)("div",{className:"mb-5 flex h-20 w-20 items-center justify-center rounded-full bg-[hsl(var(--primary)/0.08)] ring-8 ring-[hsl(var(--primary)/0.04)]",children:(0,b.jsx)(a,{className:"text-primary",size:36,strokeWidth:1.75})}),(0,b.jsx)("h3",{className:"mb-2 text-base font-semibold text-foreground",children:c}),(0,b.jsx)("p",{className:"mb-6 max-w-sm text-sm text-muted-foreground",children:d}),e&&(0,b.jsx)("div",{children:e})]})}])},21989,a=>{"use strict";var b=a.i(34020),c=a.i(42261),d=a.i(64565);let e=(0,c.cva)("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",{variants:{variant:{default:"border-transparent bg-[hsl(var(--primary))] text-[hsl(var(--primary-foreground))] hover:opacity-90",secondary:"border-transparent bg-[hsl(var(--secondary))] text-[hsl(var(--secondary-foreground))] hover:opacity-80",destructive:"border-transparent bg-[hsl(var(--destructive))] text-[hsl(var(--destructive-foreground))] hover:opacity-90",outline:"border-[hsl(var(--border))] text-[hsl(var(--foreground))] bg-[hsl(var(--card))]",primary:"border-transparent bg-[hsl(var(--primary-soft))] text-[hsl(var(--primary))]",success:"border-transparent bg-[hsl(var(--success-soft))] text-[hsl(var(--success))]",warning:"border-transparent bg-[hsl(var(--warning-soft))] text-[hsl(var(--warning))]",danger:"border-transparent bg-[hsl(var(--danger-soft))] text-[hsl(var(--danger))]",purple:"border-transparent bg-[hsl(var(--purple-soft))] text-[hsl(var(--purple))]"}},defaultVariants:{variant:"default"}});a.s(["Badge",0,function({className:a,variant:c,...f}){return(0,b.jsx)("div",{className:(0,d.cn)(e({variant:c}),a),...f})}])},36890,a=>{"use strict";var b=a.i(34020),c=a.i(71938),d=a.i(68189),e=a.i(84694),f=a.i(59653),g=a.i(83370),h=a.i(20251),i=a.i(66394),j=a.i(98392),k=a.i(58036),l="Checkbox",[m,n]=(0,e.createContextScope)(l),[o,p]=m(l);function q(a){let{__scopeCheckbox:d,checked:e,children:f,defaultChecked:h,disabled:i,form:j,name:k,onCheckedChange:m,required:n,value:p="on",internal_do_not_use_render:q}=a,[r,s]=(0,g.useControllableState)({prop:e,defaultProp:h??!1,onChange:m,caller:l}),[t,u]=c.useState(null),[v,w]=c.useState(null),x=c.useRef(!1),z=!t||!!j||!!t.closest("form"),A={checked:r,disabled:i,setChecked:s,control:t,setControl:u,name:k,form:j,value:p,hasConsumerStoppedPropagationRef:x,required:n,defaultChecked:!y(h)&&h,isFormControl:z,bubbleInput:v,setBubbleInput:w};return(0,b.jsx)(o,{scope:d,...A,children:"function"==typeof q?q(A):f})}var r="CheckboxTrigger",s=c.forwardRef(({__scopeCheckbox:a,onKeyDown:e,onClick:g,...h},i)=>{let{control:j,value:l,disabled:m,checked:n,required:o,setControl:q,setChecked:s,hasConsumerStoppedPropagationRef:t,isFormControl:u,bubbleInput:v}=p(r,a),w=(0,d.useComposedRefs)(i,q),x=c.useRef(n);return c.useEffect(()=>{let a=j?.form;if(a){let b=()=>s(x.current);return a.addEventListener("reset",b),()=>a.removeEventListener("reset",b)}},[j,s]),(0,b.jsx)(k.Primitive.button,{type:"button",role:"checkbox","aria-checked":y(n)?"mixed":n,"aria-required":o,"data-state":z(n),"data-disabled":m?"":void 0,disabled:m,value:l,...h,ref:w,onKeyDown:(0,f.composeEventHandlers)(e,a=>{"Enter"===a.key&&a.preventDefault()}),onClick:(0,f.composeEventHandlers)(g,a=>{s(a=>!!y(a)||!a),v&&u&&(t.current=a.isPropagationStopped(),t.current||a.stopPropagation())})})});s.displayName=r;var t=c.forwardRef((a,c)=>{let{__scopeCheckbox:d,name:e,checked:f,defaultChecked:g,required:h,disabled:i,value:j,onCheckedChange:k,form:l,...m}=a;return(0,b.jsx)(q,{__scopeCheckbox:d,checked:f,defaultChecked:g,disabled:i,required:h,onCheckedChange:k,name:e,form:l,value:j,internal_do_not_use_render:({isFormControl:a})=>(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(s,{...m,ref:c,__scopeCheckbox:d}),a&&(0,b.jsx)(x,{__scopeCheckbox:d})]})})});t.displayName=l;var u="CheckboxIndicator",v=c.forwardRef((a,c)=>{let{__scopeCheckbox:d,forceMount:e,...f}=a,g=p(u,d);return(0,b.jsx)(j.Presence,{present:e||y(g.checked)||!0===g.checked,children:(0,b.jsx)(k.Primitive.span,{"data-state":z(g.checked),"data-disabled":g.disabled?"":void 0,...f,ref:c,style:{pointerEvents:"none",...a.style}})})});v.displayName=u;var w="CheckboxBubbleInput",x=c.forwardRef(({__scopeCheckbox:a,...e},f)=>{let{control:g,hasConsumerStoppedPropagationRef:j,checked:l,defaultChecked:m,required:n,disabled:o,name:q,value:r,form:s,bubbleInput:t,setBubbleInput:u}=p(w,a),v=(0,d.useComposedRefs)(f,u),x=(0,h.usePrevious)(l),z=(0,i.useSize)(g);c.useEffect(()=>{if(!t)return;let a=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set,b=!j.current;if(x!==l&&a){let c=new Event("click",{bubbles:b});t.indeterminate=y(l),a.call(t,!y(l)&&l),t.dispatchEvent(c)}},[t,x,l,j]);let A=c.useRef(!y(l)&&l);return(0,b.jsx)(k.Primitive.input,{type:"checkbox","aria-hidden":!0,defaultChecked:m??A.current,required:n,disabled:o,name:q,value:r,form:s,...e,tabIndex:-1,ref:v,style:{...e.style,...z,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});function y(a){return"indeterminate"===a}function z(a){return y(a)?"indeterminate":a?"checked":"unchecked"}x.displayName=w;var A=a.i(53520),B=a.i(64565);let C=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(t,{ref:d,className:(0,B.cn)("grid place-content-center peer h-4 w-4 shrink-0 rounded-sm border border-primary shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",a),...c,children:(0,b.jsx)(v,{className:(0,B.cn)("grid place-content-center text-current"),children:(0,b.jsx)(A.Check,{className:"h-4 w-4"})})}));C.displayName=t.displayName,a.s(["Checkbox",0,C],36890)},21458,a=>{"use strict";var b=a.i(34020),c=a.i(71938),d=a.i(80470),e=a.i(63265),f=a.i(33596),g=a.i(21347),h=a.i(8264),i=a.i(76192),j=a.i(36890),k=a.i(72518),l=a.i(62491),m=a.i(70535);function n({scope:a,isLoading:d,onSubmit:e}){let[f,g]=(0,c.useState)(""),[o,p]=(0,c.useState)(10),[q,r]=(0,c.useState)(!0),[s,t]=(0,c.useState)(""),[u,v]=(0,c.useState)(null),w=(0,h.hasSearchableScope)(a);async function x(b){if(b.preventDefault(),v(null),!w)return void v("请先在 Scope 栏中设置 appId 和 tenantId 的具体值");if(!f.trim())return void v("请输入搜索 query");if(o<0||o>50)return void v("topK 必须在 0 到 50 之间");try{await e({query:f.trim(),scope:a,topK:o,enableRerank:q,metadata:(0,h.parseJsonObject)(s)})}catch(a){v(a instanceof Error?a.message:"搜索失败")}}return(0,b.jsxs)("form",{onSubmit:x,className:"space-y-4 rounded-lg border p-4",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h3",{className:"text-lg font-semibold",children:"记忆检索"}),(0,b.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:"新增记忆后,搜索结果可能有短暂延迟。若未立即命中,请稍后重试或刷新。"})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(l.Label,{children:"Query"}),(0,b.jsx)(m.Textarea,{value:f,onChange:a=>g(a.target.value),placeholder:"用户喜欢吃什么?",rows:4})]}),(0,b.jsxs)("div",{className:"grid gap-4 sm:grid-cols-2",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(l.Label,{children:"Top K"}),(0,b.jsx)(k.Input,{type:"number",min:1,max:50,value:o,onChange:a=>p(Number(a.target.value))})]}),(0,b.jsx)("div",{className:"flex items-end pb-1",children:(0,b.jsxs)("label",{className:"flex items-center gap-2 text-sm",children:[(0,b.jsx)(j.Checkbox,{checked:q,onCheckedChange:a=>r(!0===a)}),"启用 Rerank"]})})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(l.Label,{children:"Metadata Filter JSON"}),(0,b.jsx)(m.Textarea,{value:s,onChange:a=>t(a.target.value),placeholder:'{"source":"dashboard"}',rows:4})]}),u&&(0,b.jsx)("p",{className:"text-sm text-[hsl(var(--destructive))]",children:u}),(0,b.jsx)(i.Button,{type:"submit",disabled:d||!w,children:d?"搜索中...":"搜索"}),!w&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:"请先在 Scope 栏中设置 appId 和 tenantId 的具体值。"})]})}var o=a.i(47845),p=a.i(21989),q=a.i(73524),r=a.i(10215);function s({results:a,elapsedMs:c}){return a?a.length?(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsxs)("h3",{className:"text-lg font-semibold",children:["搜索结果 (",a.length,")"]}),void 0!==c&&(0,b.jsxs)("span",{className:"text-sm text-muted-foreground",children:[c," ms"]})]}),(0,b.jsx)("div",{className:"space-y-3",children:a.map((a,c)=>(0,b.jsx)(q.Card,{children:(0,b.jsxs)(q.CardContent,{className:"space-y-3 p-4",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[void 0!==a.score&&(0,b.jsxs)(p.Badge,{variant:"secondary",children:["score ",a.score.toFixed(4)]}),a.source&&(0,b.jsx)(p.Badge,{variant:"outline",children:a.source}),a.unit.unit_type&&(0,b.jsx)(p.Badge,{variant:"outline",children:a.unit.unit_type})]}),(0,b.jsx)("p",{className:"whitespace-pre-wrap text-sm",children:a.unit.text}),(0,b.jsxs)("div",{className:"grid gap-2 text-xs text-muted-foreground sm:grid-cols-2",children:[(0,b.jsxs)("span",{children:["ID: ",a.unit.id??a.unit.memoryId??"-"]}),(0,b.jsxs)("span",{children:["Scope: ",(0,h.formatScope)(a.unit.scope)]}),(0,b.jsxs)("span",{children:["Created: ",function(a){if(!a)return"-";try{let b=new Date(a);if(isNaN(b.getTime()))return String(a);return b.toLocaleString("zh-CN",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"})}catch{return String(a)}}(a.unit.created_at)]}),(0,b.jsxs)("span",{children:["Version: ",a.unit.version??"-"]})]})]})},`${a.unit.id??a.unit.memoryId??c}-${c}`))})]}):(0,b.jsx)(r.EmptyState,{icon:o.Brain,title:"没有搜索结果",description:"如果刚添加了新记忆,可能需要等待索引生效后重试"}):(0,b.jsx)(r.EmptyState,{icon:o.Brain,title:"尚未搜索",description:"填写左侧查询条件后,可以验证当前 scope 下的记忆检索效果"})}var t=a.i(99443);a.s(["default",0,function(){let a=(0,d.useParams)(),i=(0,d.useSearchParams)(),j=decodeURIComponent(a.store),k=(0,c.useMemo)(()=>(0,h.buildMemoryScope)(i),[i.toString()]),l=(0,f.useMutation)({mutationFn:a=>(0,g.searchMemory)(a)}),[m,o]=(0,c.useState)(null),[p,q]=(0,c.useState)();async function r(a){let b=Date.now();try{let c=await l.mutateAsync({memoryStoreName:j,query:a.query,scope:a.scope,topK:a.topK,enableRerank:a.enableRerank,metadata:a.metadata});o(c.results??[]),q(Date.now()-b)}catch(a){e.toast.error(a instanceof Error?a.message:"搜索失败")}}return(0,b.jsx)(t.WorkbenchLayout,{asideWidth:400,aside:(0,b.jsx)(n,{scope:k,isLoading:l.isPending,onSubmit:r}),children:(0,b.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto px-7 py-5 max-md:px-4",children:(0,b.jsx)(s,{results:m,elapsedMs:p})})})}],21458)}];
1
+ module.exports=[10215,a=>{"use strict";var b=a.i(34020);a.s(["EmptyState",0,function({icon:a,title:c,description:d,action:e,illustration:f}){return(0,b.jsxs)("div",{className:"flex flex-col items-center justify-center py-16 px-4 text-center",children:[f??(0,b.jsx)("div",{className:"mb-5 flex h-20 w-20 items-center justify-center rounded-full bg-[hsl(var(--primary)/0.08)] ring-8 ring-[hsl(var(--primary)/0.04)]",children:(0,b.jsx)(a,{className:"text-primary",size:36,strokeWidth:1.75})}),(0,b.jsx)("h3",{className:"mb-2 text-base font-semibold text-foreground",children:c}),(0,b.jsx)("p",{className:"mb-6 max-w-sm text-sm text-muted-foreground",children:d}),e&&(0,b.jsx)("div",{children:e})]})}])},21989,a=>{"use strict";var b=a.i(34020),c=a.i(42261),d=a.i(64565);let e=(0,c.cva)("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",{variants:{variant:{default:"border-transparent bg-[hsl(var(--primary))] text-[hsl(var(--primary-foreground))] hover:opacity-90",secondary:"border-transparent bg-[hsl(var(--secondary))] text-[hsl(var(--secondary-foreground))] hover:opacity-80",destructive:"border-transparent bg-[hsl(var(--destructive))] text-[hsl(var(--destructive-foreground))] hover:opacity-90",outline:"border-[hsl(var(--border))] text-[hsl(var(--foreground))] bg-[hsl(var(--card))]",primary:"border-transparent bg-[hsl(var(--primary-soft))] text-[hsl(var(--primary))]",success:"border-transparent bg-[hsl(var(--success-soft))] text-[hsl(var(--success))]",warning:"border-transparent bg-[hsl(var(--warning-soft))] text-[hsl(var(--warning))]",danger:"border-transparent bg-[hsl(var(--danger-soft))] text-[hsl(var(--danger))]",purple:"border-transparent bg-[hsl(var(--purple-soft))] text-[hsl(var(--purple))]"}},defaultVariants:{variant:"default"}});a.s(["Badge",0,function({className:a,variant:c,...f}){return(0,b.jsx)("div",{className:(0,d.cn)(e({variant:c}),a),...f})}])},36890,a=>{"use strict";var b=a.i(34020),c=a.i(71938),d=a.i(68189),e=a.i(84694),f=a.i(59653),g=a.i(83370),h=a.i(20251),i=a.i(66394),j=a.i(98392),k=a.i(58036),l="Checkbox",[m,n]=(0,e.createContextScope)(l),[o,p]=m(l);function q(a){let{__scopeCheckbox:d,checked:e,children:f,defaultChecked:h,disabled:i,form:j,name:k,onCheckedChange:m,required:n,value:p="on",internal_do_not_use_render:q}=a,[r,s]=(0,g.useControllableState)({prop:e,defaultProp:h??!1,onChange:m,caller:l}),[t,u]=c.useState(null),[v,w]=c.useState(null),x=c.useRef(!1),z=!t||!!j||!!t.closest("form"),A={checked:r,disabled:i,setChecked:s,control:t,setControl:u,name:k,form:j,value:p,hasConsumerStoppedPropagationRef:x,required:n,defaultChecked:!y(h)&&h,isFormControl:z,bubbleInput:v,setBubbleInput:w};return(0,b.jsx)(o,{scope:d,...A,children:"function"==typeof q?q(A):f})}var r="CheckboxTrigger",s=c.forwardRef(({__scopeCheckbox:a,onKeyDown:e,onClick:g,...h},i)=>{let{control:j,value:l,disabled:m,checked:n,required:o,setControl:q,setChecked:s,hasConsumerStoppedPropagationRef:t,isFormControl:u,bubbleInput:v}=p(r,a),w=(0,d.useComposedRefs)(i,q),x=c.useRef(n);return c.useEffect(()=>{let a=j?.form;if(a){let b=()=>s(x.current);return a.addEventListener("reset",b),()=>a.removeEventListener("reset",b)}},[j,s]),(0,b.jsx)(k.Primitive.button,{type:"button",role:"checkbox","aria-checked":y(n)?"mixed":n,"aria-required":o,"data-state":z(n),"data-disabled":m?"":void 0,disabled:m,value:l,...h,ref:w,onKeyDown:(0,f.composeEventHandlers)(e,a=>{"Enter"===a.key&&a.preventDefault()}),onClick:(0,f.composeEventHandlers)(g,a=>{s(a=>!!y(a)||!a),v&&u&&(t.current=a.isPropagationStopped(),t.current||a.stopPropagation())})})});s.displayName=r;var t=c.forwardRef((a,c)=>{let{__scopeCheckbox:d,name:e,checked:f,defaultChecked:g,required:h,disabled:i,value:j,onCheckedChange:k,form:l,...m}=a;return(0,b.jsx)(q,{__scopeCheckbox:d,checked:f,defaultChecked:g,disabled:i,required:h,onCheckedChange:k,name:e,form:l,value:j,internal_do_not_use_render:({isFormControl:a})=>(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(s,{...m,ref:c,__scopeCheckbox:d}),a&&(0,b.jsx)(x,{__scopeCheckbox:d})]})})});t.displayName=l;var u="CheckboxIndicator",v=c.forwardRef((a,c)=>{let{__scopeCheckbox:d,forceMount:e,...f}=a,g=p(u,d);return(0,b.jsx)(j.Presence,{present:e||y(g.checked)||!0===g.checked,children:(0,b.jsx)(k.Primitive.span,{"data-state":z(g.checked),"data-disabled":g.disabled?"":void 0,...f,ref:c,style:{pointerEvents:"none",...a.style}})})});v.displayName=u;var w="CheckboxBubbleInput",x=c.forwardRef(({__scopeCheckbox:a,...e},f)=>{let{control:g,hasConsumerStoppedPropagationRef:j,checked:l,defaultChecked:m,required:n,disabled:o,name:q,value:r,form:s,bubbleInput:t,setBubbleInput:u}=p(w,a),v=(0,d.useComposedRefs)(f,u),x=(0,h.usePrevious)(l),z=(0,i.useSize)(g);c.useEffect(()=>{if(!t)return;let a=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set,b=!j.current;if(x!==l&&a){let c=new Event("click",{bubbles:b});t.indeterminate=y(l),a.call(t,!y(l)&&l),t.dispatchEvent(c)}},[t,x,l,j]);let A=c.useRef(!y(l)&&l);return(0,b.jsx)(k.Primitive.input,{type:"checkbox","aria-hidden":!0,defaultChecked:m??A.current,required:n,disabled:o,name:q,value:r,form:s,...e,tabIndex:-1,ref:v,style:{...e.style,...z,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});function y(a){return"indeterminate"===a}function z(a){return y(a)?"indeterminate":a?"checked":"unchecked"}x.displayName=w;var A=a.i(53520),B=a.i(64565);let C=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(t,{ref:d,className:(0,B.cn)("grid place-content-center peer h-4 w-4 shrink-0 rounded-sm border border-primary shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",a),...c,children:(0,b.jsx)(v,{className:(0,B.cn)("grid place-content-center text-current"),children:(0,b.jsx)(A.Check,{className:"h-4 w-4"})})}));C.displayName=t.displayName,a.s(["Checkbox",0,C],36890)},21458,a=>{"use strict";var b=a.i(34020),c=a.i(71938),d=a.i(80470),e=a.i(63265),f=a.i(33596),g=a.i(21347),h=a.i(8264),i=a.i(76192),j=a.i(36890),k=a.i(72518),l=a.i(62491),m=a.i(70535);function n({scope:a,isLoading:d,onSubmit:e}){let[f,g]=(0,c.useState)(""),[o,p]=(0,c.useState)(10),[q,r]=(0,c.useState)(!0),[s,t]=(0,c.useState)(""),[u,v]=(0,c.useState)(null),w=(0,h.hasSearchableScope)(a);async function x(b){if(b.preventDefault(),v(null),!w)return void v("请先在范围栏中设置「应用」和「租户」的具体值");if(!f.trim())return void v("请输入检索内容");if(o<0||o>50)return void v("Top K 必须在 0 到 50 之间");try{await e({query:f.trim(),scope:a,topK:o,enableRerank:q,metadata:(0,h.parseJsonObject)(s)})}catch(a){v(a instanceof Error?a.message:"搜索失败")}}return(0,b.jsxs)("form",{onSubmit:x,className:"space-y-4 rounded-lg border p-4",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h3",{className:"text-lg font-semibold",children:"记忆检索"}),(0,b.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:"新增记忆后,搜索结果可能有短暂延迟。若未立即命中,请稍后重试或刷新。"})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(l.Label,{children:"检索内容"}),(0,b.jsx)(m.Textarea,{value:f,onChange:a=>g(a.target.value),placeholder:"用户喜欢吃什么?",rows:4})]}),(0,b.jsxs)("div",{className:"grid gap-4 sm:grid-cols-2",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(l.Label,{children:"Top K"}),(0,b.jsx)(k.Input,{type:"number",min:1,max:50,value:o,onChange:a=>p(Number(a.target.value))})]}),(0,b.jsx)("div",{className:"flex items-end pb-1",children:(0,b.jsxs)("label",{className:"flex items-center gap-2 text-sm",children:[(0,b.jsx)(j.Checkbox,{checked:q,onCheckedChange:a=>r(!0===a)}),"启用重排序"]})})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(l.Label,{children:"元数据过滤(JSON)"}),(0,b.jsx)(m.Textarea,{value:s,onChange:a=>t(a.target.value),placeholder:'{"source":"dashboard"}',rows:4})]}),u&&(0,b.jsx)("p",{className:"text-sm text-[hsl(var(--destructive))]",children:u}),(0,b.jsx)(i.Button,{type:"submit",disabled:d||!w,children:d?"搜索中...":"搜索"}),!w&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:"请先在范围栏中设置「应用」和「租户」的具体值。"})]})}var o=a.i(47845),p=a.i(21989),q=a.i(73524),r=a.i(10215);function s({results:a,elapsedMs:c}){return a?a.length?(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsxs)("h3",{className:"text-lg font-semibold",children:["搜索结果 (",a.length,")"]}),void 0!==c&&(0,b.jsxs)("span",{className:"text-sm text-muted-foreground",children:[c," ms"]})]}),(0,b.jsx)("div",{className:"space-y-3",children:a.map((a,c)=>(0,b.jsx)(q.Card,{children:(0,b.jsxs)(q.CardContent,{className:"space-y-3 p-4",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[void 0!==a.score&&(0,b.jsxs)(p.Badge,{variant:"secondary",children:["相似度 ",a.score.toFixed(4)]}),a.source&&(0,b.jsx)(p.Badge,{variant:"outline",children:a.source}),a.unit.unit_type&&(0,b.jsx)(p.Badge,{variant:"outline",children:a.unit.unit_type})]}),(0,b.jsx)("p",{className:"whitespace-pre-wrap text-sm",children:a.unit.text}),(0,b.jsxs)("div",{className:"grid gap-2 text-xs text-muted-foreground sm:grid-cols-2",children:[(0,b.jsxs)("span",{children:["ID:",a.unit.id??a.unit.memoryId??"-"]}),(0,b.jsxs)("span",{children:["范围:",(0,h.formatScope)(a.unit.scope)]}),(0,b.jsxs)("span",{children:["创建时间:",function(a){if(!a)return"-";try{let b=new Date(a);if(isNaN(b.getTime()))return String(a);return b.toLocaleString("zh-CN",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"})}catch{return String(a)}}(a.unit.created_at)]}),(0,b.jsxs)("span",{children:["版本:",a.unit.version??"-"]})]})]})},`${a.unit.id??a.unit.memoryId??c}-${c}`))})]}):(0,b.jsx)(r.EmptyState,{icon:o.Brain,title:"没有搜索结果",description:"如果刚添加了新记忆,可能需要等待索引生效后重试"}):(0,b.jsx)(r.EmptyState,{icon:o.Brain,title:"尚未搜索",description:"填写左侧查询条件后,可以验证当前范围下的记忆检索效果"})}var t=a.i(99443);a.s(["default",0,function(){let a=(0,d.useParams)(),i=(0,d.useSearchParams)(),j=decodeURIComponent(a.store),k=i.toString(),l=(0,c.useMemo)(()=>(0,h.buildMemoryScope)(new URLSearchParams(k)),[k]),m=(0,f.useMutation)({mutationFn:a=>(0,g.searchMemory)(a)}),[o,p]=(0,c.useState)(null),[q,r]=(0,c.useState)();async function u(a){let b=Date.now();try{let c=await m.mutateAsync({memoryStoreName:j,query:a.query,scope:a.scope,topK:a.topK,enableRerank:a.enableRerank,metadata:a.metadata});p(c.results??[]),r(Date.now()-b)}catch(a){e.toast.error(a instanceof Error?a.message:"搜索失败")}}return(0,b.jsx)(t.WorkbenchLayout,{asideWidth:400,aside:(0,b.jsx)(n,{scope:l,isLoading:m.isPending,onSubmit:u}),children:(0,b.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto px-7 py-5 max-md:px-4",children:(0,b.jsx)(s,{results:o,elapsedMs:q})})})}],21458)}];
2
2
 
3
3
  //# sourceMappingURL=dashboard_src_00ofp7q._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[67558,a=>{"use strict";a.s(["IMAGE_FALLBACK_DATA_PREFIX",0,"data:image/jpeg;base64,","KB_NAME_REGEX",0,/^[a-zA-Z][a-zA-Z0-9_-]{1,62}[a-zA-Z0-9]$/])},36965,23331,69622,a=>{"use strict";var b=a.i(34020),c=a.i(71938),d=a.i(84694),e=a.i(58036),f=a.i(56620),g=a.i(59653),h=a.i(83370),i="Toggle",j=c.forwardRef((a,c)=>{let{pressed:d,defaultPressed:f,onPressedChange:j,...k}=a,[l,m]=(0,h.useControllableState)({prop:d,onChange:j,defaultProp:f??!1,caller:i});return(0,b.jsx)(e.Primitive.button,{type:"button","aria-pressed":l,"data-state":l?"on":"off","data-disabled":a.disabled?"":void 0,...k,ref:c,onClick:(0,g.composeEventHandlers)(a.onClick,()=>{a.disabled||m(!l)})})});j.displayName=i;var k=a.i(74974),l="ToggleGroup",[m,n]=(0,d.createContextScope)(l,[f.createRovingFocusGroupScope]),o=(0,f.createRovingFocusGroupScope)(),p=c.default.forwardRef((a,c)=>{let{type:d,...e}=a;if("single"===d)return(0,b.jsx)(s,{...e,ref:c});if("multiple"===d)return(0,b.jsx)(t,{...e,ref:c});throw Error(`Missing prop \`type\` expected on \`${l}\``)});p.displayName=l;var[q,r]=m(l),s=c.default.forwardRef((a,d)=>{let{value:e,defaultValue:f,onValueChange:g=()=>{},...i}=a,[j,k]=(0,h.useControllableState)({prop:e,defaultProp:f??"",onChange:g,caller:l});return(0,b.jsx)(q,{scope:a.__scopeToggleGroup,type:"single",value:c.default.useMemo(()=>j?[j]:[],[j]),onItemActivate:k,onItemDeactivate:c.default.useCallback(()=>k(""),[k]),children:(0,b.jsx)(w,{...i,ref:d})})}),t=c.default.forwardRef((a,d)=>{let{value:e,defaultValue:f,onValueChange:g=()=>{},...i}=a,[j,k]=(0,h.useControllableState)({prop:e,defaultProp:f??[],onChange:g,caller:l}),m=c.default.useCallback(a=>k((b=[])=>[...b,a]),[k]),n=c.default.useCallback(a=>k((b=[])=>b.filter(b=>b!==a)),[k]);return(0,b.jsx)(q,{scope:a.__scopeToggleGroup,type:"multiple",value:j,onItemActivate:m,onItemDeactivate:n,children:(0,b.jsx)(w,{...i,ref:d})})});p.displayName=l;var[u,v]=m(l),w=c.default.forwardRef((a,c)=>{let{__scopeToggleGroup:d,disabled:g=!1,rovingFocus:h=!0,orientation:i,dir:j,loop:l=!0,...m}=a,n=o(d),p=(0,k.useDirection)(j),q={role:"group",dir:p,...m};return(0,b.jsx)(u,{scope:d,rovingFocus:h,disabled:g,children:h?(0,b.jsx)(f.Root,{asChild:!0,...n,orientation:i,dir:p,loop:l,children:(0,b.jsx)(e.Primitive.div,{...q,ref:c})}):(0,b.jsx)(e.Primitive.div,{...q,ref:c})})}),x="ToggleGroupItem",y=c.default.forwardRef((a,d)=>{let e=r(x,a.__scopeToggleGroup),g=v(x,a.__scopeToggleGroup),h=o(a.__scopeToggleGroup),i=e.value.includes(a.value),j=g.disabled||a.disabled,k={...a,pressed:i,disabled:j},l=c.default.useRef(null);return g.rovingFocus?(0,b.jsx)(f.Item,{asChild:!0,...h,focusable:!j,active:i,ref:l,children:(0,b.jsx)(z,{...k,ref:d})}):(0,b.jsx)(z,{...k,ref:d})});y.displayName=x;var z=c.default.forwardRef((a,c)=>{let{__scopeToggleGroup:d,value:e,...f}=a,g=r(x,d),h={role:"radio","aria-checked":a.pressed,"aria-pressed":void 0},i="single"===g.type?h:void 0;return(0,b.jsx)(j,{...i,...f,ref:c,onPressedChange:a=>{a?g.onItemActivate(e):g.onItemDeactivate(e)}})}),A=a.i(64565);let B=c.createContext({size:"default",variant:"default"}),C=c.forwardRef(({className:a,variant:c="default",size:d="default",children:e,...f},g)=>(0,b.jsx)(p,{ref:g,className:(0,A.cn)("inline-flex items-center justify-center gap-1",a),...f,children:(0,b.jsx)(B.Provider,{value:{variant:c,size:d},children:e})}));C.displayName=p.displayName;let D=c.forwardRef(({className:a,children:c,...d},e)=>(0,b.jsx)(y,{ref:e,className:(0,A.cn)("relative inline-flex items-center justify-center whitespace-nowrap","text-sm font-medium transition-all","first:rounded-l-[7px] last:rounded-r-[7px]","border-l border-[hsl(var(--border)/0.6)]","first:border-l-0","data-[state=on]:border-l-transparent","[&[data-state=on]+*]:border-l-transparent","ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2","disabled:pointer-events-none disabled:opacity-50","hover:bg-[hsl(var(--muted)/0.6)] hover:text-[hsl(var(--foreground))]","data-[state=on]:bg-[hsl(var(--background))] data-[state=on]:text-[hsl(var(--foreground))] data-[state=on]:shadow-sm",a),...d,children:c}));D.displayName=y.displayName,a.s(["ToggleGroup",0,C,"ToggleGroupItem",0,D],36965);var E=a.i(14151);a.s(["TagInput",0,function({value:a,onChange:d,placeholder:e="输入后按回车添加"}){let[f,g]=(0,c.useState)(""),h=(0,c.useCallback)(b=>{let c=b.trim();c&&!a.includes(c)&&d([...a,c]),g("")},[a,d]),i=(0,c.useCallback)(b=>{d(a.filter((a,c)=>c!==b))},[a,d]);return(0,b.jsxs)("div",{className:(0,A.cn)("flex flex-wrap items-center gap-1.5 rounded-md border border-[hsl(var(--input))] bg-background px-3 py-2","focus-within:border-[hsl(var(--ring))] focus-within:ring-2 focus-within:ring-ring focus-within:ring-offset-0","min-h-10 transition-colors"),children:[a.map((a,c)=>(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-full border border-primary-200 bg-primary-100 px-2 py-0.5 text-xs font-medium text-primary-700",children:[a,(0,b.jsx)("button",{type:"button",onClick:()=>i(c),className:"inline-flex items-center justify-center rounded-full p-0.5 hover:opacity-70 transition-opacity","aria-label":`删除标签 ${a}`,children:(0,b.jsx)(E.X,{size:12})})]},`${a}-${c}`)),(0,b.jsx)("input",{type:"text",value:f,onChange:a=>g(a.target.value),onKeyDown:b=>{("Enter"===b.key||","===b.key)&&(b.preventDefault(),h(f)),"Backspace"===b.key&&""===f&&a.length>0&&i(a.length-1)},placeholder:0===a.length?e:"",className:"flex-1 min-w-20 bg-transparent text-sm outline-none placeholder:text-muted-foreground"})]})}],23331);let F=(0,a.i(50053).default)("list-ordered",[["path",{d:"M11 5h10",key:"1cz7ny"}],["path",{d:"M11 12h10",key:"1438ji"}],["path",{d:"M11 19h10",key:"11t30w"}],["path",{d:"M4 4h1v5",key:"10yrso"}],["path",{d:"M4 9h2",key:"r1h2o0"}],["path",{d:"M6.5 20H3.4c0-1 2.6-1.925 2.6-3.5a1.5 1.5 0 0 0-2.6-1.02",key:"xtkcd5"}]]);var G=a.i(92942),H=a.i(72518);a.s(["RetrievalResultCountField",0,function({control:a,name:c,label:d="返回片段数",description:e="单次检索返回的最多片段数,Rerank 后取前 N 条。",min:f=0,max:g,muted:h=!1,className:i}){return(0,b.jsx)(G.FormField,{control:a,name:c,render:({field:a})=>{let c="number"==typeof a.value&&Number.isFinite(a.value)?String(a.value):"";return(0,b.jsxs)(G.FormItem,{className:(0,A.cn)("mb-0 rounded-md border border-[hsl(var(--border)/0.6)] bg-[hsl(var(--card)/0.72)] p-3 shadow-[0_1px_2px_hsl(var(--foreground)/0.04)]",h&&"opacity-65",i),children:[(0,b.jsxs)("div",{className:"grid gap-3 sm:grid-cols-[minmax(0,1fr)_auto] sm:items-center",children:[(0,b.jsxs)("div",{className:"flex min-w-0 gap-3",children:[(0,b.jsx)("span",{className:"mt-0.5 flex h-7 w-7 shrink-0 items-center justify-center rounded-md bg-[hsl(var(--primary)/0.08)] text-[hsl(var(--primary))]",children:(0,b.jsx)(F,{className:"h-3.5 w-3.5"})}),(0,b.jsxs)("div",{className:"min-w-0 space-y-1",children:[(0,b.jsx)(G.FormLabel,{className:"text-sm font-medium",children:d}),(0,b.jsx)("p",{className:"text-xs leading-relaxed text-[hsl(var(--muted-foreground))]",children:e})]})]}),(0,b.jsxs)("div",{className:"relative w-28 shrink-0",children:[(0,b.jsx)(G.FormControl,{children:(0,b.jsx)(H.Input,{ref:a.ref,name:a.name,type:"number",inputMode:"numeric",min:f,max:g,"aria-label":d,className:"h-9 w-full bg-[hsl(var(--background))] pr-8 text-right font-mono text-sm tabular-nums shadow-sm [appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none",value:c,onBlur:a.onBlur,onChange:b=>a.onChange(function(a){let b=a.trim();if(!b)return;let c=Number(b);return Number.isFinite(c)?c:void 0}(b.target.value))})}),(0,b.jsx)("span",{className:"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 text-xs text-[hsl(var(--muted-foreground))]",children:"条"})]})]}),(0,b.jsx)(G.FormMessage,{className:"pt-1"})]})}})}],69622)},23301,a=>{"use strict";var b=a.i(34020),c=a.i(71938),d=a.i(64565);let e=c.forwardRef(({className:a,...c},e)=>(0,b.jsx)("div",{className:"relative w-full overflow-auto",children:(0,b.jsx)("table",{ref:e,className:(0,d.cn)("w-full caption-bottom text-sm",a),...c})}));e.displayName="Table";let f=c.forwardRef(({className:a,...c},e)=>(0,b.jsx)("thead",{ref:e,className:(0,d.cn)("[&_tr]:border-b [&_tr]:border-[hsl(var(--border))] [&_tr]:bg-[hsl(var(--secondary))]",a),...c}));f.displayName="TableHeader";let g=c.forwardRef(({className:a,...c},e)=>(0,b.jsx)("tbody",{ref:e,className:(0,d.cn)("[&_tr:last-child]:border-0",a),...c}));g.displayName="TableBody",c.forwardRef(({className:a,...c},e)=>(0,b.jsx)("tfoot",{ref:e,className:(0,d.cn)("border-t border-[hsl(var(--border))] bg-[hsl(var(--secondary)/0.5)] font-medium [&>tr]:last:border-b-0",a),...c})).displayName="TableFooter";let h=c.forwardRef(({className:a,...c},e)=>(0,b.jsx)("tr",{ref:e,className:(0,d.cn)("border-b border-[hsl(var(--border-light))] transition-colors hover:bg-[hsl(var(--secondary)/0.5)] data-[state=selected]:bg-[hsl(var(--primary-soft))]",a),...c}));h.displayName="TableRow";let i=c.forwardRef(({className:a,...c},e)=>(0,b.jsx)("th",{ref:e,className:(0,d.cn)("h-9 px-3 text-left align-middle text-xs font-medium text-[hsl(var(--muted-foreground))] [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",a),...c}));i.displayName="TableHead";let j=c.forwardRef(({className:a,...c},e)=>(0,b.jsx)("td",{ref:e,className:(0,d.cn)("px-3 py-2 align-middle text-sm [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",a),...c}));j.displayName="TableCell",c.forwardRef(({className:a,...c},e)=>(0,b.jsx)("caption",{ref:e,className:(0,d.cn)("mt-4 text-sm text-[hsl(var(--muted-foreground))]",a),...c})).displayName="TableCaption",a.s(["Table",0,e,"TableBody",0,g,"TableCell",0,j,"TableHead",0,i,"TableHeader",0,f,"TableRow",0,h])},49707,28058,17566,a=>{"use strict";a.s(["handleNumberInput",0,function(a){return b=>{a(b.target.value?Number(b.target.value):void 0)}}],49707),a.s(["buildKnowledgeBaseRetrievalConfiguration",0,function(a){if(!a)return;let b=a.rerankingConfiguration,c=a.rerankType??b?.type,d={searchType:a.searchType??[]},e=a.denseTopK??a.denseVectorSearchConfiguration?.numberOfResults,f=a.fullTextTopK??a.fullTextSearchConfiguration?.numberOfResults,g=a.rerankTopK??b?.numberOfResults;if(void 0!==e&&(d.denseVectorSearchConfiguration={numberOfResults:e}),void 0!==f&&(d.fullTextSearchConfiguration={numberOfResults:f}),c){let e={type:c};void 0!==g&&(e.numberOfResults=g),"RRF"===c?e.rrfConfiguration={denseVectorSearchWeight:a.rrfDenseWeight??b?.rrfConfiguration?.denseVectorSearchWeight??0,fullTextSearchWeight:a.rrfFullTextWeight??b?.rrfConfiguration?.fullTextSearchWeight??0,k:a.rrfK??b?.rrfConfiguration?.k??60}:"WEIGHT"===c?e.weightConfiguration={denseVectorSearchWeight:a.weightDense??b?.weightConfiguration?.denseVectorSearchWeight??0,fullTextSearchWeight:a.weightFullText??b?.weightConfiguration?.fullTextSearchWeight??0}:"MODEL"===c&&(e.modelConfiguration={provider:a.modelProvider??b?.modelConfiguration?.provider??"bailian",model:a.modelName??b?.modelConfiguration?.model??"gte-rerank-v2"}),d.rerankingConfiguration=e}return d}],28058);var b=a.i(80904),c=a.i(67558);let d=b.z.enum(["string","long","double","boolean","date","string_list","long_list","double_list","boolean_list","date_list"]),e=b.z.object({name:b.z.string().min(1).max(128),type:d}),f=b.z.object({provider:b.z.enum(["bailian","custom"]),model:b.z.string().min(1),dimension:b.z.number().int().positive(),apiKey:b.z.string().optional(),url:b.z.string().url().optional()}),g=b.z.object({type:b.z.enum(["RRF","WEIGHT","MODEL"]),numberOfResults:b.z.number().int().min(0).max(200).optional(),rrfConfiguration:b.z.object({denseVectorSearchWeight:b.z.number().min(0),fullTextSearchWeight:b.z.number().min(0),k:b.z.number().int().positive()}).optional(),weightConfiguration:b.z.object({denseVectorSearchWeight:b.z.number().min(0).max(1),fullTextSearchWeight:b.z.number().min(0).max(1)}).optional(),modelConfiguration:b.z.object({provider:b.z.string().min(1),model:b.z.string().min(1)}).optional()}),h=b.z.object({searchType:b.z.array(b.z.enum(["DENSE_VECTOR","FULL_TEXT"])).min(1).optional(),denseVectorSearchConfiguration:b.z.object({numberOfResults:b.z.number().int().min(0).max(100)}).optional(),fullTextSearchConfiguration:b.z.object({numberOfResults:b.z.number().int().min(0).max(100)}).optional(),rerankingConfiguration:g.optional()}),i=b.z.object({knowledgeBaseName:b.z.string().min(1,"Knowledge base name is required").max(64,"Name must be at most 64 characters").regex(c.KB_NAME_REGEX,"名称必须以字母开头,仅允许字母、数字、下划线和连字符,长度 3-64 字符,不能以下划线或连字符结尾"),description:b.z.string().max(4096).optional(),subspace:b.z.boolean().optional(),tags:b.z.array(b.z.string()).optional(),metadata:b.z.array(e).max(200).optional(),embeddingConfiguration:f.optional(),retrievalConfiguration:h.optional(),multimodal:b.z.boolean().optional(),ingestConfiguration:b.z.object({enableTableFormulaCaption:b.z.boolean().optional()}).optional()}),j=b.z.object({knowledgeBaseName:b.z.string().min(1),description:b.z.string().max(4096).optional(),tags:b.z.array(b.z.string()).optional(),retrievalConfiguration:h.optional()});a.s(["createKBSchema",0,i,"updateKBSchema",0,j],17566)}];
2
+
3
+ //# sourceMappingURL=dashboard_src_05.qn9h._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[91957,a=>{"use strict";var b=a.i(34020);let c=(0,a.i(50053).default)("message-square-plus",[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}],["path",{d:"M12 8v6",key:"1ib9pf"}],["path",{d:"M9 11h6",key:"1fldmi"}]]);var d=a.i(55295),e=a.i(76192),f=a.i(64565);function g({session:a,active:c,onSelect:h,onDelete:i}){let j=a.config.mounts.length;return(0,b.jsxs)("div",{className:(0,f.cn)("group flex items-center gap-1 rounded-md px-2 py-1.5 text-sm transition-colors",c?"bg-[hsl(var(--accent))] text-foreground":"text-foreground/80 hover:bg-[hsl(var(--accent)/0.6)]"),children:[(0,b.jsxs)("button",{type:"button",onClick:h,className:"flex min-w-0 flex-1 flex-col items-start text-left",children:[(0,b.jsx)("span",{className:"w-full truncate font-medium",children:a.title}),(0,b.jsxs)("span",{className:"flex items-center gap-1.5 text-[11px] text-muted-foreground",children:[(0,b.jsx)("span",{children:function(a){let b=Math.floor((Date.now()-a)/6e4);if(b<1)return"刚刚";if(b<60)return`${b} 分钟前`;let c=Math.floor(b/60);if(c<24)return`${c} 小时前`;let d=Math.floor(c/24);return d<7?`${d} 天前`:new Date(a).toLocaleDateString()}(a.updatedAt)}),j>0?(0,b.jsxs)("span",{children:["· ",j," KB"]}):null]})]}),(0,b.jsx)(e.Button,{type:"button",variant:"ghost",size:"icon",onClick:a=>{a.stopPropagation(),i()},className:"h-6 w-6 opacity-0 group-hover:opacity-100",title:"删除",children:(0,b.jsx)(d.Trash2,{className:"h-3 w-3 text-muted-foreground"})})]})}a.s(["ChatHistorySidebar",0,function({sessions:a,activeSessionId:f,onNewSession:h,onSelectSession:i,onDeleteSession:j,onClearAll:k}){return(0,b.jsxs)("aside",{className:"flex h-full w-64 shrink-0 flex-col border-r border-[hsl(var(--border))] bg-[hsl(var(--surface))]",children:[(0,b.jsx)("div",{className:"border-b border-[hsl(var(--border))] p-3",children:(0,b.jsxs)(e.Button,{type:"button",onClick:h,className:"w-full justify-start gap-2",variant:"outline",children:[(0,b.jsx)(c,{className:"h-4 w-4"}),"新对话"]})}),(0,b.jsx)("div",{className:"flex-1 overflow-y-auto",children:0===a.length?(0,b.jsx)("p",{className:"px-3 py-6 text-center text-xs text-muted-foreground",children:"暂无历史对话"}):(0,b.jsx)("ul",{className:"space-y-0.5 p-2",children:a.map(a=>(0,b.jsx)("li",{children:(0,b.jsx)(g,{session:a,active:a.id===f,onSelect:()=>i(a.id),onDelete:()=>j(a.id)})},a.id))})}),a.length>0?(0,b.jsx)("div",{className:"border-t border-[hsl(var(--border))] p-2",children:(0,b.jsxs)(e.Button,{type:"button",variant:"ghost",size:"sm",onClick:k,className:"w-full justify-start gap-2 text-muted-foreground hover:text-[hsl(var(--destructive))]",children:[(0,b.jsx)(d.Trash2,{className:"h-3.5 w-3.5"}),"清空全部"]})}):null]})}],91957)},38285,a=>{"use strict";var b=a.i(34020),c=a.i(71938),d=a.i(93078);let e={providerId:"",model:"",systemPrompt:"",temperature:void 0,aggregateTopK:20,perKbTopK:20,retrieval:{searchType:["DENSE_VECTOR","FULL_TEXT"],rerankType:"WEIGHT",weightDense:.7,weightFullText:.3},mounts:[]};function f(a,b){switch(b.type){case"SET_PROVIDER":return{...a,providerId:b.providerId,model:b.model};case"SET_MODEL":return{...a,model:b.model};case"SET_SYSTEM_PROMPT":return{...a,systemPrompt:b.value};case"SET_TEMPERATURE":return{...a,temperature:b.value};case"SET_AGGREGATE_TOP_K":return{...a,aggregateTopK:b.value};case"SET_PER_KB_TOP_K":return{...a,perKbTopK:b.value};case"SET_RETRIEVAL":return{...a,retrieval:b.value};case"ADD_MOUNT":if(a.mounts.some(a=>a.knowledgeBaseName===b.mount.knowledgeBaseName))return a;return{...a,mounts:[...a.mounts,b.mount]};case"UPDATE_MOUNT":return{...a,mounts:a.mounts.map(a=>a.id===b.id?{...a,...b.patch}:a)};case"REMOVE_MOUNT":return{...a,mounts:a.mounts.filter(a=>a.id!==b.id)};case"REORDER_MOUNTS":{let c=new Map(a.mounts.map(a=>[a.id,a])),d=b.ids.map(a=>c.get(a)).filter(a=>!!a);return{...a,mounts:d}}case"HYDRATE":return{...a,...b.state};case"RESET":return e;default:return a}}let g=(0,c.createContext)(null);a.s(["ChatConfigProvider",0,function({children:a}){let[d,h]=(0,c.useReducer)(f,e),i=(0,c.useMemo)(()=>({...d,setProvider:(a,b)=>h({type:"SET_PROVIDER",providerId:a,model:b}),setModel:a=>h({type:"SET_MODEL",model:a}),setSystemPrompt:a=>h({type:"SET_SYSTEM_PROMPT",value:a}),setTemperature:a=>h({type:"SET_TEMPERATURE",value:a}),setAggregateTopK:a=>h({type:"SET_AGGREGATE_TOP_K",value:a}),setPerKbTopK:a=>h({type:"SET_PER_KB_TOP_K",value:a}),setRetrieval:a=>h({type:"SET_RETRIEVAL",value:a}),addMount:a=>h({type:"ADD_MOUNT",mount:a}),updateMount:(a,b)=>h({type:"UPDATE_MOUNT",id:a,patch:b}),removeMount:a=>h({type:"REMOVE_MOUNT",id:a}),reorderMounts:a=>h({type:"REORDER_MOUNTS",ids:a}),hydrate:a=>h({type:"HYDRATE",state:a}),reset:()=>h({type:"RESET"}),toSessionConfig:()=>({providerId:d.providerId||void 0,model:d.model||void 0,systemPrompt:d.systemPrompt||void 0,temperature:d.temperature,aggregateTopK:d.aggregateTopK,perKbTopK:d.perKbTopK,retrieval:d.retrieval,mounts:d.mounts})}),[d]);return(0,b.jsx)(g.Provider,{value:i,children:a})},"DEFAULT_AGGREGATE_TOP_K",0,20,"DEFAULT_PER_KB_TOP_K",0,20,"buildRagFromMounts",0,function(a){if(!a.mounts.length)return;let b=(0,d.assembleRetrievalConfiguration)(a.retrieval,a.perKbTopK);return{knowledgeBases:a.mounts.map(c=>({knowledgeBaseName:c.knowledgeBaseName,...c.subspace?.length?{subspace:c.subspace}:{},...b?{retrievalConfiguration:b}:{},topK:a.perKbTopK})),topK:a.aggregateTopK}},"useChatConfig",0,function(){let a=(0,c.useContext)(g);if(!a)throw Error("useChatConfig must be used within a ChatConfigProvider");return a}])},58489,a=>{"use strict";var b=a.i(34020),c=a.i(71938),d=a.i(53520),e=a.i(88619),f=a.i(14151),g=a.i(64565);let h=e.Root;e.Trigger,e.Close;let i=e.Portal,j=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(e.Overlay,{ref:d,className:(0,g.cn)("fixed inset-0 z-50 bg-black/30 backdrop-blur-sm duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",a),...c}));j.displayName=e.Overlay.displayName;let k={top:"inset-x-0 top-0 border-b data-[state=open]:slide-in-from-top data-[state=closed]:slide-out-to-top",bottom:"inset-x-0 bottom-0 border-t data-[state=open]:slide-in-from-bottom data-[state=closed]:slide-out-to-bottom",left:"inset-y-0 left-0 h-full w-3/4 max-w-sm border-r data-[state=open]:slide-in-from-left data-[state=closed]:slide-out-to-left",right:"inset-y-0 right-0 h-full w-3/4 max-w-md border-l data-[state=open]:slide-in-from-right data-[state=closed]:slide-out-to-right"},l=c.forwardRef(({className:a,children:c,side:d="right",...h},l)=>(0,b.jsxs)(i,{children:[(0,b.jsx)(j,{}),(0,b.jsxs)(e.Content,{ref:l,className:(0,g.cn)("fixed z-50 flex flex-col gap-4 bg-[hsl(var(--card))] p-6 shadow-md border-[hsl(var(--border))]","duration-300 ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out",k[d],a),...h,children:[c,(0,b.jsxs)(e.Close,{className:"absolute right-4 top-4 rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none",children:[(0,b.jsx)(f.X,{className:"h-4 w-4"}),(0,b.jsx)("span",{className:"sr-only",children:"Close"})]})]})]}));l.displayName=e.Content.displayName;let m=({className:a,...c})=>(0,b.jsx)("div",{className:(0,g.cn)("flex flex-col space-y-1.5 text-left",a),...c});m.displayName="SheetHeader";let n=({className:a,...c})=>(0,b.jsx)("div",{className:(0,g.cn)("mt-auto flex flex-col-reverse gap-2 sm:flex-row sm:justify-end sm:space-x-2",a),...c});n.displayName="SheetFooter";let o=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(e.Title,{ref:d,className:(0,g.cn)("text-base font-semibold leading-tight",a),...c}));o.displayName=e.Title.displayName;let p=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(e.Description,{ref:d,className:(0,g.cn)("text-sm text-[hsl(var(--muted-foreground))]",a),...c}));p.displayName=e.Description.displayName;var q=a.i(76192),r=a.i(72518),s=a.i(62491),t=a.i(9367),u=a.i(38285),v=a.i(64363),w=a.i(32191),x=a.i(87951),y=a.i(83643),z=a.i(25825),A=a.i(23028),B=a.i(55553),C=a.i(84252);function D({kbs:a,onPick:d,children:e,align:f="start"}){let[g,h]=(0,c.useState)(!1),i=b=>{let c=a.find(a=>a.knowledgeBaseName===b);c&&(d(c),h(!1))};return(0,b.jsxs)(C.Popover,{open:g,onOpenChange:h,children:[(0,b.jsx)(C.PopoverTrigger,{asChild:!0,children:e}),(0,b.jsx)(C.PopoverContent,{align:f,sideOffset:6,className:"w-[var(--radix-popover-trigger-width)] min-w-[260px] p-0",children:(0,b.jsxs)(B.Command,{children:[(0,b.jsx)(B.CommandInput,{placeholder:"搜索知识库..."}),(0,b.jsxs)(B.CommandList,{children:[(0,b.jsx)(B.CommandEmpty,{children:"未找到匹配的知识库"}),a.length>0?(0,b.jsx)(B.CommandGroup,{children:a.map(a=>(0,b.jsxs)(B.CommandItem,{value:a.knowledgeBaseName,onSelect:i,children:[(0,b.jsx)(A.Database,{className:"text-[hsl(var(--muted-foreground))]"}),(0,b.jsx)("span",{className:"truncate",children:a.knowledgeBaseName})]},a.knowledgeBaseName))}):null]})]})})]})}function E({kbs:a,onAdd:c}){return 0===a.length?null:(0,b.jsx)(D,{kbs:a,onPick:c,align:"start",children:(0,b.jsxs)("button",{type:"button",className:"group flex w-full items-center justify-center gap-1.5 rounded-md border border-dashed border-[hsl(var(--border))] bg-transparent px-3 py-2 text-xs font-medium text-[hsl(var(--muted-foreground))] transition-colors hover:border-[hsl(var(--primary)/0.5)] hover:bg-[hsl(var(--primary-soft))] hover:text-[hsl(var(--primary))] 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))]",children:[(0,b.jsx)(z.Plus,{className:"h-3.5 w-3.5 transition-transform group-hover:rotate-90"}),"添加更多知识库",(0,b.jsxs)("span",{className:"text-[hsl(var(--muted-foreground))]/70 group-hover:text-[hsl(var(--primary))]/70",children:["(",a.length,")"]})]})})}var F=a.i(12583),G=a.i(1078);function H({kbs:a,onAdd:c}){let d=0===a.length;return(0,b.jsxs)("div",{className:"animate-home-reveal relative overflow-hidden rounded-lg border border-dashed border-[hsl(var(--primary)/0.35)] bg-gradient-to-br from-[hsl(var(--primary-soft))] via-[hsl(var(--surface))] to-[hsl(var(--surface))] px-5 py-6 text-center",role:"region","aria-label":"挂载知识库",children:[(0,b.jsx)(G.Sparkles,{className:"pointer-events-none absolute right-3 top-3 h-3.5 w-3.5 text-[hsl(var(--primary)/0.45)]","aria-hidden":!0}),(0,b.jsx)("div",{className:"mx-auto mb-3 flex h-12 w-12 items-center justify-center rounded-xl bg-[hsl(var(--primary-soft))] ring-1 ring-[hsl(var(--primary)/0.18)]",children:(0,b.jsx)(A.Database,{className:"h-6 w-6 text-[hsl(var(--primary))]"})}),(0,b.jsx)("h3",{className:"text-sm font-semibold text-[hsl(var(--foreground))]",children:d?"还没有任何知识库":"挂载知识库以启用 RAG"}),(0,b.jsx)("p",{className:"mx-auto mt-1 max-w-[320px] text-xs leading-relaxed text-[hsl(var(--muted-foreground))]",children:d?"创建第一个知识库后,即可在对话中挂载并启用检索增强":"挂载后,模型将基于知识库内容生成回答,支持并行检索与全局重排"}),(0,b.jsxs)("div",{className:"mt-4 flex flex-col items-center gap-2",children:[d?(0,b.jsx)(q.Button,{asChild:!0,size:"default",className:"h-9 px-4",children:(0,b.jsxs)(F.default,{href:"/knowledge-base/create",children:[(0,b.jsx)(A.Database,{className:"h-4 w-4"}),"创建知识库"]})}):(0,b.jsx)(D,{kbs:a,onPick:c,align:"center",children:(0,b.jsxs)(q.Button,{type:"button",size:"default",className:"h-9 px-4",children:[(0,b.jsx)(z.Plus,{className:"h-4 w-4"}),"挂载知识库"]})}),d?null:(0,b.jsxs)("p",{className:"text-[11px] text-[hsl(var(--muted-foreground))]",children:["从已有的"," ",(0,b.jsx)("span",{className:"font-medium text-[hsl(var(--foreground))]",children:a.length})," ","个知识库中选择"]})]})]})}var I=a.i(55295);function J({mount:a,subspaceEnabled:d}){let e=(0,u.useChatConfig)(),[f,g]=(0,c.useState)((a.subspace??[]).join(", "));return(0,b.jsxs)("div",{className:"flex items-center gap-2 rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--muted)/0.3)] px-3 py-2",children:[(0,b.jsx)("span",{className:"flex-1 truncate text-sm font-medium",title:a.knowledgeBaseName,children:a.knowledgeBaseName}),d?(0,b.jsx)(r.Input,{value:f,onChange:a=>g(a.target.value),onBlur:()=>{let b=f.split(",").map(a=>a.trim()).filter(Boolean),c=a.subspace??[];b.length===c.length&&b.every((a,b)=>a===c[b])||e.updateMount(a.id,{subspace:b.length?b:void 0})},onKeyDown:a=>{"Enter"===a.key&&(a.preventDefault(),a.target.blur())},placeholder:"subspace (逗号分隔)",className:"h-8 w-44 text-xs"}):null,(0,b.jsx)(q.Button,{type:"button",variant:"ghost",size:"icon",className:"h-7 w-7",onClick:()=>e.removeMount(a.id),title:"移除",children:(0,b.jsx)(I.Trash2,{className:"h-3.5 w-3.5 text-muted-foreground"})})]})}var K=a.i(71562),L=a.i(71071),M=a.i(44401),N=a.i(92942),O=a.i(18236),P=a.i(15325);let Q=["searchType","rerankType","rrfK","rrfDenseWeight","rrfFullTextWeight","weightDense","weightFullText","modelName","modelProvider"];function R({disabled:a,singleKb:d}){let e=(0,u.useChatConfig)(),f=(0,c.useRef)(null),g=(0,K.useForm)({resolver:(0,L.zodResolver)(P.retrievalSchema),defaultValues:{knowledgeBaseName:d?.knowledgeBaseName??"__unified__",query:"__unified_placeholder__",subspace:[],topK:e.perKbTopK,searchType:e.retrieval.searchType??["DENSE_VECTOR","FULL_TEXT"],rerankType:e.retrieval.rerankType,rrfK:e.retrieval.rrfK,rrfDenseWeight:e.retrieval.rrfDenseWeight,rrfFullTextWeight:e.retrieval.rrfFullTextWeight,weightDense:e.retrieval.weightDense,weightFullText:e.retrieval.weightFullText,modelName:e.retrieval.modelName,modelProvider:e.retrieval.modelProvider}});(0,c.useEffect)(()=>{g.reset({knowledgeBaseName:d?.knowledgeBaseName??"__unified__",query:"__unified_placeholder__",subspace:[],topK:e.perKbTopK,searchType:e.retrieval.searchType??["DENSE_VECTOR","FULL_TEXT"],rerankType:e.retrieval.rerankType,rrfK:e.retrieval.rrfK,rrfDenseWeight:e.retrieval.rrfDenseWeight,rrfFullTextWeight:e.retrieval.rrfFullTextWeight,weightDense:e.retrieval.weightDense,weightFullText:e.retrieval.weightFullText,modelName:e.retrieval.modelName,modelProvider:e.retrieval.modelProvider})},[e.retrieval,e.perKbTopK,d?.knowledgeBaseName]);let h=()=>{let a=g.getValues(),b={};for(let c of Q){let d=a[c];void 0===d||Array.isArray(d)&&0===d.length||(b[c]=d)}e.setRetrieval(b),e.setPerKbTopK("number"==typeof a.topK&&a.topK>=0?a.topK:u.DEFAULT_PER_KB_TOP_K)},i=g.watch("rerankType");return(0,c.useEffect)(()=>{if("MODEL"!==i)return;let a=!1;g.getValues("modelProvider")||(g.setValue("modelProvider","bailian"),a=!0),g.getValues("modelName")||(g.setValue("modelName","gte-rerank-v2"),a=!0),a&&h()},[i]),(0,b.jsxs)("div",{className:"space-y-3 border-t border-[hsl(var(--border))] pt-4"+(a?" pointer-events-none opacity-50":""),"aria-disabled":a,children:[(0,b.jsxs)("div",{children:[(0,b.jsx)(s.Label,{className:"text-sm font-medium",children:"统一检索参数"}),(0,b.jsx)("p",{className:"mt-0.5 text-xs text-muted-foreground",children:"应用到所有挂载 KB 的统一查询配置,保证分数可比;每 KB 单独检索后合并重排"})]}),a?(0,b.jsxs)("div",{className:"flex items-start gap-2 rounded-md border border-dashed border-[hsl(var(--border))] bg-[hsl(var(--muted)/0.4)] px-3 py-3 text-xs text-muted-foreground",children:[(0,b.jsx)(M.Info,{className:"mt-0.5 h-3.5 w-3.5 shrink-0"}),(0,b.jsx)("span",{children:"挂载至少一个知识库后即可配置统一检索参数"})]}):(0,b.jsx)(N.Form,{...g,children:(0,b.jsx)("form",{onSubmit:a=>a.preventDefault(),onBlur:h,className:"space-y-4",children:(0,b.jsx)(O.RetrievalParamsFields,{form:g,knowledgeBase:d,filterRef:f,topKLabel:"每 KB topK",topKHint:"单库检索条数,默认 20",topKMode:"single"})})})]})}a.s(["ChatMountConfig",0,function({open:a,onOpenChange:e,onSave:f}){let g=(0,u.useChatConfig)(),{data:i}=(0,t.useKnowledgeBases)(),j=i?.items??[],k=j.filter(a=>!g.mounts.some(b=>b.knowledgeBaseName===a.knowledgeBaseName)),[z,A]=(0,c.useState)(String(g.aggregateTopK));(0,c.useEffect)(()=>{A(String(g.aggregateTopK))},[g.aggregateTopK]);let[B,C]=(0,c.useState)(!1),D=(0,c.useRef)(null);return(0,c.useEffect)(()=>()=>{D.current&&clearTimeout(D.current)},[]),(0,b.jsx)(h,{open:a,onOpenChange:e,children:(0,b.jsxs)(l,{side:"right",className:"flex w-full flex-col gap-0 p-0 sm:max-w-[520px]",children:[(0,b.jsxs)(m,{className:"border-b border-[hsl(var(--border))] px-6 py-4",children:[(0,b.jsx)(o,{children:"对话配置"}),(0,b.jsx)(p,{children:"选择模型、编辑 system prompt,挂载多个知识库作为检索来源"})]}),(0,b.jsxs)("div",{className:"flex-1 space-y-5 overflow-y-auto px-6 py-5",children:[(0,b.jsx)(v.LLMModelSelector,{providerId:g.providerId,model:g.model,onProviderChange:(a,b)=>{g.setProvider(a,b??"")},onModelChange:a=>g.setModel(a)}),(0,b.jsx)(w.SystemPromptInput,{value:g.systemPrompt,onChange:a=>g.setSystemPrompt(a),placeholder:"留空使用默认 prompt",label:"System Prompt"}),(0,b.jsx)(x.TemperatureSlider,{value:g.temperature??.7,onChange:a=>g.setTemperature(a),label:"Temperature"}),(0,b.jsxs)("div",{className:"space-y-3 border-t border-[hsl(var(--border))] pt-4",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)(s.Label,{className:"text-sm font-medium",children:"挂载的知识库"}),(0,b.jsxs)("p",{className:"mt-0.5 text-xs text-muted-foreground",children:["并行检索,按 score 全局重排,取前 ",g.aggregateTopK," 条"]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)(s.Label,{className:"text-xs text-muted-foreground",title:"合并所有 KB 的命中后按分数截断的上限",children:"聚合 topK"}),(0,b.jsx)(r.Input,{type:"text",inputMode:"numeric",value:z,onChange:a=>A(a.target.value),onBlur:()=>{let a=parseInt(z,10);Number.isFinite(a)&&a>=1&&a<=200?(g.setAggregateTopK(a),A(String(a))):(g.setAggregateTopK(u.DEFAULT_AGGREGATE_TOP_K),A(String(u.DEFAULT_AGGREGATE_TOP_K)))},className:"h-8 w-20"})]})]}),0===g.mounts.length?(0,b.jsx)(H,{kbs:j,onAdd:a=>g.addMount({id:(0,y.newId)("mount"),knowledgeBaseName:a.knowledgeBaseName})}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"space-y-2",children:g.mounts.map(a=>{let c=j.find(b=>b.knowledgeBaseName===a.knowledgeBaseName);return(0,b.jsx)(J,{mount:a,subspaceEnabled:c?.subspace===!0},a.id)})}),(0,b.jsx)(E,{kbs:k,onAdd:a=>g.addMount({id:(0,y.newId)("mount"),knowledgeBaseName:a.knowledgeBaseName})})]})]}),(0,b.jsx)(R,{disabled:0===g.mounts.length,singleKb:1===g.mounts.length?j.find(a=>a.knowledgeBaseName===g.mounts[0].knowledgeBaseName):void 0})]}),(0,b.jsxs)(n,{className:"gap-2 border-t border-[hsl(var(--border))] bg-[hsl(var(--surface))] px-6 py-3 sm:items-center sm:justify-between sm:space-x-0",children:[(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:"未保存的修改在发送下一条消息时也会自动持久化"}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(q.Button,{type:"button",variant:"ghost",onClick:()=>e(!1),children:"关闭"}),(0,b.jsx)(q.Button,{type:"button",onClick:()=>{f(),C(!0),D.current&&clearTimeout(D.current),D.current=setTimeout(()=>C(!1),2e3)},disabled:B,children:B?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(d.Check,{className:"mr-1.5 h-4 w-4"}),"已保存"]}):"保存配置"})]})]})]})})}],58489)},71173,a=>{"use strict";var b=a.i(71938);function c(a){return a&&a.length>0?a:null}function d(a){let b;return`tsagent.chat.sessions.v2.${(b=c(a))?`project.${encodeURIComponent(b)}`:"unbound"}`}function e(a){return(d(a),[]).filter(b=>c(b.activeInstance)===c(a))}let f=[];function g(){return f}a.s(["deriveSessionTitle",0,function(a){let b=a.find(a=>"user"===a.role);if(!b)return"新对话";let c=b.content.replace(/\s+/g," ").trim();return c?c.length>24?`${c.slice(0,24)}…`:c:"新对话"},"useChatHistory",0,function(a){let h=c(a.activeInstance),i=a.ready?d(h):null,j=(0,b.useCallback)(a=>()=>{},[i]),k=(0,b.useCallback)(()=>(a.ready,f),[h,a.ready]),l=(0,b.useSyncExternalStore)(j,k,g),m=(0,b.useCallback)(b=>{if(a.ready){var f,g;let a,i,j,k,l;i=e(a=c(h)),k=(j={...b,activeInstance:a}).messages.length>200?{...j,messages:j.messages.slice(-200)}:j,(l=i.findIndex(a=>a.id===k.id))>=0?i[l]=k:i.push(k),f=a,g=i.sort((a,b)=>b.updatedAt-a.updatedAt).slice(0,50),d(f)}},[h,a.ready]),n=(0,b.useCallback)(b=>{if(a.ready){let a,f;f=e(a=c(h)).filter(a=>a.id!==b),d(a)}},[h,a.ready]),o=(0,b.useCallback)(()=>{a.ready&&d(c(h))},[h,a.ready]),p=(0,b.useCallback)(b=>{var d;return a.ready?(d=b,e(c(h)).sort((a,b)=>b.updatedAt-a.updatedAt).find(a=>a.id===d)??null):null},[h,a.ready]);return(0,b.useMemo)(()=>({sessions:l,upsert:m,remove:n,clear:o,get:p}),[l,m,n,o,p])}])},57634,a=>{"use strict";a.s(["readLastConfig",0,function(a){return{}},"writeLastConfig",0,function(a,b){}])},45533,a=>a.a(async(b,c)=>{try{var d=a.i(34020),e=a.i(71938),f=a.i(10581),g=a.i(76192),h=a.i(99443),i=a.i(57900),j=a.i(91957),k=a.i(58489),l=a.i(38285),m=a.i(71173),n=a.i(9135),o=a.i(57634),p=a.i(82424),q=a.i(83643),r=a.i(76446),s=a.i(25377),t=b([i]);function u(){let a=(0,l.useChatConfig)(),b=(0,p.useActiveInstance)(),c=b.activeInstance,t=(0,m.useChatHistory)(b),[u,v]=(0,e.useState)(null),[w,x]=(0,e.useState)(!1),y=(0,e.useRef)(!1),z=(0,e.useCallback)((d,e)=>{if(!b.ready||e.requireSent&&!y.current)return;let f=u??(0,q.newId)("session");u||v(f);let g=e.preserveTitle?t.get(f):null,h=g?.title??(0,m.deriveSessionTitle)(d),i={id:f,title:h,updatedAt:Date.now(),activeInstance:c,config:a.toSessionConfig(),messages:d};t.upsert(i),a.providerId&&(0,o.writeLastConfig)(c,{providerId:a.providerId,model:a.model})},[u,a,t,c,b.ready]),A=(0,e.useCallback)(a=>{z(a,{requireSent:!0,preserveTitle:!1})},[z]),B=(0,e.useMemo)(()=>(0,l.buildRagFromMounts)(a),[a]),C=(0,n.useQaChat)({activeInstance:c,providerId:a.providerId,model:a.model,systemPrompt:a.systemPrompt,temperature:a.temperature,rag:B,onPersist:A}),D=(0,e.useCallback)(d=>{if(!b.ready)return;let e=t.get(d);e&&(e.activeInstance??null)===c&&(v(d),y.current=e.messages.length>0,C.setMessages(e.messages),a.hydrate({providerId:e.config.providerId??"",model:e.config.model??"",systemPrompt:e.config.systemPrompt??"",temperature:e.config.temperature,aggregateTopK:e.config.aggregateTopK??l.DEFAULT_AGGREGATE_TOP_K,perKbTopK:e.config.perKbTopK??l.DEFAULT_PER_KB_TOP_K,retrieval:e.config.retrieval??{},mounts:e.config.mounts??[]}))},[t,C.setMessages,a.hydrate,c,b.ready]),E=(0,e.useCallback)(()=>{v(null),y.current=!1,C.clear();let b=(0,o.readLastConfig)(c);a.setProvider(b.providerId??"",b.model??"")},[C.clear,c,a.setProvider]),F=(0,e.useCallback)(a=>{t.remove(a),u===a&&(v(null),y.current=!1,C.clear())},[t,u,C]),G=(0,e.useCallback)(()=>{t.clear(),v(null),y.current=!1,C.clear()},[t,C.clear]),H=(0,e.useCallback)(a=>{y.current=!0,C.send(a)},[C]),I=(0,e.useCallback)((a,b)=>{y.current=!0,C.editUserMessage(a,b),C.reissueTurn(a)},[C]),J=(0,e.useCallback)(a=>{let b=(0,r.findUserAnchorAbove)(C.messages,a);b&&(y.current=!0,C.reissueTurn(b.id))},[C]),K=(0,e.useCallback)(()=>{y.current=C.messages.length>0||y.current,z(C.messages,{requireSent:!1,preserveTitle:!0})},[C.messages,z]),L=(0,e.useRef)({activeInstance:null,ready:!1,dataScopeKey:s.PENDING_DATA_SCOPE_KEY,configRevision:""});(0,e.useEffect)(()=>{let c=L.current;c.ready&&b.ready&&c.dataScopeKey!==b.dataScopeKey&&(a.reset(),v(null),y.current=!1,C.clear()),b.ready&&(L.current=b)},[b.dataScopeKey,b.ready]),(0,e.useEffect)(()=>{if(u||a.providerId)return;let b=(0,o.readLastConfig)(c);b.providerId&&a.setProvider(b.providerId,b.model??"")},[c,u,a.providerId]);let M=u?t.get(u):null,N=b.ready&&!!(a.providerId&&a.model),O=M?.title??"新对话",P=a.mounts.length,Q=!u&&a.mounts.length>0?`已沿用上一会话的 ${a.mounts.length} 个知识库挂载,按右上角齿轮可调整。`:null;return(0,d.jsxs)(h.AppShellLayout,{children:[(0,d.jsx)(j.ChatHistorySidebar,{sessions:t.sessions,activeSessionId:u,onNewSession:E,onSelectSession:D,onDeleteSession:F,onClearAll:G}),(0,d.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col bg-[hsl(var(--card))]",children:[(0,d.jsxs)("header",{className:"flex h-14 shrink-0 items-center justify-between gap-3 border-b border-[hsl(var(--border))] px-5",children:[(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsx)("h1",{className:"truncate text-sm font-semibold text-[hsl(var(--foreground))]",children:O}),(0,d.jsx)("p",{className:"mt-0.5 truncate text-xs text-[hsl(var(--muted-foreground))]",children:a.providerId&&a.model?(0,d.jsxs)(d.Fragment,{children:[a.model," · ",P," 个知识库 · 聚合 ",a.aggregateTopK]}):"点击右上角设置挂载模型与知识库"})]}),(0,d.jsx)(g.Button,{type:"button",variant:"ghost",size:"icon",onClick:()=>x(!0),title:"对话配置",children:(0,d.jsx)(f.Settings2,{className:"h-4 w-4"})})]}),(0,d.jsx)(i.QaChatPanel,{messages:C.messages,isStreaming:C.isStreaming,canSend:N,error:C.error,onSend:H,onStop:C.stop,onDelete:C.deleteMessage,onResend:C.reissueTurn,onRegenerate:J,onEditSave:I,emptyState:{title:N?"可以开始对话了":"开始对话",description:Q?`${Q} 直接在下方输入你的问题。`:N?"直接在下方输入你的问题;随时可以通过右上角齿轮调整模型或挂载的知识库":"点击右上角齿轮,选择模型并挂载知识库,即可开始问答",actionLabel:"打开配置",onAction:()=>x(!0)},disabledPlaceholder:"请先点击右上角齿轮配置模型与知识库"})]}),(0,d.jsx)(k.ChatMountConfig,{open:w,onOpenChange:x,onSave:K})]})}[i]=t.then?(await t)():t,a.s(["default",0,function(){return(0,d.jsx)(l.ChatConfigProvider,{children:(0,d.jsx)(u,{})})}]),c()}catch(a){c(a)}},!1)];
1
+ module.exports=[91957,a=>{"use strict";var b=a.i(34020);let c=(0,a.i(50053).default)("message-square-plus",[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}],["path",{d:"M12 8v6",key:"1ib9pf"}],["path",{d:"M9 11h6",key:"1fldmi"}]]);var d=a.i(55295),e=a.i(76192),f=a.i(64565);function g({session:a,active:c,onSelect:h,onDelete:i}){let j=a.config.mounts.length;return(0,b.jsxs)("div",{className:(0,f.cn)("group flex items-center gap-1 rounded-md px-2 py-1.5 text-sm transition-colors",c?"bg-[hsl(var(--accent))] text-foreground":"text-foreground/80 hover:bg-[hsl(var(--accent)/0.6)]"),children:[(0,b.jsxs)("button",{type:"button",onClick:h,className:"flex min-w-0 flex-1 flex-col items-start text-left",children:[(0,b.jsx)("span",{className:"w-full truncate font-medium",children:a.title}),(0,b.jsxs)("span",{className:"flex items-center gap-1.5 text-[11px] text-muted-foreground",children:[(0,b.jsx)("span",{children:function(a){let b=Math.floor((Date.now()-a)/6e4);if(b<1)return"刚刚";if(b<60)return`${b} 分钟前`;let c=Math.floor(b/60);if(c<24)return`${c} 小时前`;let d=Math.floor(c/24);return d<7?`${d} 天前`:new Date(a).toLocaleDateString()}(a.updatedAt)}),j>0?(0,b.jsxs)("span",{children:["· ",j," KB"]}):null]})]}),(0,b.jsx)(e.Button,{type:"button",variant:"ghost",size:"icon",onClick:a=>{a.stopPropagation(),i()},className:"h-6 w-6 opacity-0 group-hover:opacity-100",title:"删除",children:(0,b.jsx)(d.Trash2,{className:"h-3 w-3 text-muted-foreground"})})]})}a.s(["ChatHistorySidebar",0,function({sessions:a,activeSessionId:f,onNewSession:h,onSelectSession:i,onDeleteSession:j,onClearAll:k}){return(0,b.jsxs)("aside",{className:"flex h-full w-64 shrink-0 flex-col border-r border-[hsl(var(--border))] bg-[hsl(var(--surface))]",children:[(0,b.jsx)("div",{className:"border-b border-[hsl(var(--border))] p-3",children:(0,b.jsxs)(e.Button,{type:"button",onClick:h,className:"w-full justify-start gap-2",variant:"outline",children:[(0,b.jsx)(c,{className:"h-4 w-4"}),"新对话"]})}),(0,b.jsx)("div",{className:"flex-1 overflow-y-auto",children:0===a.length?(0,b.jsx)("p",{className:"px-3 py-6 text-center text-xs text-muted-foreground",children:"暂无历史对话"}):(0,b.jsx)("ul",{className:"space-y-0.5 p-2",children:a.map(a=>(0,b.jsx)("li",{children:(0,b.jsx)(g,{session:a,active:a.id===f,onSelect:()=>i(a.id),onDelete:()=>j(a.id)})},a.id))})}),a.length>0?(0,b.jsx)("div",{className:"border-t border-[hsl(var(--border))] p-2",children:(0,b.jsxs)(e.Button,{type:"button",variant:"ghost",size:"sm",onClick:k,className:"w-full justify-start gap-2 text-muted-foreground hover:text-[hsl(var(--destructive))]",children:[(0,b.jsx)(d.Trash2,{className:"h-3.5 w-3.5"}),"清空全部"]})}):null]})}],91957)},38285,a=>{"use strict";var b=a.i(34020),c=a.i(71938),d=a.i(93078),e=a.i(83643);let f={providerId:"",model:"",systemPrompt:"",temperature:void 0,aggregateTopK:20,perKbTopK:20,retrieval:{searchType:["DENSE_VECTOR","FULL_TEXT"],rerankType:"WEIGHT",weightDense:.7,weightFullText:.3},mounts:[]};function g(a,b){switch(b.type){case"SET_PROVIDER":return{...a,providerId:b.providerId,model:b.model};case"SET_MODEL":return{...a,model:b.model};case"SET_SYSTEM_PROMPT":return{...a,systemPrompt:b.value};case"SET_TEMPERATURE":return{...a,temperature:b.value};case"SET_AGGREGATE_TOP_K":return{...a,aggregateTopK:b.value};case"SET_PER_KB_TOP_K":return{...a,perKbTopK:b.value};case"SET_RETRIEVAL":return{...a,retrieval:b.value};case"ADD_MOUNT":if(a.mounts.some(a=>a.knowledgeBaseName===b.mount.knowledgeBaseName))return a;return{...a,mounts:[...a.mounts,b.mount]};case"UPDATE_MOUNT":return{...a,mounts:a.mounts.map(a=>a.id===b.id?{...a,...b.patch}:a)};case"RESET_MOUNT_RETRIEVAL":return{...a,mounts:a.mounts.map(a=>{if(a.id!==b.id)return a;let{retrieval:c,topK:d,...e}=a;return e})};case"REMOVE_MOUNT":return{...a,mounts:a.mounts.filter(a=>a.id!==b.id)};case"REORDER_MOUNTS":{let c=new Map(a.mounts.map(a=>[a.id,a])),d=b.ids.map(a=>c.get(a)).filter(a=>!!a);return{...a,mounts:d}}case"HYDRATE":return{...a,...b.state};case"SET_MEMORY":{if(!b.binding)return{...a,memory:void 0};let c=b.binding.scope.runId||(0,e.newId)("run");return{...a,memory:{id:a.memory?.id??(0,e.newId)("memory"),...b.binding,scope:{...b.binding.scope,runId:c}}}}case"UPDATE_MEMORY":{if(!a.memory)return a;let{scope:c,...d}=b.patch;return{...a,memory:{...a.memory,...d,scope:{...a.memory.scope,...c??{}}}}}case"RESET":return f;default:return a}}let h=(0,c.createContext)(null);a.s(["ChatConfigProvider",0,function({children:a}){let[d,e]=(0,c.useReducer)(g,f),i=(0,c.useMemo)(()=>({...d,setProvider:(a,b)=>e({type:"SET_PROVIDER",providerId:a,model:b}),setModel:a=>e({type:"SET_MODEL",model:a}),setSystemPrompt:a=>e({type:"SET_SYSTEM_PROMPT",value:a}),setTemperature:a=>e({type:"SET_TEMPERATURE",value:a}),setAggregateTopK:a=>e({type:"SET_AGGREGATE_TOP_K",value:a}),setPerKbTopK:a=>e({type:"SET_PER_KB_TOP_K",value:a}),setRetrieval:a=>e({type:"SET_RETRIEVAL",value:a}),addMount:a=>e({type:"ADD_MOUNT",mount:a}),updateMount:(a,b)=>e({type:"UPDATE_MOUNT",id:a,patch:b}),resetMountRetrieval:a=>e({type:"RESET_MOUNT_RETRIEVAL",id:a}),removeMount:a=>e({type:"REMOVE_MOUNT",id:a}),reorderMounts:a=>e({type:"REORDER_MOUNTS",ids:a}),setMemory:a=>e({type:"SET_MEMORY",binding:a}),updateMemory:a=>e({type:"UPDATE_MEMORY",patch:a}),hydrate:a=>e({type:"HYDRATE",state:a}),reset:()=>e({type:"RESET"}),toSessionConfig:()=>({providerId:d.providerId||void 0,model:d.model||void 0,systemPrompt:d.systemPrompt||void 0,temperature:d.temperature,aggregateTopK:d.aggregateTopK,perKbTopK:d.perKbTopK,retrieval:d.retrieval,mounts:d.mounts,memory:d.memory})}),[d]);return(0,b.jsx)(h.Provider,{value:i,children:a})},"DEFAULT_AGGREGATE_TOP_K",0,20,"DEFAULT_PER_KB_TOP_K",0,20,"buildMemoryFromBinding",0,function(a){let b=a.memory;if(!b)return;let{appId:c,tenantId:d,agentId:e,runId:f}=b.scope;if(c&&d&&e&&f)return{memoryStoreName:b.memoryStoreName,scope:{appId:c,tenantId:d,agentId:e,runId:f},..."number"==typeof b.topK?{topK:b.topK}:{},autoSave:b.autoSave}},"buildRagFromMounts",0,function(a){if(a.mounts.length)return{knowledgeBases:a.mounts.map(b=>{let c=b.retrieval??a.retrieval,e=b.topK??a.perKbTopK,f=(0,d.assembleRetrievalConfiguration)(c,e);return{knowledgeBaseName:b.knowledgeBaseName,...b.subspace?.length?{subspace:b.subspace}:{},...f?{retrievalConfiguration:f}:{},topK:e}}),topK:a.aggregateTopK}},"useChatConfig",0,function(){let a=(0,c.useContext)(h);if(!a)throw Error("useChatConfig must be used within a ChatConfigProvider");return a}])},58489,a=>{"use strict";var b=a.i(34020),c=a.i(71938),d=a.i(53520),e=a.i(88619),f=a.i(14151),g=a.i(64565);let h=e.Root;e.Trigger,e.Close;let i=e.Portal,j=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(e.Overlay,{ref:d,className:(0,g.cn)("fixed inset-0 z-50 bg-black/30 backdrop-blur-sm duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",a),...c}));j.displayName=e.Overlay.displayName;let k={top:"inset-x-0 top-0 border-b data-[state=open]:slide-in-from-top data-[state=closed]:slide-out-to-top",bottom:"inset-x-0 bottom-0 border-t data-[state=open]:slide-in-from-bottom data-[state=closed]:slide-out-to-bottom",left:"inset-y-0 left-0 h-full w-3/4 max-w-sm border-r data-[state=open]:slide-in-from-left data-[state=closed]:slide-out-to-left",right:"inset-y-0 right-0 h-full w-3/4 max-w-md border-l data-[state=open]:slide-in-from-right data-[state=closed]:slide-out-to-right"},l=c.forwardRef(({className:a,children:c,side:d="right",...h},l)=>(0,b.jsxs)(i,{children:[(0,b.jsx)(j,{}),(0,b.jsxs)(e.Content,{ref:l,className:(0,g.cn)("fixed z-50 flex flex-col gap-4 bg-[hsl(var(--card))] p-6 shadow-md border-[hsl(var(--border))]","duration-300 ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out",k[d],a),...h,children:[c,(0,b.jsxs)(e.Close,{className:"absolute right-4 top-4 rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none",children:[(0,b.jsx)(f.X,{className:"h-4 w-4"}),(0,b.jsx)("span",{className:"sr-only",children:"Close"})]})]})]}));l.displayName=e.Content.displayName;let m=({className:a,...c})=>(0,b.jsx)("div",{className:(0,g.cn)("flex flex-col space-y-1.5 text-left",a),...c});m.displayName="SheetHeader";let n=({className:a,...c})=>(0,b.jsx)("div",{className:(0,g.cn)("mt-auto flex flex-col-reverse gap-2 sm:flex-row sm:justify-end sm:space-x-2",a),...c});n.displayName="SheetFooter";let o=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(e.Title,{ref:d,className:(0,g.cn)("text-base font-semibold leading-tight",a),...c}));o.displayName=e.Title.displayName;let p=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(e.Description,{ref:d,className:(0,g.cn)("text-sm text-[hsl(var(--muted-foreground))]",a),...c}));p.displayName=e.Description.displayName;var q=a.i(76192),r=a.i(72518),s=a.i(62491),t=a.i(9367),u=a.i(38285),v=a.i(64363),w=a.i(32191),x=a.i(87951),y=a.i(83643),z=a.i(25825),A=a.i(23028),B=a.i(55553),C=a.i(84252);function D({kbs:a,onPick:d,children:e,align:f="start"}){let[g,h]=(0,c.useState)(!1),i=b=>{let c=a.find(a=>a.knowledgeBaseName===b);c&&(d(c),h(!1))};return(0,b.jsxs)(C.Popover,{open:g,onOpenChange:h,children:[(0,b.jsx)(C.PopoverTrigger,{asChild:!0,children:e}),(0,b.jsx)(C.PopoverContent,{align:f,sideOffset:6,className:"w-[var(--radix-popover-trigger-width)] min-w-[260px] p-0",children:(0,b.jsxs)(B.Command,{children:[(0,b.jsx)(B.CommandInput,{placeholder:"搜索知识库..."}),(0,b.jsxs)(B.CommandList,{children:[(0,b.jsx)(B.CommandEmpty,{children:"未找到匹配的知识库"}),a.length>0?(0,b.jsx)(B.CommandGroup,{children:a.map(a=>(0,b.jsxs)(B.CommandItem,{value:a.knowledgeBaseName,onSelect:i,children:[(0,b.jsx)(A.Database,{className:"text-[hsl(var(--muted-foreground))]"}),(0,b.jsx)("span",{className:"truncate",children:a.knowledgeBaseName})]},a.knowledgeBaseName))}):null]})]})})]})}function E({kbs:a,onAdd:c}){return 0===a.length?null:(0,b.jsx)(D,{kbs:a,onPick:c,align:"start",children:(0,b.jsxs)("button",{type:"button",className:"group flex w-full items-center justify-center gap-1.5 rounded-md border border-dashed border-[hsl(var(--border))] bg-transparent px-3 py-2 text-xs font-medium text-[hsl(var(--muted-foreground))] transition-colors hover:border-[hsl(var(--primary)/0.5)] hover:bg-[hsl(var(--primary-soft))] hover:text-[hsl(var(--primary))] 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))]",children:[(0,b.jsx)(z.Plus,{className:"h-3.5 w-3.5 transition-transform group-hover:rotate-90"}),"添加更多知识库",(0,b.jsxs)("span",{className:"text-[hsl(var(--muted-foreground))]/70 group-hover:text-[hsl(var(--primary))]/70",children:["(",a.length,")"]})]})})}var F=a.i(12583),G=a.i(47845),H=a.i(16772),I=a.i(1078),J=a.i(55295),K=a.i(63265),L=a.i(10220),M=a.i(74024),N=a.i(63525);function O(){let a=(0,u.useChatConfig)(),{data:d,isLoading:e}=(0,L.useMemoryStores)(),f=d?.items??[],g=a.memory,h=(0,c.useId)();return(0,b.jsxs)("div",{className:"space-y-3 border-t border-[hsl(var(--border))] pt-4",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)(s.Label,{className:"text-sm font-medium",children:"绑定的记忆库"}),(0,b.jsx)("p",{className:"mt-0.5 text-xs text-muted-foreground",children:g?`每轮检索 Top-${g.topK??5},对话后写回当前范围`:"绑定后服务端在每轮对话前检索、对话后写回;同一应用 + 租户下记忆跨智能体可共享"})]}),g&&(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)(s.Label,{htmlFor:h,className:"text-xs text-muted-foreground",title:"每轮检索返回的记忆条数上限",children:"Top-K"}),(0,b.jsx)(r.Input,{id:h,type:"number",min:1,max:50,className:"h-8 w-20",value:g.topK??5,onChange:b=>{let c=parseInt(b.target.value,10),d=Number.isFinite(c)&&c>=1&&c<=50?c:5;a.updateMemory({topK:d})}})]})]}),g?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(Q,{value:g.memoryStoreName,stores:f,onChange:b=>a.updateMemory({memoryStoreName:b}),onUnbind:()=>a.setMemory(void 0)}),(0,b.jsx)(R,{appId:g.scope.appId,tenantId:g.scope.tenantId,agentId:g.scope.agentId,runId:g.scope.runId,autoSave:g.autoSave,onScopeChange:b=>a.updateMemory({scope:b}),onAutoSaveChange:b=>a.updateMemory({autoSave:b})})]}):(0,b.jsx)(P,{stores:f,isLoading:e,onBind:()=>a.setMemory({memoryStoreName:f[0]?.memoryStoreName??"",scope:{appId:"",tenantId:"",agentId:"",runId:""},autoSave:!0,topK:5})})]})}function P(a){let{stores:c,isLoading:d,onBind:e}=a,f=!d&&0===c.length;return(0,b.jsxs)("div",{className:"animate-home-reveal relative overflow-hidden rounded-lg border border-dashed border-[hsl(var(--primary)/0.35)] bg-gradient-to-br from-[hsl(var(--primary-soft))] via-[hsl(var(--surface))] to-[hsl(var(--surface))] px-5 py-6 text-center",role:"region","aria-label":"绑定记忆库",children:[(0,b.jsx)(I.Sparkles,{className:"pointer-events-none absolute right-3 top-3 h-3.5 w-3.5 text-[hsl(var(--primary)/0.45)]","aria-hidden":!0}),(0,b.jsx)("div",{className:"mx-auto mb-3 flex h-12 w-12 items-center justify-center rounded-xl bg-[hsl(var(--primary-soft))] ring-1 ring-[hsl(var(--primary)/0.18)]",children:(0,b.jsx)(G.Brain,{className:"h-6 w-6 text-[hsl(var(--primary))]"})}),(0,b.jsx)("h3",{className:"text-sm font-semibold text-[hsl(var(--foreground))]",children:f?"还没有任何记忆库":"绑定记忆库以让对话拥有长期记忆"}),(0,b.jsx)("p",{className:"mx-auto mt-1 max-w-[320px] text-xs leading-relaxed text-[hsl(var(--muted-foreground))]",children:f?"创建第一个记忆库后,即可在对话中绑定并自动写回 / 检索":"绑定后服务端会在每轮对话前检索相关记忆注入到 system prompt,对话结束后自动写回到当前范围"}),(0,b.jsxs)("div",{className:"mt-4 flex flex-col items-center gap-2",children:[f?(0,b.jsx)(q.Button,{asChild:!0,size:"default",className:"h-9 px-4",children:(0,b.jsxs)(F.default,{href:"/memory/create",children:[(0,b.jsx)(G.Brain,{className:"h-4 w-4"}),"创建记忆库"]})}):(0,b.jsxs)(q.Button,{type:"button",size:"default",className:"h-9 px-4",disabled:d,onClick:e,children:[(0,b.jsx)(z.Plus,{className:"h-4 w-4"}),"绑定记忆库"]}),f||d?null:(0,b.jsxs)("p",{className:"text-[11px] text-[hsl(var(--muted-foreground))]",children:["从已有的"," ",(0,b.jsx)("span",{className:"font-medium text-[hsl(var(--foreground))]",children:c.length})," ","个记忆库中选择"]})]})]})}function Q(a){return(0,b.jsxs)("div",{className:"flex items-center gap-2 rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--muted)/0.3)] px-3 py-2",children:[(0,b.jsx)(G.Brain,{className:"h-3.5 w-3.5 shrink-0 text-[hsl(var(--primary))]"}),(0,b.jsxs)(N.Select,{value:a.value,onValueChange:a.onChange,children:[(0,b.jsx)(N.SelectTrigger,{className:"h-8 flex-1 border-0 bg-transparent px-1 text-sm font-medium shadow-none hover:bg-[hsl(var(--muted)/0.5)] focus:ring-0 focus:ring-offset-0",children:(0,b.jsx)(N.SelectValue,{placeholder:"选择记忆库"})}),(0,b.jsx)(N.SelectContent,{children:a.stores.map(a=>(0,b.jsx)(N.SelectItem,{value:a.memoryStoreName,children:a.memoryStoreName},a.memoryStoreName))})]}),(0,b.jsx)(q.Button,{type:"button",variant:"ghost",size:"icon",className:"h-7 w-7",onClick:a.onUnbind,title:"解除绑定",children:(0,b.jsx)(J.Trash2,{className:"h-3.5 w-3.5 text-muted-foreground"})})]})}function R(a){return(0,b.jsxs)("div",{className:"space-y-4 border-t border-[hsl(var(--border-light))] pt-3",children:[(0,b.jsxs)("div",{className:"space-y-2.5",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)(s.Label,{className:"text-xs font-medium uppercase tracking-wider text-muted-foreground",children:"写入范围"}),(0,b.jsxs)("p",{className:"mt-1 text-[11px] leading-relaxed text-muted-foreground",children:["服务端在检索时把「智能体 / 会话」派生为通配 ",(0,b.jsx)("code",{className:"rounded bg-muted px-1 py-0.5 font-mono text-[10px]",children:"*"}),", 因此同一应用 + 租户下不同智能体 / 不同会话可以读取彼此的记忆"]})]}),(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,b.jsx)(S,{label:"应用 *",value:a.appId,onChange:b=>a.onScopeChange({appId:b})}),(0,b.jsx)(S,{label:"租户 *",value:a.tenantId,onChange:b=>a.onScopeChange({tenantId:b})}),(0,b.jsx)("div",{className:"col-span-2",children:(0,b.jsx)(S,{label:"智能体 *",value:a.agentId,onChange:b=>a.onScopeChange({agentId:b})})})]})]}),(0,b.jsxs)("div",{className:"flex flex-row items-center justify-between gap-4 rounded-md border border-[hsl(var(--border))] p-3",children:[(0,b.jsxs)("div",{className:"space-y-0.5",children:[(0,b.jsx)(s.Label,{className:"text-sm",children:"对话后自动写入记忆"}),(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:"自动归档:把本轮用户 / 助手消息写入当前范围"})]}),(0,b.jsx)(M.Switch,{checked:a.autoSave,onCheckedChange:a.onAutoSaveChange})]}),(0,b.jsx)(T,{runId:a.runId})]})}function S(a){let d=(0,c.useId)(),e=!a.value;return(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)(s.Label,{htmlFor:d,className:"text-xs",children:a.label}),(0,b.jsx)(r.Input,{id:d,value:a.value,onChange:b=>a.onChange(b.target.value),"aria-invalid":e,className:(0,g.cn)("h-9",e&&"border-[hsl(var(--destructive))]")})]})}function T({runId:a}){let[e,f]=(0,c.useState)(!1);async function g(){if(a)try{await navigator.clipboard.writeText(a),f(!0),K.toast.success("已复制会话 ID"),setTimeout(()=>f(!1),1500)}catch{K.toast.error("复制失败,请手动选择文本")}}return(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsx)(s.Label,{className:"text-xs font-medium uppercase tracking-wider text-muted-foreground",children:"会话 ID"}),(0,b.jsx)("span",{className:"text-[10px] text-muted-foreground",title:"会话 ID 由当前对话自动生成并在整个对话内复用,用于串联同一会话的记忆",children:"自动生成 · 自动复用"})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("code",{className:"flex-1 truncate rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--muted)/0.35)] px-2.5 py-1.5 font-mono text-[11px] text-muted-foreground",children:a||"—"}),(0,b.jsx)(q.Button,{type:"button",variant:"ghost",size:"icon",className:"h-8 w-8 shrink-0","aria-label":"复制会话 ID",disabled:!a,onClick:g,children:e?(0,b.jsx)(d.Check,{className:"h-3.5 w-3.5 text-[hsl(var(--primary))]"}):(0,b.jsx)(H.Copy,{className:"h-3.5 w-3.5"})})]})]})}function U({kbs:a,onAdd:c}){let d=0===a.length;return(0,b.jsxs)("div",{className:"animate-home-reveal relative overflow-hidden rounded-lg border border-dashed border-[hsl(var(--primary)/0.35)] bg-gradient-to-br from-[hsl(var(--primary-soft))] via-[hsl(var(--surface))] to-[hsl(var(--surface))] px-5 py-6 text-center",role:"region","aria-label":"挂载知识库",children:[(0,b.jsx)(I.Sparkles,{className:"pointer-events-none absolute right-3 top-3 h-3.5 w-3.5 text-[hsl(var(--primary)/0.45)]","aria-hidden":!0}),(0,b.jsx)("div",{className:"mx-auto mb-3 flex h-12 w-12 items-center justify-center rounded-xl bg-[hsl(var(--primary-soft))] ring-1 ring-[hsl(var(--primary)/0.18)]",children:(0,b.jsx)(A.Database,{className:"h-6 w-6 text-[hsl(var(--primary))]"})}),(0,b.jsx)("h3",{className:"text-sm font-semibold text-[hsl(var(--foreground))]",children:d?"还没有任何知识库":"挂载知识库以启用 RAG"}),(0,b.jsx)("p",{className:"mx-auto mt-1 max-w-[320px] text-xs leading-relaxed text-[hsl(var(--muted-foreground))]",children:d?"创建第一个知识库后,即可在对话中挂载并启用检索增强":"挂载后,模型将基于知识库内容生成回答,支持并行检索与全局重排"}),(0,b.jsxs)("div",{className:"mt-4 flex flex-col items-center gap-2",children:[d?(0,b.jsx)(q.Button,{asChild:!0,size:"default",className:"h-9 px-4",children:(0,b.jsxs)(F.default,{href:"/knowledge-base/create",children:[(0,b.jsx)(A.Database,{className:"h-4 w-4"}),"创建知识库"]})}):(0,b.jsx)(D,{kbs:a,onPick:c,align:"center",children:(0,b.jsxs)(q.Button,{type:"button",size:"default",className:"h-9 px-4",children:[(0,b.jsx)(z.Plus,{className:"h-4 w-4"}),"挂载知识库"]})}),d?null:(0,b.jsxs)("p",{className:"text-[11px] text-[hsl(var(--muted-foreground))]",children:["从已有的"," ",(0,b.jsx)("span",{className:"font-medium text-[hsl(var(--foreground))]",children:a.length})," ","个知识库中选择"]})]})]})}var V=a.i(10581),W=a.i(71562),X=a.i(71071),Y=a.i(44401),Z=a.i(16106),$=a.i(12537),_=a.i(43836),aa=a.i(92942),ab=a.i(18236),ac=a.i(15325);function ad(a,b,c){return{retrieval:a.retrieval??{...b},topK:a.topK??c}}function ae(a,b){return b&&"MODEL"===a.rerankType?{...a,modelProvider:"bailian",modelName:"qwen3-vl-rerank"}:a}let af=["searchType","rerankType","rrfK","rrfDenseWeight","rrfFullTextWeight","weightDense","weightFullText","modelName","modelProvider"];function ag({mount:a,knowledgeBase:d,open:e,onOpenChange:f}){let g=(0,u.useChatConfig)(),h=void 0===a.retrieval&&void 0===a.topK,i=!!d.multimodal,j=(0,c.useRef)(null),k=(0,c.useMemo)(()=>ad(a,g.retrieval,g.perKbTopK),[a,g.retrieval,g.perKbTopK]),l=(0,W.useForm)({resolver:(0,X.zodResolver)(ac.retrievalSchema),defaultValues:{knowledgeBaseName:d.knowledgeBaseName,queryType:"TEXT",query:"__mount_dialog_placeholder__",subspace:[],topK:k.topK,searchType:k.retrieval.searchType??["DENSE_VECTOR","FULL_TEXT"],rerankType:k.retrieval.rerankType,rrfK:k.retrieval.rrfK,rrfDenseWeight:k.retrieval.rrfDenseWeight,rrfFullTextWeight:k.retrieval.rrfFullTextWeight,weightDense:k.retrieval.weightDense,weightFullText:k.retrieval.weightFullText,modelName:k.retrieval.modelName,modelProvider:k.retrieval.modelProvider}});(0,c.useEffect)(()=>{l.reset({knowledgeBaseName:d.knowledgeBaseName,queryType:"TEXT",query:"__mount_dialog_placeholder__",subspace:[],topK:k.topK,searchType:k.retrieval.searchType??["DENSE_VECTOR","FULL_TEXT"],rerankType:k.retrieval.rerankType,rrfK:k.retrieval.rrfK,rrfDenseWeight:k.retrieval.rrfDenseWeight,rrfFullTextWeight:k.retrieval.rrfFullTextWeight,weightDense:k.retrieval.weightDense,weightFullText:k.retrieval.weightFullText,modelName:k.retrieval.modelName,modelProvider:k.retrieval.modelProvider})},[k,d.knowledgeBaseName]);let m=()=>{if(h)return;let b=l.getValues(),c={};for(let a of af){let d=b[a];void 0===d||Array.isArray(d)&&0===d.length||(c[a]=d)}c=ae(c,i),g.updateMount(a.id,{retrieval:c,topK:"number"==typeof b.topK&&b.topK>=0?b.topK:u.DEFAULT_PER_KB_TOP_K})},n=l.watch("rerankType");return(0,c.useEffect)(()=>{if(h||"MODEL"!==n)return;let a=!1;i?("bailian"!==l.getValues("modelProvider")&&(l.setValue("modelProvider","bailian"),a=!0),"qwen3-vl-rerank"!==l.getValues("modelName")&&(l.setValue("modelName","qwen3-vl-rerank"),a=!0)):(l.getValues("modelProvider")||(l.setValue("modelProvider","bailian"),a=!0),l.getValues("modelName")||(l.setValue("modelName","gte-rerank-v2"),a=!0)),a&&m()},[n,i,h]),(0,b.jsx)(_.Dialog,{open:e,onOpenChange:f,children:(0,b.jsxs)(_.DialogContent,{className:"sm:max-w-[560px] max-h-[85vh] overflow-y-auto data-[state=open]:animate-none data-[state=closed]:animate-none duration-0",children:[(0,b.jsxs)(_.DialogHeader,{children:[(0,b.jsx)(_.DialogTitle,{className:"pr-8",children:"检索参数"}),(0,b.jsxs)(_.DialogDescription,{className:"break-all",children:[d.knowledgeBaseName,i?(0,b.jsx)("span",{className:"ml-2 inline-flex items-center rounded bg-[hsl(var(--secondary))] px-1.5 py-0.5 text-[10px] font-medium tracking-wide text-[hsl(var(--secondary-foreground))]",children:"多模态"}):null]})]}),(0,b.jsxs)("div",{className:"flex items-start gap-2 rounded-md px-3 py-2 text-xs "+(h?"border border-dashed border-[hsl(var(--border))] bg-[hsl(var(--muted)/0.4)] text-muted-foreground":"border border-[hsl(var(--primary)/0.3)] bg-[hsl(var(--primary)/0.06)] text-[hsl(var(--foreground))]"),children:[(0,b.jsx)(Y.Info,{className:"mt-0.5 h-3.5 w-3.5 shrink-0"}),(0,b.jsx)("div",{className:"flex-1 leading-relaxed",children:h?(0,b.jsxs)("span",{children:["当前:",(0,b.jsx)("span",{className:"font-medium",children:"继承全局默认"}),";下方为只读预览。如需偏离全局配置,请点击「使用自定义配置」。"]}):(0,b.jsxs)("span",{children:["当前:",(0,b.jsx)("span",{className:"font-medium",children:"使用自定义配置"}),";字段失焦后自动保存。"]})})]}),i&&!h&&"MODEL"===l.watch("rerankType")?(0,b.jsxs)("div",{className:"flex items-start gap-2 rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--muted)/0.5)] px-3 py-2 text-xs text-muted-foreground",children:[(0,b.jsx)(Y.Info,{className:"mt-0.5 h-3.5 w-3.5 shrink-0"}),(0,b.jsxs)("span",{children:["多模态知识库的 Model Rerank 已锁定为"," ",(0,b.jsx)("span",{className:"font-medium text-[hsl(var(--foreground))]",children:"qwen3-vl-rerank"}),"(Provider:bailian),暂不支持其他模型。"]})]}):null,(0,b.jsx)(aa.Form,{...l,children:(0,b.jsx)("form",{onSubmit:a=>a.preventDefault(),onBlur:m,className:"space-y-4 "+(h?"pointer-events-none select-none opacity-60":""),"aria-disabled":h,children:(0,b.jsx)("fieldset",{disabled:h,className:"space-y-4 contents",children:(0,b.jsx)(ab.RetrievalParamsFields,{form:l,filterRef:j,topKLabel:"TopK",topKHint:"检索返回条数,不设置则继承全局默认",topKMode:"single"})})})}),(0,b.jsxs)(_.DialogFooter,{className:"sm:justify-between",children:[(0,b.jsxs)(q.Button,{type:"button",variant:"ghost",size:"sm",onClick:()=>{g.resetMountRetrieval(a.id)},disabled:h,className:"gap-1.5",children:[(0,b.jsx)(Z.RotateCcw,{className:"h-3.5 w-3.5"}),"重置为默认"]}),h?(0,b.jsxs)(q.Button,{type:"button",size:"sm",onClick:()=>{let b=ad(a,g.retrieval,g.perKbTopK),c=ae(b.retrieval,i);g.updateMount(a.id,{retrieval:c,topK:b.topK})},className:"gap-1.5",children:[(0,b.jsx)($.Pencil,{className:"h-3.5 w-3.5"}),"使用自定义配置"]}):(0,b.jsx)(q.Button,{type:"button",variant:"secondary",size:"sm",onClick:()=>f(!1),children:"完成"})]})]})})}function ah({mount:a,subspaceEnabled:d,knowledgeBase:e}){let f=(0,u.useChatConfig)(),[g,h]=(0,c.useState)((a.subspace??[]).join(", ")),[i,j]=(0,c.useState)(!1);return(0,b.jsxs)("div",{className:"flex items-center gap-2 rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--muted)/0.3)] px-3 py-2",children:[(0,b.jsx)("span",{className:"flex-1 truncate text-sm font-medium",title:a.knowledgeBaseName,children:a.knowledgeBaseName}),d?(0,b.jsx)(r.Input,{value:g,onChange:a=>h(a.target.value),onBlur:()=>{let b=g.split(",").map(a=>a.trim()).filter(Boolean),c=a.subspace??[];b.length===c.length&&b.every((a,b)=>a===c[b])||f.updateMount(a.id,{subspace:b.length?b:void 0})},onKeyDown:a=>{"Enter"===a.key&&(a.preventDefault(),a.target.blur())},placeholder:"subspace (逗号分隔)",className:"h-8 w-44 text-xs"}):null,(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsx)(q.Button,{type:"button",variant:"ghost",size:"icon",className:"h-7 w-7",onClick:()=>j(!0),disabled:!e,title:e?"检索参数":"知识库信息加载中",children:(0,b.jsx)(V.Settings2,{className:"h-3.5 w-3.5 text-muted-foreground"})}),a.retrieval?(0,b.jsx)("span",{"aria-hidden":!0,className:"pointer-events-none absolute -top-0.5 -right-0.5 h-2 w-2 rounded-full bg-primary"}):null]}),(0,b.jsx)(q.Button,{type:"button",variant:"ghost",size:"icon",className:"h-7 w-7",onClick:()=>f.removeMount(a.id),title:"移除",children:(0,b.jsx)(J.Trash2,{className:"h-3.5 w-3.5 text-muted-foreground"})}),e?(0,b.jsx)(ag,{mount:a,knowledgeBase:e,open:i,onOpenChange:j}):null]})}var ai=a.i(1927),aj=a.i(27692);let ak=["searchType","rerankType","rrfK","rrfDenseWeight","rrfFullTextWeight","weightDense","weightFullText","modelName","modelProvider"];function al({disabled:a,singleKb:d}){let e=(0,u.useChatConfig)(),f=(0,c.useRef)(null),g=(0,W.useForm)({resolver:(0,X.zodResolver)(ac.retrievalSchema),defaultValues:{knowledgeBaseName:d?.knowledgeBaseName??"__unified__",queryType:"TEXT",query:"__unified_placeholder__",subspace:[],topK:e.perKbTopK,searchType:e.retrieval.searchType??["DENSE_VECTOR","FULL_TEXT"],rerankType:e.retrieval.rerankType,rrfK:e.retrieval.rrfK,rrfDenseWeight:e.retrieval.rrfDenseWeight,rrfFullTextWeight:e.retrieval.rrfFullTextWeight,weightDense:e.retrieval.weightDense,weightFullText:e.retrieval.weightFullText,modelName:e.retrieval.modelName,modelProvider:e.retrieval.modelProvider}});(0,c.useEffect)(()=>{g.reset({knowledgeBaseName:d?.knowledgeBaseName??"__unified__",queryType:"TEXT",query:"__unified_placeholder__",subspace:[],topK:e.perKbTopK,searchType:e.retrieval.searchType??["DENSE_VECTOR","FULL_TEXT"],rerankType:e.retrieval.rerankType,rrfK:e.retrieval.rrfK,rrfDenseWeight:e.retrieval.rrfDenseWeight,rrfFullTextWeight:e.retrieval.rrfFullTextWeight,weightDense:e.retrieval.weightDense,weightFullText:e.retrieval.weightFullText,modelName:e.retrieval.modelName,modelProvider:e.retrieval.modelProvider})},[e.retrieval,e.perKbTopK,d?.knowledgeBaseName]);let h=()=>{let a=g.getValues(),b={};for(let c of ak){let d=a[c];void 0===d||Array.isArray(d)&&0===d.length||(b[c]=d)}e.setRetrieval(b),e.setPerKbTopK("number"==typeof a.topK&&a.topK>=0?a.topK:u.DEFAULT_PER_KB_TOP_K)},i=g.watch("rerankType");(0,c.useEffect)(()=>{if("MODEL"!==i)return;let a=!1;g.getValues("modelProvider")||(g.setValue("modelProvider","bailian"),a=!0),g.getValues("modelName")||(g.setValue("modelName","gte-rerank-v2"),a=!0),a&&h()},[i]);let[j,k]=(0,c.useState)(!1);return(0,b.jsxs)(aj.Collapsible,{open:!a&&j,onOpenChange:b=>{a||k(b)},className:"space-y-3 border-t border-[hsl(var(--border))] pt-4"+(a?" pointer-events-none opacity-50":""),"aria-disabled":a,children:[(0,b.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)(s.Label,{className:"text-sm font-medium",children:"全局默认检索参数"}),(0,b.jsx)("p",{className:"mt-0.5 text-xs text-muted-foreground",children:"未单独配置的知识库将使用此默认参数"})]}),!a&&(0,b.jsx)(aj.CollapsibleTrigger,{type:"button","aria-label":j?"收起全局默认检索参数":"展开全局默认检索参数",className:"inline-flex h-7 w-7 shrink-0 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-[hsl(var(--accent))] hover:text-[hsl(var(--accent-foreground))]",children:(0,b.jsx)(ai.ChevronDown,{className:"h-4 w-4 transition-transform duration-150"+(j?" rotate-180":"")})})]}),a?(0,b.jsxs)("div",{className:"flex items-start gap-2 rounded-md border border-dashed border-[hsl(var(--border))] bg-[hsl(var(--muted)/0.4)] px-3 py-3 text-xs text-muted-foreground",children:[(0,b.jsx)(Y.Info,{className:"mt-0.5 h-3.5 w-3.5 shrink-0"}),(0,b.jsx)("span",{children:"挂载至少一个知识库后即可配置全局默认检索参数"})]}):(0,b.jsx)(aj.CollapsibleContent,{children:(0,b.jsx)(aa.Form,{...g,children:(0,b.jsx)("form",{onSubmit:a=>a.preventDefault(),onBlur:h,className:"space-y-4",children:(0,b.jsx)(ab.RetrievalParamsFields,{form:g,knowledgeBase:d,filterRef:f,topKLabel:"TopK",topKHint:"单库检索条数,默认 20",topKMode:"single"})})})})]})}a.s(["ChatMountConfig",0,function({open:a,onOpenChange:e,onSave:f}){let g=(0,u.useChatConfig)(),{data:i}=(0,t.useKnowledgeBases)(),j=i?.items??[],k=j.filter(a=>!g.mounts.some(b=>b.knowledgeBaseName===a.knowledgeBaseName)),[z,A]=(0,c.useState)(String(g.aggregateTopK));(0,c.useEffect)(()=>{A(String(g.aggregateTopK))},[g.aggregateTopK]);let[B,C]=(0,c.useState)(!1),D=(0,c.useRef)(null);return(0,c.useEffect)(()=>()=>{D.current&&clearTimeout(D.current)},[]),(0,b.jsx)(h,{open:a,onOpenChange:e,children:(0,b.jsxs)(l,{side:"right",className:"flex w-full flex-col gap-0 p-0 sm:max-w-[520px]",children:[(0,b.jsxs)(m,{className:"border-b border-[hsl(var(--border))] px-6 py-4",children:[(0,b.jsx)(o,{children:"对话配置"}),(0,b.jsx)(p,{children:"选择模型、编辑 system prompt,挂载多个知识库作为检索来源"})]}),(0,b.jsxs)("div",{className:"flex-1 space-y-5 overflow-y-auto px-6 py-5",children:[(0,b.jsx)(v.LLMModelSelector,{providerId:g.providerId,model:g.model,onProviderChange:(a,b)=>{g.setProvider(a,b??"")},onModelChange:a=>g.setModel(a)}),(0,b.jsx)(w.SystemPromptInput,{value:g.systemPrompt,onChange:a=>g.setSystemPrompt(a),placeholder:"留空使用默认 prompt",label:"System Prompt"}),(0,b.jsx)(x.TemperatureSlider,{value:g.temperature??.7,onChange:a=>g.setTemperature(a),label:"Temperature"}),(0,b.jsxs)("div",{className:"space-y-3 border-t border-[hsl(var(--border))] pt-4",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)(s.Label,{className:"text-sm font-medium",children:"挂载的知识库"}),(0,b.jsxs)("p",{className:"mt-0.5 text-xs text-muted-foreground",children:["并行检索,按 score 全局重排,取前 ",g.aggregateTopK," 条"]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)(s.Label,{className:"text-xs text-muted-foreground",title:"合并所有 KB 的命中后按分数截断的上限",children:"聚合 topK"}),(0,b.jsx)(r.Input,{type:"text",inputMode:"numeric",value:z,onChange:a=>A(a.target.value),onBlur:()=>{let a=parseInt(z,10);Number.isFinite(a)&&a>=1&&a<=200?(g.setAggregateTopK(a),A(String(a))):(g.setAggregateTopK(u.DEFAULT_AGGREGATE_TOP_K),A(String(u.DEFAULT_AGGREGATE_TOP_K)))},className:"h-8 w-20"})]})]}),0===g.mounts.length?(0,b.jsx)(U,{kbs:j,onAdd:a=>g.addMount({id:(0,y.newId)("mount"),knowledgeBaseName:a.knowledgeBaseName})}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"space-y-2",children:g.mounts.map(a=>{let c=j.find(b=>b.knowledgeBaseName===a.knowledgeBaseName);return(0,b.jsx)(ah,{mount:a,subspaceEnabled:c?.subspace===!0,knowledgeBase:c},a.id)})}),(0,b.jsx)(E,{kbs:k,onAdd:a=>g.addMount({id:(0,y.newId)("mount"),knowledgeBaseName:a.knowledgeBaseName})})]})]}),(0,b.jsx)(al,{disabled:0===g.mounts.length,singleKb:1===g.mounts.length?j.find(a=>a.knowledgeBaseName===g.mounts[0].knowledgeBaseName):void 0}),(0,b.jsx)(O,{})]}),(0,b.jsxs)(n,{className:"gap-2 border-t border-[hsl(var(--border))] bg-[hsl(var(--surface))] px-6 py-3 sm:items-center sm:justify-between sm:space-x-0",children:[(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:"未保存的修改在发送下一条消息时也会自动持久化"}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(q.Button,{type:"button",variant:"ghost",onClick:()=>e(!1),children:"关闭"}),(0,b.jsx)(q.Button,{type:"button",onClick:()=>{f(),C(!0),D.current&&clearTimeout(D.current),D.current=setTimeout(()=>C(!1),2e3)},disabled:B,children:B?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(d.Check,{className:"mr-1.5 h-4 w-4"}),"已保存"]}):"保存配置"})]})]})]})})}],58489)},71173,a=>{"use strict";var b=a.i(71938);function c(a){return a&&a.length>0?a:null}function d(a){let b;return`tsagent.chat.sessions.v2.${(b=c(a))?`project.${encodeURIComponent(b)}`:"unbound"}`}function e(a){return(d(a),[]).filter(b=>c(b.activeInstance)===c(a))}a.i(83643);let f=[];function g(){return f}a.s(["deriveSessionTitle",0,function(a){let b=a.find(a=>"user"===a.role);if(!b)return"新对话";let c=b.content.replace(/\s+/g," ").trim();return c?c.length>24?`${c.slice(0,24)}…`:c:"新对话"},"useChatHistory",0,function(a){let h=c(a.activeInstance),i=a.ready?d(h):null,j=(0,b.useCallback)(a=>()=>{},[i]),k=(0,b.useCallback)(()=>(a.ready,f),[h,a.ready]),l=(0,b.useSyncExternalStore)(j,k,g),m=(0,b.useCallback)(b=>{if(a.ready){var f,g;let a,i,j,k,l;i=e(a=c(h)),k=(j={...b,activeInstance:a}).messages.length>200?{...j,messages:j.messages.slice(-200)}:j,(l=i.findIndex(a=>a.id===k.id))>=0?i[l]=k:i.push(k),f=a,g=i.sort((a,b)=>b.updatedAt-a.updatedAt).slice(0,50),d(f)}},[h,a.ready]),n=(0,b.useCallback)(b=>{if(a.ready){let a,f;f=e(a=c(h)).filter(a=>a.id!==b),d(a)}},[h,a.ready]),o=(0,b.useCallback)(()=>{a.ready&&d(c(h))},[h,a.ready]),p=(0,b.useCallback)(b=>{var d;return a.ready?(d=b,e(c(h)).sort((a,b)=>b.updatedAt-a.updatedAt).find(a=>a.id===d)??null):null},[h,a.ready]);return(0,b.useMemo)(()=>({sessions:l,upsert:m,remove:n,clear:o,get:p}),[l,m,n,o,p])}])},57634,a=>{"use strict";a.s(["readLastConfig",0,function(a){return{}},"writeLastConfig",0,function(a,b){}])},45533,a=>a.a(async(b,c)=>{try{var d=a.i(34020),e=a.i(71938),f=a.i(10581),g=a.i(76192),h=a.i(99443),i=a.i(57900),j=a.i(91957),k=a.i(58489),l=a.i(38285),m=a.i(71173),n=a.i(9135),o=a.i(57634),p=a.i(82424),q=a.i(83643),r=a.i(76446),s=a.i(25377),t=b([i]);function u(){let a=(0,l.useChatConfig)(),b=(0,p.useActiveInstance)(),c=b.activeInstance,t=(0,m.useChatHistory)(b),[u,v]=(0,e.useState)(null),[w,x]=(0,e.useState)(!1),y=(0,e.useRef)(!1),z=(0,e.useCallback)((d,e)=>{if(!b.ready||e.requireSent&&!y.current)return;let f=u??(0,q.newId)("session");u||v(f);let g=e.preserveTitle?t.get(f):null,h=g?.title??(0,m.deriveSessionTitle)(d),i={id:f,title:h,updatedAt:Date.now(),activeInstance:c,config:a.toSessionConfig(),messages:d};t.upsert(i),a.providerId&&(0,o.writeLastConfig)(c,{providerId:a.providerId,model:a.model})},[u,a,t,c,b.ready]),A=(0,e.useCallback)(a=>{z(a,{requireSent:!0,preserveTitle:!1})},[z]),B=(0,e.useMemo)(()=>(0,l.buildRagFromMounts)(a),[a]),C=(0,e.useMemo)(()=>(0,l.buildMemoryFromBinding)(a),[a]),D=(0,n.useQaChat)({activeInstance:c,providerId:a.providerId,model:a.model,systemPrompt:a.systemPrompt,temperature:a.temperature,rag:B,memory:C,onPersist:A}),E=(0,e.useCallback)(d=>{if(!b.ready)return;let e=t.get(d);e&&(e.activeInstance??null)===c&&(v(d),y.current=e.messages.length>0,D.setMessages(e.messages),a.hydrate({providerId:e.config.providerId??"",model:e.config.model??"",systemPrompt:e.config.systemPrompt??"",temperature:e.config.temperature,aggregateTopK:e.config.aggregateTopK??l.DEFAULT_AGGREGATE_TOP_K,perKbTopK:e.config.perKbTopK??l.DEFAULT_PER_KB_TOP_K,retrieval:e.config.retrieval??{},memory:e.config.memory,mounts:e.config.mounts??[]}))},[t,D.setMessages,a.hydrate,c,b.ready]),F=(0,e.useCallback)(()=>{v(null),y.current=!1,D.clear();let b=(0,o.readLastConfig)(c);a.setProvider(b.providerId??"",b.model??"")},[D.clear,c,a.setProvider]),G=(0,e.useCallback)(a=>{t.remove(a),u===a&&(v(null),y.current=!1,D.clear())},[t,u,D]),H=(0,e.useCallback)(()=>{t.clear(),v(null),y.current=!1,D.clear()},[t,D.clear]),I=(0,e.useCallback)(a=>{y.current=!0,D.send(a)},[D]),J=(0,e.useCallback)((a,b)=>{y.current=!0,D.editUserMessage(a,b),D.reissueTurn(a)},[D]),K=(0,e.useCallback)(a=>{let b=(0,r.findUserAnchorAbove)(D.messages,a);b&&(y.current=!0,D.reissueTurn(b.id))},[D]),L=(0,e.useCallback)(()=>{y.current=D.messages.length>0||y.current,z(D.messages,{requireSent:!1,preserveTitle:!0})},[D.messages,z]),M=(0,e.useRef)({activeInstance:null,ready:!1,dataScopeKey:s.PENDING_DATA_SCOPE_KEY,configRevision:""});(0,e.useEffect)(()=>{let c=M.current;c.ready&&b.ready&&c.dataScopeKey!==b.dataScopeKey&&(a.reset(),v(null),y.current=!1,D.clear()),b.ready&&(M.current=b)},[b.dataScopeKey,b.ready]),(0,e.useEffect)(()=>{if(u||a.providerId)return;let b=(0,o.readLastConfig)(c);b.providerId&&a.setProvider(b.providerId,b.model??"")},[c,u,a.providerId]);let N=u?t.get(u):null,O=b.ready&&!!(a.providerId&&a.model),P=N?.title??"新对话",Q=a.mounts.length,R=!u&&a.mounts.length>0?`已沿用上一会话的 ${a.mounts.length} 个知识库挂载,按右上角齿轮可调整。`:null;return(0,d.jsxs)(h.AppShellLayout,{children:[(0,d.jsx)(j.ChatHistorySidebar,{sessions:t.sessions,activeSessionId:u,onNewSession:F,onSelectSession:E,onDeleteSession:G,onClearAll:H}),(0,d.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col bg-[hsl(var(--card))]",children:[(0,d.jsxs)("header",{className:"flex h-14 shrink-0 items-center justify-between gap-3 border-b border-[hsl(var(--border))] px-5",children:[(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsx)("h1",{className:"truncate text-sm font-semibold text-[hsl(var(--foreground))]",children:P}),(0,d.jsx)("p",{className:"mt-0.5 truncate text-xs text-[hsl(var(--muted-foreground))]",children:a.providerId&&a.model?(0,d.jsxs)(d.Fragment,{children:[a.model," · ",Q," 个知识库 · 聚合 ",a.aggregateTopK,a.memory?` \xb7 记忆: ${a.memory.memoryStoreName}`:""]}):"点击右上角设置挂载模型与知识库"})]}),(0,d.jsx)(g.Button,{type:"button",variant:"ghost",size:"icon",onClick:()=>x(!0),title:"对话配置",children:(0,d.jsx)(f.Settings2,{className:"h-4 w-4"})})]}),(0,d.jsx)(i.QaChatPanel,{messages:D.messages,isStreaming:D.isStreaming,canSend:O,error:D.error,onSend:I,onStop:D.stop,onDelete:D.deleteMessage,onResend:D.reissueTurn,onRegenerate:K,onEditSave:J,emptyState:{title:O?"可以开始对话了":"开始对话",description:R?`${R} 直接在下方输入你的问题。`:O?"直接在下方输入你的问题;随时可以通过右上角齿轮调整模型或挂载的知识库":"点击右上角齿轮,选择模型并挂载知识库,即可开始问答",actionLabel:"打开配置",onAction:()=>x(!0)},disabledPlaceholder:"请先点击右上角齿轮配置模型与知识库"})]}),(0,d.jsx)(k.ChatMountConfig,{open:w,onOpenChange:x,onSave:L})]})}[i]=t.then?(await t)():t,a.s(["default",0,function(){return(0,d.jsx)(l.ChatConfigProvider,{children:(0,d.jsx)(u,{})})}]),c()}catch(a){c(a)}},!1)];
2
2
 
3
3
  //# sourceMappingURL=dashboard_src_065m1.j._.js.map