@tablestore/tablestore-agent-cli 0.1.9 → 0.2.1

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 (459) hide show
  1. package/dist/commands/kb/create.d.ts.map +1 -1
  2. package/dist/commands/kb/create.js +21 -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 +3 -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/app-path-routes-manifest.json +1 -0
  9. package/dist/dashboard-runtime/dashboard/.next/build-manifest.json +5 -5
  10. package/dist/dashboard-runtime/dashboard/.next/prerender-manifest.json +3 -3
  11. package/dist/dashboard-runtime/dashboard/.next/routes-manifest.json +6 -0
  12. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/chat/page/build-manifest.json +2 -2
  13. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/chat/page.js +1 -1
  14. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
  15. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
  16. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/documents/page/build-manifest.json +2 -2
  17. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/documents/page.js +1 -1
  18. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/documents/page.js.nft.json +1 -1
  19. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/documents/page_client-reference-manifest.js +1 -1
  20. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/page/build-manifest.json +2 -2
  21. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/page.js +1 -1
  22. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/page.js.nft.json +1 -1
  23. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/page_client-reference-manifest.js +1 -1
  24. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/qa/page/build-manifest.json +2 -2
  25. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/qa/page.js +1 -1
  26. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/qa/page.js.nft.json +1 -1
  27. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/qa/page_client-reference-manifest.js +1 -1
  28. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/retrieval/page/build-manifest.json +2 -2
  29. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/retrieval/page.js +1 -1
  30. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/retrieval/page.js.nft.json +1 -1
  31. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/retrieval/page_client-reference-manifest.js +1 -1
  32. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/settings/page/build-manifest.json +2 -2
  33. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/settings/page.js +1 -1
  34. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/settings/page.js.nft.json +1 -1
  35. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/settings/page_client-reference-manifest.js +1 -1
  36. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/create/page/build-manifest.json +2 -2
  37. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/create/page.js +1 -1
  38. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/create/page.js.nft.json +1 -1
  39. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/create/page_client-reference-manifest.js +1 -1
  40. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/page/build-manifest.json +2 -2
  41. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/page.js +1 -1
  42. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/page.js.nft.json +1 -1
  43. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/page_client-reference-manifest.js +1 -1
  44. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/[id]/page/build-manifest.json +2 -2
  45. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/[id]/page.js +1 -1
  46. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/[id]/page.js.nft.json +1 -1
  47. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/[id]/page_client-reference-manifest.js +1 -1
  48. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/new/page/build-manifest.json +2 -2
  49. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/new/page.js +2 -2
  50. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/new/page.js.nft.json +1 -1
  51. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/new/page_client-reference-manifest.js +1 -1
  52. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/page/build-manifest.json +2 -2
  53. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/page.js +1 -1
  54. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/page.js.nft.json +1 -1
  55. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/page_client-reference-manifest.js +1 -1
  56. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/messages/page/build-manifest.json +2 -2
  57. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/messages/page.js +1 -1
  58. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/messages/page.js.nft.json +1 -1
  59. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/messages/page_client-reference-manifest.js +1 -1
  60. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/page/build-manifest.json +2 -2
  61. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/page.js +1 -1
  62. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/page.js.nft.json +1 -1
  63. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/page_client-reference-manifest.js +1 -1
  64. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/requests/page/build-manifest.json +2 -2
  65. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/requests/page/react-loadable-manifest.json +1 -1
  66. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/requests/page.js +1 -1
  67. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/requests/page.js.nft.json +1 -1
  68. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/requests/page_client-reference-manifest.js +1 -1
  69. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/search/page/build-manifest.json +2 -2
  70. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/search/page.js +1 -1
  71. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/search/page.js.nft.json +1 -1
  72. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/search/page_client-reference-manifest.js +1 -1
  73. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/settings/page/build-manifest.json +2 -2
  74. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/settings/page.js +1 -1
  75. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/settings/page.js.nft.json +1 -1
  76. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/settings/page_client-reference-manifest.js +1 -1
  77. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/units/page/build-manifest.json +2 -2
  78. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/units/page.js +1 -1
  79. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/units/page.js.nft.json +1 -1
  80. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/units/page_client-reference-manifest.js +1 -1
  81. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/create/page/build-manifest.json +2 -2
  82. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/create/page.js +1 -1
  83. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/create/page.js.nft.json +1 -1
  84. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/create/page_client-reference-manifest.js +1 -1
  85. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/page/build-manifest.json +2 -2
  86. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/page.js +1 -1
  87. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/page.js.nft.json +1 -1
  88. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/page_client-reference-manifest.js +1 -1
  89. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/projects/page/build-manifest.json +2 -2
  90. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/projects/page.js +1 -1
  91. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/projects/page.js.nft.json +1 -1
  92. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/projects/page_client-reference-manifest.js +1 -1
  93. package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error/page/build-manifest.json +2 -2
  94. package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.html +1 -1
  95. package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.rsc +1 -1
  96. package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  97. package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  98. package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  99. package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  100. package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  101. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found/page/build-manifest.json +2 -2
  102. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  103. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.html +1 -1
  104. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.rsc +14 -14
  105. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_full.segment.rsc +14 -14
  106. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_head.segment.rsc +3 -3
  107. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_index.segment.rsc +10 -10
  108. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
  109. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  110. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  111. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/auth/status/route.js.nft.json +1 -1
  112. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/auth/token/route.js.nft.json +1 -1
  113. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/[name]/route.js.nft.json +1 -1
  114. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/[name]/token/route.js.nft.json +1 -1
  115. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/[name]/use/route.js.nft.json +1 -1
  116. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/route.js.nft.json +1 -1
  117. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/chunks/route.js.nft.json +1 -1
  118. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/[docId]/chunks/route.js.nft.json +1 -1
  119. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/[docId]/route.js.nft.json +1 -1
  120. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/route.js.nft.json +1 -1
  121. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/upload/route.js.nft.json +1 -1
  122. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/retrieve/route.js.nft.json +1 -1
  123. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/route.js.nft.json +1 -1
  124. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/route.js.nft.json +1 -1
  125. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/chat/route.js.nft.json +1 -1
  126. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/[id]/models/route.js.nft.json +1 -1
  127. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/[id]/route.js.nft.json +1 -1
  128. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/[id]/test/route.js.nft.json +1 -1
  129. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/route.js.nft.json +1 -1
  130. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/logs/client/route.js.nft.json +1 -1
  131. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/messages/route.js.nft.json +1 -1
  132. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/requests/route.js.nft.json +1 -1
  133. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/route.js.nft.json +1 -1
  134. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/search/route.js.nft.json +1 -1
  135. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/units/[memoryId]/route.js.nft.json +1 -1
  136. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/units/route.js.nft.json +1 -1
  137. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/route.js.nft.json +1 -1
  138. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/oss/list/route/app-paths-manifest.json +3 -0
  139. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/oss/list/route/build-manifest.json +9 -0
  140. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/oss/list/route/server-reference-manifest.json +4 -0
  141. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/oss/list/route.js +6 -0
  142. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/oss/list/route.js.map +5 -0
  143. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/oss/list/route.js.nft.json +1 -0
  144. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/oss/list/route_client-reference-manifest.js +3 -0
  145. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/runtime/context/route.js.nft.json +1 -1
  146. package/dist/dashboard-runtime/dashboard/.next/server/app/index.html +1 -1
  147. package/dist/dashboard-runtime/dashboard/.next/server/app/index.rsc +14 -14
  148. package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  149. package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/_full.segment.rsc +14 -14
  150. package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/_head.segment.rsc +3 -3
  151. package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/_index.segment.rsc +10 -10
  152. package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  153. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding/page/build-manifest.json +2 -2
  154. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding/page.js.nft.json +1 -1
  155. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  156. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.html +1 -1
  157. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.rsc +17 -17
  158. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/_full.segment.rsc +17 -17
  159. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/_head.segment.rsc +3 -3
  160. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/_index.segment.rsc +10 -10
  161. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/_tree.segment.rsc +2 -2
  162. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/onboarding/__PAGE__.segment.rsc +4 -4
  163. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/onboarding.segment.rsc +4 -4
  164. package/dist/dashboard-runtime/dashboard/.next/server/app/page/build-manifest.json +2 -2
  165. package/dist/dashboard-runtime/dashboard/.next/server/app/page_client-reference-manifest.js +1 -1
  166. package/dist/dashboard-runtime/dashboard/.next/server/app-paths-manifest.json +1 -0
  167. package/dist/dashboard-runtime/dashboard/.next/server/chunks/0p91_next_dist_esm_build_templates_app-route_0n~ec7s.js +1 -1
  168. package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0cee_lo._.js +1 -1
  169. package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0lvi0g-._.js +2 -2
  170. package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0q8vcw8._.js +3 -0
  171. package/dist/dashboard-runtime/dashboard/.next/server/chunks/dashboard__next-internal_server_app_api_v1_oss_list_route_actions_00xq2u..js +3 -0
  172. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/0b1r_app_(dashboard)_knowledge-base_[name]_documents_documents-client_tsx_0g2uxmt._.js +2 -2
  173. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/0e95_src_app_(dashboard)_knowledge-base_[name]_settings_settings-client_tsx_13312zk._.js +1 -1
  174. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0aqzu8w._.js +1 -1
  175. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0hozzu6._.js +3 -0
  176. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0jb9ccl._.js +1 -1
  177. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0jhpb-b._.js +3 -0
  178. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__13ylf4x._.js +3 -0
  179. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_01-2v37._.js +3 -0
  180. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_02bg849._.js +3 -0
  181. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_04f2u4t._.js +1 -1
  182. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_09yzbcp._.js +1 -1
  183. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0db498n._.js +3 -0
  184. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0ddbh97._.js +1 -1
  185. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0f4u0.1._.js +3 -0
  186. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0fj8l5g._.js +3 -0
  187. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0hnw-ok._.js +3 -0
  188. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0j-q~ro._.js +3 -0
  189. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0jghj2_._.js +3 -0
  190. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0kd7szs._.js +3 -0
  191. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0l~-9i0._.js +3 -0
  192. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0mtqe24._.js +3 -0
  193. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0n4gd_6._.js +3 -0
  194. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0o665bf._.js +1 -1
  195. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0ogxvev._.js +7 -0
  196. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0q748rf._.js +1 -1
  197. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0tr8-3u._.js +3 -0
  198. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0u4elhp._.js +3 -0
  199. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0vtm7dh._.js +3 -0
  200. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0xdioxg._.js +3 -0
  201. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0xzh5yw._.js +3 -0
  202. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_12r9c8h._.js +3 -0
  203. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_12~3vfk._.js +3 -0
  204. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_13_lb.o._.js +3 -0
  205. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_00ofp7q._.js +3 -0
  206. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_065m1.j._.js +1 -1
  207. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_0ejgygh._.js +1 -1
  208. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_0o9jhcn._.js +9 -0
  209. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_0xf3ffa._.js +3 -0
  210. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_0y49vhd._.js +1 -1
  211. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_10dsqx~._.js +1 -1
  212. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_app_(dashboard)_knowledge-base_create_page_tsx_0916~g-._.js +1 -1
  213. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_app_error_tsx_01x7ppm._.js +1 -1
  214. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_components_0ls1exu._.js +3 -0
  215. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_components_0ugdjlb._.js +3 -0
  216. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_components_shared_relative-time_tsx_0b7s9rc._.js +1 -1
  217. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_components_ui_0-tuf-h._.js +3 -0
  218. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_components_ui_dropdown-menu_tsx_0c~d-fd._.js +1 -1
  219. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_components_ui_select_tsx_0ys.i47._.js +1 -1
  220. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/node_modules__pnpm_08h.f_8._.js +3 -0
  221. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/node_modules__pnpm_0jns_ph._.js +3 -0
  222. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/node_modules__pnpm_0pf30rh._.js +3 -0
  223. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/node_modules__pnpm_0~k~1nt._.js +3 -0
  224. package/dist/dashboard-runtime/dashboard/.next/server/functions-config-manifest.json +1 -0
  225. package/dist/dashboard-runtime/dashboard/.next/server/middleware-build-manifest.js +5 -5
  226. package/dist/dashboard-runtime/dashboard/.next/server/pages/404.html +1 -1
  227. package/dist/dashboard-runtime/dashboard/.next/server/pages/500.html +1 -1
  228. package/dist/dashboard-runtime/dashboard/.next/server/server-reference-manifest.js +1 -1
  229. package/dist/dashboard-runtime/dashboard/.next/server/server-reference-manifest.json +1 -1
  230. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0-2yqm.ft6yzy.js +1 -0
  231. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0.2e8ciiogw04.js +1 -0
  232. package/dist/dashboard-runtime/dashboard/.next/static/chunks/00tz~p479bdgl.js +1 -0
  233. package/dist/dashboard-runtime/dashboard/.next/static/chunks/02i9olo-312mq.js +138 -0
  234. package/dist/dashboard-runtime/dashboard/.next/static/chunks/062k9jbtd9.lv.js +1 -0
  235. package/dist/dashboard-runtime/dashboard/.next/static/chunks/069zf4m5f.se2.js +1 -0
  236. package/dist/dashboard-runtime/dashboard/.next/static/chunks/06uuhz24tvdt..js +1 -0
  237. package/dist/dashboard-runtime/dashboard/.next/static/chunks/07cp19da_kfld.js +5 -0
  238. package/dist/dashboard-runtime/dashboard/.next/static/chunks/086esp1n941jl.js +138 -0
  239. package/dist/dashboard-runtime/dashboard/.next/static/chunks/08e9vvmr~0bqr.js +1 -0
  240. package/dist/dashboard-runtime/dashboard/.next/static/chunks/08i99xsvs8o5s.js +1 -0
  241. package/dist/dashboard-runtime/dashboard/.next/static/chunks/08qlxn-3d_rtu.js +1 -0
  242. package/dist/dashboard-runtime/dashboard/.next/static/chunks/09uxq~55qug8c.js +1 -0
  243. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0__g1ogrdh412.js +1 -0
  244. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0ab-ev0u1~ch5.js +1 -0
  245. package/dist/dashboard-runtime/dashboard/.next/static/chunks/{154aheeo3m6bg.js → 0bpginsuceywq.js} +1 -1
  246. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0bw682qzkh2ni.js +1 -0
  247. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0cto67_iw~p9z.js +1 -0
  248. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0d29.l~3ip181.js +1 -0
  249. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0ewpzgu_qf0wf.js +4 -0
  250. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0h77.bqx5ltem.js +1 -0
  251. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0ix_suxk3spjj.js +1 -0
  252. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0jc31diex030o.js +1 -0
  253. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0k79upjc40aky.css +1 -0
  254. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0lp2g_27uyhuz.js +1 -0
  255. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0lrw.bnws62y9.js +1 -0
  256. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0mea2ylxe.umh.js +1 -0
  257. package/dist/dashboard-runtime/dashboard/.next/static/chunks/{0dqag6qsw7xv8.js → 0px2r0l_3kp2t.js} +1 -1
  258. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0snnsfosp3~gq.js +1 -0
  259. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0t0yqi68~eil6.js +1 -0
  260. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0td9nhfbpbmyt.js +1 -0
  261. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0tmwptel_4y0o.js +1 -0
  262. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0u6_s-0w8.yr..js +1 -0
  263. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0u9wtl06_b72x.js +1 -0
  264. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0uv55p7kzteex.js +1 -0
  265. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0v9d5wl9nsva3.js +1 -0
  266. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0xko7~ja3xuc-.js +1 -0
  267. package/dist/dashboard-runtime/dashboard/.next/static/chunks/{05_578ka0ga8d.js → 12pz6ag1s~te_.js} +1 -1
  268. package/dist/dashboard-runtime/dashboard/.next/static/chunks/14.dp0-y_mhjo.js +1 -0
  269. package/dist/dashboard-runtime/dashboard/.next/static/chunks/15bzqpm440jvz.js +1 -0
  270. package/dist/dashboard-runtime/dashboard/.next/static/chunks/15wxh8ltqt88_.js +1 -0
  271. package/dist/dashboard-runtime/dashboard/.next/static/chunks/183~u3-4a74db.js +1 -0
  272. package/dist/dashboard-runtime/dashboard/.next/static/chunks/{turbopack-0ybyy.9-.w~ub.js → turbopack-0w.hw6u8qra5z.js} +1 -1
  273. package/dist/dashboard-runtime/dashboard/package.json +1 -0
  274. package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/chat/page.tsx +39 -38
  275. package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/error.tsx +1 -1
  276. package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/knowledge-base/[name]/documents/documents-client.tsx +0 -1
  277. package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/knowledge-base/[name]/layout-client.tsx +191 -40
  278. package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/knowledge-base/[name]/qa/page.tsx +18 -19
  279. package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/knowledge-base/[name]/retrieval/retrieval-client.tsx +8 -7
  280. package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/knowledge-base/[name]/settings/settings-client.tsx +1 -1
  281. package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/layout.tsx +3 -10
  282. package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/memory/[store]/layout.tsx +128 -22
  283. package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/memory/[store]/search/page.tsx +15 -8
  284. package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/projects/page.tsx +1 -1
  285. package/dist/dashboard-runtime/dashboard/src/app/api/v1/knowledge-bases/[name]/documents/route.ts +44 -3
  286. package/dist/dashboard-runtime/dashboard/src/app/api/v1/oss/list/route.ts +125 -0
  287. package/dist/dashboard-runtime/dashboard/src/app/error.tsx +1 -1
  288. package/dist/dashboard-runtime/dashboard/src/app/globals.css +137 -102
  289. package/dist/dashboard-runtime/dashboard/src/app/not-found.tsx +1 -1
  290. package/dist/dashboard-runtime/dashboard/src/app/onboarding/page.tsx +2 -2
  291. package/dist/dashboard-runtime/dashboard/src/components/chat/add-mount-row.tsx +21 -46
  292. package/dist/dashboard-runtime/dashboard/src/components/chat/chat-mount-config.tsx +35 -27
  293. package/dist/dashboard-runtime/dashboard/src/components/chat/mount-empty-state.tsx +87 -0
  294. package/dist/dashboard-runtime/dashboard/src/components/chat/mount-picker.tsx +87 -0
  295. package/dist/dashboard-runtime/dashboard/src/components/chat/unified-retrieval-section.tsx +3 -2
  296. package/dist/dashboard-runtime/dashboard/src/components/documents/doc-chunks-dialog.tsx +49 -25
  297. package/dist/dashboard-runtime/dashboard/src/components/documents/doc-columns.tsx +57 -46
  298. package/dist/dashboard-runtime/dashboard/src/components/documents/doc-table.tsx +2 -4
  299. package/dist/dashboard-runtime/dashboard/src/components/documents/doc-toolbar.tsx +1 -1
  300. package/dist/dashboard-runtime/dashboard/src/components/documents/doc-upload-dialog.tsx +155 -54
  301. package/dist/dashboard-runtime/dashboard/src/components/documents/oss-browser.tsx +264 -0
  302. package/dist/dashboard-runtime/dashboard/src/components/documents/oss-import-tab.tsx +143 -0
  303. package/dist/dashboard-runtime/dashboard/src/components/instance/connect-instance-form.tsx +60 -60
  304. package/dist/dashboard-runtime/dashboard/src/components/knowledge-base/kb-create-form.tsx +52 -35
  305. package/dist/dashboard-runtime/dashboard/src/components/knowledge-base/kb-settings-form.tsx +152 -76
  306. package/dist/dashboard-runtime/dashboard/src/components/knowledge-base/knowledge-base-retrieval-config.ts +110 -0
  307. package/dist/dashboard-runtime/dashboard/src/components/knowledge-base/retrieval-result-count-field.tsx +106 -0
  308. package/dist/dashboard-runtime/dashboard/src/components/knowledge-base/retrieval-result-count.ts +11 -0
  309. package/dist/dashboard-runtime/dashboard/src/components/layout/detail-sidebar.tsx +411 -0
  310. package/dist/dashboard-runtime/dashboard/src/components/layout/help-link.tsx +58 -0
  311. package/dist/dashboard-runtime/dashboard/src/components/layout/page-header.tsx +130 -11
  312. package/dist/dashboard-runtime/dashboard/src/components/layout/sidebar-instance-card.tsx +203 -0
  313. package/dist/dashboard-runtime/dashboard/src/components/layout/sidebar-item.tsx +14 -11
  314. package/dist/dashboard-runtime/dashboard/src/components/layout/sidebar-mobile.tsx +37 -29
  315. package/dist/dashboard-runtime/dashboard/src/components/layout/sidebar-usage-stats.tsx +26 -0
  316. package/dist/dashboard-runtime/dashboard/src/components/layout/sidebar.tsx +94 -46
  317. package/dist/dashboard-runtime/dashboard/src/components/layout/theme-toggle.tsx +161 -41
  318. package/dist/dashboard-runtime/dashboard/src/components/memory/requests-histogram-chart.tsx +2 -2
  319. package/dist/dashboard-runtime/dashboard/src/components/qa/qa-chat-panel.tsx +1 -1
  320. package/dist/dashboard-runtime/dashboard/src/components/retrieval/assemble-retrieval-configuration.ts +22 -3
  321. package/dist/dashboard-runtime/dashboard/src/components/retrieval/retrieval-form.tsx +110 -20
  322. package/dist/dashboard-runtime/dashboard/src/components/retrieval/retrieval-params-fields.tsx +114 -56
  323. package/dist/dashboard-runtime/dashboard/src/components/retrieval/retrieval-rerank-fields.tsx +60 -23
  324. package/dist/dashboard-runtime/dashboard/src/components/shared/empty-state.tsx +1 -1
  325. package/dist/dashboard-runtime/dashboard/src/components/shared/error-state.tsx +1 -1
  326. package/dist/dashboard-runtime/dashboard/src/components/shared/llm-model-selector.tsx +160 -70
  327. package/dist/dashboard-runtime/dashboard/src/components/shared/relative-time.tsx +30 -6
  328. package/dist/dashboard-runtime/dashboard/src/components/ui/badge.tsx +16 -5
  329. package/dist/dashboard-runtime/dashboard/src/components/ui/button.tsx +9 -8
  330. package/dist/dashboard-runtime/dashboard/src/components/ui/card.tsx +14 -8
  331. package/dist/dashboard-runtime/dashboard/src/components/ui/chat-bubble.tsx +60 -0
  332. package/dist/dashboard-runtime/dashboard/src/components/ui/command.tsx +1 -1
  333. package/dist/dashboard-runtime/dashboard/src/components/ui/data-card.tsx +57 -0
  334. package/dist/dashboard-runtime/dashboard/src/components/ui/detail-section.tsx +40 -0
  335. package/dist/dashboard-runtime/dashboard/src/components/ui/dialog.tsx +7 -7
  336. package/dist/dashboard-runtime/dashboard/src/components/ui/dropdown-menu.tsx +6 -6
  337. package/dist/dashboard-runtime/dashboard/src/components/ui/empty-state.tsx +42 -0
  338. package/dist/dashboard-runtime/dashboard/src/components/ui/filter-pill.tsx +90 -0
  339. package/dist/dashboard-runtime/dashboard/src/components/ui/form.tsx +3 -3
  340. package/dist/dashboard-runtime/dashboard/src/components/ui/input.tsx +5 -1
  341. package/dist/dashboard-runtime/dashboard/src/components/ui/item-card.tsx +88 -0
  342. package/dist/dashboard-runtime/dashboard/src/components/ui/label.tsx +1 -1
  343. package/dist/dashboard-runtime/dashboard/src/components/ui/memory-row.tsx +63 -0
  344. package/dist/dashboard-runtime/dashboard/src/components/ui/mini-stat.tsx +48 -0
  345. package/dist/dashboard-runtime/dashboard/src/components/ui/nav-tab-bar.tsx +60 -0
  346. package/dist/dashboard-runtime/dashboard/src/components/ui/playground-shell.tsx +69 -0
  347. package/dist/dashboard-runtime/dashboard/src/components/ui/popover.tsx +1 -1
  348. package/dist/dashboard-runtime/dashboard/src/components/ui/result-row.tsx +37 -0
  349. package/dist/dashboard-runtime/dashboard/src/components/ui/scope-tag.tsx +30 -0
  350. package/dist/dashboard-runtime/dashboard/src/components/ui/select.tsx +6 -5
  351. package/dist/dashboard-runtime/dashboard/src/components/ui/sheet.tsx +4 -4
  352. package/dist/dashboard-runtime/dashboard/src/components/ui/sonner.tsx +1 -1
  353. package/dist/dashboard-runtime/dashboard/src/components/ui/stat-card.tsx +58 -0
  354. package/dist/dashboard-runtime/dashboard/src/components/ui/table.tsx +13 -6
  355. package/dist/dashboard-runtime/dashboard/src/components/ui/textarea.tsx +4 -1
  356. package/dist/dashboard-runtime/dashboard/src/components/ui/tooltip.tsx +1 -1
  357. package/dist/dashboard-runtime/dashboard/src/components/ui/usage-card.tsx +43 -0
  358. package/dist/dashboard-runtime/dashboard/src/config/navigation.ts +50 -9
  359. package/dist/dashboard-runtime/dashboard/src/hooks/use-detail-sidebar-collapsed.ts +86 -0
  360. package/dist/dashboard-runtime/dashboard/src/hooks/use-oss-import.ts +148 -0
  361. package/dist/dashboard-runtime/dashboard/src/hooks/use-oss-list.ts +89 -0
  362. package/dist/dashboard-runtime/dashboard/src/lib/extension-filter.ts +62 -0
  363. package/dist/dashboard-runtime/dashboard/src/lib/glob-filter.ts +76 -0
  364. package/dist/dashboard-runtime/dashboard/src/lib/oss-selection.ts +58 -0
  365. package/dist/dashboard-runtime/dashboard/src/lib/server/oss-client.ts +65 -0
  366. package/dist/dashboard-runtime/dashboard/src/schemas/knowledge-base.ts +3 -3
  367. package/dist/dashboard-runtime/dashboard/src/schemas/llm-chat.ts +1 -1
  368. package/dist/dashboard-runtime/dashboard/src/schemas/retrieval.ts +4 -1
  369. package/dist/dashboard-runtime/dashboard/src/services/api-client.ts +11 -6
  370. package/dist/dashboard-runtime/dashboard/src/services/documents.ts +27 -8
  371. package/dist/dashboard-runtime/dashboard/src/services/oss.ts +36 -0
  372. package/dist/dashboard-runtime/dashboard/src/types/knowledge-base.ts +1 -1
  373. package/dist/dashboard-runtime/dashboard/tailwind.config.ts +47 -12
  374. package/dist/dashboard-runtime/dashboard/vitest.config.mjs +6 -0
  375. package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/tsconfig.tsbuildinfo +1 -1
  376. package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-shared/dist/tsconfig.tsbuildinfo +1 -1
  377. package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-shared/dist/types.d.ts +1 -1
  378. package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-shared/dist/types.d.ts.map +1 -1
  379. package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/tsconfig.tsbuildinfo +1 -1
  380. package/dist/node_modules/@tablestore/tablestore-agent-shared/dist/tsconfig.tsbuildinfo +1 -1
  381. package/dist/node_modules/@tablestore/tablestore-agent-shared/dist/types.d.ts +1 -1
  382. package/dist/node_modules/@tablestore/tablestore-agent-shared/dist/types.d.ts.map +1 -1
  383. package/package.json +1 -1
  384. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/0lvo_@radix-ui_react-popper_dist_index_mjs_13rqw99._.js +0 -3
  385. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0-kiaf5._.js +0 -3
  386. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0_r24-c._.js +0 -3
  387. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__11yei-s._.js +0 -3
  388. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0303qx7._.js +0 -3
  389. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_06l.12l._.js +0 -3
  390. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_09eom0_._.js +0 -3
  391. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0cd.__9._.js +0 -7
  392. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0dqi8bq._.js +0 -3
  393. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0e9y.xc._.js +0 -3
  394. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0f9u8i2._.js +0 -3
  395. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0fbjpet._.js +0 -3
  396. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0i8py_a._.js +0 -3
  397. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0jlt.cx._.js +0 -3
  398. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0n5uozy._.js +0 -3
  399. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0o32d.y._.js +0 -3
  400. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0suxzcc._.js +0 -3
  401. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0tyxwr3._.js +0 -3
  402. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0u9md36._.js +0 -3
  403. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0v4jb2q._.js +0 -3
  404. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0vzw0pw._.js +0 -3
  405. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0z0rlpq._.js +0 -3
  406. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0zn.ayc._.js +0 -3
  407. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_13l7w34._.js +0 -3
  408. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_0o4a.29._.js +0 -3
  409. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_0suis9l._.js +0 -9
  410. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_10mc58z._.js +0 -3
  411. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_app_(dashboard)_knowledge-base_[name]_layout-client_tsx_05momc5._.js +0 -3
  412. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_components_retrieval_02c2uck._.js +0 -3
  413. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/node_modules__pnpm_0aw_rgu._.js +0 -3
  414. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/node_modules__pnpm_0qdd37m._.js +0 -3
  415. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/node_modules__pnpm_11mc1z9._.js +0 -3
  416. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0-etecbti5x22.js +0 -1
  417. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0-xqk6wfme5fu.js +0 -1
  418. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0.yj.t1hbwkg4.js +0 -1
  419. package/dist/dashboard-runtime/dashboard/.next/static/chunks/031-scv-8sah9.js +0 -1
  420. package/dist/dashboard-runtime/dashboard/.next/static/chunks/034uozc1ki09_.js +0 -1
  421. package/dist/dashboard-runtime/dashboard/.next/static/chunks/05hmbxh7h5ct-.js +0 -1
  422. package/dist/dashboard-runtime/dashboard/.next/static/chunks/05ow1qzcjz3pz.js +0 -1
  423. package/dist/dashboard-runtime/dashboard/.next/static/chunks/07iqor2nl~iqc.js +0 -1
  424. package/dist/dashboard-runtime/dashboard/.next/static/chunks/087x52iesmpfe.js +0 -1
  425. package/dist/dashboard-runtime/dashboard/.next/static/chunks/08an3157he_ad.js +0 -1
  426. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0aak.679si-3m.js +0 -1
  427. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0ai8f~-9ig.gz.js +0 -138
  428. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0c5tcbhzpwen7.js +0 -1
  429. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0dheju1t18upn.js +0 -1
  430. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0ffr1_o~ss8r8.js +0 -1
  431. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0h38qfpz-dmiu.js +0 -1
  432. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0hkir82jccgck.js +0 -1
  433. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0l1fmyhvp-k49.js +0 -1
  434. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0pcp6pjjz7o49.js +0 -1
  435. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0pdq-gljpy7gd.js +0 -1
  436. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0q6-s11w9.sgo.js +0 -1
  437. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0rnm58mg0whfk.js +0 -1
  438. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0rxp5ykl1_lyb.js +0 -4
  439. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0sg6z8.ci0l2b.js +0 -1
  440. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0v_~favugkv_a.js +0 -1
  441. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0x3ysmon_~xsv.js +0 -1
  442. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0x7sjde5wit~i.js +0 -1
  443. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0yzz97.2e6if6.js +0 -138
  444. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0zbi5n76awxz1.js +0 -1
  445. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0~alekqkiwwaq.js +0 -1
  446. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0~e2n9bhosscr.js +0 -1
  447. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0~i4llb9-utpp.css +0 -1
  448. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0~n-y9cstar6b.js +0 -5
  449. package/dist/dashboard-runtime/dashboard/.next/static/chunks/14z_j1qzycpe1.js +0 -1
  450. package/dist/dashboard-runtime/dashboard/.next/static/chunks/17k4h5zgalxqj.js +0 -1
  451. package/dist/dashboard-runtime/dashboard/.next/static/chunks/17m1wc_o0.5iz.js +0 -1
  452. package/dist/dashboard-runtime/dashboard/src/components/knowledge-base/kb-header.tsx +0 -91
  453. package/dist/dashboard-runtime/dashboard/src/components/knowledge-base/kb-tab-nav.tsx +0 -62
  454. package/dist/dashboard-runtime/dashboard/src/components/layout/breadcrumb-bar.tsx +0 -115
  455. package/dist/dashboard-runtime/dashboard/src/components/memory/memory-header.tsx +0 -46
  456. package/dist/dashboard-runtime/dashboard/src/components/memory/memory-tab-nav.tsx +0 -54
  457. /package/dist/dashboard-runtime/dashboard/.next/static/{nPPow7lCVx1fYDGH2XCxQ → doYIl-pd6Sqax3bfUgN3q}/_buildManifest.js +0 -0
  458. /package/dist/dashboard-runtime/dashboard/.next/static/{nPPow7lCVx1fYDGH2XCxQ → doYIl-pd6Sqax3bfUgN3q}/_clientMiddlewareManifest.js +0 -0
  459. /package/dist/dashboard-runtime/dashboard/.next/static/{nPPow7lCVx1fYDGH2XCxQ → doYIl-pd6Sqax3bfUgN3q}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- module.exports=[98018,a=>{"use strict";let b=(0,a.i(50053).default)("send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]]);a.s(["Send",0,b],98018)},31710,a=>{"use strict";let b=(0,a.i(50053).default)("square",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]);a.s(["Square",0,b],31710)},31687,a=>{"use strict";let b=(0,a.i(50053).default)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);a.s(["AlertCircle",0,b],31687)},42210,a=>{"use strict";let b=(0,a.i(50053).default)("book-open",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]]);a.s(["BookOpen",0,b],42210)},42216,a=>a.a(async(b,c)=>{try{let b=await a.y("shiki-2963fa3a20578463");a.n(b),c()}catch(a){c(a)}},!0),23195,a=>a.a(async(b,c)=>{try{let b=await a.y("shiki-2963fa3a20578463/engine/javascript");a.n(b),c()}catch(a){c(a)}},!0),28778,a=>a.a(async(b,c)=>{try{var d=a.i(42216),e=a.i(23195),f=b([d,e]);[d,e]=f.then?(await f)():f;var g=(0,e.createJavaScriptRegexEngine)({forgiving:!0}),h=Object.fromEntries(d.bundledLanguagesInfo.flatMap(a=>{var b;return(null!=(b=a.aliases)?b:[]).map(b=>[b,a.id])})),i=new Set(Object.keys(d.bundledLanguages)),j=a=>{let b=a.trim().toLowerCase();return h[b]||(i.has(b),b)},k=new Map,l=new Map,m=new Map,n=a=>{var b;return"string"==typeof a?a:null!=(b=a.name)?b:"custom"},o=function(a={}){var b;let c=null!=(b=a.themes)?b:["github-light","github-dark"];return{name:"shiki",type:"code-highlighter",supportsLanguage(a){let b=j(a);return i.has(b)},getSupportedLanguages:()=>Array.from(i),getThemes:()=>c,highlight({code:a,language:b,themes:c},e){let f,h,o=j(b),p=[n(c[0]),n(c[1])],q=(f=a.slice(0,100),h=a.length>100?a.slice(-100):"",`${o}:${p[0]}:${p[1]}:${a.length}:${f}:${h}`);if(l.has(q))return l.get(q);e&&(m.has(q)||m.set(q,new Set),m.get(q).add(e));let r=i.has(o)?o:"text";return((a,b)=>{let c=`${a}-${n(b[0])}-${n(b[1])}`;if(k.has(c))return k.get(c);let e=(0,d.createHighlighter)({themes:b,langs:[a],engine:g});return k.set(c,e),e})(r,c).then(b=>{let c=b.getLoadedLanguages().includes(o)?o:"text",d=b.codeToTokens(a,{lang:c,themes:{light:p[0],dark:p[1]}});l.set(q,d);let e=m.get(q);if(e){for(let a of e)a(d);m.delete(q)}}).catch(a=>{console.error("[Streamdown Code] Failed to highlight code:",a),m.delete(q)}),null}}}();a.s(["code",0,o]),c()}catch(a){c(a)}},!1),26925,a=>{"use strict";a.i(2617),a.s([])},46400,a=>{"use strict";var b=a.i(2617);a.s(["Streamdown",()=>b.C])},93280,a=>{"use strict";var b=a.i(34020),c=a.i(71938),d=a.i(53520),e=a.i(16772),f=a.i(64565);a.s(["CodeBlock",0,function({className:a,children:g,node:h,...i}){let j=(0,c.useRef)(null),[k,l]=(0,c.useState)(!1),m=function(a){for(let b of c.Children.toArray(a)){if(!(0,c.isValidElement)(b))continue;let a=b.props;if("string"!=typeof a?.className)continue;let d=a.className.match(/language-([a-z0-9+#-]+)/i);if(d)return d[1]}}(g)??"",n=(0,c.useCallback)(async()=>{let a=j.current?.innerText??"";if(a)try{await navigator.clipboard.writeText(a),l(!0),window.setTimeout(()=>l(!1),2e3)}catch{}},[]);return(0,b.jsxs)("div",{className:"group relative my-2 overflow-hidden rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--muted)/0.5)]",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between border-b border-[hsl(var(--border))] bg-[hsl(var(--muted)/0.8)] px-3 py-1.5",children:[(0,b.jsx)("span",{className:"font-mono text-[11px] uppercase tracking-wide text-muted-foreground",children:m||"text"}),(0,b.jsx)("button",{type:"button",onClick:n,className:(0,f.cn)("inline-flex items-center gap-1 rounded px-2 py-0.5 text-[11px] text-muted-foreground","opacity-0 transition-opacity hover:bg-[hsl(var(--accent))] hover:text-foreground","group-hover:opacity-100 focus-visible:opacity-100",k&&"opacity-100 text-primary"),"aria-label":"复制代码",children:k?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(d.Check,{className:"h-3 w-3"}),"已复制"]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(e.Copy,{className:"h-3 w-3"}),"复制"]})})]}),(0,b.jsx)("pre",{ref:j,className:(0,f.cn)("overflow-x-auto p-3 text-xs leading-relaxed","[&_code]:bg-transparent [&_code]:p-0",a),...i,children:g})]})}])},13562,a=>a.a(async(b,c)=>{try{var d=a.i(34020),e=a.i(28778);a.i(26925);var f=a.i(46400),g=a.i(64565),h=a.i(93280),i=b([e]);[e]=i.then?(await i)():i;let j=["https://","http://","mailto:","#","/"],k=["https://","data:image/"],l=(a,b)=>{let c=a.toLowerCase();return("src"===b?k:j).some(a=>c.startsWith(a))?a:""};a.s(["Markdown",0,function({children:a,className:b}){return(0,d.jsx)("div",{className:(0,g.cn)("text-sm leading-relaxed text-foreground/90","[&_p]:my-2 [&_ul]:my-2 [&_ol]:my-2 [&_li]:my-0.5","[&_ul]:list-disc [&_ul]:pl-5 [&_ol]:list-decimal [&_ol]:pl-5","[&_h1]:mt-4 [&_h1]:mb-2 [&_h1]:text-lg [&_h1]:font-semibold","[&_h2]:mt-3 [&_h2]:mb-2 [&_h2]:text-base [&_h2]:font-semibold","[&_h3]:mt-3 [&_h3]:mb-1.5 [&_h3]:text-sm [&_h3]:font-semibold","[&_a]:text-primary [&_a]:underline [&_a]:underline-offset-2","[&_:not(pre)>code]:rounded [&_:not(pre)>code]:bg-[hsl(var(--muted))] [&_:not(pre)>code]:px-1 [&_:not(pre)>code]:py-0.5 [&_:not(pre)>code]:text-[0.85em]","[&_table]:my-2 [&_table]:w-full [&_table]:border-collapse","[&_th]:border [&_th]:border-[hsl(var(--border))] [&_th]:px-2 [&_th]:py-1 [&_th]:text-left [&_th]:font-semibold","[&_td]:border [&_td]:border-[hsl(var(--border))] [&_td]:px-2 [&_td]:py-1","[&_blockquote]:my-2 [&_blockquote]:border-l-2 [&_blockquote]:border-[hsl(var(--border))] [&_blockquote]:pl-3 [&_blockquote]:text-muted-foreground","[&_hr]:my-3 [&_hr]:border-[hsl(var(--border))]",b),children:(0,d.jsx)(f.Streamdown,{parseIncompleteMarkdown:!0,skipHtml:!0,urlTransform:l,plugins:{code:e.code},components:{pre:h.CodeBlock},controls:{code:!1,table:!1,mermaid:!1},children:a})})}]),c()}catch(a){c(a)}},!1),73570,a=>a.a(async(b,c)=>{try{var d=a.i(34020),e=a.i(71938),f=a.i(31687),g=a.i(37102),h=a.i(42210),i=a.i(47845),j=a.i(1927),k=a.i(16772),l=a.i(12537),m=a.i(16106),n=a.i(9380),o=a.i(98018),p=a.i(55295),q=a.i(63265),r=a.i(76192),s=a.i(36890),t=a.i(27692),u=a.i(70535),v=a.i(24567),w=a.i(64565),x=a.i(13562),y=b([x]);[x]=y.then?(await y)():y;let J=(0,e.memo)(function({message:a,busy:b,onDelete:c,onResend:e,onRegenerate:f,onEditSave:g}){return"user"===a.role?(0,d.jsx)(D,{message:a,busy:b,onDelete:c,onResend:e,onEditSave:g}):(0,d.jsx)(E,{message:a,busy:b,onDelete:c,onRegenerate:f})},(a,b)=>a.message===b.message&&a.busy===b.busy);function z({align:a,disabled:b,onCopy:c,onDelete:e,onEdit:f,onResend:g,onRegenerate:h}){return(0,d.jsxs)("div",{className:(0,w.cn)("mt-1 flex items-center gap-0.5 opacity-0 transition-opacity duration-150","group-hover:opacity-100 group-focus-within:opacity-100","group-data-[touched=true]:opacity-100","right"===a?"justify-end":"justify-start"),children:[(0,d.jsx)(A,{title:"复制",disabled:b,onClick:c,children:(0,d.jsx)(k.Copy,{className:"h-3.5 w-3.5"})}),f&&(0,d.jsx)(A,{title:"编辑",disabled:b,onClick:f,children:(0,d.jsx)(l.Pencil,{className:"h-3.5 w-3.5"})}),g&&(0,d.jsx)(A,{title:"重新发送",disabled:b,onClick:g,children:(0,d.jsx)(o.Send,{className:"h-3.5 w-3.5"})}),h&&(0,d.jsx)(A,{title:"重新生成",disabled:b,onClick:h,children:(0,d.jsx)(m.RotateCcw,{className:"h-3.5 w-3.5"})}),(0,d.jsx)(A,{title:"删除",disabled:b,onClick:e,destructive:!0,children:(0,d.jsx)(p.Trash2,{className:"h-3.5 w-3.5"})})]})}function A({title:a,disabled:b,destructive:c,onClick:e,children:f}){return(0,d.jsx)(r.Button,{type:"button",variant:"ghost",size:"icon",title:a,"aria-label":a,disabled:b,onClick:e,className:(0,w.cn)("h-7 w-7 text-muted-foreground hover:text-foreground",c&&"hover:text-[hsl(var(--destructive))] hover:bg-[hsl(var(--destructive))]/10"),children:f})}function B({rewriteFailed:a,rewriteError:b,failedKbCount:c,failedKbDetails:e}){let f=!!a,g=(c??0)>0;return f||g?(0,d.jsxs)("div",{className:"space-y-1.5",children:[f&&(0,d.jsx)(C,{label:"意图重写失败 · 已回退到原问题",detail:b??"rewriter 返回空结果或抛错"}),g&&e&&(0,d.jsx)(C,{label:`${c} 个知识库检索失败`,detail:e.map(a=>`• ${a.name}: ${a.reason}`).join("\n")})]}):null}function C({label:a,detail:b}){let[c,f]=(0,e.useState)(!1);return(0,d.jsxs)("div",{className:"rounded-md border border-amber-500/30 bg-amber-500/5",children:[(0,d.jsxs)("button",{type:"button",onClick:()=>f(a=>!a),className:(0,w.cn)("flex w-full items-center gap-1.5 px-2 py-1 text-xs","text-amber-700 hover:bg-amber-500/10 dark:text-amber-300"),children:[(0,d.jsx)(g.AlertTriangle,{className:"h-3.5 w-3.5 shrink-0"}),(0,d.jsx)("span",{className:"flex-1 text-left",children:a}),(0,d.jsx)(j.ChevronDown,{className:(0,w.cn)("h-3 w-3 opacity-60 transition-transform duration-150",c&&"rotate-180")})]}),c&&(0,d.jsx)("pre",{className:"border-t border-amber-500/20 px-2 py-1.5 text-[11px] leading-relaxed text-amber-700/80 dark:text-amber-300/80 whitespace-pre-wrap font-mono",children:b})]})}function D({message:a,busy:b,onDelete:c,onResend:f,onEditSave:g}){let[h,i]=(0,e.useState)(!1),[j,k]=(0,e.useState)(!1),[l,m]=(0,e.useState)(a.content),[n,o]=(0,e.useState)(!1),[p,t]=(0,e.useState)(!1),[w,x]=(0,e.useState)(!0),y=(0,e.useCallback)(()=>{navigator.clipboard.writeText(a.content),q.toast.success("已复制")},[a.content]),A=(0,e.useCallback)(()=>{let b=l.trim();if(!b||b===a.content){k(!1),m(a.content);return}k(!1),g(a.id,b)},[l,a.content,a.id,g]),B=(0,e.useCallback)(()=>{m(a.content),k(!1)},[a.content]),C=(0,e.useCallback)(a=>{"Escape"===a.key?(a.preventDefault(),B()):"Enter"===a.key&&(a.metaKey||a.ctrlKey)&&(a.preventDefault(),A())},[A,B]);return(0,d.jsxs)("div",{className:"group flex justify-end","data-touched":h?"true":void 0,onClickCapture:()=>i(!0),children:[(0,d.jsxs)("div",{className:"flex max-w-[85%] flex-col items-end",children:[j?(0,d.jsxs)("div",{className:"w-full max-w-2xl rounded-2xl border border-[hsl(var(--primary))] bg-[hsl(var(--background))] p-2",children:[(0,d.jsx)(u.Textarea,{autoFocus:!0,value:l,onChange:a=>m(a.target.value),onKeyDown:C,className:"min-h-[80px] resize-y border-0 p-2 text-sm shadow-none focus-visible:ring-0"}),(0,d.jsxs)("div",{className:"mt-1 flex justify-end gap-2",children:[(0,d.jsx)(r.Button,{type:"button",variant:"ghost",size:"sm",onClick:B,children:"取消"}),(0,d.jsx)(r.Button,{type:"button",size:"sm",disabled:!l.trim()||l.trim()===a.content,onClick:A,children:"保存并重发"})]})]}):(0,d.jsx)("div",{className:"rounded-2xl rounded-tr-sm bg-[hsl(var(--muted)/0.7)] px-4 py-2.5 text-sm leading-relaxed text-foreground whitespace-pre-wrap",children:a.content}),!j&&(0,d.jsx)(z,{align:"right",disabled:b,onCopy:y,onEdit:()=>{m(a.content),k(!0)},onResend:()=>t(!0),onDelete:()=>o(!0)})]}),(0,d.jsx)(v.ConfirmDialog,{open:n,onOpenChange:o,title:"删除此消息?",description:"该操作不可撤销。",confirmText:"删除",variant:"danger",onConfirm:()=>{c(a.id,{withNextAssistant:w}),o(!1)},children:(0,d.jsxs)("label",{className:"flex items-center gap-2 text-sm text-foreground",children:[(0,d.jsx)(s.Checkbox,{checked:w,onCheckedChange:a=>x(!0===a)}),"同时删除下方的 AI 回复"]})}),(0,d.jsx)(v.ConfirmDialog,{open:p,onOpenChange:t,title:"重新发送此消息?",description:"将丢弃下方所有消息并重新生成回答。",confirmText:"重新发送",onConfirm:()=>{t(!1),f(a.id)}})]})}function E({message:a,busy:b,onDelete:c,onRegenerate:g}){let[h,i]=(0,e.useState)(!1),[j,k]=(0,e.useState)(!1),[l,m]=(0,e.useState)(!1),o="streaming"===a.status,p="error"===a.status,r=(a.reasoning?.length??0)>0,s=(a.content?.length??0)>0,t=r||o&&!s,u=!!a.usingRag&&!a.retrievalQuery,w=!!a.retrievalQuery&&!a.retrievedChunks,y=(a.retrievalGroups??[]).filter(a=>a.error).map(a=>({name:a.knowledgeBaseName,reason:a.error??""})),A=(0,e.useCallback)(()=>{navigator.clipboard.writeText(a.content),q.toast.success("已复制")},[a.content]);return(0,d.jsxs)("div",{className:"group space-y-3 text-sm leading-relaxed","data-touched":h?"true":void 0,onClickCapture:()=>i(!0),children:[t?(0,d.jsx)(F,{reasoning:a.reasoning??"",streaming:o,startedAt:a.reasoningStartedAt,completedAt:a.reasoningCompletedAt,intentExtracting:u,retrievalInFlight:w}):null,(0,d.jsx)(B,{rewriteFailed:a.queryRewriteFailed,rewriteError:a.queryRewriteError,failedKbCount:y.length,failedKbDetails:y}),a.retrievalQueryRewritten&&a.retrievalQuery?(0,d.jsxs)("div",{className:"inline-flex max-w-full items-center gap-1.5 rounded-md bg-[hsl(var(--muted)/0.4)] px-2 py-1 text-xs text-muted-foreground",children:[(0,d.jsx)(n.Search,{className:"h-3 w-3 shrink-0"}),(0,d.jsx)("span",{className:"font-medium shrink-0",children:"检索关键词:"}),(0,d.jsx)("span",{className:"truncate font-mono text-foreground/80",children:a.retrievalQuery})]}):null,a.retrievedChunks&&a.retrievedChunks.length>0?(0,d.jsx)(G,{chunks:a.retrievedChunks,groups:a.retrievalGroups}):null,p?(0,d.jsxs)("div",{className:"flex items-start gap-2 rounded-md border border-[hsl(var(--destructive))/0.3] bg-[hsl(var(--destructive))/0.05] px-3 py-2 text-[hsl(var(--destructive))]",children:[(0,d.jsx)(f.AlertCircle,{className:"mt-0.5 h-4 w-4 shrink-0"}),(0,d.jsx)("span",{className:"text-xs",children:a.errorMessage??"生成失败"})]}):(0,d.jsxs)("div",{className:"text-foreground/90",children:[(0,d.jsx)(x.Markdown,{children:a.content}),o?(0,d.jsx)("span",{className:"ml-0.5 inline-block h-3.5 w-1.5 animate-pulse bg-foreground align-baseline"}):null]}),(0,d.jsx)(z,{align:"left",disabled:b||o,onCopy:A,onRegenerate:()=>m(!0),onDelete:()=>k(!0)}),(0,d.jsx)(v.ConfirmDialog,{open:j,onOpenChange:k,title:"删除此回复?",description:"该操作不可撤销。",confirmText:"删除",variant:"danger",onConfirm:()=>{c(a.id),k(!1)}}),(0,d.jsx)(v.ConfirmDialog,{open:l,onOpenChange:m,title:"重新生成此回复?",description:"将丢弃下方所有消息并重新生成。",confirmText:"重新生成",onConfirm:()=>{m(!1),g(a.id)}})]})}function F({reasoning:a,streaming:b,startedAt:c,completedAt:f,intentExtracting:g,retrievalInFlight:h}){var k,l;let m,n,o,[p,q]=(0,e.useState)(!1),r=function(a,b){let[c,d]=(0,e.useState)(()=>Date.now());return((0,e.useEffect)(()=>{if(!a||b)return;let c=window.setInterval(()=>d(Date.now()),250);return()=>window.clearInterval(c)},[a,b]),a)?Math.max(0,(b??c)-a):null}(c,f),s=null!=r?(k=r,l=!b||!!f,m=Math.floor(k/1e3),n=Math.floor(m/60),o=m%60,l?0===n?`用时 ${o} 秒`:`用时 ${n} 分 ${o} 秒`:`${n}:${String(o).padStart(2,"0")}`):null,u=b&&!f,v=a.length>0,x="正在思考";return v?x="深度思考中":h?x="正在检索知识库":g&&(x="检索意图提取"),(0,d.jsxs)(t.Collapsible,{open:p,onOpenChange:q,children:[(0,d.jsx)(t.CollapsibleTrigger,{asChild:!0,children:(0,d.jsxs)("button",{type:"button",disabled:!v,className:(0,w.cn)("group inline-flex items-center gap-2 rounded-full pl-1.5 pr-2.5 py-1 text-xs font-medium transition-all duration-200",u?"bg-[hsl(var(--primary)/0.08)] text-[hsl(var(--primary))] ring-1 ring-[hsl(var(--primary)/0.25)] shadow-[0_0_0_4px_hsl(var(--primary)/0.06)]":"bg-[hsl(var(--muted)/0.6)] text-muted-foreground hover:bg-[hsl(var(--accent))] hover:text-foreground",!v&&"cursor-default"),"aria-live":u?"polite":"off",children:[(0,d.jsxs)("span",{className:"relative inline-flex h-5 w-5 items-center justify-center",children:[u&&(0,d.jsx)("span",{"aria-hidden":!0,className:"absolute inset-0 rounded-full bg-[hsl(var(--primary))] opacity-40 blur-[6px] animate-thinking-aurora"}),(0,d.jsx)(i.Brain,{className:(0,w.cn)("relative h-3.5 w-3.5",u&&"animate-thinking-icon text-[hsl(var(--primary))]")})]}),u?(0,d.jsx)("span",{className:"animate-text-shimmer bg-[linear-gradient(90deg,hsl(var(--primary)/0.55)_0%,hsl(var(--primary))_50%,hsl(var(--primary)/0.55)_100%)] bg-[length:200%_100%] bg-clip-text text-transparent",children:x}):(0,d.jsx)("span",{children:"已深度思考"}),s&&(0,d.jsxs)("span",{className:(0,w.cn)("tabular-nums text-[11px]",u?"text-[hsl(var(--primary)/0.75)]":"text-muted-foreground/80"),children:["· ",s]}),v&&(0,d.jsx)(j.ChevronDown,{className:(0,w.cn)("h-3 w-3 opacity-60 transition-transform duration-200",p&&"rotate-180",u&&"text-[hsl(var(--primary))]")})]})}),v&&(0,d.jsx)(t.CollapsibleContent,{children:(0,d.jsx)("div",{className:"mt-2 border-l-2 border-[hsl(var(--border))] pl-3 text-xs leading-relaxed text-muted-foreground whitespace-pre-wrap",children:a})})]})}function G({chunks:a,groups:b}){let[c,f]=(0,e.useState)(!1),g=new Map;a.forEach((a,b)=>{g.set(`${a.docId}#${a.chunkId}`,b+1)});let i=(b??[]).filter(a=>!a.error),k=(b??[]).filter(a=>a.error),l=i.length>=2||k.length>0;return(0,d.jsxs)(t.Collapsible,{open:c,onOpenChange:f,children:[(0,d.jsx)(t.CollapsibleTrigger,{asChild:!0,children:(0,d.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 rounded-md px-2 py-1 text-xs text-muted-foreground transition-colors hover:bg-[hsl(var(--accent))] hover:text-foreground",children:[(0,d.jsx)(h.BookOpen,{className:"h-3.5 w-3.5"}),"查看 ",a.length," 个引用",l?(0,d.jsxs)("span",{className:"text-muted-foreground/70",children:["· ",i.length," 个知识库",k.length>0?`(${k.length} 失败)`:""]}):null,(0,d.jsx)(j.ChevronDown,{className:(0,w.cn)("h-3 w-3 transition-transform duration-200",c&&"rotate-180")})]})}),(0,d.jsx)(t.CollapsibleContent,{children:(0,d.jsx)("div",{className:"mt-2 space-y-3",children:l?(0,d.jsxs)(d.Fragment,{children:[i.map(a=>(0,d.jsx)(H,{group:a,indexByKey:g},`ok-${a.knowledgeBaseName}`)),k.map(a=>(0,d.jsxs)("div",{className:"rounded-md border border-[hsl(var(--destructive))/0.3] bg-[hsl(var(--destructive))/0.05] px-3 py-2 text-xs text-[hsl(var(--destructive))]",children:[(0,d.jsx)("span",{className:"font-medium",children:a.knowledgeBaseName}),(0,d.jsxs)("span",{className:"ml-2 text-[hsl(var(--destructive))/0.8]",children:["检索失败:",a.error]})]},`err-${a.knowledgeBaseName}`))]}):(0,d.jsx)("div",{className:"space-y-2",children:a.map((a,b)=>(0,d.jsx)(I,{chunk:a,index:b+1},`${a.docId}-${a.chunkId}`))})})})]})}function H({group:a,indexByKey:b}){return(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 text-xs font-medium text-muted-foreground",children:[(0,d.jsx)("span",{className:"text-foreground/80",children:a.knowledgeBaseName}),(0,d.jsxs)("span",{children:["· ",a.chunks.length," 条"]})]}),(0,d.jsx)("div",{className:"space-y-2 border-l-2 border-[hsl(var(--border))] pl-3",children:a.chunks.map(a=>{let c=`${a.docId}#${a.chunkId}`,e=b.get(c)??0;return(0,d.jsx)(I,{chunk:a,index:e},`${a.docId}-${a.chunkId}`)})})]})}function I({chunk:a,index:b}){let c=a.ossKey?.split("/").pop()||a.ossKey||"未知文件";return(0,d.jsxs)("div",{className:"rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--muted)/0.3)] p-3",children:[(0,d.jsxs)("div",{className:"mb-1.5 flex items-center gap-2 text-xs text-muted-foreground",children:[(0,d.jsx)("span",{className:"inline-flex h-5 w-5 items-center justify-center rounded-full bg-[hsl(var(--primary-50))] font-semibold text-primary",children:b>0?b:"–"}),(0,d.jsx)("span",{className:"font-medium text-foreground/80",children:c}),(0,d.jsxs)("span",{children:["Chunk #",a.chunkId]}),(0,d.jsx)("span",{className:"ml-auto font-mono",children:a.score.toFixed(4)})]}),(0,d.jsx)("p",{className:"line-clamp-4 whitespace-pre-wrap text-xs text-foreground/80",children:a.content})]})}J.displayName="QaMessage",a.s(["QaMessage",0,J]),c()}catch(a){c(a)}},!1),57900,a=>a.a(async(b,c)=>{try{var d=a.i(34020),e=a.i(71938),f=a.i(88189),g=a.i(98018),h=a.i(31710),i=a.i(76192),j=a.i(70535),k=a.i(10215),l=a.i(64565),m=a.i(73570),n=b([m]);[m]=n.then?(await n)():n,a.s(["QaChatPanel",0,function({messages:a,isStreaming:b,canSend:c,error:n,onSend:o,onStop:p,onDelete:q,onResend:r,onRegenerate:s,onEditSave:t,emptyState:u,disabledPlaceholder:v}){let[w,x]=(0,e.useState)(""),y=(0,e.useRef)(null),z=(0,e.useRef)(a.length);(0,e.useEffect)(()=>{let b=y.current;if(!b)return;let c=a.length>z.current;(z.current=a.length,c)?requestAnimationFrame(()=>{b.scrollTo({top:b.scrollHeight,behavior:"smooth"})}):b.scrollHeight-b.scrollTop-b.clientHeight<120&&b.scrollTo({top:b.scrollHeight,behavior:"smooth"})},[a]);let A=()=>{let a=w.trim();a&&c&&!b&&(o(a),x(""))};return(0,d.jsxs)("div",{className:"flex h-full flex-col rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--surface))]",children:[(0,d.jsx)("div",{ref:y,role:"log","aria-live":"polite","aria-relevant":"additions text","aria-busy":b,className:"flex-1 space-y-6 overflow-y-auto px-6 py-5",children:0===a.length?(0,d.jsx)("div",{className:"flex h-full min-h-[320px] items-center justify-center",children:(0,d.jsx)(k.EmptyState,{icon:f.MessageSquare,title:u?.title??"开始对话",description:u?.description??"输入问题,系统会先从知识库检索相关内容,再让大模型基于检索结果回答",action:u?.actionLabel&&u?.onAction?(0,d.jsx)(i.Button,{type:"button",onClick:u.onAction,children:u.actionLabel}):void 0})}):a.map(a=>(0,d.jsx)(m.QaMessage,{message:a,busy:b,onDelete:q,onResend:r,onRegenerate:s,onEditSave:t},a.id))}),(0,d.jsxs)("div",{className:"border-t border-[hsl(var(--border))] bg-[hsl(var(--surface)/0.6)] px-4 py-3",children:[n&&(0,d.jsx)("p",{className:"mb-2 text-xs text-[hsl(var(--destructive))]",children:n}),(0,d.jsxs)("div",{className:"flex items-end gap-2",children:[(0,d.jsx)(j.Textarea,{value:w,onChange:a=>x(a.target.value),onKeyDown:a=>{"Enter"!==a.key||a.shiftKey||a.nativeEvent.isComposing||(a.preventDefault(),A())},placeholder:c?"输入问题,Enter 发送,Shift+Enter 换行":v??"请先在左侧选择模型...",disabled:!c,className:(0,l.cn)("min-h-[44px] max-h-40 resize-none text-sm"),rows:1}),b?(0,d.jsx)(i.Button,{type:"button",variant:"outline",size:"icon",onClick:p,title:"停止",children:(0,d.jsx)(h.Square,{className:"h-4 w-4 fill-current"})}):(0,d.jsx)(i.Button,{type:"button",size:"icon",disabled:!c||!w.trim(),onClick:A,title:"发送",children:(0,d.jsx)(g.Send,{className:"h-4 w-4"})})]})]})]})}]),c()}catch(a){c(a)}},!1),64363,32191,87951,a=>{"use strict";var b=a.i(34020),c=a.i(71938),d=a.i(81619),e=a.i(68826),f=a.i(76192),g=a.i(72518),h=a.i(62491),i=a.i(63525),j=a.i(37255),k=a.i(83366),l=a.i(83917),m=a.i(25377),n=a.i(39096);a.s(["LLMModelSelector",0,function({providerId:a,model:o,onProviderChange:p,onModelChange:q,allowFreeText:r=!1,autoSelectFirst:s=!1,providerLabel:t="Provider",modelLabel:u="Model"}){let{data:v=[],isLoading:w}=(0,j.useLLMProviders)(),{data:x,isFetching:y,refetch:z}=function(a,b={}){let{context:c,ready:d}=(0,n.useRuntimeContext)();return(0,k.useQuery)({queryKey:m.queryKeys.llmProviderModels(c.dataScopeKey,a),queryFn:()=>(0,l.fetchProviderModels)(a),enabled:d&&!!a&&(b.enabled??!0),staleTime:3e5,retry:!1})}(a||void 0,{enabled:!!a});(0,c.useEffect)(()=>{if(!s||a||0===v.length)return;let b=v[0];p(b.id,b.defaultModel??"")},[s,a,v]);let A=(0,c.useMemo)(()=>{let b=new Set;for(let a of(o&&b.add(o),x??[]))b.add(a.id);let c=v.find(b=>b.id===a);return c?.defaultModel&&b.add(c.defaultModel),Array.from(b)},[o,x,v,a]);return(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(h.Label,{className:"text-sm font-medium",children:t}),(0,b.jsxs)(i.Select,{value:a,onValueChange:a=>{let b=v.find(b=>b.id===a);p(a,b?.defaultModel??"")},disabled:w||0===v.length,children:[(0,b.jsx)(i.SelectTrigger,{children:(0,b.jsx)(i.SelectValue,{placeholder:w?"加载中...":0===v.length?"请先在「大模型」中创建配置":"选择 Provider"})}),(0,b.jsx)(i.SelectContent,{children:v.map(a=>(0,b.jsx)(i.SelectItem,{value:a.id,children:a.name},a.id))})]})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsx)(h.Label,{className:"text-sm font-medium",children:u}),(0,b.jsxs)(f.Button,{type:"button",variant:"ghost",size:"sm",className:"h-6 px-2 text-xs",disabled:!a||y,onClick:()=>z(),children:[y?(0,b.jsx)(d.Loader2,{className:"mr-1 h-3 w-3 animate-spin"}):(0,b.jsx)(e.RefreshCw,{className:"mr-1 h-3 w-3"}),"刷新列表"]})]}),r?(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsxs)(i.Select,{value:A.includes(o)?o:"",onValueChange:q,disabled:!a,children:[(0,b.jsx)(i.SelectTrigger,{className:"flex-1",children:(0,b.jsx)(i.SelectValue,{placeholder:"选择或输入模型名"})}),(0,b.jsx)(i.SelectContent,{children:0===A.length?(0,b.jsx)("div",{className:"px-3 py-2 text-xs text-muted-foreground",children:"点击「刷新列表」拉取可用模型"}):A.map(a=>(0,b.jsx)(i.SelectItem,{value:a,children:a},a))})]}),(0,b.jsx)(g.Input,{placeholder:"或手动输入",value:o,onChange:a=>q(a.target.value),className:"flex-1"})]}):(0,b.jsxs)(i.Select,{value:o,onValueChange:q,disabled:!a,children:[(0,b.jsx)(i.SelectTrigger,{children:(0,b.jsx)(i.SelectValue,{placeholder:"选择模型"})}),(0,b.jsx)(i.SelectContent,{children:0===A.length?(0,b.jsx)(i.SelectItem,{value:"__empty",disabled:!0,children:"无可用模型"}):A.map(a=>(0,b.jsx)(i.SelectItem,{value:a,children:a},a))})]})]})]})}],64363);var o=a.i(70535);a.s(["SystemPromptInput",0,function({value:a,onChange:c,placeholder:d,helperText:e,rows:f=3,label:g="系统提示词"}){return(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)(h.Label,{className:"text-sm font-medium",children:g}),(0,b.jsx)(o.Textarea,{rows:f,value:a,onChange:a=>c(a.target.value),placeholder:d,className:"text-sm"}),e&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:e})]})}],32191);var p=a.i(48972),q=a.i(59653),r=a.i(68189),s=a.i(84694),t=a.i(83370),u=a.i(74974),v=a.i(20251),w=a.i(66394),x=a.i(58036),y=a.i(17021),z=["PageUp","PageDown"],A=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],B={"from-left":["Home","PageDown","ArrowDown","ArrowLeft"],"from-right":["Home","PageDown","ArrowDown","ArrowRight"],"from-bottom":["Home","PageDown","ArrowDown","ArrowLeft"],"from-top":["Home","PageDown","ArrowUp","ArrowLeft"]},C="Slider",[D,E,F]=(0,y.createCollection)(C),[G,H]=(0,s.createContextScope)(C,[F]),[I,J]=G(C),K=c.forwardRef((a,d)=>{let{name:e,min:f=0,max:g=100,step:h=1,orientation:i="horizontal",disabled:j=!1,minStepsBetweenThumbs:k=0,defaultValue:l=[f],value:m,onValueChange:n=()=>{},onValueCommit:o=()=>{},inverted:r=!1,form:s,...u}=a,v=c.useRef(new Set),w=c.useRef(0),x="horizontal"===i,[y=[],B]=(0,t.useControllableState)({prop:m,defaultProp:l,onChange:a=>{let b=[...v.current];b[w.current]?.focus(),n(a)}}),C=c.useRef(y);function E(a,b,{commit:c}={commit:!1}){let d,e=(String(h).split(".")[1]||"").length,i=Math.round((Math.round((a-f)/h)*h+f)*(d=Math.pow(10,e)))/d,j=(0,p.clamp)(i,[f,g]);B((a=[])=>{let d=function(a=[],b,c){let d=[...a];return d[c]=b,d.sort((a,b)=>a-b)}(a,j,b);if(!function(a,b){if(b>0)return Math.min(...a.slice(0,-1).map((b,c)=>a[c+1]-b))>=b;return!0}(d,k*h))return a;{w.current=d.indexOf(j);let b=String(d)!==String(a);return b&&c&&o(d),b?d:a}})}return(0,b.jsx)(I,{scope:a.__scopeSlider,name:e,disabled:j,min:f,max:g,valueIndexToChangeRef:w,thumbs:v.current,values:y,orientation:i,form:s,children:(0,b.jsx)(D.Provider,{scope:a.__scopeSlider,children:(0,b.jsx)(D.Slot,{scope:a.__scopeSlider,children:(0,b.jsx)(x?N:O,{"aria-disabled":j,"data-disabled":j?"":void 0,...u,ref:d,onPointerDown:(0,q.composeEventHandlers)(u.onPointerDown,()=>{j||(C.current=y)}),min:f,max:g,inverted:r,onSlideStart:j?void 0:function(a){let b=function(a,b){if(1===a.length)return 0;let c=a.map(a=>Math.abs(a-b)),d=Math.min(...c);return c.indexOf(d)}(y,a);E(a,b)},onSlideMove:j?void 0:function(a){E(a,w.current)},onSlideEnd:j?void 0:function(){let a=C.current[w.current];y[w.current]!==a&&o(y)},onHomeKeyDown:()=>!j&&E(f,0,{commit:!0}),onEndKeyDown:()=>!j&&E(g,y.length-1,{commit:!0}),onStepKeyDown:({event:a,direction:b})=>{if(!j){let c=z.includes(a.key)||a.shiftKey&&A.includes(a.key),d=w.current;E(y[d]+h*(c?10:1)*b,d,{commit:!0})}}})})})})});K.displayName=C;var[L,M]=G(C,{startEdge:"left",endEdge:"right",size:"width",direction:1}),N=c.forwardRef((a,d)=>{let{min:e,max:f,dir:g,inverted:h,onSlideStart:i,onSlideMove:j,onSlideEnd:k,onStepKeyDown:l,...m}=a,[n,o]=c.useState(null),p=(0,r.useComposedRefs)(d,a=>o(a)),q=c.useRef(void 0),s=(0,u.useDirection)(g),t="ltr"===s,v=t&&!h||!t&&h;function w(a){let b=q.current||n.getBoundingClientRect(),c=Z([0,b.width],v?[e,f]:[f,e]);return q.current=b,c(a-b.left)}return(0,b.jsx)(L,{scope:a.__scopeSlider,startEdge:v?"left":"right",endEdge:v?"right":"left",direction:v?1:-1,size:"width",children:(0,b.jsx)(P,{dir:s,"data-orientation":"horizontal",...m,ref:p,style:{...m.style,"--radix-slider-thumb-transform":"translateX(-50%)"},onSlideStart:a=>{let b=w(a.clientX);i?.(b)},onSlideMove:a=>{let b=w(a.clientX);j?.(b)},onSlideEnd:()=>{q.current=void 0,k?.()},onStepKeyDown:a=>{let b=B[v?"from-left":"from-right"].includes(a.key);l?.({event:a,direction:b?-1:1})}})})}),O=c.forwardRef((a,d)=>{let{min:e,max:f,inverted:g,onSlideStart:h,onSlideMove:i,onSlideEnd:j,onStepKeyDown:k,...l}=a,m=c.useRef(null),n=(0,r.useComposedRefs)(d,m),o=c.useRef(void 0),p=!g;function q(a){let b=o.current||m.current.getBoundingClientRect(),c=Z([0,b.height],p?[f,e]:[e,f]);return o.current=b,c(a-b.top)}return(0,b.jsx)(L,{scope:a.__scopeSlider,startEdge:p?"bottom":"top",endEdge:p?"top":"bottom",size:"height",direction:p?1:-1,children:(0,b.jsx)(P,{"data-orientation":"vertical",...l,ref:n,style:{...l.style,"--radix-slider-thumb-transform":"translateY(50%)"},onSlideStart:a=>{let b=q(a.clientY);h?.(b)},onSlideMove:a=>{let b=q(a.clientY);i?.(b)},onSlideEnd:()=>{o.current=void 0,j?.()},onStepKeyDown:a=>{let b=B[p?"from-bottom":"from-top"].includes(a.key);k?.({event:a,direction:b?-1:1})}})})}),P=c.forwardRef((a,c)=>{let{__scopeSlider:d,onSlideStart:e,onSlideMove:f,onSlideEnd:g,onHomeKeyDown:h,onEndKeyDown:i,onStepKeyDown:j,...k}=a,l=J(C,d);return(0,b.jsx)(x.Primitive.span,{...k,ref:c,onKeyDown:(0,q.composeEventHandlers)(a.onKeyDown,a=>{"Home"===a.key?(h(a),a.preventDefault()):"End"===a.key?(i(a),a.preventDefault()):z.concat(A).includes(a.key)&&(j(a),a.preventDefault())}),onPointerDown:(0,q.composeEventHandlers)(a.onPointerDown,a=>{let b=a.target;b.setPointerCapture(a.pointerId),a.preventDefault(),l.thumbs.has(b)?b.focus():e(a)}),onPointerMove:(0,q.composeEventHandlers)(a.onPointerMove,a=>{a.target.hasPointerCapture(a.pointerId)&&f(a)}),onPointerUp:(0,q.composeEventHandlers)(a.onPointerUp,a=>{let b=a.target;b.hasPointerCapture(a.pointerId)&&(b.releasePointerCapture(a.pointerId),g(a))})})}),Q="SliderTrack",R=c.forwardRef((a,c)=>{let{__scopeSlider:d,...e}=a,f=J(Q,d);return(0,b.jsx)(x.Primitive.span,{"data-disabled":f.disabled?"":void 0,"data-orientation":f.orientation,...e,ref:c})});R.displayName=Q;var S="SliderRange",T=c.forwardRef((a,d)=>{let{__scopeSlider:e,...f}=a,g=J(S,e),h=M(S,e),i=c.useRef(null),j=(0,r.useComposedRefs)(d,i),k=g.values.length,l=g.values.map(a=>Y(a,g.min,g.max)),m=k>1?Math.min(...l):0,n=100-Math.max(...l);return(0,b.jsx)(x.Primitive.span,{"data-orientation":g.orientation,"data-disabled":g.disabled?"":void 0,...f,ref:j,style:{...a.style,[h.startEdge]:m+"%",[h.endEdge]:n+"%"}})});T.displayName=S;var U="SliderThumb",V=c.forwardRef((a,d)=>{let e=E(a.__scopeSlider),[f,g]=c.useState(null),h=(0,r.useComposedRefs)(d,a=>g(a)),i=c.useMemo(()=>f?e().findIndex(a=>a.ref.current===f):-1,[e,f]);return(0,b.jsx)(W,{...a,ref:h,index:i})}),W=c.forwardRef((a,d)=>{var e,f,g,h,i;let j,k,{__scopeSlider:l,index:m,name:n,...o}=a,p=J(U,l),s=M(U,l),[t,u]=c.useState(null),v=(0,r.useComposedRefs)(d,a=>u(a)),y=!t||p.form||!!t.closest("form"),z=(0,w.useSize)(t),A=p.values[m],B=void 0===A?0:Y(A,p.min,p.max),C=(e=m,(f=p.values.length)>2?`Value ${e+1} of ${f}`:2===f?["Minimum","Maximum"][e]:void 0),E=z?.[s.size],F=E?(g=E,h=B,i=s.direction,k=Z([0,50],[0,j=g/2]),(j-k(h)*i)*i):0;return c.useEffect(()=>{if(t)return p.thumbs.add(t),()=>{p.thumbs.delete(t)}},[t,p.thumbs]),(0,b.jsxs)("span",{style:{transform:"var(--radix-slider-thumb-transform)",position:"absolute",[s.startEdge]:`calc(${B}% + ${F}px)`},children:[(0,b.jsx)(D.ItemSlot,{scope:a.__scopeSlider,children:(0,b.jsx)(x.Primitive.span,{role:"slider","aria-label":a["aria-label"]||C,"aria-valuemin":p.min,"aria-valuenow":A,"aria-valuemax":p.max,"aria-orientation":p.orientation,"data-orientation":p.orientation,"data-disabled":p.disabled?"":void 0,tabIndex:p.disabled?void 0:0,...o,ref:v,style:void 0===A?{display:"none"}:a.style,onFocus:(0,q.composeEventHandlers)(a.onFocus,()=>{p.valueIndexToChangeRef.current=m})})}),y&&(0,b.jsx)(X,{name:n??(p.name?p.name+(p.values.length>1?"[]":""):void 0),form:p.form,value:A},m)]})});V.displayName=U;var X=c.forwardRef(({__scopeSlider:a,value:d,...e},f)=>{let g=c.useRef(null),h=(0,r.useComposedRefs)(g,f),i=(0,v.usePrevious)(d);return c.useEffect(()=>{let a=g.current;if(!a)return;let b=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"value").set;if(i!==d&&b){let c=new Event("input",{bubbles:!0});b.call(a,d),a.dispatchEvent(c)}},[i,d]),(0,b.jsx)(x.Primitive.input,{style:{display:"none"},...e,ref:h,defaultValue:d})});function Y(a,b,c){return(0,p.clamp)(100/(c-b)*(a-b),[0,100])}function Z(a,b){return c=>{if(a[0]===a[1]||b[0]===b[1])return b[0];let d=(b[1]-b[0])/(a[1]-a[0]);return b[0]+d*(c-a[0])}}X.displayName="RadioBubbleInput";var $=a.i(64565);let _=c.forwardRef(({className:a,...c},d)=>(0,b.jsxs)(K,{ref:d,className:(0,$.cn)("relative flex w-full touch-none select-none items-center",a),...c,children:[(0,b.jsx)(R,{className:"relative h-1.5 w-full grow overflow-hidden rounded-full bg-[hsl(var(--muted))]",children:(0,b.jsx)(T,{className:"absolute h-full bg-[hsl(var(--primary))]"})}),(0,b.jsx)(V,{className:"block h-4 w-4 rounded-full border border-[hsl(var(--primary))] bg-[hsl(var(--background))] shadow-sm ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50"})]}));_.displayName=K.displayName,a.s(["TemperatureSlider",0,function({value:a,onChange:c,min:d=0,max:e=2,step:f=.05,fallback:g=.7,label:h="温度"}){let i=(a??g).toFixed(2);return(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between text-sm",children:[(0,b.jsx)("span",{className:"font-medium",children:h}),(0,b.jsx)("span",{className:"font-mono text-xs text-muted-foreground",children:i})]}),(0,b.jsx)(_,{value:[a??g],min:d,max:e,step:f,onValueChange:a=>c(a[0]??g)})]})}],87951)},82424,a=>{"use strict";var b=a.i(39096);a.s(["useActiveInstance",0,function(){let{context:a,ready:c}=(0,b.useRuntimeContext)();return{activeInstance:a.activeInstance,ready:c,dataScopeKey:a.dataScopeKey,configRevision:a.configRevision}}])},83643,a=>{"use strict";a.s(["newId",0,function(a="id"){return"u">typeof crypto&&"randomUUID"in crypto?crypto.randomUUID():`${a}_${Date.now()}_${Math.random().toString(36).slice(2)}`}])},76446,a=>{"use strict";a.s(["findUserAnchorAbove",0,function(a,b){let c=a.findIndex(a=>a.id===b);if(c<0)return null;for(let b=c-1;b>=0;b-=1)if("user"===a[b].role)return a[b];return null},"removeAt",0,function(a,b){let c=a.findIndex(a=>a.id===b);if(c<0)return a;let d=a.slice();return d.splice(c,1),d},"removePair",0,function(a,b){let c=a.findIndex(a=>a.id===b);if(c<0)return a;let d=a.slice(),e=a[c+1]&&"assistant"===a[c+1].role?2:1;return d.splice(c,e),d},"truncateUpToAndIncluding",0,function(a,b){let c=a.findIndex(a=>a.id===b);return c<0?a:a.slice(0,c+1)}])},9135,a=>{"use strict";var b=a.i(71938);async function*c(a,b){let c=await fetch("/api/v1/llm/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a),signal:b});if(!c.ok||!c.body){let a=`Chat request failed with status ${c.status}`,b="STREAM_ERROR";try{let d=await c.json();a=d.message??a,b=d.code??b}catch{}yield{type:"error",code:b,message:a};return}let e=c.body.getReader(),f=new TextDecoder("utf-8"),g="";for(;;){let{value:a,done:b}=await e.read();if(b)break;let c=(g+=f.decode(a,{stream:!0})).indexOf("\n\n");for(;-1!==c;){let a=g.slice(0,c);g=g.slice(c+2);let b=d(a);b&&(yield b),c=g.indexOf("\n\n")}}if(g.trim()){let a=d(g);a&&(yield a)}}function d(a){let b=a.split("\n"),c=[];for(let a of b)!(!a||a.startsWith(":"))&&a.startsWith("data:")&&c.push(a.slice(5).trimStart());if(0===c.length)return null;try{return JSON.parse(c.join("\n"))}catch{return null}}var e=a.i(83643),f=a.i(76446);a.s(["useQaChat",0,function(a){let[d,g]=(0,b.useState)([]),[h,i]=(0,b.useState)(!1),[j,k]=(0,b.useState)(null),l=(0,b.useRef)(null),m=(0,b.useRef)(a.onPersist);m.current=a.onPersist;let n=(0,b.useRef)(d);n.current=d;let o=(0,b.useRef)(a);o.current=a;let p=(0,b.useRef)(h);p.current=h;let q=(0,b.useRef)(new Map),r=(0,b.useRef)(null),s=(0,b.useCallback)(()=>{r.current=null;let a=q.current;if(0===a.size)return;let b=new Map(a);a.clear(),g(a=>a.map(a=>{let c=b.get(a.id);return c?{...a,...c.content?{content:a.content+c.content}:null,...c.reasoning?{reasoning:(a.reasoning??"")+c.reasoning}:null}:a}))},[]),t=(0,b.useCallback)(()=>{if(null===r.current){if("u"<typeof requestAnimationFrame)return void s();r.current=requestAnimationFrame(s)}},[s]),u=(0,b.useCallback)(()=>{null!==r.current&&"u">typeof cancelAnimationFrame&&cancelAnimationFrame(r.current),r.current=null},[]);(0,b.useEffect)(()=>u,[u]);let v=(0,b.useCallback)(()=>{l.current?.abort()},[]),w=(0,b.useCallback)(()=>{l.current?.abort(),n.current=[],g([]),k(null)},[]),x=(0,b.useCallback)(a=>{l.current?.abort(),n.current=a,g(a),k(null)},[]),y=(0,b.useCallback)(async(a,b)=>{let d=o.current,e=new AbortController;l.current=e;let f={current:!1},h={current:!1},j=b=>{g(c=>c.map(c=>c.id===a?{...c,...b}:c))};try{let g={activeInstance:d.activeInstance,providerId:d.providerId,model:d.model,messages:b,systemPrompt:d.systemPrompt,temperature:d.temperature,rag:d.rag};for await(let b of c(g,e.signal))if("query.rewritten"===b.type)j({retrievalQuery:b.query,retrievalQueryRewritten:b.query!==b.original});else if("query.fallback"===b.type)j({retrievalQuery:b.original,retrievalQueryRewritten:!1,queryRewriteFailed:!0,queryRewriteError:b.reason});else if("retrieval.done"===b.type)j({retrievedChunks:b.chunks,retrievalGroups:b.byKnowledgeBase});else if("reasoning.delta"===b.type){let c=q.current.get(a)??{};c.reasoning=(c.reasoning??"")+b.delta,q.current.set(a,c),f.current||(f.current=!0,j({reasoningStartedAt:Date.now()})),t()}else if("content.delta"===b.type){let c=q.current.get(a)??{};c.content=(c.content??"")+b.delta,q.current.set(a,c),f.current&&!h.current&&(h.current=!0,j({reasoningCompletedAt:Date.now()})),t()}else if("error"===b.type){u(),s();let a={status:"error",errorMessage:`${b.code}: ${b.message}`};f.current&&!h.current&&(a.reasoningCompletedAt=Date.now()),j(a),k(b.message);break}else if("done"===b.type){u(),s();let a={status:"done"};f.current&&!h.current&&(a.reasoningCompletedAt=Date.now()),j(a);break}}catch(c){u(),s();let a=c instanceof DOMException&&"AbortError"===c.name,b=f.current&&!h.current?{reasoningCompletedAt:Date.now()}:void 0;if(a)j({status:"done",...b});else{let a=c instanceof Error?c.message:String(c);j({status:"error",errorMessage:a,...b}),k(a)}}finally{i(!1),l.current=null;let a=m.current;a&&g(b=>(a(b),b))}},[t,s,u]),z=(0,b.useCallback)(async a=>{let b=a.trim();if(!b||p.current)return;let c=o.current;if(!c.providerId||!c.model)return void k("请先选择模型与 Provider");k(null);let d={id:(0,e.newId)(),role:"user",content:b,createdAt:Date.now(),status:"done"},f=(0,e.newId)(),h=(c.rag?.knowledgeBases?.length??0)>0,j={id:f,role:"assistant",content:"",reasoning:"",createdAt:Date.now(),status:"streaming",usingRag:h},l=[...n.current,d].map(a=>({role:a.role,content:a.content})),m=[...n.current,d,j];n.current=m,g(m),i(!0),await y(f,l)},[y]),A=(0,b.useCallback)(async a=>{if(p.current)return;let b=o.current;if(!b.providerId||!b.model)return void k("请先选择模型与 Provider");let c=(0,f.truncateUpToAndIncluding)(n.current,a),d=c[c.length-1];if(!d||"user"!==d.role)return;k(null);let h=(0,e.newId)(),j=(b.rag?.knowledgeBases?.length??0)>0,l={id:h,role:"assistant",content:"",reasoning:"",createdAt:Date.now(),status:"streaming",usingRag:j},m=c.map(a=>({role:a.role,content:a.content})),q=[...c,l];n.current=q,g(q),i(!0),await y(h,m)},[y]);return{messages:d,isStreaming:h,error:j,send:z,reissueTurn:A,deleteMessage:(0,b.useCallback)((a,b)=>{if(p.current)return;let c=n.current,d=c.find(b=>b.id===a);if(!d)return;let e="user"===d.role&&b?.withNextAssistant?(0,f.removePair)(c,a):(0,f.removeAt)(c,a);n.current=e,g(e),m.current?.(e)},[]),editUserMessage:(0,b.useCallback)((a,b)=>{let c=n.current,d=c.findIndex(b=>b.id===a);if(d<0||"user"!==c[d].role)return null;let e=c.slice();return e[d]={...c[d],content:b},n.current=e,g(e),a},[]),stop:v,clear:w,setMessages:x}}],9135)}];
1
+ module.exports=[98018,a=>{"use strict";let b=(0,a.i(50053).default)("send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]]);a.s(["Send",0,b],98018)},31710,a=>{"use strict";let b=(0,a.i(50053).default)("square",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]);a.s(["Square",0,b],31710)},31687,a=>{"use strict";let b=(0,a.i(50053).default)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);a.s(["AlertCircle",0,b],31687)},42210,a=>{"use strict";let b=(0,a.i(50053).default)("book-open",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]]);a.s(["BookOpen",0,b],42210)},42216,a=>a.a(async(b,c)=>{try{let b=await a.y("shiki-2963fa3a20578463");a.n(b),c()}catch(a){c(a)}},!0),23195,a=>a.a(async(b,c)=>{try{let b=await a.y("shiki-2963fa3a20578463/engine/javascript");a.n(b),c()}catch(a){c(a)}},!0),28778,a=>a.a(async(b,c)=>{try{var d=a.i(42216),e=a.i(23195),f=b([d,e]);[d,e]=f.then?(await f)():f;var g=(0,e.createJavaScriptRegexEngine)({forgiving:!0}),h=Object.fromEntries(d.bundledLanguagesInfo.flatMap(a=>{var b;return(null!=(b=a.aliases)?b:[]).map(b=>[b,a.id])})),i=new Set(Object.keys(d.bundledLanguages)),j=a=>{let b=a.trim().toLowerCase();return h[b]||(i.has(b),b)},k=new Map,l=new Map,m=new Map,n=a=>{var b;return"string"==typeof a?a:null!=(b=a.name)?b:"custom"},o=function(a={}){var b;let c=null!=(b=a.themes)?b:["github-light","github-dark"];return{name:"shiki",type:"code-highlighter",supportsLanguage(a){let b=j(a);return i.has(b)},getSupportedLanguages:()=>Array.from(i),getThemes:()=>c,highlight({code:a,language:b,themes:c},e){let f,h,o=j(b),p=[n(c[0]),n(c[1])],q=(f=a.slice(0,100),h=a.length>100?a.slice(-100):"",`${o}:${p[0]}:${p[1]}:${a.length}:${f}:${h}`);if(l.has(q))return l.get(q);e&&(m.has(q)||m.set(q,new Set),m.get(q).add(e));let r=i.has(o)?o:"text";return((a,b)=>{let c=`${a}-${n(b[0])}-${n(b[1])}`;if(k.has(c))return k.get(c);let e=(0,d.createHighlighter)({themes:b,langs:[a],engine:g});return k.set(c,e),e})(r,c).then(b=>{let c=b.getLoadedLanguages().includes(o)?o:"text",d=b.codeToTokens(a,{lang:c,themes:{light:p[0],dark:p[1]}});l.set(q,d);let e=m.get(q);if(e){for(let a of e)a(d);m.delete(q)}}).catch(a=>{console.error("[Streamdown Code] Failed to highlight code:",a),m.delete(q)}),null}}}();a.s(["code",0,o]),c()}catch(a){c(a)}},!1),26925,a=>{"use strict";a.i(2617),a.s([])},46400,a=>{"use strict";var b=a.i(2617);a.s(["Streamdown",()=>b.C])},93280,a=>{"use strict";var b=a.i(34020),c=a.i(71938),d=a.i(53520),e=a.i(16772),f=a.i(64565);a.s(["CodeBlock",0,function({className:a,children:g,node:h,...i}){let j=(0,c.useRef)(null),[k,l]=(0,c.useState)(!1),m=function(a){for(let b of c.Children.toArray(a)){if(!(0,c.isValidElement)(b))continue;let a=b.props;if("string"!=typeof a?.className)continue;let d=a.className.match(/language-([a-z0-9+#-]+)/i);if(d)return d[1]}}(g)??"",n=(0,c.useCallback)(async()=>{let a=j.current?.innerText??"";if(a)try{await navigator.clipboard.writeText(a),l(!0),window.setTimeout(()=>l(!1),2e3)}catch{}},[]);return(0,b.jsxs)("div",{className:"group relative my-2 overflow-hidden rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--muted)/0.5)]",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between border-b border-[hsl(var(--border))] bg-[hsl(var(--muted)/0.8)] px-3 py-1.5",children:[(0,b.jsx)("span",{className:"font-mono text-[11px] uppercase tracking-wide text-muted-foreground",children:m||"text"}),(0,b.jsx)("button",{type:"button",onClick:n,className:(0,f.cn)("inline-flex items-center gap-1 rounded px-2 py-0.5 text-[11px] text-muted-foreground","opacity-0 transition-opacity hover:bg-[hsl(var(--accent))] hover:text-foreground","group-hover:opacity-100 focus-visible:opacity-100",k&&"opacity-100 text-primary"),"aria-label":"复制代码",children:k?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(d.Check,{className:"h-3 w-3"}),"已复制"]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(e.Copy,{className:"h-3 w-3"}),"复制"]})})]}),(0,b.jsx)("pre",{ref:j,className:(0,f.cn)("overflow-x-auto p-3 text-xs leading-relaxed","[&_code]:bg-transparent [&_code]:p-0",a),...i,children:g})]})}])},13562,a=>a.a(async(b,c)=>{try{var d=a.i(34020),e=a.i(28778);a.i(26925);var f=a.i(46400),g=a.i(64565),h=a.i(93280),i=b([e]);[e]=i.then?(await i)():i;let j=["https://","http://","mailto:","#","/"],k=["https://","data:image/"],l=(a,b)=>{let c=a.toLowerCase();return("src"===b?k:j).some(a=>c.startsWith(a))?a:""};a.s(["Markdown",0,function({children:a,className:b}){return(0,d.jsx)("div",{className:(0,g.cn)("text-sm leading-relaxed text-foreground/90","[&_p]:my-2 [&_ul]:my-2 [&_ol]:my-2 [&_li]:my-0.5","[&_ul]:list-disc [&_ul]:pl-5 [&_ol]:list-decimal [&_ol]:pl-5","[&_h1]:mt-4 [&_h1]:mb-2 [&_h1]:text-lg [&_h1]:font-semibold","[&_h2]:mt-3 [&_h2]:mb-2 [&_h2]:text-base [&_h2]:font-semibold","[&_h3]:mt-3 [&_h3]:mb-1.5 [&_h3]:text-sm [&_h3]:font-semibold","[&_a]:text-primary [&_a]:underline [&_a]:underline-offset-2","[&_:not(pre)>code]:rounded [&_:not(pre)>code]:bg-[hsl(var(--muted))] [&_:not(pre)>code]:px-1 [&_:not(pre)>code]:py-0.5 [&_:not(pre)>code]:text-[0.85em]","[&_table]:my-2 [&_table]:w-full [&_table]:border-collapse","[&_th]:border [&_th]:border-[hsl(var(--border))] [&_th]:px-2 [&_th]:py-1 [&_th]:text-left [&_th]:font-semibold","[&_td]:border [&_td]:border-[hsl(var(--border))] [&_td]:px-2 [&_td]:py-1","[&_blockquote]:my-2 [&_blockquote]:border-l-2 [&_blockquote]:border-[hsl(var(--border))] [&_blockquote]:pl-3 [&_blockquote]:text-muted-foreground","[&_hr]:my-3 [&_hr]:border-[hsl(var(--border))]",b),children:(0,d.jsx)(f.Streamdown,{parseIncompleteMarkdown:!0,skipHtml:!0,urlTransform:l,plugins:{code:e.code},components:{pre:h.CodeBlock},controls:{code:!1,table:!1,mermaid:!1},children:a})})}]),c()}catch(a){c(a)}},!1),73570,a=>a.a(async(b,c)=>{try{var d=a.i(34020),e=a.i(71938),f=a.i(31687),g=a.i(37102),h=a.i(42210),i=a.i(47845),j=a.i(1927),k=a.i(16772),l=a.i(12537),m=a.i(16106),n=a.i(9380),o=a.i(98018),p=a.i(55295),q=a.i(63265),r=a.i(76192),s=a.i(36890),t=a.i(27692),u=a.i(70535),v=a.i(24567),w=a.i(64565),x=a.i(13562),y=b([x]);[x]=y.then?(await y)():y;let J=(0,e.memo)(function({message:a,busy:b,onDelete:c,onResend:e,onRegenerate:f,onEditSave:g}){return"user"===a.role?(0,d.jsx)(D,{message:a,busy:b,onDelete:c,onResend:e,onEditSave:g}):(0,d.jsx)(E,{message:a,busy:b,onDelete:c,onRegenerate:f})},(a,b)=>a.message===b.message&&a.busy===b.busy);function z({align:a,disabled:b,onCopy:c,onDelete:e,onEdit:f,onResend:g,onRegenerate:h}){return(0,d.jsxs)("div",{className:(0,w.cn)("mt-1 flex items-center gap-0.5 opacity-0 transition-opacity duration-150","group-hover:opacity-100 group-focus-within:opacity-100","group-data-[touched=true]:opacity-100","right"===a?"justify-end":"justify-start"),children:[(0,d.jsx)(A,{title:"复制",disabled:b,onClick:c,children:(0,d.jsx)(k.Copy,{className:"h-3.5 w-3.5"})}),f&&(0,d.jsx)(A,{title:"编辑",disabled:b,onClick:f,children:(0,d.jsx)(l.Pencil,{className:"h-3.5 w-3.5"})}),g&&(0,d.jsx)(A,{title:"重新发送",disabled:b,onClick:g,children:(0,d.jsx)(o.Send,{className:"h-3.5 w-3.5"})}),h&&(0,d.jsx)(A,{title:"重新生成",disabled:b,onClick:h,children:(0,d.jsx)(m.RotateCcw,{className:"h-3.5 w-3.5"})}),(0,d.jsx)(A,{title:"删除",disabled:b,onClick:e,destructive:!0,children:(0,d.jsx)(p.Trash2,{className:"h-3.5 w-3.5"})})]})}function A({title:a,disabled:b,destructive:c,onClick:e,children:f}){return(0,d.jsx)(r.Button,{type:"button",variant:"ghost",size:"icon",title:a,"aria-label":a,disabled:b,onClick:e,className:(0,w.cn)("h-7 w-7 text-muted-foreground hover:text-foreground",c&&"hover:text-[hsl(var(--destructive))] hover:bg-[hsl(var(--destructive))]/10"),children:f})}function B({rewriteFailed:a,rewriteError:b,failedKbCount:c,failedKbDetails:e}){let f=!!a,g=(c??0)>0;return f||g?(0,d.jsxs)("div",{className:"space-y-1.5",children:[f&&(0,d.jsx)(C,{label:"意图重写失败 · 已回退到原问题",detail:b??"rewriter 返回空结果或抛错"}),g&&e&&(0,d.jsx)(C,{label:`${c} 个知识库检索失败`,detail:e.map(a=>`• ${a.name}: ${a.reason}`).join("\n")})]}):null}function C({label:a,detail:b}){let[c,f]=(0,e.useState)(!1);return(0,d.jsxs)("div",{className:"rounded-md border border-amber-500/30 bg-amber-500/5",children:[(0,d.jsxs)("button",{type:"button",onClick:()=>f(a=>!a),className:(0,w.cn)("flex w-full items-center gap-1.5 px-2 py-1 text-xs","text-amber-700 hover:bg-amber-500/10 dark:text-amber-300"),children:[(0,d.jsx)(g.AlertTriangle,{className:"h-3.5 w-3.5 shrink-0"}),(0,d.jsx)("span",{className:"flex-1 text-left",children:a}),(0,d.jsx)(j.ChevronDown,{className:(0,w.cn)("h-3 w-3 opacity-60 transition-transform duration-150",c&&"rotate-180")})]}),c&&(0,d.jsx)("pre",{className:"border-t border-amber-500/20 px-2 py-1.5 text-[11px] leading-relaxed text-amber-700/80 dark:text-amber-300/80 whitespace-pre-wrap font-mono",children:b})]})}function D({message:a,busy:b,onDelete:c,onResend:f,onEditSave:g}){let[h,i]=(0,e.useState)(!1),[j,k]=(0,e.useState)(!1),[l,m]=(0,e.useState)(a.content),[n,o]=(0,e.useState)(!1),[p,t]=(0,e.useState)(!1),[w,x]=(0,e.useState)(!0),y=(0,e.useCallback)(()=>{navigator.clipboard.writeText(a.content),q.toast.success("已复制")},[a.content]),A=(0,e.useCallback)(()=>{let b=l.trim();if(!b||b===a.content){k(!1),m(a.content);return}k(!1),g(a.id,b)},[l,a.content,a.id,g]),B=(0,e.useCallback)(()=>{m(a.content),k(!1)},[a.content]),C=(0,e.useCallback)(a=>{"Escape"===a.key?(a.preventDefault(),B()):"Enter"===a.key&&(a.metaKey||a.ctrlKey)&&(a.preventDefault(),A())},[A,B]);return(0,d.jsxs)("div",{className:"group flex justify-end","data-touched":h?"true":void 0,onClickCapture:()=>i(!0),children:[(0,d.jsxs)("div",{className:"flex max-w-[85%] flex-col items-end",children:[j?(0,d.jsxs)("div",{className:"w-full max-w-2xl rounded-2xl border border-[hsl(var(--primary))] bg-[hsl(var(--background))] p-2",children:[(0,d.jsx)(u.Textarea,{autoFocus:!0,value:l,onChange:a=>m(a.target.value),onKeyDown:C,className:"min-h-[80px] resize-y border-0 p-2 text-sm shadow-none focus-visible:ring-0"}),(0,d.jsxs)("div",{className:"mt-1 flex justify-end gap-2",children:[(0,d.jsx)(r.Button,{type:"button",variant:"ghost",size:"sm",onClick:B,children:"取消"}),(0,d.jsx)(r.Button,{type:"button",size:"sm",disabled:!l.trim()||l.trim()===a.content,onClick:A,children:"保存并重发"})]})]}):(0,d.jsx)("div",{className:"rounded-2xl rounded-tr-sm bg-[hsl(var(--muted)/0.7)] px-4 py-2.5 text-sm leading-relaxed text-foreground whitespace-pre-wrap",children:a.content}),!j&&(0,d.jsx)(z,{align:"right",disabled:b,onCopy:y,onEdit:()=>{m(a.content),k(!0)},onResend:()=>t(!0),onDelete:()=>o(!0)})]}),(0,d.jsx)(v.ConfirmDialog,{open:n,onOpenChange:o,title:"删除此消息?",description:"该操作不可撤销。",confirmText:"删除",variant:"danger",onConfirm:()=>{c(a.id,{withNextAssistant:w}),o(!1)},children:(0,d.jsxs)("label",{className:"flex items-center gap-2 text-sm text-foreground",children:[(0,d.jsx)(s.Checkbox,{checked:w,onCheckedChange:a=>x(!0===a)}),"同时删除下方的 AI 回复"]})}),(0,d.jsx)(v.ConfirmDialog,{open:p,onOpenChange:t,title:"重新发送此消息?",description:"将丢弃下方所有消息并重新生成回答。",confirmText:"重新发送",onConfirm:()=>{t(!1),f(a.id)}})]})}function E({message:a,busy:b,onDelete:c,onRegenerate:g}){let[h,i]=(0,e.useState)(!1),[j,k]=(0,e.useState)(!1),[l,m]=(0,e.useState)(!1),o="streaming"===a.status,p="error"===a.status,r=(a.reasoning?.length??0)>0,s=(a.content?.length??0)>0,t=r||o&&!s,u=!!a.usingRag&&!a.retrievalQuery,w=!!a.retrievalQuery&&!a.retrievedChunks,y=(a.retrievalGroups??[]).filter(a=>a.error).map(a=>({name:a.knowledgeBaseName,reason:a.error??""})),A=(0,e.useCallback)(()=>{navigator.clipboard.writeText(a.content),q.toast.success("已复制")},[a.content]);return(0,d.jsxs)("div",{className:"group space-y-3 text-sm leading-relaxed","data-touched":h?"true":void 0,onClickCapture:()=>i(!0),children:[t?(0,d.jsx)(F,{reasoning:a.reasoning??"",streaming:o,startedAt:a.reasoningStartedAt,completedAt:a.reasoningCompletedAt,intentExtracting:u,retrievalInFlight:w}):null,(0,d.jsx)(B,{rewriteFailed:a.queryRewriteFailed,rewriteError:a.queryRewriteError,failedKbCount:y.length,failedKbDetails:y}),a.retrievalQueryRewritten&&a.retrievalQuery?(0,d.jsxs)("div",{className:"inline-flex max-w-full items-center gap-1.5 rounded-md bg-[hsl(var(--muted)/0.4)] px-2 py-1 text-xs text-muted-foreground",children:[(0,d.jsx)(n.Search,{className:"h-3 w-3 shrink-0"}),(0,d.jsx)("span",{className:"font-medium shrink-0",children:"检索关键词:"}),(0,d.jsx)("span",{className:"truncate font-mono text-foreground/80",children:a.retrievalQuery})]}):null,a.retrievedChunks&&a.retrievedChunks.length>0?(0,d.jsx)(G,{chunks:a.retrievedChunks,groups:a.retrievalGroups}):null,p?(0,d.jsxs)("div",{className:"flex items-start gap-2 rounded-md border border-[hsl(var(--destructive))/0.3] bg-[hsl(var(--destructive))/0.05] px-3 py-2 text-[hsl(var(--destructive))]",children:[(0,d.jsx)(f.AlertCircle,{className:"mt-0.5 h-4 w-4 shrink-0"}),(0,d.jsx)("span",{className:"text-xs",children:a.errorMessage??"生成失败"})]}):(0,d.jsxs)("div",{className:"text-foreground/90",children:[(0,d.jsx)(x.Markdown,{children:a.content}),o?(0,d.jsx)("span",{className:"ml-0.5 inline-block h-3.5 w-1.5 animate-pulse bg-foreground align-baseline"}):null]}),(0,d.jsx)(z,{align:"left",disabled:b||o,onCopy:A,onRegenerate:()=>m(!0),onDelete:()=>k(!0)}),(0,d.jsx)(v.ConfirmDialog,{open:j,onOpenChange:k,title:"删除此回复?",description:"该操作不可撤销。",confirmText:"删除",variant:"danger",onConfirm:()=>{c(a.id),k(!1)}}),(0,d.jsx)(v.ConfirmDialog,{open:l,onOpenChange:m,title:"重新生成此回复?",description:"将丢弃下方所有消息并重新生成。",confirmText:"重新生成",onConfirm:()=>{m(!1),g(a.id)}})]})}function F({reasoning:a,streaming:b,startedAt:c,completedAt:f,intentExtracting:g,retrievalInFlight:h}){var k,l;let m,n,o,[p,q]=(0,e.useState)(!1),r=function(a,b){let[c,d]=(0,e.useState)(()=>Date.now());return((0,e.useEffect)(()=>{if(!a||b)return;let c=window.setInterval(()=>d(Date.now()),250);return()=>window.clearInterval(c)},[a,b]),a)?Math.max(0,(b??c)-a):null}(c,f),s=null!=r?(k=r,l=!b||!!f,m=Math.floor(k/1e3),n=Math.floor(m/60),o=m%60,l?0===n?`用时 ${o} 秒`:`用时 ${n} 分 ${o} 秒`:`${n}:${String(o).padStart(2,"0")}`):null,u=b&&!f,v=a.length>0,x="正在思考";return v?x="深度思考中":h?x="正在检索知识库":g&&(x="检索意图提取"),(0,d.jsxs)(t.Collapsible,{open:p,onOpenChange:q,children:[(0,d.jsx)(t.CollapsibleTrigger,{asChild:!0,children:(0,d.jsxs)("button",{type:"button",disabled:!v,className:(0,w.cn)("group inline-flex items-center gap-2 rounded-full pl-1.5 pr-2.5 py-1 text-xs font-medium transition-all duration-200",u?"bg-[hsl(var(--primary)/0.08)] text-[hsl(var(--primary))] ring-1 ring-[hsl(var(--primary)/0.25)] shadow-[0_0_0_4px_hsl(var(--primary)/0.06)]":"bg-[hsl(var(--muted)/0.6)] text-muted-foreground hover:bg-[hsl(var(--accent))] hover:text-foreground",!v&&"cursor-default"),"aria-live":u?"polite":"off",children:[(0,d.jsxs)("span",{className:"relative inline-flex h-5 w-5 items-center justify-center",children:[u&&(0,d.jsx)("span",{"aria-hidden":!0,className:"absolute inset-0 rounded-full bg-[hsl(var(--primary))] opacity-40 blur-[6px] animate-thinking-aurora"}),(0,d.jsx)(i.Brain,{className:(0,w.cn)("relative h-3.5 w-3.5",u&&"animate-thinking-icon text-[hsl(var(--primary))]")})]}),u?(0,d.jsx)("span",{className:"animate-text-shimmer bg-[linear-gradient(90deg,hsl(var(--primary)/0.55)_0%,hsl(var(--primary))_50%,hsl(var(--primary)/0.55)_100%)] bg-[length:200%_100%] bg-clip-text text-transparent",children:x}):(0,d.jsx)("span",{children:"已深度思考"}),s&&(0,d.jsxs)("span",{className:(0,w.cn)("tabular-nums text-[11px]",u?"text-[hsl(var(--primary)/0.75)]":"text-muted-foreground/80"),children:["· ",s]}),v&&(0,d.jsx)(j.ChevronDown,{className:(0,w.cn)("h-3 w-3 opacity-60 transition-transform duration-200",p&&"rotate-180",u&&"text-[hsl(var(--primary))]")})]})}),v&&(0,d.jsx)(t.CollapsibleContent,{children:(0,d.jsx)("div",{className:"mt-2 border-l-2 border-[hsl(var(--border))] pl-3 text-xs leading-relaxed text-muted-foreground whitespace-pre-wrap",children:a})})]})}function G({chunks:a,groups:b}){let[c,f]=(0,e.useState)(!1),g=new Map;a.forEach((a,b)=>{g.set(`${a.docId}#${a.chunkId}`,b+1)});let i=(b??[]).filter(a=>!a.error),k=(b??[]).filter(a=>a.error),l=i.length>=2||k.length>0;return(0,d.jsxs)(t.Collapsible,{open:c,onOpenChange:f,children:[(0,d.jsx)(t.CollapsibleTrigger,{asChild:!0,children:(0,d.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 rounded-md px-2 py-1 text-xs text-muted-foreground transition-colors hover:bg-[hsl(var(--accent))] hover:text-foreground",children:[(0,d.jsx)(h.BookOpen,{className:"h-3.5 w-3.5"}),"查看 ",a.length," 个引用",l?(0,d.jsxs)("span",{className:"text-muted-foreground/70",children:["· ",i.length," 个知识库",k.length>0?`(${k.length} 失败)`:""]}):null,(0,d.jsx)(j.ChevronDown,{className:(0,w.cn)("h-3 w-3 transition-transform duration-200",c&&"rotate-180")})]})}),(0,d.jsx)(t.CollapsibleContent,{children:(0,d.jsx)("div",{className:"mt-2 space-y-3",children:l?(0,d.jsxs)(d.Fragment,{children:[i.map(a=>(0,d.jsx)(H,{group:a,indexByKey:g},`ok-${a.knowledgeBaseName}`)),k.map(a=>(0,d.jsxs)("div",{className:"rounded-md border border-[hsl(var(--destructive))/0.3] bg-[hsl(var(--destructive))/0.05] px-3 py-2 text-xs text-[hsl(var(--destructive))]",children:[(0,d.jsx)("span",{className:"font-medium",children:a.knowledgeBaseName}),(0,d.jsxs)("span",{className:"ml-2 text-[hsl(var(--destructive))/0.8]",children:["检索失败:",a.error]})]},`err-${a.knowledgeBaseName}`))]}):(0,d.jsx)("div",{className:"space-y-2",children:a.map((a,b)=>(0,d.jsx)(I,{chunk:a,index:b+1},`${a.docId}-${a.chunkId}`))})})})]})}function H({group:a,indexByKey:b}){return(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 text-xs font-medium text-muted-foreground",children:[(0,d.jsx)("span",{className:"text-foreground/80",children:a.knowledgeBaseName}),(0,d.jsxs)("span",{children:["· ",a.chunks.length," 条"]})]}),(0,d.jsx)("div",{className:"space-y-2 border-l-2 border-[hsl(var(--border))] pl-3",children:a.chunks.map(a=>{let c=`${a.docId}#${a.chunkId}`,e=b.get(c)??0;return(0,d.jsx)(I,{chunk:a,index:e},`${a.docId}-${a.chunkId}`)})})]})}function I({chunk:a,index:b}){let c=a.ossKey?.split("/").pop()||a.ossKey||"未知文件";return(0,d.jsxs)("div",{className:"rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--muted)/0.3)] p-3",children:[(0,d.jsxs)("div",{className:"mb-1.5 flex items-center gap-2 text-xs text-muted-foreground",children:[(0,d.jsx)("span",{className:"inline-flex h-5 w-5 items-center justify-center rounded-full bg-[hsl(var(--primary-50))] font-semibold text-primary",children:b>0?b:"–"}),(0,d.jsx)("span",{className:"font-medium text-foreground/80",children:c}),(0,d.jsxs)("span",{children:["Chunk #",a.chunkId]}),(0,d.jsx)("span",{className:"ml-auto font-mono",children:a.score.toFixed(4)})]}),(0,d.jsx)("p",{className:"line-clamp-4 whitespace-pre-wrap text-xs text-foreground/80",children:a.content})]})}J.displayName="QaMessage",a.s(["QaMessage",0,J]),c()}catch(a){c(a)}},!1),57900,a=>a.a(async(b,c)=>{try{var d=a.i(34020),e=a.i(71938),f=a.i(88189),g=a.i(98018),h=a.i(31710),i=a.i(76192),j=a.i(70535),k=a.i(10215),l=a.i(64565),m=a.i(73570),n=b([m]);[m]=n.then?(await n)():n,a.s(["QaChatPanel",0,function({messages:a,isStreaming:b,canSend:c,error:n,onSend:o,onStop:p,onDelete:q,onResend:r,onRegenerate:s,onEditSave:t,emptyState:u,disabledPlaceholder:v}){let[w,x]=(0,e.useState)(""),y=(0,e.useRef)(null),z=(0,e.useRef)(a.length);(0,e.useEffect)(()=>{let b=y.current;if(!b)return;let c=a.length>z.current;(z.current=a.length,c)?requestAnimationFrame(()=>{b.scrollTo({top:b.scrollHeight,behavior:"smooth"})}):b.scrollHeight-b.scrollTop-b.clientHeight<120&&b.scrollTo({top:b.scrollHeight,behavior:"smooth"})},[a]);let A=()=>{let a=w.trim();a&&c&&!b&&(o(a),x(""))};return(0,d.jsxs)("div",{className:"flex h-full min-h-0 flex-1 flex-col bg-[hsl(var(--card))]",children:[(0,d.jsx)("div",{ref:y,role:"log","aria-live":"polite","aria-relevant":"additions text","aria-busy":b,className:"flex-1 space-y-6 overflow-y-auto px-6 py-5",children:0===a.length?(0,d.jsx)("div",{className:"flex h-full min-h-[320px] items-center justify-center",children:(0,d.jsx)(k.EmptyState,{icon:f.MessageSquare,title:u?.title??"开始对话",description:u?.description??"输入问题,系统会先从知识库检索相关内容,再让大模型基于检索结果回答",action:u?.actionLabel&&u?.onAction?(0,d.jsx)(i.Button,{type:"button",onClick:u.onAction,children:u.actionLabel}):void 0})}):a.map(a=>(0,d.jsx)(m.QaMessage,{message:a,busy:b,onDelete:q,onResend:r,onRegenerate:s,onEditSave:t},a.id))}),(0,d.jsxs)("div",{className:"border-t border-[hsl(var(--border))] bg-[hsl(var(--surface)/0.6)] px-4 py-3",children:[n&&(0,d.jsx)("p",{className:"mb-2 text-xs text-[hsl(var(--destructive))]",children:n}),(0,d.jsxs)("div",{className:"flex items-end gap-2",children:[(0,d.jsx)(j.Textarea,{value:w,onChange:a=>x(a.target.value),onKeyDown:a=>{"Enter"!==a.key||a.shiftKey||a.nativeEvent.isComposing||(a.preventDefault(),A())},placeholder:c?"输入问题,Enter 发送,Shift+Enter 换行":v??"请先在左侧选择模型...",disabled:!c,className:(0,l.cn)("min-h-[44px] max-h-40 resize-none text-sm"),rows:1}),b?(0,d.jsx)(i.Button,{type:"button",variant:"outline",size:"icon",onClick:p,title:"停止",children:(0,d.jsx)(h.Square,{className:"h-4 w-4 fill-current"})}):(0,d.jsx)(i.Button,{type:"button",size:"icon",disabled:!c||!w.trim(),onClick:A,title:"发送",children:(0,d.jsx)(g.Send,{className:"h-4 w-4"})})]})]})]})}]),c()}catch(a){c(a)}},!1),64363,55553,32191,87951,a=>{"use strict";var b=a.i(34020),c=a.i(71938),d=a.i(53520),e=a.i(82725),f=a.i(81619),g=a.i(25825),h=a.i(68826),i=a.i(76192),j=/[\\\/_+.#"@\[\(\{&]/,k=/[\\\/_+.#"@\[\(\{&]/g,l=/[\s-]/,m=/[\s-]/g;function n(a){return a.toLowerCase().replace(m," ")}var o=a.i(88619),p=a.i(5305),q=a.i(59231),r=a.i(68189),s='[cmdk-group=""]',t='[cmdk-group-items=""]',u='[cmdk-item=""]',v=`${u}:not([aria-disabled="true"])`,w="cmdk-item-select",x="data-value",y=(a,b,c)=>{var d;return d=a,function a(b,c,d,e,f,g,h){if(g===c.length)return f===b.length?1:.99;var i=`${f},${g}`;if(void 0!==h[i])return h[i];for(var n,o,p,q,r=e.charAt(g),s=d.indexOf(r,f),t=0;s>=0;)(n=a(b,c,d,e,s+1,g+1,h))>t&&(s===f?n*=1:j.test(b.charAt(s-1))?(n*=.8,(p=b.slice(f,s-1).match(k))&&f>0&&(n*=Math.pow(.999,p.length))):l.test(b.charAt(s-1))?(n*=.9,(q=b.slice(f,s-1).match(m))&&f>0&&(n*=Math.pow(.999,q.length))):(n*=.17,f>0&&(n*=Math.pow(.999,s-f))),b.charAt(s)!==c.charAt(g)&&(n*=.9999)),(n<.1&&d.charAt(s-1)===e.charAt(g+1)||e.charAt(g+1)===e.charAt(g)&&d.charAt(s-1)!==e.charAt(g))&&.1*(o=a(b,c,d,e,s+1,g+2,h))>n&&(n=.1*o),n>t&&(t=n),s=d.indexOf(r,s+1);return h[i]=t,t}(d=c&&c.length>0?`${d+" "+c.join(" ")}`:d,b,n(d),n(b),0,0,{})},z=c.createContext(void 0),A=c.createContext(void 0),B=c.createContext(void 0),C=c.forwardRef((a,b)=>{let d=M(()=>{var b,c;return{search:"",value:null!=(c=null!=(b=a.value)?b:a.defaultValue)?c:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),e=M(()=>new Set),f=M(()=>new Map),g=M(()=>new Map),h=M(()=>new Set),i=K(a),{label:j,children:k,value:l,onValueChange:m,filter:n,shouldFilter:o,loop:r,disablePointerSelection:B=!1,vimBindings:C=!0,...D}=a,E=(0,q.useId)(),F=(0,q.useId)(),G=(0,q.useId)(),H=c.useRef(null),I=P();L(()=>{if(void 0!==l){let a=l.trim();d.current.value=a,J.emit()}},[l]),L(()=>{I(6,V)},[]);let J=c.useMemo(()=>({subscribe:a=>(h.current.add(a),()=>h.current.delete(a)),snapshot:()=>d.current,setState:(a,b,c)=>{var e,f,g,h;if(!Object.is(d.current[a],b)){if(d.current[a]=b,"search"===a)U(),S(),I(1,T);else if("value"===a){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let a=document.getElementById(G);a?a.focus():null==(e=document.getElementById(E))||e.focus()}if(I(7,()=>{var a;d.current.selectedItemId=null==(a=W())?void 0:a.id,J.emit()}),c||I(5,V),(null==(f=i.current)?void 0:f.value)!==void 0){null==(h=(g=i.current).onValueChange)||h.call(g,null!=b?b:"");return}}J.emit()}},emit:()=>{h.current.forEach(a=>a())}}),[]),N=c.useMemo(()=>({value:(a,b,c)=>{var e;b!==(null==(e=g.current.get(a))?void 0:e.value)&&(g.current.set(a,{value:b,keywords:c}),d.current.filtered.items.set(a,O(b,c)),I(2,()=>{S(),J.emit()}))},item:(a,b)=>(e.current.add(a),b&&(f.current.has(b)?f.current.get(b).add(a):f.current.set(b,new Set([a]))),I(3,()=>{U(),S(),d.current.value||T(),J.emit()}),()=>{g.current.delete(a),e.current.delete(a),d.current.filtered.items.delete(a);let b=W();I(4,()=>{U(),(null==b?void 0:b.getAttribute("id"))===a&&T(),J.emit()})}),group:a=>(f.current.has(a)||f.current.set(a,new Set),()=>{g.current.delete(a),f.current.delete(a)}),filter:()=>i.current.shouldFilter,label:j||a["aria-label"],getDisablePointerSelection:()=>i.current.disablePointerSelection,listId:E,inputId:G,labelId:F,listInnerRef:H}),[]);function O(a,b){var c,e;let f=null!=(e=null==(c=i.current)?void 0:c.filter)?e:y;return a?f(a,d.current.search,b):0}function S(){if(!d.current.search||!1===i.current.shouldFilter)return;let a=d.current.filtered.items,b=[];d.current.filtered.groups.forEach(c=>{let d=f.current.get(c),e=0;d.forEach(b=>{e=Math.max(a.get(b),e)}),b.push([c,e])});let c=H.current;X().sort((b,c)=>{var d,e;let f=b.getAttribute("id"),g=c.getAttribute("id");return(null!=(d=a.get(g))?d:0)-(null!=(e=a.get(f))?e:0)}).forEach(a=>{let b=a.closest(t);b?b.appendChild(a.parentElement===b?a:a.closest(`${t} > *`)):c.appendChild(a.parentElement===c?a:a.closest(`${t} > *`))}),b.sort((a,b)=>b[1]-a[1]).forEach(a=>{var b;let c=null==(b=H.current)?void 0:b.querySelector(`${s}[${x}="${encodeURIComponent(a[0])}"]`);null==c||c.parentElement.appendChild(c)})}function T(){let a=X().find(a=>"true"!==a.getAttribute("aria-disabled")),b=null==a?void 0:a.getAttribute(x);J.setState("value",b||void 0)}function U(){var a,b,c,h;if(!d.current.search||!1===i.current.shouldFilter){d.current.filtered.count=e.current.size;return}d.current.filtered.groups=new Set;let j=0;for(let f of e.current){let e=O(null!=(b=null==(a=g.current.get(f))?void 0:a.value)?b:"",null!=(h=null==(c=g.current.get(f))?void 0:c.keywords)?h:[]);d.current.filtered.items.set(f,e),e>0&&j++}for(let[a,b]of f.current)for(let c of b)if(d.current.filtered.items.get(c)>0){d.current.filtered.groups.add(a);break}d.current.filtered.count=j}function V(){var a,b,c;let d=W();d&&((null==(a=d.parentElement)?void 0:a.firstChild)===d&&(null==(c=null==(b=d.closest(s))?void 0:b.querySelector('[cmdk-group-heading=""]'))||c.scrollIntoView({block:"nearest"})),d.scrollIntoView({block:"nearest"}))}function W(){var a;return null==(a=H.current)?void 0:a.querySelector(`${u}[aria-selected="true"]`)}function X(){var a;return Array.from((null==(a=H.current)?void 0:a.querySelectorAll(v))||[])}function Y(a){let b=X()[a];b&&J.setState("value",b.getAttribute(x))}function Z(a){var b;let c=W(),d=X(),e=d.findIndex(a=>a===c),f=d[e+a];null!=(b=i.current)&&b.loop&&(f=e+a<0?d[d.length-1]:e+a===d.length?d[0]:d[e+a]),f&&J.setState("value",f.getAttribute(x))}function $(a){let b=W(),c=null==b?void 0:b.closest(s),d;for(;c&&!d;)d=null==(c=a>0?function(a,b){let c=a.nextElementSibling;for(;c;){if(c.matches(b))return c;c=c.nextElementSibling}}(c,s):function(a,b){let c=a.previousElementSibling;for(;c;){if(c.matches(b))return c;c=c.previousElementSibling}}(c,s))?void 0:c.querySelector(v);d?J.setState("value",d.getAttribute(x)):Z(a)}let _=()=>Y(X().length-1),aa=a=>{a.preventDefault(),a.metaKey?_():a.altKey?$(1):Z(1)},ab=a=>{a.preventDefault(),a.metaKey?Y(0):a.altKey?$(-1):Z(-1)};return c.createElement(p.Primitive.div,{ref:b,tabIndex:-1,...D,"cmdk-root":"",onKeyDown:a=>{var b;null==(b=D.onKeyDown)||b.call(D,a);let c=a.nativeEvent.isComposing||229===a.keyCode;if(!(a.defaultPrevented||c))switch(a.key){case"n":case"j":C&&a.ctrlKey&&aa(a);break;case"ArrowDown":aa(a);break;case"p":case"k":C&&a.ctrlKey&&ab(a);break;case"ArrowUp":ab(a);break;case"Home":a.preventDefault(),Y(0);break;case"End":a.preventDefault(),_();break;case"Enter":{a.preventDefault();let b=W();if(b){let a=new Event(w);b.dispatchEvent(a)}}}}},c.createElement("label",{"cmdk-label":"",htmlFor:N.inputId,id:N.labelId,style:R},j),Q(a,a=>c.createElement(A.Provider,{value:J},c.createElement(z.Provider,{value:N},a))))}),D=c.forwardRef((a,b)=>{var d,e;let f=(0,q.useId)(),g=c.useRef(null),h=c.useContext(B),i=c.useContext(z),j=K(a),k=null!=(e=null==(d=j.current)?void 0:d.forceMount)?e:null==h?void 0:h.forceMount;L(()=>{if(!k)return i.item(f,null==h?void 0:h.id)},[k]);let l=O(f,g,[a.value,a.children,g],a.keywords),m=c.useContext(A),n=N(a=>a.value&&a.value===l.current),o=N(a=>!!k||!1===i.filter()||!a.search||a.filtered.items.get(f)>0);function s(){var a,b;t(),null==(b=(a=j.current).onSelect)||b.call(a,l.current)}function t(){m.setState("value",l.current,!0)}if(c.useEffect(()=>{let b=g.current;if(!(!b||a.disabled))return b.addEventListener(w,s),()=>b.removeEventListener(w,s)},[o,a.onSelect,a.disabled]),!o)return null;let{disabled:u,value:v,onSelect:x,forceMount:y,keywords:C,...D}=a;return c.createElement(p.Primitive.div,{ref:(0,r.composeRefs)(g,b),...D,id:f,"cmdk-item":"",role:"option","aria-disabled":!!u,"aria-selected":!!n,"data-disabled":!!u,"data-selected":!!n,onPointerMove:u||i.getDisablePointerSelection()?void 0:t,onClick:u?void 0:s},a.children)}),E=c.forwardRef((a,b)=>{let{heading:d,children:e,forceMount:f,...g}=a,h=(0,q.useId)(),i=c.useRef(null),j=c.useRef(null),k=(0,q.useId)(),l=c.useContext(z),m=N(a=>!!f||!1===l.filter()||!a.search||a.filtered.groups.has(h));L(()=>l.group(h),[]),O(h,i,[a.value,a.heading,j]);let n=c.useMemo(()=>({id:h,forceMount:f}),[f]);return c.createElement(p.Primitive.div,{ref:(0,r.composeRefs)(i,b),...g,"cmdk-group":"",role:"presentation",hidden:!m||void 0},d&&c.createElement("div",{ref:j,"cmdk-group-heading":"","aria-hidden":!0,id:k},d),Q(a,a=>c.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":d?k:void 0},c.createElement(B.Provider,{value:n},a))))}),F=c.forwardRef((a,b)=>{let{alwaysRender:d,...e}=a,f=c.useRef(null),g=N(a=>!a.search);return d||g?c.createElement(p.Primitive.div,{ref:(0,r.composeRefs)(f,b),...e,"cmdk-separator":"",role:"separator"}):null}),G=c.forwardRef((a,b)=>{let{onValueChange:d,...e}=a,f=null!=a.value,g=c.useContext(A),h=N(a=>a.search),i=N(a=>a.selectedItemId),j=c.useContext(z);return c.useEffect(()=>{null!=a.value&&g.setState("search",a.value)},[a.value]),c.createElement(p.Primitive.input,{ref:b,...e,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":j.listId,"aria-labelledby":j.labelId,"aria-activedescendant":i,id:j.inputId,type:"text",value:f?a.value:h,onChange:a=>{f||g.setState("search",a.target.value),null==d||d(a.target.value)}})}),H=c.forwardRef((a,b)=>{let{children:d,label:e="Suggestions",...f}=a,g=c.useRef(null),h=c.useRef(null),i=N(a=>a.selectedItemId),j=c.useContext(z);return c.useEffect(()=>{if(h.current&&g.current){let a=h.current,b=g.current,c,d=new ResizeObserver(()=>{c=requestAnimationFrame(()=>{let c=a.offsetHeight;b.style.setProperty("--cmdk-list-height",c.toFixed(1)+"px")})});return d.observe(a),()=>{cancelAnimationFrame(c),d.unobserve(a)}}},[]),c.createElement(p.Primitive.div,{ref:(0,r.composeRefs)(g,b),...f,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":i,"aria-label":e,id:j.listId},Q(a,a=>c.createElement("div",{ref:(0,r.composeRefs)(h,j.listInnerRef),"cmdk-list-sizer":""},a)))}),I=c.forwardRef((a,b)=>{let{open:d,onOpenChange:e,overlayClassName:f,contentClassName:g,container:h,...i}=a;return c.createElement(o.Root,{open:d,onOpenChange:e},c.createElement(o.Portal,{container:h},c.createElement(o.Overlay,{"cmdk-overlay":"",className:f}),c.createElement(o.Content,{"aria-label":a.label,"cmdk-dialog":"",className:g},c.createElement(C,{ref:b,...i}))))}),J=Object.assign(C,{List:H,Item:D,Input:G,Group:E,Separator:F,Dialog:I,Empty:c.forwardRef((a,b)=>N(a=>0===a.filtered.count)?c.createElement(p.Primitive.div,{ref:b,...a,"cmdk-empty":"",role:"presentation"}):null),Loading:c.forwardRef((a,b)=>{let{progress:d,children:e,label:f="Loading...",...g}=a;return c.createElement(p.Primitive.div,{ref:b,...g,"cmdk-loading":"",role:"progressbar","aria-valuenow":d,"aria-valuemin":0,"aria-valuemax":100,"aria-label":f},Q(a,a=>c.createElement("div",{"aria-hidden":!0},a)))})});function K(a){let b=c.useRef(a);return L(()=>{b.current=a}),b}var L=c.useEffect;function M(a){let b=c.useRef();return void 0===b.current&&(b.current=a()),b}function N(a){let b=c.useContext(A),d=()=>a(b.snapshot());return c.useSyncExternalStore(b.subscribe,d,d)}function O(a,b,d,e=[]){let f=c.useRef(),g=c.useContext(z);return L(()=>{var c;let h=(()=>{var a;for(let b of d){if("string"==typeof b)return b.trim();if("object"==typeof b&&"current"in b)return b.current?null==(a=b.current.textContent)?void 0:a.trim():f.current}})(),i=e.map(a=>a.trim());g.value(a,h,i),null==(c=b.current)||c.setAttribute(x,h),f.current=h}),f}var P=()=>{let[a,b]=c.useState(),d=M(()=>new Map);return L(()=>{d.current.forEach(a=>a()),d.current=new Map},[a]),(a,c)=>{d.current.set(a,c),b({})}};function Q({asChild:a,children:b},d){let e;return a&&c.isValidElement(b)?c.cloneElement("function"==typeof(e=b.type)?e(b.props):"render"in e?e.render(b.props):b,{ref:b.ref},d(b.props.children)):d(b)}var R={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"},S=a.i(9380),T=a.i(64565);a.i(43836);let U=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(J,{ref:d,className:(0,T.cn)("flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",a),...c}));U.displayName=J.displayName;let V=c.forwardRef(({className:a,...c},d)=>(0,b.jsxs)("div",{className:"flex items-center border-b px-3","cmdk-input-wrapper":"",children:[(0,b.jsx)(S.Search,{className:"mr-2 h-4 w-4 shrink-0 opacity-50"}),(0,b.jsx)(J.Input,{ref:d,className:(0,T.cn)("flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",a),...c})]}));V.displayName=J.Input.displayName;let W=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(J.List,{ref:d,className:(0,T.cn)("max-h-[300px] overflow-y-auto overflow-x-hidden",a),...c}));W.displayName=J.List.displayName;let X=c.forwardRef((a,c)=>(0,b.jsx)(J.Empty,{ref:c,className:"py-6 text-center text-sm",...a}));X.displayName=J.Empty.displayName;let Y=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(J.Group,{ref:d,className:(0,T.cn)("overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",a),...c}));Y.displayName=J.Group.displayName,c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(J.Separator,{ref:d,className:(0,T.cn)("-mx-1 h-px bg-border",a),...c})).displayName=J.Separator.displayName;let Z=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(J.Item,{ref:d,className:(0,T.cn)("relative flex cursor-pointer gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors data-[disabled=true]:pointer-events-none data-[selected=true]:bg-[hsl(var(--primary-soft))] data-[selected=true]:text-[hsl(var(--primary))] data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",a),...c}));Z.displayName=J.Item.displayName,a.s(["Command",0,U,"CommandEmpty",0,X,"CommandGroup",0,Y,"CommandInput",0,V,"CommandItem",0,Z,"CommandList",0,W],55553);var $=a.i(62491),_=a.i(84252),aa=a.i(63525),ab=a.i(37255),ac=a.i(83366),ad=a.i(83917),ae=a.i(25377),af=a.i(39096);function ag({value:a,options:f,onChange:h,disabled:j,fetching:k}){let[l,m]=(0,c.useState)(!1),[n,o]=(0,c.useState)(""),p=n.trim(),q=(0,c.useMemo)(()=>{if(!p)return f;let a=p.toLowerCase();return f.filter(b=>b.toLowerCase().includes(a))},[f,p]),r=f.some(a=>a.toLowerCase()===p.toLowerCase()),s=p.length>0&&!r,t=a=>{h(a),o(""),m(!1)};return(0,b.jsxs)(_.Popover,{open:l,onOpenChange:m,children:[(0,b.jsx)(_.PopoverTrigger,{asChild:!0,children:(0,b.jsxs)(i.Button,{type:"button",variant:"outline",role:"combobox","aria-expanded":l,disabled:j,className:"w-full justify-between font-normal",children:[(0,b.jsx)("span",{className:(0,T.cn)("truncate text-left",!a&&"text-[hsl(var(--subtle))]"),children:a||"选择或输入模型名"}),(0,b.jsx)(e.ChevronsUpDown,{className:"h-4 w-4 shrink-0 opacity-50"})]})}),(0,b.jsx)(_.PopoverContent,{align:"start",className:"w-[var(--radix-popover-trigger-width)] p-0",children:(0,b.jsxs)(U,{shouldFilter:!1,children:[(0,b.jsx)(V,{placeholder:"搜索或输入模型名",value:n,onValueChange:o}),(0,b.jsxs)(W,{children:[0!==q.length||s?null:(0,b.jsx)(X,{children:k?"正在拉取模型列表...":0===f.length?"点击「刷新列表」拉取可用模型":"无匹配结果"}),q.length>0&&(0,b.jsx)(Y,{heading:s?"可选模型":void 0,children:q.map(c=>(0,b.jsxs)(Z,{value:c,onSelect:()=>t(c),children:[(0,b.jsx)(d.Check,{className:(0,T.cn)("h-4 w-4",a===c?"opacity-100":"opacity-0")}),(0,b.jsx)("span",{className:"truncate",children:c})]},c))}),s&&(0,b.jsx)(Y,{heading:"使用自定义",children:(0,b.jsxs)(Z,{value:`__custom__${p}`,onSelect:()=>t(p),children:[(0,b.jsx)(g.Plus,{className:"h-4 w-4 text-[hsl(var(--primary))]"}),(0,b.jsxs)("span",{className:"truncate",children:['使用 "',p,'"']})]})})]})]})})]})}a.s(["LLMModelSelector",0,function({providerId:a,model:d,onProviderChange:e,onModelChange:g,autoSelectFirst:j=!1,providerLabel:k="Provider",modelLabel:l="Model"}){let{data:m=[],isLoading:n}=(0,ab.useLLMProviders)(),{data:o,isFetching:p,refetch:q}=function(a,b={}){let{context:c,ready:d}=(0,af.useRuntimeContext)();return(0,ac.useQuery)({queryKey:ae.queryKeys.llmProviderModels(c.dataScopeKey,a),queryFn:()=>(0,ad.fetchProviderModels)(a),enabled:d&&!!a&&(b.enabled??!0),staleTime:3e5,retry:!1})}(a||void 0,{enabled:!!a});(0,c.useEffect)(()=>{if(!j||a||0===m.length)return;let b=m[0];e(b.id,b.defaultModel??"")},[j,a,m]);let r=(0,c.useMemo)(()=>{let b=new Set;for(let a of(d&&b.add(d),o??[]))b.add(a.id);let c=m.find(b=>b.id===a);return c?.defaultModel&&b.add(c.defaultModel),Array.from(b)},[d,o,m,a]);return(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)($.Label,{className:"text-sm font-medium",children:k}),(0,b.jsxs)(aa.Select,{value:a,onValueChange:a=>{let b=m.find(b=>b.id===a);e(a,b?.defaultModel??"")},disabled:n||0===m.length,children:[(0,b.jsx)(aa.SelectTrigger,{children:(0,b.jsx)(aa.SelectValue,{placeholder:n?"加载中...":0===m.length?"请先在「模型提供商」中创建配置":"选择 Provider"})}),(0,b.jsx)(aa.SelectContent,{children:m.map(a=>(0,b.jsx)(aa.SelectItem,{value:a.id,children:a.name},a.id))})]})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsx)($.Label,{className:"text-sm font-medium",children:l}),(0,b.jsxs)(i.Button,{type:"button",variant:"ghost",size:"sm",className:"h-6 px-2 text-xs",disabled:!a||p,onClick:()=>q(),children:[p?(0,b.jsx)(f.Loader2,{className:"mr-1 h-3 w-3 animate-spin"}):(0,b.jsx)(h.RefreshCw,{className:"mr-1 h-3 w-3"}),"刷新列表"]})]}),(0,b.jsx)(ag,{value:d,options:r,onChange:g,disabled:!a,fetching:p})]})]})}],64363);var ah=a.i(70535);a.s(["SystemPromptInput",0,function({value:a,onChange:c,placeholder:d,helperText:e,rows:f=3,label:g="系统提示词"}){return(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)($.Label,{className:"text-sm font-medium",children:g}),(0,b.jsx)(ah.Textarea,{rows:f,value:a,onChange:a=>c(a.target.value),placeholder:d,className:"text-sm"}),e&&(0,b.jsx)("p",{className:"text-xs text-muted-foreground",children:e})]})}],32191);var ai=a.i(50681);a.s(["TemperatureSlider",0,function({value:a,onChange:c,min:d=0,max:e=2,step:f=.05,fallback:g=.7,label:h="温度"}){let i=(a??g).toFixed(2);return(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between text-sm",children:[(0,b.jsx)("span",{className:"font-medium",children:h}),(0,b.jsx)("span",{className:"font-mono text-xs text-muted-foreground",children:i})]}),(0,b.jsx)(ai.Slider,{value:[a??g],min:d,max:e,step:f,onValueChange:a=>c(a[0]??g)})]})}],87951)},82424,a=>{"use strict";var b=a.i(39096);a.s(["useActiveInstance",0,function(){let{context:a,ready:c}=(0,b.useRuntimeContext)();return{activeInstance:a.activeInstance,ready:c,dataScopeKey:a.dataScopeKey,configRevision:a.configRevision}}])},83643,a=>{"use strict";a.s(["newId",0,function(a="id"){return"u">typeof crypto&&"randomUUID"in crypto?crypto.randomUUID():`${a}_${Date.now()}_${Math.random().toString(36).slice(2)}`}])},76446,a=>{"use strict";a.s(["findUserAnchorAbove",0,function(a,b){let c=a.findIndex(a=>a.id===b);if(c<0)return null;for(let b=c-1;b>=0;b-=1)if("user"===a[b].role)return a[b];return null},"removeAt",0,function(a,b){let c=a.findIndex(a=>a.id===b);if(c<0)return a;let d=a.slice();return d.splice(c,1),d},"removePair",0,function(a,b){let c=a.findIndex(a=>a.id===b);if(c<0)return a;let d=a.slice(),e=a[c+1]&&"assistant"===a[c+1].role?2:1;return d.splice(c,e),d},"truncateUpToAndIncluding",0,function(a,b){let c=a.findIndex(a=>a.id===b);return c<0?a:a.slice(0,c+1)}])},9135,a=>{"use strict";var b=a.i(71938);async function*c(a,b){let c=await fetch("/api/v1/llm/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a),signal:b});if(!c.ok||!c.body){let a=`Chat request failed with status ${c.status}`,b="STREAM_ERROR";try{let d=await c.json();a=d.message??a,b=d.code??b}catch{}yield{type:"error",code:b,message:a};return}let e=c.body.getReader(),f=new TextDecoder("utf-8"),g="";for(;;){let{value:a,done:b}=await e.read();if(b)break;let c=(g+=f.decode(a,{stream:!0})).indexOf("\n\n");for(;-1!==c;){let a=g.slice(0,c);g=g.slice(c+2);let b=d(a);b&&(yield b),c=g.indexOf("\n\n")}}if(g.trim()){let a=d(g);a&&(yield a)}}function d(a){let b=a.split("\n"),c=[];for(let a of b)!(!a||a.startsWith(":"))&&a.startsWith("data:")&&c.push(a.slice(5).trimStart());if(0===c.length)return null;try{return JSON.parse(c.join("\n"))}catch{return null}}var e=a.i(83643),f=a.i(76446);a.s(["useQaChat",0,function(a){let[d,g]=(0,b.useState)([]),[h,i]=(0,b.useState)(!1),[j,k]=(0,b.useState)(null),l=(0,b.useRef)(null),m=(0,b.useRef)(a.onPersist);m.current=a.onPersist;let n=(0,b.useRef)(d);n.current=d;let o=(0,b.useRef)(a);o.current=a;let p=(0,b.useRef)(h);p.current=h;let q=(0,b.useRef)(new Map),r=(0,b.useRef)(null),s=(0,b.useCallback)(()=>{r.current=null;let a=q.current;if(0===a.size)return;let b=new Map(a);a.clear(),g(a=>a.map(a=>{let c=b.get(a.id);return c?{...a,...c.content?{content:a.content+c.content}:null,...c.reasoning?{reasoning:(a.reasoning??"")+c.reasoning}:null}:a}))},[]),t=(0,b.useCallback)(()=>{if(null===r.current){if("u"<typeof requestAnimationFrame)return void s();r.current=requestAnimationFrame(s)}},[s]),u=(0,b.useCallback)(()=>{null!==r.current&&"u">typeof cancelAnimationFrame&&cancelAnimationFrame(r.current),r.current=null},[]);(0,b.useEffect)(()=>u,[u]);let v=(0,b.useCallback)(()=>{l.current?.abort()},[]),w=(0,b.useCallback)(()=>{l.current?.abort(),n.current=[],g([]),k(null)},[]),x=(0,b.useCallback)(a=>{l.current?.abort(),n.current=a,g(a),k(null)},[]),y=(0,b.useCallback)(async(a,b)=>{let d=o.current,e=new AbortController;l.current=e;let f={current:!1},h={current:!1},j=b=>{g(c=>c.map(c=>c.id===a?{...c,...b}:c))};try{let g={activeInstance:d.activeInstance,providerId:d.providerId,model:d.model,messages:b,systemPrompt:d.systemPrompt,temperature:d.temperature,rag:d.rag};for await(let b of c(g,e.signal))if("query.rewritten"===b.type)j({retrievalQuery:b.query,retrievalQueryRewritten:b.query!==b.original});else if("query.fallback"===b.type)j({retrievalQuery:b.original,retrievalQueryRewritten:!1,queryRewriteFailed:!0,queryRewriteError:b.reason});else if("retrieval.done"===b.type)j({retrievedChunks:b.chunks,retrievalGroups:b.byKnowledgeBase});else if("reasoning.delta"===b.type){let c=q.current.get(a)??{};c.reasoning=(c.reasoning??"")+b.delta,q.current.set(a,c),f.current||(f.current=!0,j({reasoningStartedAt:Date.now()})),t()}else if("content.delta"===b.type){let c=q.current.get(a)??{};c.content=(c.content??"")+b.delta,q.current.set(a,c),f.current&&!h.current&&(h.current=!0,j({reasoningCompletedAt:Date.now()})),t()}else if("error"===b.type){u(),s();let a={status:"error",errorMessage:`${b.code}: ${b.message}`};f.current&&!h.current&&(a.reasoningCompletedAt=Date.now()),j(a),k(b.message);break}else if("done"===b.type){u(),s();let a={status:"done"};f.current&&!h.current&&(a.reasoningCompletedAt=Date.now()),j(a);break}}catch(c){u(),s();let a=c instanceof DOMException&&"AbortError"===c.name,b=f.current&&!h.current?{reasoningCompletedAt:Date.now()}:void 0;if(a)j({status:"done",...b});else{let a=c instanceof Error?c.message:String(c);j({status:"error",errorMessage:a,...b}),k(a)}}finally{i(!1),l.current=null;let a=m.current;a&&g(b=>(a(b),b))}},[t,s,u]),z=(0,b.useCallback)(async a=>{let b=a.trim();if(!b||p.current)return;let c=o.current;if(!c.providerId||!c.model)return void k("请先选择模型与 Provider");k(null);let d={id:(0,e.newId)(),role:"user",content:b,createdAt:Date.now(),status:"done"},f=(0,e.newId)(),h=(c.rag?.knowledgeBases?.length??0)>0,j={id:f,role:"assistant",content:"",reasoning:"",createdAt:Date.now(),status:"streaming",usingRag:h},l=[...n.current,d].map(a=>({role:a.role,content:a.content})),m=[...n.current,d,j];n.current=m,g(m),i(!0),await y(f,l)},[y]),A=(0,b.useCallback)(async a=>{if(p.current)return;let b=o.current;if(!b.providerId||!b.model)return void k("请先选择模型与 Provider");let c=(0,f.truncateUpToAndIncluding)(n.current,a),d=c[c.length-1];if(!d||"user"!==d.role)return;k(null);let h=(0,e.newId)(),j=(b.rag?.knowledgeBases?.length??0)>0,l={id:h,role:"assistant",content:"",reasoning:"",createdAt:Date.now(),status:"streaming",usingRag:j},m=c.map(a=>({role:a.role,content:a.content})),q=[...c,l];n.current=q,g(q),i(!0),await y(h,m)},[y]);return{messages:d,isStreaming:h,error:j,send:z,reissueTurn:A,deleteMessage:(0,b.useCallback)((a,b)=>{if(p.current)return;let c=n.current,d=c.find(b=>b.id===a);if(!d)return;let e="user"===d.role&&b?.withNextAssistant?(0,f.removePair)(c,a):(0,f.removeAt)(c,a);n.current=e,g(e),m.current?.(e)},[]),editUserMessage:(0,b.useCallback)((a,b)=>{let c=n.current,d=c.findIndex(b=>b.id===a);if(d<0||"user"!==c[d].role)return null;let e=c.slice();return e[d]={...c[d],content:b},n.current=e,g(e),a},[]),stop:v,clear:w,setMessages:x}}],9135)}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__0jb9ccl._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[93695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},62430,(a,b,c)=>{b.exports=a.r(18622)},5659,a=>{a.n(a.i(46861))},39653,a=>{a.n(a.i(1832))},49043,a=>{a.n(a.i(12506))},99902,a=>{a.n(a.i(45083))},86405,a=>{a.n(a.i(1686))},48298,a=>{a.n(a.i(80239))},77425,a=>{a.n(a.i(36833))},76920,a=>{a.n(a.i(91088))},56415,a=>{a.n(a.i(51943))},81482,a=>{a.n(a.i(78486))},8392,a=>{a.n(a.i(42492))},51819,a=>{a.n(a.i(15498))},21447,a=>{a.n(a.i(24457))},78681,a=>{a.n(a.i(29868))},96401,a=>{a.n(a.i(73667))},89117,a=>{a.n(a.i(54177))},62798,a=>{a.n(a.i(13232))},57340,a=>{a.n(a.i(26357))},10276,a=>{a.n(a.i(89049))},18021,a=>{a.n(a.i(57553))},53279,a=>{a.n(a.i(33775))},76780,a=>{a.n(a.i(15072))},68186,a=>{a.n(a.i(25630))},38099,a=>{a.n(a.i(2827))},77453,a=>{a.n(a.i(98469))},23976,a=>{a.n(a.i(58652))},48927,a=>{a.n(a.i(19824))},80524,a=>{a.n(a.i(31300))},52501,a=>{a.n(a.i(22118))},57287,a=>{a.n(a.i(63497))},25381,a=>{a.n(a.i(89785))},98316,a=>{a.n(a.i(49897))},63441,a=>{a.n(a.i(29576))},20467,a=>{"use strict";a.s(["PageHeader",()=>b]);let b=(0,a.i(13981).registerClientReference)(function(){throw Error("Attempted to call PageHeader() from the server but PageHeader is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/dashboard/src/components/layout/page-header.tsx <module evaluation>","PageHeader")},90060,a=>{"use strict";a.s(["PageHeader",()=>b]);let b=(0,a.i(13981).registerClientReference)(function(){throw Error("Attempted to call PageHeader() from the server but PageHeader is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/dashboard/src/components/layout/page-header.tsx","PageHeader")},53028,a=>{"use strict";a.i(20467);var b=a.i(90060);a.n(b)},28176,a=>{"use strict";a.s(["LLMProviderForm",()=>b]);let b=(0,a.i(13981).registerClientReference)(function(){throw Error("Attempted to call LLMProviderForm() from the server but LLMProviderForm is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/dashboard/src/components/llm-providers/llm-provider-form.tsx <module evaluation>","LLMProviderForm")},82332,a=>{"use strict";a.s(["LLMProviderForm",()=>b]);let b=(0,a.i(13981).registerClientReference)(function(){throw Error("Attempted to call LLMProviderForm() from the server but LLMProviderForm is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/dashboard/src/components/llm-providers/llm-provider-form.tsx","LLMProviderForm")},51085,a=>{"use strict";a.i(28176);var b=a.i(82332);a.n(b)},90515,a=>{"use strict";var b=a.i(16842),c=a.i(53028),d=a.i(51085);a.s(["default",0,function(){return(0,b.jsxs)("div",{className:"mx-auto max-w-2xl space-y-6",children:[(0,b.jsx)(c.PageHeader,{title:"新建大模型配置",description:"输入 OpenAI 兼容的 Base URL 与 API Key;保存后可拉取模型列表并测试连通性"}),(0,b.jsx)(d.LLMProviderForm,{})]})}])},80030,a=>{a.n(a.i(90515))}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0jhpb-b._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[50227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},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)},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})]})}])},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)},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)},12537,a=>{"use strict";let b=(0,a.i(50053).default)("pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);a.s(["Pencil",0,b],12537)},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)},83917,a=>{"use strict";var b=a.i(53141);async function c(){return(await (0,b.apiGet)("/api/v1/llm/providers")).providers}async function d(a){return(await (0,b.apiGet)(`/api/v1/llm/providers/${encodeURIComponent(a)}`)).provider}async function e(a){return(await (0,b.apiPost)("/api/v1/llm/providers",a)).provider}async function f(a,c){return(await (0,b.apiPut)(`/api/v1/llm/providers/${encodeURIComponent(a)}`,c)).provider}async function g(a){await (0,b.apiDelete)(`/api/v1/llm/providers/${encodeURIComponent(a)}`)}async function h(a){return(await (0,b.apiGet)(`/api/v1/llm/providers/${encodeURIComponent(a)}/models`)).models}async function i(a){return(await (0,b.apiPost)(`/api/v1/llm/providers/${encodeURIComponent(a)}/test`)).result}a.s(["createProvider",0,e,"deleteProvider",0,g,"fetchProviderModels",0,h,"getProvider",0,d,"listProviders",0,c,"testProviderConnectivity",0,i,"updateProvider",0,f])},37255,a=>{"use strict";var b=a.i(83366),c=a.i(83917),d=a.i(25377),e=a.i(39096);a.s(["useLLMProviders",0,function(){let{context:a,ready:f}=(0,e.useRuntimeContext)();return(0,b.useQuery)({queryKey:d.queryKeys.llmProviders(a.dataScopeKey),queryFn:c.listProviders,enabled:f,staleTime:3e4})}])},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})]})]})})}])},16106,a=>{"use strict";let b=(0,a.i(50053).default)("rotate-ccw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]);a.s(["RotateCcw",0,b],16106)},11097,a=>{a.v(b=>Promise.all(["server/chunks/ssr/0w08_streamdown_dist_highlighted-body-OFNGDK62_03c0toy.js"].map(b=>a.l(b))).then(()=>b(37971)))},91275,a=>{a.v(b=>Promise.all(["server/chunks/ssr/0w08_streamdown_dist_mermaid-GHXKKRXX_03ew1fz.js"].map(b=>a.l(b))).then(()=>b(91395)))}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__13ylf4x._.js.map
@@ -0,0 +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)},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)},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"]})]})}])},19974,a=>{"use strict";let b=(0,a.i(50053).default)("file-text",[["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"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);a.s(["FileText",0,b],19974)},47491,13773,a=>{"use strict";let b=(0,a.i(50053).default)("book-open-text",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M16 12h2",key:"7q9ll5"}],["path",{d:"M16 8h2",key:"msurwy"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}],["path",{d:"M6 12h2",key:"32wvfc"}],["path",{d:"M6 8h2",key:"30oboj"}]]);a.s(["BookOpenText",0,b],47491);var c=a.i(34020),d=a.i(71938),e=a.i(80470),f=a.i(63265),g=a.i(37102),h=a.i(76192),i=a.i(72518),j=a.i(62491),k=a.i(43836),l=a.i(33596),m=a.i(77072),n=a.i(69024),o=a.i(25377);a.s(["KBDeleteDialog",0,function({knowledgeBaseName:a,open:b,onOpenChange:p}){let q,r=(0,e.useRouter)(),s=(q=(0,m.useQueryClient)(),(0,l.useMutation)({mutationFn:a=>(0,n.deleteKnowledgeBase)(a),onSuccess:()=>{(0,o.invalidateKnowledgeBaseQueries)(q)}})),[t,u]=(0,d.useState)(""),v=t===a;async function w(){if(a&&v)try{await s.mutateAsync(a),f.toast.success(`知识库 "${a}" 已删除`),u(""),p(!1),r.push("/knowledge-base")}catch(b){let a=b instanceof Error?b.message:"删除知识库失败";f.toast.error(a)}}return(0,c.jsx)(k.Dialog,{open:b,onOpenChange:a=>{a||u(""),p(a)},children:(0,c.jsxs)(k.DialogContent,{className:"sm:max-w-md",children:[(0,c.jsx)(k.DialogHeader,{children:(0,c.jsx)(k.DialogTitle,{className:"text-xl",children:"删除知识库"})}),(0,c.jsx)("div",{className:"rounded-md border border-[hsl(var(--destructive))] bg-[hsl(var(--destructive))/0.06] px-4 py-3 text-sm leading-relaxed",children:(0,c.jsxs)("p",{children:[(0,c.jsx)(g.AlertTriangle,{className:"inline h-4 w-4 text-destructive mr-1 -mt-0.5"}),"此操作",(0,c.jsx)("strong",{className:"text-[hsl(var(--destructive))] font-semibold",children:"不可撤销"}),"。将永久删除知识库"," ",(0,c.jsx)("strong",{className:"font-semibold",children:a})," ","及其所有文档和数据。"]})}),(0,c.jsxs)("div",{className:"space-y-2 py-2",children:[(0,c.jsxs)(j.Label,{children:["请输入"," ",(0,c.jsx)("code",{className:"rounded bg-[hsl(var(--muted))] px-1 py-px font-mono text-[13px] font-semibold text-[hsl(var(--destructive))]",children:a})," ","以确认删除"]}),(0,c.jsx)(i.Input,{placeholder:a??"",value:t,onChange:a=>u(a.target.value),autoComplete:"off"})]}),(0,c.jsxs)(k.DialogFooter,{children:[(0,c.jsx)(h.Button,{variant:"outline",onClick:()=>{u(""),p(!1)},children:"取消"}),(0,c.jsx)(h.Button,{variant:"destructive",disabled:!v||s.isPending,onClick:w,children:s.isPending?"删除中...":"确认删除"})]})]})})}],13773)},7234,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(23028),i=a.i(4395),j=a.i(82461),k=a.i(10215),l=a.i(54540),m=a.i(9367),n=a.i(97798),o=a.i(80470),p=a.i(47491),q=a.i(59058),r=a.i(55295),s=a.i(19974),t=a.i(9380),u=a.i(24215),v=a.i(73524),w=a.i(24666),x=a.i(21989),y=a.i(65271);function z({knowledgeBase:a,onDelete:d}){let f=(0,o.useRouter)(),{knowledgeBaseName:g,description:h,tags:i,subspace:j,updatedAt:k,metadata:l}=a,m=l?.length??0,n=a.retrievalConfiguration?.searchType??[];return(0,b.jsx)(c.default,{href:`/knowledge-base/${encodeURIComponent(g)}`,className:"no-underline",children:(0,b.jsx)(v.CardInteractive,{className:"group relative flex h-full cursor-pointer flex-col",children:(0,b.jsxs)(v.CardContent,{className:"flex flex-col flex-1 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)(p.BookOpenText,{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.stopPropagation(),children:(0,b.jsxs)(w.DropdownMenu,{children:[(0,b.jsx)(w.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)(w.DropdownMenuContent,{align:"end",children:[(0,b.jsxs)(w.DropdownMenuItem,{onClick:()=>f.push(`/knowledge-base/${encodeURIComponent(g)}/documents`),children:[(0,b.jsx)(s.FileText,{className:"mr-2 h-4 w-4"}),"查看文档"]}),(0,b.jsxs)(w.DropdownMenuItem,{onClick:()=>f.push(`/knowledge-base/${encodeURIComponent(g)}/retrieval`),children:[(0,b.jsx)(t.Search,{className:"mr-2 h-4 w-4"}),"检索测试"]}),(0,b.jsxs)(w.DropdownMenuItem,{onClick:()=>f.push(`/knowledge-base/${encodeURIComponent(g)}/settings`),children:[(0,b.jsx)(u.Settings,{className:"mr-2 h-4 w-4"}),"设置"]}),(0,b.jsxs)(w.DropdownMenuItem,{className:"text-[hsl(var(--destructive))] focus:text-[hsl(var(--destructive))]",onClick:()=>d?.(g),children:[(0,b.jsx)(r.Trash2,{className:"mr-2 h-4 w-4"}),"删除"]})]})]})})]}),h&&(0,b.jsx)("p",{className:"mt-1.5 text-sm text-muted-foreground line-clamp-2",children:h}),i&&i.length>0&&(0,b.jsx)("div",{className:"mt-3 flex flex-wrap gap-1.5",children:i.map(a=>(0,b.jsx)(x.Badge,{variant:"secondary",className:"rounded-pill border-0 bg-[hsl(var(--primary-50))] text-primary text-xs font-normal",children:a},a))}),(0,b.jsxs)("div",{className:"mt-auto pt-4 flex items-center gap-3 text-xs text-muted-foreground",children:[j&&(0,b.jsxs)("span",{className:"inline-flex items-center gap-1",children:[(0,b.jsx)("span",{className:"h-1.5 w-1.5 rounded-full bg-green-500"}),"已开启子空间隔离"]}),m>0&&(0,b.jsxs)("span",{children:[m," 个 Metadata 字段"]}),n.length>0&&(0,b.jsx)("span",{children:n.map(a=>"DENSE_VECTOR"===a?"向量":"全文").join(" + ")}),(0,b.jsxs)("span",{className:"ml-auto",children:["更新于 ",(0,b.jsx)(y.RelativeTime,{timestamp:k})]})]})]})})})}var A=a.i(13773);function B(){let{data:a,isLoading:f,error:o,refetch:p}=(0,m.useKnowledgeBases)(),[q,r]=(0,g.useState)(""),[s]=(0,g.useState)("updatedAt"),[t,u]=(0,g.useState)(null),v=(0,n.useDebounce)(q,300),w=(0,g.useMemo)(()=>{let b=a?.items??[];return(v?b.filter(a=>a.knowledgeBaseName.toLowerCase().includes(v.toLowerCase())||a.description?.toLowerCase().includes(v.toLowerCase())||a.tags?.some(a=>a.toLowerCase().includes(v.toLowerCase()))):b).sort((a,b)=>{switch(s){case"updatedAt":return b.updatedAt-a.updatedAt;case"createdAt":return b.createdAt-a.createdAt;case"name":return a.knowledgeBaseName.localeCompare(b.knowledgeBaseName);default:return 0}})},[a?.items,v,s]);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-[180px] rounded-lg",delay:80*c},c))}):o?(0,b.jsx)(l.ErrorState,{error:o,onRetry:()=>p()}):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)(j.SearchInput,{placeholder:"搜索知识库...",value:q,onChange:r,className:"max-w-sm"}),(0,b.jsxs)("span",{className:"text-sm text-muted-foreground",children:["共 ",w.length," 个知识库"]})]}),0===w.length?(0,b.jsx)(k.EmptyState,{icon:h.Database,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)(z,{knowledgeBase:a,onDelete:u},a.knowledgeBaseName))}),(0,b.jsx)(A.KBDeleteDialog,{knowledgeBaseName:t,open:!!t,onOpenChange:a=>{a||u(null)}})]}):(0,b.jsx)(k.EmptyState,{icon:h.Database,title:"还没有知识库",description:"创建你的第一个知识库,开始管理文档和检索",action:(0,b.jsx)(e.Button,{asChild:!0,children:(0,b.jsxs)(c.default,{href:"/knowledge-base/create",children:[(0,b.jsx)(d.Plus,{className:"mr-2 h-4 w-4"}),"创建知识库"]})})})}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:"/knowledge-base/create",children:[(0,b.jsx)(d.Plus,{className:"mr-2 h-4 w-4"}),"创建知识库"]})})}),(0,b.jsx)(B,{})]})}],7234)}];
2
+
3
+ //# sourceMappingURL=_01-2v37._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[70535,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)("textarea",{className:(0,d.cn)("flex min-h-[64px] w-full rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--card))] px-3 py-2 text-sm transition-colors","placeholder:text-[hsl(var(--subtle))]","focus-visible:outline-none focus-visible:border-[hsl(var(--primary))] focus-visible:ring-2 focus-visible:ring-[hsl(var(--primary)/0.2)] focus-visible:ring-offset-0","disabled:cursor-not-allowed disabled:bg-[hsl(var(--secondary))] disabled:text-[hsl(var(--muted-foreground))]",a),ref:e,...c}));e.displayName="Textarea",a.s(["Textarea",0,e])},98392,a=>{"use strict";var b=a.i(71938),c=a.i(68189),d=a.i(39166),e=a=>{var e;let g,h,{present:i,children:j}=a,k=function(a){var c,e;let[g,h]=b.useState(),i=b.useRef(null),j=b.useRef(a),k=b.useRef("none"),[l,m]=(c=a?"mounted":"unmounted",e={mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}},b.useReducer((a,b)=>e[a][b]??a,c));return b.useEffect(()=>{let a=f(i.current);k.current="mounted"===l?a:"none"},[l]),(0,d.useLayoutEffect)(()=>{let b=i.current,c=j.current;if(c!==a){let d=k.current,e=f(b);a?m("MOUNT"):"none"===e||b?.display==="none"?m("UNMOUNT"):c&&d!==e?m("ANIMATION_OUT"):m("UNMOUNT"),j.current=a}},[a,m]),(0,d.useLayoutEffect)(()=>{if(g){let a,b=g.ownerDocument.defaultView??window,c=c=>{let d=f(i.current).includes(CSS.escape(c.animationName));if(c.target===g&&d&&(m("ANIMATION_END"),!j.current)){let c=g.style.animationFillMode;g.style.animationFillMode="forwards",a=b.setTimeout(()=>{"forwards"===g.style.animationFillMode&&(g.style.animationFillMode=c)})}},d=a=>{a.target===g&&(k.current=f(i.current))};return g.addEventListener("animationstart",d),g.addEventListener("animationcancel",c),g.addEventListener("animationend",c),()=>{b.clearTimeout(a),g.removeEventListener("animationstart",d),g.removeEventListener("animationcancel",c),g.removeEventListener("animationend",c)}}m("ANIMATION_END")},[g,m]),{isPresent:["mounted","unmountSuspended"].includes(l),ref:b.useCallback(a=>{i.current=a?getComputedStyle(a):null,h(a)},[])}}(i),l="function"==typeof j?j({present:k.isPresent}):b.Children.only(j),m=(0,c.useComposedRefs)(k.ref,(e=l,(h=(g=Object.getOwnPropertyDescriptor(e.props,"ref")?.get)&&"isReactWarning"in g&&g.isReactWarning)?e.ref:(h=(g=Object.getOwnPropertyDescriptor(e,"ref")?.get)&&"isReactWarning"in g&&g.isReactWarning)?e.props.ref:e.props.ref||e.ref));return"function"==typeof j||k.isPresent?b.cloneElement(l,{ref:m}):null};function f(a){return a?.animationName||"none"}e.displayName="Presence",a.s(["Presence",0,e])},20251,a=>{"use strict";var b=a.i(71938);a.s(["usePrevious",0,function(a){let c=b.useRef({value:a,previous:a});return b.useMemo(()=>(c.current.value!==a&&(c.current.previous=c.current.value,c.current.value=a),c.current.previous),[a])}])},1927,a=>{"use strict";let b=(0,a.i(50053).default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);a.s(["ChevronDown",0,b],1927)},25896,a=>{"use strict";let b=(0,a.i(50053).default)("chevron-up",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]);a.s(["ChevronUp",0,b],25896)},44401,a=>{"use strict";let b=(0,a.i(50053).default)("info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);a.s(["Info",0,b],44401)},1078,a=>{"use strict";let b=(0,a.i(50053).default)("sparkles",[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]]);a.s(["Sparkles",0,b],1078)},16038,a=>{"use strict";var b=a.i(34020),c=a.i(71938),d=a.i(59653),e=a.i(84694),f=a.i(56620),g=a.i(98392),h=a.i(58036),i=a.i(74974),j=a.i(83370),k=a.i(59231),l="Tabs",[m,n]=(0,e.createContextScope)(l,[f.createRovingFocusGroupScope]),o=(0,f.createRovingFocusGroupScope)(),[p,q]=m(l),r=c.forwardRef((a,c)=>{let{__scopeTabs:d,value:e,onValueChange:f,defaultValue:g,orientation:m="horizontal",dir:n,activationMode:o="automatic",...q}=a,r=(0,i.useDirection)(n),[s,t]=(0,j.useControllableState)({prop:e,onChange:f,defaultProp:g??"",caller:l});return(0,b.jsx)(p,{scope:d,baseId:(0,k.useId)(),value:s,onValueChange:t,orientation:m,dir:r,activationMode:o,children:(0,b.jsx)(h.Primitive.div,{dir:r,"data-orientation":m,...q,ref:c})})});r.displayName=l;var s="TabsList",t=c.forwardRef((a,c)=>{let{__scopeTabs:d,loop:e=!0,...g}=a,i=q(s,d),j=o(d);return(0,b.jsx)(f.Root,{asChild:!0,...j,orientation:i.orientation,dir:i.dir,loop:e,children:(0,b.jsx)(h.Primitive.div,{role:"tablist","aria-orientation":i.orientation,...g,ref:c})})});t.displayName=s;var u="TabsTrigger",v=c.forwardRef((a,c)=>{let{__scopeTabs:e,value:g,disabled:i=!1,...j}=a,k=q(u,e),l=o(e),m=y(k.baseId,g),n=z(k.baseId,g),p=g===k.value;return(0,b.jsx)(f.Item,{asChild:!0,...l,focusable:!i,active:p,children:(0,b.jsx)(h.Primitive.button,{type:"button",role:"tab","aria-selected":p,"aria-controls":n,"data-state":p?"active":"inactive","data-disabled":i?"":void 0,disabled:i,id:m,...j,ref:c,onMouseDown:(0,d.composeEventHandlers)(a.onMouseDown,a=>{i||0!==a.button||!1!==a.ctrlKey?a.preventDefault():k.onValueChange(g)}),onKeyDown:(0,d.composeEventHandlers)(a.onKeyDown,a=>{[" ","Enter"].includes(a.key)&&k.onValueChange(g)}),onFocus:(0,d.composeEventHandlers)(a.onFocus,()=>{let a="manual"!==k.activationMode;p||i||!a||k.onValueChange(g)})})})});v.displayName=u;var w="TabsContent",x=c.forwardRef((a,d)=>{let{__scopeTabs:e,value:f,forceMount:i,children:j,...k}=a,l=q(w,e),m=y(l.baseId,f),n=z(l.baseId,f),o=f===l.value,p=c.useRef(o);return c.useEffect(()=>{let a=requestAnimationFrame(()=>p.current=!1);return()=>cancelAnimationFrame(a)},[]),(0,b.jsx)(g.Presence,{present:i||o,children:({present:c})=>(0,b.jsx)(h.Primitive.div,{"data-state":o?"active":"inactive","data-orientation":l.orientation,role:"tabpanel","aria-labelledby":m,hidden:!c,id:n,tabIndex:0,...k,ref:d,style:{...a.style,animationDuration:p.current?"0s":void 0},children:c&&j})})});function y(a,b){return`${a}-trigger-${b}`}function z(a,b){return`${a}-content-${b}`}x.displayName=w;var A=a.i(64565);let B=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(t,{ref:d,className:(0,A.cn)("inline-flex h-10 items-center justify-center rounded-lg border border-[hsl(var(--border))] bg-[hsl(var(--secondary))] p-1 text-muted-foreground shadow-[inset_0_1px_2px_rgba(15,23,42,0.04)]",a),...c}));B.displayName=t.displayName;let C=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(v,{ref:d,className:(0,A.cn)("inline-flex h-8 items-center justify-center gap-1.5 whitespace-nowrap rounded-md px-3.5 text-sm font-medium","ring-offset-[hsl(var(--background))] transition-all duration-150","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:text-foreground","data-[state=active]:bg-[hsl(var(--background))]","data-[state=active]:text-[hsl(var(--primary))]","data-[state=active]:shadow-[0_1px_2px_rgba(15,23,42,0.08),0_0_0_1px_hsl(var(--border))]","data-[state=active]:font-semibold",a),...c}));C.displayName=v.displayName;let D=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(x,{ref:d,className:(0,A.cn)("mt-3 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",a),...c}));D.displayName=x.displayName,a.s(["Tabs",0,r,"TabsContent",0,D,"TabsList",0,B,"TabsTrigger",0,C],16038)},7714,a=>{"use strict";var b=a.i(34020),c=a.i(80470),d=a.i(1078),e=a.i(19446),f=a.i(47161),g=a.i(28974);a.s(["default",0,function(){let a=(0,c.useRouter)(),h=(0,f.useConnectInstance)(),i=(0,f.useImportInstance)(),j=h.isPending||i.isPending;async function k(b){(0,g.isImportPayload)(b)?await i.mutateAsync(b):await h.mutateAsync(b),a.replace("/chat")}return(0,b.jsxs)("div",{className:"flex flex-col gap-10",children:[(0,b.jsxs)("header",{className:"flex flex-col items-center gap-3 text-center",children:[(0,b.jsx)("div",{className:"flex h-12 w-12 items-center justify-center rounded-xl bg-primary/10 text-primary",children:(0,b.jsx)(d.Sparkles,{className:"h-6 w-6"})}),(0,b.jsx)("h1",{className:"text-2xl font-semibold tracking-tight",children:"欢迎使用 Agent Storage"}),(0,b.jsx)("p",{className:"max-w-md text-sm text-muted-foreground",children:"创建你的第一个项目,即可开始管理知识库、记忆库与对话。"})]}),(0,b.jsx)("div",{className:"rounded-lg border border-[hsl(var(--border))] bg-[hsl(var(--card))] p-6 shadow-sm sm:p-8",children:(0,b.jsx)(e.ConnectInstanceForm,{mode:"create",onSubmit:k,busy:j,submitLabel:"连接并开始使用"})}),(0,b.jsx)("p",{className:"text-center text-xs text-muted-foreground",children:"随时可以通过侧边栏的实例切换器或「项目管理」页创建更多项目。"})]})}])}];
2
+
3
+ //# sourceMappingURL=_02bg849._.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})})})}])},2482,a=>{"use strict";var b=a.i(34020);a.s(["PageHeader",0,function({title:a,description:c,children:d}){return(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-[32px] font-semibold leading-tight text-foreground",children:a}),c&&(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:c})]}),d&&(0,b.jsx)("div",{className:"flex items-center gap-2",children:d})]})}])},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)},83917,a=>{"use strict";var b=a.i(53141);async function c(){return(await (0,b.apiGet)("/api/v1/llm/providers")).providers}async function d(a){return(await (0,b.apiGet)(`/api/v1/llm/providers/${encodeURIComponent(a)}`)).provider}async function e(a){return(await (0,b.apiPost)("/api/v1/llm/providers",a)).provider}async function f(a,c){return(await (0,b.apiPut)(`/api/v1/llm/providers/${encodeURIComponent(a)}`,c)).provider}async function g(a){await (0,b.apiDelete)(`/api/v1/llm/providers/${encodeURIComponent(a)}`)}async function h(a){return(await (0,b.apiGet)(`/api/v1/llm/providers/${encodeURIComponent(a)}/models`)).models}async function i(a){return(await (0,b.apiPost)(`/api/v1/llm/providers/${encodeURIComponent(a)}/test`)).result}a.s(["createProvider",0,e,"deleteProvider",0,g,"fetchProviderModels",0,h,"getProvider",0,d,"listProviders",0,c,"testProviderConnectivity",0,i,"updateProvider",0,f])},23087,25310,98437,a=>{"use strict";var b=a.i(50053);let c=(0,b.default)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);a.s(["CheckCircle2",0,c],23087);let d=(0,b.default)("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);a.s(["XCircle",0,d],25310);let e=(0,b.default)("zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]);a.s(["Zap",0,e],98437)},58789,a=>{"use strict";var b=a.i(34020),c=a.i(71938),d=a.i(80470),e=a.i(71562),f=a.i(71071),g=a.i(63265),h=a.i(23087),i=a.i(81619),j=a.i(25310),k=a.i(98437),l=a.i(76192),m=a.i(72518),n=a.i(92942),o=a.i(63525),p=a.i(80904);let q=p.z.enum(["openai-compatible","anthropic","bailian"]),r=p.z.string().trim().min(1,"请输入 Base URL").refine(a=>{try{let b=new URL(a);return"http:"===b.protocol||"https:"===b.protocol}catch{return!1}},"Base URL 格式无效,需为 http(s) 完整地址"),s=p.z.object({name:p.z.string().trim().min(1,"请输入名称").max(64),type:q,baseUrl:r,apiKey:p.z.string().trim().min(1,"请输入 API Key").max(512),defaultModel:p.z.string().trim().max(128).optional().or(p.z.literal(""))});p.z.object({name:p.z.string().trim().min(1).max(64).optional(),type:q.optional(),baseUrl:r.optional(),apiKey:p.z.string().trim().max(512).optional(),defaultModel:p.z.string().trim().max(128).optional().or(p.z.literal(""))});var t=a.i(83917),u=a.i(33596),v=a.i(77072),w=a.i(25377),x=a.i(64565);let y=[{id:"dashscope",label:"百炼 (DashScope)",baseUrl:"https://dashscope.aliyuncs.com/compatible-mode/v1",hint:"通义千问系列"},{id:"openai",label:"OpenAI 官方",baseUrl:"https://api.openai.com/v1"},{id:"deepseek",label:"DeepSeek",baseUrl:"https://api.deepseek.com/v1"},{id:"ollama",label:"本地 Ollama",baseUrl:"http://localhost:11434/v1",hint:"apiKey 可填 ollama"}],z=s.extend({apiKey:p.z.string().trim().max(512).optional().default("")});function A({result:a}){return a?a.ok?(0,b.jsxs)("span",{className:(0,x.cn)("inline-flex items-center gap-1.5 text-xs text-emerald-600 dark:text-emerald-400"),children:[(0,b.jsx)(h.CheckCircle2,{className:"h-3.5 w-3.5"}),"连通成功 · ",a.latencyMs??"?","ms · ",a.modelCount??0," 个模型"]}):(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-xs text-[hsl(var(--destructive))]",children:[(0,b.jsx)(j.XCircle,{className:"h-3.5 w-3.5"}),a.error?.message??"连通失败"]}):(0,b.jsxs)("span",{className:"text-xs text-muted-foreground",children:["调用 ",(0,b.jsx)("code",{className:"font-mono text-[11px]",children:"/models"})," 验证 Base URL 与 API Key"]})}a.s(["LLMProviderForm",0,function({existing:a}){var h;let j,p,q=(0,d.useRouter)(),r=!!a,x=(j=(0,v.useQueryClient)(),(0,u.useMutation)({mutationFn:a=>(0,t.createProvider)(a),onSuccess:()=>{(0,w.invalidateLLMProviderQueries)(j)}})),B=(h=a?.id??"",p=(0,v.useQueryClient)(),(0,u.useMutation)({mutationFn:a=>(0,t.updateProvider)(h,a),onSuccess:()=>{(0,w.invalidateLLMProviderQueries)(p)}})),[C,D]=(0,c.useState)([]),[E,F]=(0,c.useState)(!1),[G,H]=(0,c.useState)(null),[I,J]=(0,c.useState)(!1),K=(0,f.zodResolver)(r?z:s),L=(0,e.useForm)({resolver:K,defaultValues:{name:a?.name??"",type:a?.type??"openai-compatible",baseUrl:a?.baseUrl??"",apiKey:"",defaultModel:a?.defaultModel??""}}),M=async()=>{if(!a)return void g.toast.info("请先保存配置,再拉取模型列表");F(!0);try{let b=await (0,t.fetchProviderModels)(a.id);D(b),g.toast.success(`拉取到 ${b.length} 个模型`)}catch(a){g.toast.error(a instanceof Error?a.message:"拉取模型列表失败")}finally{F(!1)}},N=async()=>{if(!a)return void g.toast.info("请先保存配置,再测试连通性");J(!0),H(null);try{let b=await (0,t.testProviderConnectivity)(a.id);H(b)}catch(a){H({ok:!1,error:{code:"REQUEST_FAILED",message:a instanceof Error?a.message:String(a)}})}finally{J(!1)}},O=async b=>{try{if(r&&a){let a={name:b.name,type:b.type,baseUrl:b.baseUrl,defaultModel:b.defaultModel};b.apiKey?.trim()&&(a.apiKey=b.apiKey),await B.mutateAsync(a),g.toast.success("配置已更新")}else await x.mutateAsync({name:b.name,type:b.type,baseUrl:b.baseUrl,apiKey:b.apiKey,defaultModel:b.defaultModel}),g.toast.success("配置已创建");q.push("/llm-providers")}catch(a){g.toast.error(a instanceof Error?a.message:"保存失败")}},P=x.isPending||B.isPending||L.formState.isSubmitting;return(0,b.jsx)(n.Form,{...L,children:(0,b.jsxs)("form",{onSubmit:L.handleSubmit(O),className:"space-y-6",children:[!r&&(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:"快捷模板:"}),y.map(a=>(0,b.jsx)("button",{type:"button",onClick:()=>{L.setValue("baseUrl",a.baseUrl,{shouldDirty:!0}),!L.getValues("name")&&L.setValue("name",a.label,{shouldDirty:!0})},className:"rounded-full border border-[hsl(var(--border))] bg-[hsl(var(--muted)/0.3)] px-3 py-1 text-xs text-muted-foreground transition-colors hover:bg-[hsl(var(--accent))] hover:text-foreground",title:a.hint,children:a.label},a.id))]}),(0,b.jsx)(n.FormField,{control:L.control,name:"name",render:({field:a})=>(0,b.jsxs)(n.FormItem,{children:[(0,b.jsx)(n.FormLabel,{children:"名称"}),(0,b.jsx)(n.FormControl,{children:(0,b.jsx)(m.Input,{placeholder:"例如:DashScope-Qwen",...a})}),(0,b.jsx)(n.FormDescription,{children:"在下拉选择时显示的标识"}),(0,b.jsx)(n.FormMessage,{})]})}),(0,b.jsx)(n.FormField,{control:L.control,name:"type",render:({field:a})=>(0,b.jsxs)(n.FormItem,{children:[(0,b.jsx)(n.FormLabel,{children:"协议类型"}),(0,b.jsxs)(o.Select,{value:a.value,onValueChange:a.onChange,children:[(0,b.jsx)(n.FormControl,{children:(0,b.jsx)(o.SelectTrigger,{children:(0,b.jsx)(o.SelectValue,{})})}),(0,b.jsxs)(o.SelectContent,{children:[(0,b.jsx)(o.SelectItem,{value:"openai-compatible",children:"OpenAI 兼容"}),(0,b.jsx)(o.SelectItem,{value:"anthropic",disabled:!0,children:"Anthropic(敬请期待)"}),(0,b.jsx)(o.SelectItem,{value:"bailian",disabled:!0,children:"百炼原生(敬请期待)"})]})]}),(0,b.jsx)(n.FormDescription,{children:"百炼用户请选择「OpenAI 兼容」并填入兼容模式 Base URL"}),(0,b.jsx)(n.FormMessage,{})]})}),(0,b.jsx)(n.FormField,{control:L.control,name:"baseUrl",render:({field:a})=>(0,b.jsxs)(n.FormItem,{children:[(0,b.jsx)(n.FormLabel,{children:"Base URL"}),(0,b.jsx)(n.FormControl,{children:(0,b.jsx)(m.Input,{placeholder:"https://dashscope.aliyuncs.com/compatible-mode/v1",...a})}),(0,b.jsx)(n.FormMessage,{})]})}),(0,b.jsx)(n.FormField,{control:L.control,name:"apiKey",render:({field:c})=>(0,b.jsxs)(n.FormItem,{children:[(0,b.jsx)(n.FormLabel,{children:"API Key"}),(0,b.jsx)(n.FormControl,{children:(0,b.jsx)(m.Input,{type:"password",autoComplete:"off",placeholder:r?`${a?.apiKeyMasked??"****"}(留空则不更改)`:"sk-...",...c})}),(0,b.jsx)(n.FormDescription,{children:"使用 AES-256-GCM 加密存储,前端永远只能看到掩码"}),(0,b.jsx)(n.FormMessage,{})]})}),(0,b.jsx)(n.FormField,{control:L.control,name:"defaultModel",render:({field:a})=>(0,b.jsxs)(n.FormItem,{children:[(0,b.jsx)(n.FormLabel,{children:"默认模型(可选)"}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)(n.FormControl,{children:(0,b.jsx)(m.Input,{placeholder:"例如:qwen-plus",list:"llm-model-suggestions",...a})}),(0,b.jsxs)(l.Button,{type:"button",variant:"outline",size:"sm",disabled:E||!r,onClick:M,children:[E?(0,b.jsx)(i.Loader2,{className:"mr-1.5 h-3.5 w-3.5 animate-spin"}):null,"从 /models 拉取"]})]}),C.length>0&&(0,b.jsx)("datalist",{id:"llm-model-suggestions",children:C.map(a=>(0,b.jsx)("option",{value:a.id},a.id))}),!r&&(0,b.jsx)(n.FormDescription,{children:"保存后可拉取真实模型列表;也可以在问答页选择"}),(0,b.jsx)(n.FormMessage,{})]})}),r&&(0,b.jsxs)("div",{className:"flex items-center gap-3 rounded-md border border-dashed border-[hsl(var(--border))] bg-[hsl(var(--muted)/0.3)] px-3 py-2.5",children:[(0,b.jsxs)(l.Button,{type:"button",variant:"outline",size:"sm",onClick:N,disabled:I,children:[I?(0,b.jsx)(i.Loader2,{className:"mr-1.5 h-3.5 w-3.5 animate-spin"}):(0,b.jsx)(k.Zap,{className:"mr-1.5 h-3.5 w-3.5"}),"测试连通性"]}),(0,b.jsx)(A,{result:G})]}),(0,b.jsxs)("div",{className:"flex items-center justify-end gap-2 pt-2",children:[(0,b.jsx)(l.Button,{type:"button",variant:"ghost",onClick:()=>q.push("/llm-providers"),children:"取消"}),(0,b.jsxs)(l.Button,{type:"submit",disabled:P,children:[P?(0,b.jsx)(i.Loader2,{className:"mr-1.5 h-4 w-4 animate-spin"}):null,r?"保存修改":"创建"]})]})]})})}],58789)},6323,a=>{"use strict";var b=a.i(34020),c=a.i(71938),d=a.i(80470),e=a.i(2482),f=a.i(58789),g=a.i(4395),h=a.i(83366),i=a.i(83917),j=a.i(25377),k=a.i(39096);a.s(["default",0,function({params:a}){let{id:l}=(0,c.use)(a),{data:m,isLoading:n,isError:o}=function(a){let{context:b,ready:c}=(0,k.useRuntimeContext)();return(0,h.useQuery)({queryKey:j.queryKeys.llmProvider(b.dataScopeKey,a),queryFn:()=>(0,i.getProvider)(a),enabled:c&&!!a,staleTime:3e4})}(l);return n?(0,b.jsxs)("div",{className:"mx-auto max-w-2xl space-y-4",children:[(0,b.jsx)(g.Skeleton,{className:"h-12 w-60"}),(0,b.jsx)(g.Skeleton,{className:"h-64"})]}):((o||!m)&&(0,d.notFound)(),(0,b.jsxs)("div",{className:"mx-auto max-w-2xl space-y-6",children:[(0,b.jsx)(e.PageHeader,{title:"编辑大模型配置",description:"留空 API Key 则保持原值不变;修改 Base URL 或类型不会影响已加密的密钥"}),(0,b.jsx)(f.LLMProviderForm,{existing:m})]}))}],6323)}];
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})})})}])},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})]})]})}])},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)},83917,a=>{"use strict";var b=a.i(53141);async function c(){return(await (0,b.apiGet)("/api/v1/llm/providers")).providers}async function d(a){return(await (0,b.apiGet)(`/api/v1/llm/providers/${encodeURIComponent(a)}`)).provider}async function e(a){return(await (0,b.apiPost)("/api/v1/llm/providers",a)).provider}async function f(a,c){return(await (0,b.apiPut)(`/api/v1/llm/providers/${encodeURIComponent(a)}`,c)).provider}async function g(a){await (0,b.apiDelete)(`/api/v1/llm/providers/${encodeURIComponent(a)}`)}async function h(a){return(await (0,b.apiGet)(`/api/v1/llm/providers/${encodeURIComponent(a)}/models`)).models}async function i(a){return(await (0,b.apiPost)(`/api/v1/llm/providers/${encodeURIComponent(a)}/test`)).result}a.s(["createProvider",0,e,"deleteProvider",0,g,"fetchProviderModels",0,h,"getProvider",0,d,"listProviders",0,c,"testProviderConnectivity",0,i,"updateProvider",0,f])},23087,25310,a=>{"use strict";var b=a.i(50053);let c=(0,b.default)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);a.s(["CheckCircle2",0,c],23087);let d=(0,b.default)("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);a.s(["XCircle",0,d],25310)},58789,a=>{"use strict";var b=a.i(34020),c=a.i(71938),d=a.i(80470),e=a.i(71562),f=a.i(71071),g=a.i(63265),h=a.i(23087),i=a.i(81619),j=a.i(25310),k=a.i(98437),l=a.i(76192),m=a.i(72518),n=a.i(92942),o=a.i(63525),p=a.i(80904);let q=p.z.enum(["openai-compatible","anthropic","bailian"]),r=p.z.string().trim().min(1,"请输入 Base URL").refine(a=>{try{let b=new URL(a);return"http:"===b.protocol||"https:"===b.protocol}catch{return!1}},"Base URL 格式无效,需为 http(s) 完整地址"),s=p.z.object({name:p.z.string().trim().min(1,"请输入名称").max(64),type:q,baseUrl:r,apiKey:p.z.string().trim().min(1,"请输入 API Key").max(512),defaultModel:p.z.string().trim().max(128).optional().or(p.z.literal(""))});p.z.object({name:p.z.string().trim().min(1).max(64).optional(),type:q.optional(),baseUrl:r.optional(),apiKey:p.z.string().trim().max(512).optional(),defaultModel:p.z.string().trim().max(128).optional().or(p.z.literal(""))});var t=a.i(83917),u=a.i(33596),v=a.i(77072),w=a.i(25377),x=a.i(64565);let y=[{id:"dashscope",label:"百炼 (DashScope)",baseUrl:"https://dashscope.aliyuncs.com/compatible-mode/v1",hint:"通义千问系列"},{id:"openai",label:"OpenAI 官方",baseUrl:"https://api.openai.com/v1"},{id:"deepseek",label:"DeepSeek",baseUrl:"https://api.deepseek.com/v1"},{id:"ollama",label:"本地 Ollama",baseUrl:"http://localhost:11434/v1",hint:"apiKey 可填 ollama"}],z=s.extend({apiKey:p.z.string().trim().max(512).optional().default("")});function A({result:a}){return a?a.ok?(0,b.jsxs)("span",{className:(0,x.cn)("inline-flex items-center gap-1.5 text-xs text-emerald-600 dark:text-emerald-400"),children:[(0,b.jsx)(h.CheckCircle2,{className:"h-3.5 w-3.5"}),"连通成功 · ",a.latencyMs??"?","ms · ",a.modelCount??0," 个模型"]}):(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-xs text-[hsl(var(--destructive))]",children:[(0,b.jsx)(j.XCircle,{className:"h-3.5 w-3.5"}),a.error?.message??"连通失败"]}):(0,b.jsxs)("span",{className:"text-xs text-muted-foreground",children:["调用 ",(0,b.jsx)("code",{className:"font-mono text-[11px]",children:"/models"})," 验证 Base URL 与 API Key"]})}a.s(["LLMProviderForm",0,function({existing:a}){var h;let j,p,q=(0,d.useRouter)(),r=!!a,x=(j=(0,v.useQueryClient)(),(0,u.useMutation)({mutationFn:a=>(0,t.createProvider)(a),onSuccess:()=>{(0,w.invalidateLLMProviderQueries)(j)}})),B=(h=a?.id??"",p=(0,v.useQueryClient)(),(0,u.useMutation)({mutationFn:a=>(0,t.updateProvider)(h,a),onSuccess:()=>{(0,w.invalidateLLMProviderQueries)(p)}})),[C,D]=(0,c.useState)([]),[E,F]=(0,c.useState)(!1),[G,H]=(0,c.useState)(null),[I,J]=(0,c.useState)(!1),K=(0,f.zodResolver)(r?z:s),L=(0,e.useForm)({resolver:K,defaultValues:{name:a?.name??"",type:a?.type??"openai-compatible",baseUrl:a?.baseUrl??"",apiKey:"",defaultModel:a?.defaultModel??""}}),M=async()=>{if(!a)return void g.toast.info("请先保存配置,再拉取模型列表");F(!0);try{let b=await (0,t.fetchProviderModels)(a.id);D(b),g.toast.success(`拉取到 ${b.length} 个模型`)}catch(a){g.toast.error(a instanceof Error?a.message:"拉取模型列表失败")}finally{F(!1)}},N=async()=>{if(!a)return void g.toast.info("请先保存配置,再测试连通性");J(!0),H(null);try{let b=await (0,t.testProviderConnectivity)(a.id);H(b)}catch(a){H({ok:!1,error:{code:"REQUEST_FAILED",message:a instanceof Error?a.message:String(a)}})}finally{J(!1)}},O=async b=>{try{if(r&&a){let a={name:b.name,type:b.type,baseUrl:b.baseUrl,defaultModel:b.defaultModel};b.apiKey?.trim()&&(a.apiKey=b.apiKey),await B.mutateAsync(a),g.toast.success("配置已更新")}else await x.mutateAsync({name:b.name,type:b.type,baseUrl:b.baseUrl,apiKey:b.apiKey,defaultModel:b.defaultModel}),g.toast.success("配置已创建");q.push("/llm-providers")}catch(a){g.toast.error(a instanceof Error?a.message:"保存失败")}},P=x.isPending||B.isPending||L.formState.isSubmitting;return(0,b.jsx)(n.Form,{...L,children:(0,b.jsxs)("form",{onSubmit:L.handleSubmit(O),className:"space-y-6",children:[!r&&(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:"快捷模板:"}),y.map(a=>(0,b.jsx)("button",{type:"button",onClick:()=>{L.setValue("baseUrl",a.baseUrl,{shouldDirty:!0}),!L.getValues("name")&&L.setValue("name",a.label,{shouldDirty:!0})},className:"rounded-full border border-[hsl(var(--border))] bg-[hsl(var(--muted)/0.3)] px-3 py-1 text-xs text-muted-foreground transition-colors hover:bg-[hsl(var(--accent))] hover:text-foreground",title:a.hint,children:a.label},a.id))]}),(0,b.jsx)(n.FormField,{control:L.control,name:"name",render:({field:a})=>(0,b.jsxs)(n.FormItem,{children:[(0,b.jsx)(n.FormLabel,{children:"名称"}),(0,b.jsx)(n.FormControl,{children:(0,b.jsx)(m.Input,{placeholder:"例如:DashScope-Qwen",...a})}),(0,b.jsx)(n.FormDescription,{children:"在下拉选择时显示的标识"}),(0,b.jsx)(n.FormMessage,{})]})}),(0,b.jsx)(n.FormField,{control:L.control,name:"type",render:({field:a})=>(0,b.jsxs)(n.FormItem,{children:[(0,b.jsx)(n.FormLabel,{children:"协议类型"}),(0,b.jsxs)(o.Select,{value:a.value,onValueChange:a.onChange,children:[(0,b.jsx)(n.FormControl,{children:(0,b.jsx)(o.SelectTrigger,{children:(0,b.jsx)(o.SelectValue,{})})}),(0,b.jsxs)(o.SelectContent,{children:[(0,b.jsx)(o.SelectItem,{value:"openai-compatible",children:"OpenAI 兼容"}),(0,b.jsx)(o.SelectItem,{value:"anthropic",disabled:!0,children:"Anthropic(敬请期待)"}),(0,b.jsx)(o.SelectItem,{value:"bailian",disabled:!0,children:"百炼原生(敬请期待)"})]})]}),(0,b.jsx)(n.FormDescription,{children:"百炼用户请选择「OpenAI 兼容」并填入兼容模式 Base URL"}),(0,b.jsx)(n.FormMessage,{})]})}),(0,b.jsx)(n.FormField,{control:L.control,name:"baseUrl",render:({field:a})=>(0,b.jsxs)(n.FormItem,{children:[(0,b.jsx)(n.FormLabel,{children:"Base URL"}),(0,b.jsx)(n.FormControl,{children:(0,b.jsx)(m.Input,{placeholder:"https://dashscope.aliyuncs.com/compatible-mode/v1",...a})}),(0,b.jsx)(n.FormMessage,{})]})}),(0,b.jsx)(n.FormField,{control:L.control,name:"apiKey",render:({field:c})=>(0,b.jsxs)(n.FormItem,{children:[(0,b.jsx)(n.FormLabel,{children:"API Key"}),(0,b.jsx)(n.FormControl,{children:(0,b.jsx)(m.Input,{type:"password",autoComplete:"off",placeholder:r?`${a?.apiKeyMasked??"****"}(留空则不更改)`:"sk-...",...c})}),(0,b.jsx)(n.FormDescription,{children:"使用 AES-256-GCM 加密存储,前端永远只能看到掩码"}),(0,b.jsx)(n.FormMessage,{})]})}),(0,b.jsx)(n.FormField,{control:L.control,name:"defaultModel",render:({field:a})=>(0,b.jsxs)(n.FormItem,{children:[(0,b.jsx)(n.FormLabel,{children:"默认模型(可选)"}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)(n.FormControl,{children:(0,b.jsx)(m.Input,{placeholder:"例如:qwen-plus",list:"llm-model-suggestions",...a})}),(0,b.jsxs)(l.Button,{type:"button",variant:"outline",size:"sm",disabled:E||!r,onClick:M,children:[E?(0,b.jsx)(i.Loader2,{className:"mr-1.5 h-3.5 w-3.5 animate-spin"}):null,"从 /models 拉取"]})]}),C.length>0&&(0,b.jsx)("datalist",{id:"llm-model-suggestions",children:C.map(a=>(0,b.jsx)("option",{value:a.id},a.id))}),!r&&(0,b.jsx)(n.FormDescription,{children:"保存后可拉取真实模型列表;也可以在问答页选择"}),(0,b.jsx)(n.FormMessage,{})]})}),r&&(0,b.jsxs)("div",{className:"flex items-center gap-3 rounded-md border border-dashed border-[hsl(var(--border))] bg-[hsl(var(--muted)/0.3)] px-3 py-2.5",children:[(0,b.jsxs)(l.Button,{type:"button",variant:"outline",size:"sm",onClick:N,disabled:I,children:[I?(0,b.jsx)(i.Loader2,{className:"mr-1.5 h-3.5 w-3.5 animate-spin"}):(0,b.jsx)(k.Zap,{className:"mr-1.5 h-3.5 w-3.5"}),"测试连通性"]}),(0,b.jsx)(A,{result:G})]}),(0,b.jsxs)("div",{className:"flex items-center justify-end gap-2 pt-2",children:[(0,b.jsx)(l.Button,{type:"button",variant:"ghost",onClick:()=>q.push("/llm-providers"),children:"取消"}),(0,b.jsxs)(l.Button,{type:"submit",disabled:P,children:[P?(0,b.jsx)(i.Loader2,{className:"mr-1.5 h-4 w-4 animate-spin"}):null,r?"保存修改":"创建"]})]})]})})}],58789)},6323,a=>{"use strict";var b=a.i(34020),c=a.i(71938),d=a.i(80470),e=a.i(2482),f=a.i(58789),g=a.i(4395),h=a.i(83366),i=a.i(83917),j=a.i(25377),k=a.i(39096);a.s(["default",0,function({params:a}){let{id:l}=(0,c.use)(a),{data:m,isLoading:n,isError:o}=function(a){let{context:b,ready:c}=(0,k.useRuntimeContext)();return(0,h.useQuery)({queryKey:j.queryKeys.llmProvider(b.dataScopeKey,a),queryFn:()=>(0,i.getProvider)(a),enabled:c&&!!a,staleTime:3e4})}(l);return n?(0,b.jsxs)("div",{className:"mx-auto max-w-2xl space-y-4",children:[(0,b.jsx)(g.Skeleton,{className:"h-12 w-60"}),(0,b.jsx)(g.Skeleton,{className:"h-64"})]}):((o||!m)&&(0,d.notFound)(),(0,b.jsxs)("div",{className:"mx-auto max-w-2xl space-y-6",children:[(0,b.jsx)(e.PageHeader,{title:"编辑大模型配置",description:"留空 API Key 则保持原值不变;修改 Base URL 或类型不会影响已加密的密钥"}),(0,b.jsx)(f.LLMProviderForm,{existing:m})]}))}],6323)}];
2
2
 
3
3
  //# sourceMappingURL=_04f2u4t._.js.map