@tablestore/tablestore-agent-cli 0.2.5 → 0.2.7

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 (246) hide show
  1. package/dist/dashboard-runtime/dashboard/.next/BUILD_ID +1 -1
  2. package/dist/dashboard-runtime/dashboard/.next/build-manifest.json +3 -3
  3. package/dist/dashboard-runtime/dashboard/.next/prerender-manifest.json +3 -3
  4. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/api-keys/page.js.nft.json +1 -1
  5. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/api-keys/page_client-reference-manifest.js +1 -1
  6. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
  7. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
  8. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/documents/page.js.nft.json +1 -1
  9. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/documents/page_client-reference-manifest.js +1 -1
  10. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/page.js.nft.json +1 -1
  11. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/page_client-reference-manifest.js +1 -1
  12. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/qa/page.js.nft.json +1 -1
  13. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/qa/page_client-reference-manifest.js +1 -1
  14. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/retrieval/page.js.nft.json +1 -1
  15. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/retrieval/page_client-reference-manifest.js +1 -1
  16. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/settings/page.js.nft.json +1 -1
  17. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/settings/page_client-reference-manifest.js +1 -1
  18. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/create/page.js.nft.json +1 -1
  19. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/create/page_client-reference-manifest.js +1 -1
  20. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/page.js.nft.json +1 -1
  21. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/page_client-reference-manifest.js +1 -1
  22. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/[id]/page.js.nft.json +1 -1
  23. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/[id]/page_client-reference-manifest.js +1 -1
  24. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/new/page.js.nft.json +1 -1
  25. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/new/page_client-reference-manifest.js +1 -1
  26. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/page.js.nft.json +1 -1
  27. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/page_client-reference-manifest.js +1 -1
  28. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/dream/[dreamId]/page.js.nft.json +1 -1
  29. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/dream/[dreamId]/page_client-reference-manifest.js +1 -1
  30. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/dream/page.js.nft.json +1 -1
  31. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/dream/page_client-reference-manifest.js +1 -1
  32. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/messages/page.js.nft.json +1 -1
  33. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/messages/page_client-reference-manifest.js +1 -1
  34. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/page.js.nft.json +1 -1
  35. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/page_client-reference-manifest.js +1 -1
  36. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/requests/page.js.nft.json +1 -1
  37. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/requests/page_client-reference-manifest.js +1 -1
  38. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/search/page.js.nft.json +1 -1
  39. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/search/page_client-reference-manifest.js +1 -1
  40. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/settings/page.js.nft.json +1 -1
  41. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/settings/page_client-reference-manifest.js +1 -1
  42. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/tasks/page.js.nft.json +1 -1
  43. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/tasks/page_client-reference-manifest.js +1 -1
  44. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/units/page.js.nft.json +1 -1
  45. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/units/page_client-reference-manifest.js +1 -1
  46. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/create/page.js.nft.json +1 -1
  47. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/create/page_client-reference-manifest.js +1 -1
  48. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/page.js.nft.json +1 -1
  49. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/page_client-reference-manifest.js +1 -1
  50. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/projects/page.js.nft.json +1 -1
  51. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/projects/page_client-reference-manifest.js +1 -1
  52. package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.html +1 -1
  53. package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.rsc +1 -1
  54. package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  55. package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  56. package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  57. package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  58. package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  59. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  60. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.html +1 -1
  61. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.rsc +14 -14
  62. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_full.segment.rsc +14 -14
  63. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_head.segment.rsc +3 -3
  64. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_index.segment.rsc +10 -10
  65. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
  66. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  67. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  68. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/api-keys/[id]/custom-policy/route.js +1 -1
  69. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/api-keys/[id]/custom-policy/route.js.nft.json +1 -1
  70. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/api-keys/[id]/effective-permissions/route.js +1 -1
  71. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/api-keys/[id]/effective-permissions/route.js.nft.json +1 -1
  72. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/api-keys/[id]/policies/route.js +1 -1
  73. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/api-keys/[id]/policies/route.js.nft.json +1 -1
  74. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/api-keys/[id]/route.js +1 -1
  75. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/api-keys/[id]/route.js.nft.json +1 -1
  76. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/api-keys/filter-by-permission/route.js +1 -1
  77. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/api-keys/filter-by-permission/route.js.nft.json +1 -1
  78. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/api-keys/route.js +1 -1
  79. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/api-keys/route.js.nft.json +1 -1
  80. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/auth/status/route.js +1 -1
  81. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/auth/status/route.js.nft.json +1 -1
  82. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/auth/token/route.js +1 -1
  83. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/auth/token/route.js.nft.json +1 -1
  84. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/[name]/route.js +1 -1
  85. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/[name]/route.js.nft.json +1 -1
  86. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/[name]/token/route.js +1 -1
  87. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/[name]/token/route.js.nft.json +1 -1
  88. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/[name]/use/route.js +1 -1
  89. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/[name]/use/route.js.nft.json +1 -1
  90. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/route.js +1 -1
  91. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/route.js.nft.json +1 -1
  92. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/chunks/route.js +1 -1
  93. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/chunks/route.js.nft.json +1 -1
  94. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/[docId]/chunks/route.js +1 -1
  95. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/[docId]/chunks/route.js.nft.json +1 -1
  96. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/[docId]/route.js +1 -1
  97. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/[docId]/route.js.nft.json +1 -1
  98. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/route.js +1 -1
  99. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/route.js.nft.json +1 -1
  100. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/upload/route.js +1 -1
  101. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/upload/route.js.nft.json +1 -1
  102. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/retrieve/route.js +1 -1
  103. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/retrieve/route.js.nft.json +1 -1
  104. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/route.js +1 -1
  105. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/route.js.nft.json +1 -1
  106. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/route.js +1 -1
  107. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/route.js.nft.json +1 -1
  108. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/chat/route.js +1 -1
  109. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/chat/route.js.nft.json +1 -1
  110. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/[id]/models/route.js +1 -1
  111. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/[id]/models/route.js.nft.json +1 -1
  112. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/[id]/route.js +1 -1
  113. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/[id]/route.js.nft.json +1 -1
  114. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/[id]/test/route.js +1 -1
  115. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/[id]/test/route.js.nft.json +1 -1
  116. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/route.js +1 -1
  117. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/route.js.nft.json +1 -1
  118. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/logs/client/route.js +1 -1
  119. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/logs/client/route.js.nft.json +1 -1
  120. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/dream-tasks/[dreamId]/actions/apply/route.js +1 -1
  121. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/dream-tasks/[dreamId]/actions/apply/route.js.nft.json +1 -1
  122. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/dream-tasks/[dreamId]/actions/route.js +1 -1
  123. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/dream-tasks/[dreamId]/actions/route.js.nft.json +1 -1
  124. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/dream-tasks/[dreamId]/cancel/route.js +1 -1
  125. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/dream-tasks/[dreamId]/cancel/route.js.nft.json +1 -1
  126. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/dream-tasks/[dreamId]/route.js +1 -1
  127. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/dream-tasks/[dreamId]/route.js.nft.json +1 -1
  128. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/dream-tasks/route.js +1 -1
  129. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/dream-tasks/route.js.nft.json +1 -1
  130. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/messages/route.js +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 +1 -1
  133. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/requests/route.js.nft.json +1 -1
  134. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/route.js +1 -1
  135. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/route.js.nft.json +1 -1
  136. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/scopes/route.js +1 -1
  137. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/scopes/route.js.nft.json +1 -1
  138. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/search/route.js +1 -1
  139. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/search/route.js.nft.json +1 -1
  140. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/tasks/[requestId]/route.js +1 -1
  141. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/tasks/[requestId]/route.js.nft.json +1 -1
  142. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/tasks/route.js +1 -1
  143. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/tasks/route.js.nft.json +1 -1
  144. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/units/[memoryId]/route.js +1 -1
  145. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/units/[memoryId]/route.js.nft.json +1 -1
  146. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/units/route.js +1 -1
  147. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/units/route.js.nft.json +1 -1
  148. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/route.js +1 -1
  149. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/route.js.nft.json +1 -1
  150. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/oss/list/route.js +1 -1
  151. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/oss/list/route.js.nft.json +1 -1
  152. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/runtime/context/route.js +1 -1
  153. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/runtime/context/route.js.nft.json +1 -1
  154. package/dist/dashboard-runtime/dashboard/.next/server/app/index.html +1 -1
  155. package/dist/dashboard-runtime/dashboard/.next/server/app/index.rsc +14 -14
  156. package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  157. package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/_full.segment.rsc +14 -14
  158. package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/_head.segment.rsc +3 -3
  159. package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/_index.segment.rsc +10 -10
  160. package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  161. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  162. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.html +1 -1
  163. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.rsc +17 -17
  164. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/_full.segment.rsc +17 -17
  165. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/_head.segment.rsc +3 -3
  166. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/_index.segment.rsc +10 -10
  167. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/_tree.segment.rsc +2 -2
  168. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/onboarding/__PAGE__.segment.rsc +4 -4
  169. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/onboarding.segment.rsc +4 -4
  170. package/dist/dashboard-runtime/dashboard/.next/server/app/page_client-reference-manifest.js +1 -1
  171. package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0.y01v.._.js +40 -0
  172. package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0wa~r66._.js +40 -0
  173. package/dist/dashboard-runtime/dashboard/.next/server/chunks/{[root-of-the-server]__0cfc26g._.js → [root-of-the-server]__10k~3sa._.js} +10 -10
  174. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__07fra.0._.js +1 -1
  175. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0st_2qm._.js +1 -1
  176. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0odjvc.._.js +1 -1
  177. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/{_0lf_p5l._.js → _0pe9ntc._.js} +2 -2
  178. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0tej2s.._.js +3 -0
  179. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_00ofp7q._.js +1 -1
  180. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_0l1.0wg._.js +1 -1
  181. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_app_(dashboard)_memory_[store]_dream_[dreamId]_page_tsx_0wy3tv6._.js +1 -1
  182. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_app_(dashboard)_memory_[store]_dream_page_tsx_0uzzpvs._.js +1 -1
  183. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_app_(dashboard)_memory_[store]_layout_tsx_0rbi41w._.js +1 -1
  184. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_app_(dashboard)_memory_[store]_settings_page_tsx_0y26.xu._.js +1 -1
  185. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_app_(dashboard)_memory_[store]_tasks_page_tsx_0a_bgx4._.js +1 -1
  186. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_app_(dashboard)_memory_[store]_units_page_tsx_0.6xnei._.js +1 -1
  187. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_providers_runtime-context-provider_tsx_0wmj66z._.js +1 -1
  188. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/node_modules__pnpm_00arje5._.js +1 -1
  189. package/dist/dashboard-runtime/dashboard/.next/server/middleware-build-manifest.js +3 -3
  190. package/dist/dashboard-runtime/dashboard/.next/server/pages/404.html +1 -1
  191. package/dist/dashboard-runtime/dashboard/.next/server/pages/500.html +1 -1
  192. package/dist/dashboard-runtime/dashboard/.next/server/server-reference-manifest.js +1 -1
  193. package/dist/dashboard-runtime/dashboard/.next/server/server-reference-manifest.json +1 -1
  194. package/dist/dashboard-runtime/dashboard/.next/static/chunks/{0ayu19bfberc6.js → 0-0n226yihtlx.js} +1 -1
  195. package/dist/dashboard-runtime/dashboard/.next/static/chunks/05d8-45s941bx.js +1 -0
  196. package/dist/dashboard-runtime/dashboard/.next/static/chunks/{154l918khtf32.js → 076wjt8-f7ws0.js} +1 -1
  197. package/dist/dashboard-runtime/dashboard/.next/static/chunks/{1080w.jlkizc-.js → 09fuq3fiw1zq8.js} +1 -1
  198. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0axe89r5c7p_b.js +1 -0
  199. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0czi-68m5cma3.js +1 -0
  200. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0ezfzygzl1hw8.css +1 -0
  201. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0gqhfku~on4t1.js +1 -0
  202. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0i_66eb3teu-..js +1 -0
  203. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0p7-v~ggg-k3s.js +1 -0
  204. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0xnm11dm1-qw2.js +1 -0
  205. package/dist/dashboard-runtime/dashboard/.next/static/chunks/{0za3q13g~ihb2.js → 0yqx-vizpechs.js} +1 -1
  206. package/dist/dashboard-runtime/dashboard/.next/static/chunks/11daw7hfc5lbv.js +1 -0
  207. package/dist/dashboard-runtime/dashboard/.next/static/chunks/{06qgro8gk178k.js → 12ju37ebul3bw.js} +1 -1
  208. package/dist/dashboard-runtime/dashboard/.next/static/chunks/{0oh~.z3b9_qzy.js → 17l3ij7h2.vna.js} +1 -1
  209. package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/memory/[store]/dream/[dreamId]/page.tsx +79 -19
  210. package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/memory/[store]/dream/page.tsx +57 -14
  211. package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/memory/[store]/layout.tsx +1 -1
  212. package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/memory/[store]/search/page.tsx +4 -0
  213. package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/memory/[store]/units/page.tsx +1 -2
  214. package/dist/dashboard-runtime/dashboard/src/components/memory/memory-create-form.tsx +35 -1
  215. package/dist/dashboard-runtime/dashboard/src/components/memory/memory-dream-actions-table.tsx +176 -82
  216. package/dist/dashboard-runtime/dashboard/src/components/memory/memory-dream-apply-confirm-dialog.tsx +2 -0
  217. package/dist/dashboard-runtime/dashboard/src/components/memory/memory-dream-create-dialog.tsx +130 -83
  218. package/dist/dashboard-runtime/dashboard/src/components/memory/memory-search-form.tsx +22 -0
  219. package/dist/dashboard-runtime/dashboard/src/components/memory/memory-search-results.tsx +4 -1
  220. package/dist/dashboard-runtime/dashboard/src/components/memory/memory-settings-form.tsx +52 -7
  221. package/dist/dashboard-runtime/dashboard/src/components/memory/memory-tasks-table.tsx +8 -37
  222. package/dist/dashboard-runtime/dashboard/src/components/qa/qa-message.tsx +2 -3
  223. package/dist/dashboard-runtime/dashboard/src/components/retrieval/retrieval-result-card.tsx +2 -1
  224. package/dist/dashboard-runtime/dashboard/src/hooks/use-task-source-messages.ts +179 -0
  225. package/dist/dashboard-runtime/dashboard/src/lib/utils.ts +4 -0
  226. package/dist/dashboard-runtime/dashboard/src/types/memory.ts +32 -2
  227. package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/tsconfig.tsbuildinfo +1 -1
  228. package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/package.json +1 -1
  229. package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/tsconfig.tsbuildinfo +1 -1
  230. package/dist/node_modules/@tablestore/tablestore-agent-sdk/package.json +1 -1
  231. package/package.json +1 -1
  232. package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0pfdi-.._.js +0 -40
  233. package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0qi223x._.js +0 -40
  234. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0gep_x_._.js +0 -3
  235. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0.b6bx-29l5e2.js +0 -1
  236. package/dist/dashboard-runtime/dashboard/.next/static/chunks/05ny4_cp6fkfu.js +0 -1
  237. package/dist/dashboard-runtime/dashboard/.next/static/chunks/097px3urt-4kr.js +0 -1
  238. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0c08tbxyly68e.js +0 -1
  239. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0frefg2bkdon0.css +0 -1
  240. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0w6-j4p-7fybc.js +0 -1
  241. package/dist/dashboard-runtime/dashboard/.next/static/chunks/126jyzsu33t60.js +0 -1
  242. package/dist/dashboard-runtime/dashboard/.next/static/chunks/12~tfkzir29.4.js +0 -1
  243. package/dist/dashboard-runtime/dashboard/.next/static/chunks/14teeoxc_1i46.js +0 -1
  244. /package/dist/dashboard-runtime/dashboard/.next/static/{w-aME93lY9vOGA0PZdBaI → -pCWSBA7OQIF0pN0Rem9H}/_buildManifest.js +0 -0
  245. /package/dist/dashboard-runtime/dashboard/.next/static/{w-aME93lY9vOGA0PZdBaI → -pCWSBA7OQIF0pN0Rem9H}/_clientMiddlewareManifest.js +0 -0
  246. /package/dist/dashboard-runtime/dashboard/.next/static/{w-aME93lY9vOGA0PZdBaI → -pCWSBA7OQIF0pN0Rem9H}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,323516,e=>{"use strict";var t=e.i(44501),s=e.i(861403),a=e.i(465581),r=e.i(979980),n=e.i(876490);let l={"knowledge-base":"知识库",memory:"记忆库","llm-providers":"大模型",projects:"项目管理",documents:"文档",retrieval:"检索测试",qa:"问答测试",search:"记忆检索",units:"长期记忆",messages:"短期记忆",requests:"请求审计",settings:"设置",create:"新建",new:"新建",chat:"对话"};e.s(["PageHeader",0,function({title:e,description:i,hideBreadcrumb:o,children:c,className:d}){let u=(0,a.usePathname)()??"/",m=o?[]:function(e){if(/^\/knowledge-base\/[^/]+(?:\/.*)?$/.test(e)||/^\/memory\/[^/]+(?:\/.*)?$/.test(e))return[];let t=e.split("/").filter(Boolean);if(0===t.length)return[];let s=[],a="";return t.forEach((e,r)=>{a+=`/${e}`;let n=decodeURIComponent(e),i=l[n]??n;s.push({label:i,href:r<t.length-1?a:void 0})}),s}(u);return(0,t.jsxs)("div",{className:(0,n.cn)("mb-5 flex flex-col gap-2",d),children:[m.length>1&&(0,t.jsxs)("nav",{"aria-label":"面包屑",className:"flex items-center gap-1 text-[13px] text-[hsl(var(--muted-foreground))]",children:[(0,t.jsx)(s.default,{href:"/",className:"transition-colors hover:text-[hsl(var(--foreground))]",children:"主页"}),m.map((e,a)=>(0,t.jsxs)("span",{className:"flex items-center gap-1",children:[(0,t.jsx)(r.ChevronRight,{className:"h-3 w-3 opacity-60"}),e.href?(0,t.jsx)(s.default,{href:e.href,className:"transition-colors hover:text-[hsl(var(--foreground))]",children:e.label}):(0,t.jsx)("span",{className:"font-medium text-[hsl(var(--foreground))]",children:e.label})]},`${e.label}-${a}`))]}),(0,t.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsx)("h1",{className:"text-xl font-semibold leading-tight text-[hsl(var(--foreground))]",children:e}),i&&(0,t.jsx)("p",{className:"text-[13px] text-[hsl(var(--muted-foreground))]",children:i})]}),c&&(0,t.jsx)("div",{className:"flex shrink-0 items-center gap-2",children:c})]})]})}])},533153,e=>{"use strict";let t=(0,e.i(801685).default)("pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);e.s(["Pencil",0,t],533153)},730068,e=>{"use strict";let t=(0,e.i(801685).default)("refresh-cw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);e.s(["RefreshCw",0,t],730068)},322740,e=>{"use strict";var t=e.i(44501),s=e.i(101685),a=e.i(876490);let r=s.forwardRef(({className:e,...s},r)=>(0,t.jsx)("div",{className:"relative w-full overflow-auto",children:(0,t.jsx)("table",{ref:r,className:(0,a.cn)("w-full caption-bottom text-sm",e),...s})}));r.displayName="Table";let n=s.forwardRef(({className:e,...s},r)=>(0,t.jsx)("thead",{ref:r,className:(0,a.cn)("[&_tr]:border-b [&_tr]:border-[hsl(var(--border))] [&_tr]:bg-[hsl(var(--secondary))]",e),...s}));n.displayName="TableHeader";let l=s.forwardRef(({className:e,...s},r)=>(0,t.jsx)("tbody",{ref:r,className:(0,a.cn)("[&_tr:last-child]:border-0",e),...s}));l.displayName="TableBody",s.forwardRef(({className:e,...s},r)=>(0,t.jsx)("tfoot",{ref:r,className:(0,a.cn)("border-t border-[hsl(var(--border))] bg-[hsl(var(--secondary)/0.5)] font-medium [&>tr]:last:border-b-0",e),...s})).displayName="TableFooter";let i=s.forwardRef(({className:e,...s},r)=>(0,t.jsx)("tr",{ref:r,className:(0,a.cn)("border-b border-[hsl(var(--border-light))] transition-colors hover:bg-[hsl(var(--secondary)/0.5)] data-[state=selected]:bg-[hsl(var(--primary-soft))]",e),...s}));i.displayName="TableRow";let o=s.forwardRef(({className:e,...s},r)=>(0,t.jsx)("th",{ref:r,className:(0,a.cn)("h-9 px-3 text-left align-middle text-xs font-medium text-[hsl(var(--muted-foreground))] [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",e),...s}));o.displayName="TableHead";let c=s.forwardRef(({className:e,...s},r)=>(0,t.jsx)("td",{ref:r,className:(0,a.cn)("px-3 py-2 align-middle text-sm [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",e),...s}));c.displayName="TableCell",s.forwardRef(({className:e,...s},r)=>(0,t.jsx)("caption",{ref:r,className:(0,a.cn)("mt-4 text-sm text-[hsl(var(--muted-foreground))]",e),...s})).displayName="TableCaption",e.s(["Table",0,r,"TableBody",0,l,"TableCell",0,c,"TableHead",0,o,"TableHeader",0,n,"TableRow",0,i])},431592,e=>{"use strict";var t=e.i(44501),s=e.i(101685),a=e.i(730068),r=e.i(942595),n=e.i(876490);e.s(["RefreshButton",0,function({loading:e,onClick:l,title:i="刷新",className:o,size:c="icon",label:d,variant:u="ghost"}){let m=(0,s.useRef)(null),x=(0,s.useRef)(null),h=(0,s.useRef)(e),p=()=>{let e=m.current;if(!e||x.current)return;let t=e.animate([{transform:"rotate(0deg)"},{transform:"rotate(360deg)"}],{duration:800,easing:"linear",iterations:1,fill:"none"});x.current=t,t.addEventListener("finish",()=>{x.current=null,h.current&&p()}),t.addEventListener("cancel",()=>{x.current=null})};(0,s.useEffect)(()=>{h.current=e},[e]),(0,s.useEffect)(()=>{e&&p()},[e]),(0,s.useEffect)(()=>()=>{x.current?.cancel(),x.current=null},[]);let f="icon"!==c&&!!d;return(0,t.jsxs)(r.Button,{type:"button",variant:u,size:c,onClick:()=>{e||(p(),l())},title:i,"aria-label":d??i,"aria-busy":e||void 0,className:(0,n.cn)("group text-muted-foreground transition-colors duration-150","hover:text-foreground active:scale-[0.96]","ghost"===u&&"hover:bg-[hsl(var(--accent))]",o),children:[(0,t.jsx)("span",{ref:m,"aria-hidden":!0,className:(0,n.cn)("inline-flex transform-gpu",f&&"mr-1.5"),children:(0,t.jsx)(a.RefreshCw,{className:"sm"===c?"h-3.5 w-3.5":"h-4 w-4"})}),f&&d]})}])},573581,e=>{"use strict";let t=(0,e.i(801685).default)("eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);e.s(["Eye",0,t],573581)},326042,e=>{"use strict";var t=e.i(543876),s=e.i(164204),a=e.i(247570),r=e.i(307166);e.s(["useMemoryUnit",0,function(e,n,l,i=!0){let{context:o,ready:c}=(0,r.useRuntimeContext)();return(0,t.useQuery)({queryKey:a.queryKeys.memoryUnit(o.dataScopeKey,e,n,l),queryFn:()=>(0,s.getMemoryUnit)({memoryStoreName:e,memoryId:n,scope:l}),enabled:c&&i&&!!e&&!!l?.appId&&!!n&&"-"!==n})}])},700144,e=>{"use strict";var t=e.i(44501),s=e.i(101685),a=e.i(465581),r=e.i(568432),n=e.i(979980),l=e.i(358204),i=e.i(396416),o=e.i(187014),c=e.i(942595),d=e.i(723888),u=e.i(323516),m=e.i(12251),x=e.i(431592),h=e.i(831211),p=e.i(12122),f=e.i(543876),j=e.i(164204),g=e.i(247570),y=e.i(307166),b=e.i(137500),v=e.i(712984),N=e.i(481015),w=e.i(433253),k=e.i(766476),C=e.i(45123);function S({memoryStoreName:e,scope:a,open:r,onOpenChange:n,onSuccess:l}){let i,d=(i=(0,v.useQueryClient)(),(0,b.useMutation)({mutationFn:e=>(0,j.addMemory)(e),onSuccess:()=>{(0,g.invalidateMemoryQueries)(i)}})),[u,m]=(0,s.useState)(""),[x,h]=(0,s.useState)("");async function p(){try{let t=(0,N.parseJsonObject)(x);if(!u.trim())return void o.toast.error("请输入要提取为记忆的文本");await d.mutateAsync({memoryStoreName:e,scope:a,text:u.trim(),metadata:t,sync:!1}),o.toast.success("记忆正在加工中,请稍后查看"),m(""),h(""),n(!1),l?.()}catch(e){o.toast.error(e instanceof Error?e.message:"添加记忆失败")}}return(0,t.jsx)(w.Dialog,{open:r,onOpenChange:n,children:(0,t.jsxs)(w.DialogContent,{className:"max-w-xl",children:[(0,t.jsx)(w.DialogHeader,{children:(0,t.jsx)(w.DialogTitle,{children:"添加记忆"})}),(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(k.Label,{children:"记忆文本"}),(0,t.jsx)(C.Textarea,{value:u,onChange:e=>m(e.target.value),placeholder:"输入要提取为记忆的文本...",rows:5})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(k.Label,{children:"元数据(JSON,可选)"}),(0,t.jsx)(C.Textarea,{value:x,onChange:e=>h(e.target.value),placeholder:'{"source":"dashboard"}',rows:3})]}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:"记忆将通过异步方式处理,添加后可在记忆单元中查看结果。"})]}),(0,t.jsxs)(w.DialogFooter,{children:[(0,t.jsx)(c.Button,{variant:"outline",onClick:()=>n(!1),children:"取消"}),(0,t.jsx)(c.Button,{onClick:p,disabled:d.isPending,children:d.isPending?"提交中...":"提交"})]})]})})}var T=e.i(573581),I=e.i(533153),D=e.i(330363),R=e.i(322740);let B="当前记忆单元缺少精确范围或 ID,无法操作";function M(e){return e.id??e.memoryId??"-"}let P=(0,s.memo)(function({unit:e,actionDisabled:a,onView:r,onEdit:n,onDelete:l}){let i=(0,s.useCallback)(()=>r?.(e),[r,e]),o=(0,s.useCallback)(()=>n?.(e),[n,e]),d=(0,s.useCallback)(()=>l?.(e),[l,e]);return(0,t.jsxs)(R.TableRow,{children:[(0,t.jsx)(R.TableCell,{className:"font-mono text-xs",children:M(e)}),(0,t.jsxs)(R.TableCell,{className:"max-w-[420px]",children:[(0,t.jsx)("p",{className:"line-clamp-2 text-sm",children:e.text}),e.search_text&&(0,t.jsx)("p",{className:"mt-1 line-clamp-1 text-xs text-muted-foreground",children:e.search_text})]}),(0,t.jsx)(R.TableCell,{children:e.unit_type??"-"}),(0,t.jsx)(R.TableCell,{children:e.version??"-"}),(0,t.jsx)(R.TableCell,{className:"text-xs text-muted-foreground",children:function(e){if(!e)return"-";try{let t=new Date(e);if(isNaN(t.getTime()))return String(e);return t.toLocaleString("zh-CN",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"})}catch{return String(e)}}(e.created_at??e.createdAt)}),(0,t.jsx)(R.TableCell,{children:(0,t.jsxs)("div",{className:"flex justify-end gap-1",children:[(0,t.jsx)(c.Button,{type:"button",variant:"ghost",size:"icon",disabled:a,onClick:i,title:a?B:"查看详情",children:(0,t.jsx)(T.Eye,{className:"h-4 w-4"})}),(0,t.jsx)(c.Button,{type:"button",variant:"ghost",size:"icon",disabled:a,onClick:o,title:a?B:"编辑",children:(0,t.jsx)(I.Pencil,{className:"h-4 w-4"})}),(0,t.jsx)(c.Button,{type:"button",variant:"ghost",size:"icon",disabled:a,onClick:d,title:a?B:"删除",children:(0,t.jsx)(D.Trash2,{className:"h-4 w-4 text-[hsl(var(--destructive))]"})})]})})]})});function E({units:e,readOnly:s=!1,isActionDisabled:a,onView:r,onEdit:n,onDelete:l}){return e.length?(0,t.jsx)("div",{className:"rounded-lg border",children:(0,t.jsxs)(R.Table,{children:[(0,t.jsx)(R.TableHeader,{children:(0,t.jsxs)(R.TableRow,{children:[(0,t.jsx)(R.TableHead,{className:"w-[180px]",children:"ID"}),(0,t.jsx)(R.TableHead,{children:"内容"}),(0,t.jsx)(R.TableHead,{className:"w-[140px]",children:"类型"}),(0,t.jsx)(R.TableHead,{className:"w-[120px]",children:"版本"}),(0,t.jsx)(R.TableHead,{className:"w-[170px]",children:"创建时间"}),(0,t.jsx)(R.TableHead,{className:"w-[160px] text-right",children:"操作"})]})}),(0,t.jsx)(R.TableBody,{children:e.map((e,i)=>{let o=s||a?.(e)||!1,c=M(e);return(0,t.jsx)(P,{unit:e,actionDisabled:o,onView:r,onEdit:n,onDelete:l},"-"===c?i:c)})})]})}):(0,t.jsx)("div",{className:"rounded-lg border border-dashed py-12 text-center text-sm text-muted-foreground",children:"当前范围下暂无记忆单元"})}function H({memoryStoreName:e,scope:s,unit:a,open:r,onOpenChange:n}){let l,i=(l=(0,v.useQueryClient)(),(0,b.useMutation)({mutationFn:e=>(0,j.updateMemoryUnit)(e),onSuccess:()=>{(0,g.invalidateMemoryQueries)(l)}})),d=a?M(a):"empty";async function u(t){if(t.preventDefault(),!a)return;let r=M(a);if("-"===r)return void o.toast.error("记忆单元缺少 ID,无法编辑");let l=new FormData(t.currentTarget),c=String(l.get("text")??"").trim(),d=String(l.get("metadata")??"");try{await i.mutateAsync({memoryStoreName:e,memoryId:r,scope:s,text:c||void 0,metadata:(0,N.parseJsonObject)(d)}),o.toast.success("记忆单元已更新"),n(!1)}catch(e){o.toast.error(e instanceof Error?e.message:"更新记忆失败")}}return(0,t.jsx)(w.Dialog,{open:r,onOpenChange:n,children:(0,t.jsxs)(w.DialogContent,{className:"max-w-2xl",children:[(0,t.jsx)(w.DialogHeader,{children:(0,t.jsx)(w.DialogTitle,{children:"编辑记忆单元"})}),(0,t.jsxs)("form",{onSubmit:u,className:"space-y-4",children:[(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(k.Label,{children:"记忆文本"}),(0,t.jsx)(C.Textarea,{name:"text",defaultValue:a?.text??"",rows:5})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(k.Label,{children:"元数据(JSON)"}),(0,t.jsx)(C.Textarea,{name:"metadata",defaultValue:a?.metadata?JSON.stringify(a.metadata,null,2):"",rows:4})]}),(0,t.jsxs)(w.DialogFooter,{children:[(0,t.jsx)(c.Button,{type:"button",variant:"outline",onClick:()=>n(!1),children:"取消"}),(0,t.jsx)(c.Button,{type:"submit",disabled:i.isPending,children:i.isPending?"保存中...":"保存"})]})]},d)]})})}var K=e.i(326042);function O({label:e,children:s}){return(0,t.jsxs)("div",{className:"grid grid-cols-[120px_1fr] items-start gap-3",children:[(0,t.jsx)("span",{className:"pt-0.5 text-xs font-medium text-muted-foreground",children:e}),(0,t.jsx)("div",{className:"min-w-0 text-sm text-foreground",children:s})]})}function U({memoryStoreName:e,scope:s,unit:a,open:r,onOpenChange:n}){let l=a?M(a):void 0,i=(0,K.useMemoryUnit)(e,l,s,r),o=i.data?.memory;return(0,t.jsx)(w.Dialog,{open:r,onOpenChange:n,children:(0,t.jsxs)(w.DialogContent,{className:"max-w-2xl",children:[(0,t.jsx)(w.DialogHeader,{children:(0,t.jsx)(w.DialogTitle,{children:"记忆单元详情"})}),a?"-"===l?(0,t.jsx)("p",{className:"text-sm text-destructive",children:"记忆单元缺少 ID,无法加载详情。"}):i.isLoading?(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(h.Skeleton,{className:"h-4 w-16"}),(0,t.jsx)(h.Skeleton,{className:"h-5 w-64"})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(h.Skeleton,{className:"h-4 w-16"}),(0,t.jsx)(h.Skeleton,{className:"h-24 w-full"})]}),(0,t.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2",children:[(0,t.jsx)(h.Skeleton,{className:"h-14 w-full"}),(0,t.jsx)(h.Skeleton,{className:"h-14 w-full"}),(0,t.jsx)(h.Skeleton,{className:"h-14 w-full"}),(0,t.jsx)(h.Skeleton,{className:"h-14 w-full"})]})]}):i.isError?(0,t.jsx)("p",{className:"rounded-md bg-destructive/5 p-3 text-sm text-destructive",children:i.error instanceof Error?i.error.message:"加载记忆单元详情失败"}):o?(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsx)(O,{label:"ID",children:(0,t.jsx)("span",{className:"break-all font-mono text-xs",children:o.id??o.memoryId??"-"})}),(0,t.jsx)(O,{label:"内容",children:(0,t.jsx)("p",{className:"whitespace-pre-wrap rounded-md bg-muted p-3 text-sm",children:o.text})}),o.search_text&&(0,t.jsx)(O,{label:"检索文本",children:(0,t.jsx)("p",{className:"whitespace-pre-wrap rounded-md bg-muted p-3 text-sm",children:o.search_text})}),(0,t.jsx)(O,{label:"范围",children:(0,N.formatScope)(o.scope)}),(0,t.jsx)(O,{label:"类型",children:o.unit_type??"-"}),(0,t.jsx)(O,{label:"重要度",children:o.salience??"-"}),(0,t.jsx)(O,{label:"版本",children:o.version??"-"}),o.metadata&&(0,t.jsx)(O,{label:"元数据",children:(0,t.jsx)("pre",{className:"overflow-auto rounded-md bg-muted p-3 text-xs",children:JSON.stringify(o.metadata,null,2)})})]}):(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:"未找到记忆单元详情。"}):null]})})}var L=e.i(593321);e.s(["default",0,function(){let e,w=(0,a.useParams)(),k=(0,a.useSearchParams)(),C=decodeURIComponent(w.store),T=k.toString(),I=(0,s.useMemo)(()=>(0,N.buildMemoryScope)(new URLSearchParams(T)),[T]),D=(0,N.hasWildcardScope)(I),R=(0,s.useMemo)(()=>`${I.appId}|${I.tenantId??""}|${I.agentId??""}|${I.runId??""}`,[I.appId,I.tenantId,I.agentId,I.runId]),[B,P]=(0,s.useState)({scopeKey:R,tokenStack:[]}),[K]=(0,s.useState)(20),[O,$]=(0,s.useState)(""),[_,z]=(0,s.useState)(null),[q,F]=(0,s.useState)(!1),[Q,A]=(0,s.useState)({scopeKey:R,open:!1}),[J,V]=(0,s.useState)({scopeKey:R,unit:null}),[W,G]=(0,s.useState)({scopeKey:R,unit:null}),[X,Y]=(0,s.useState)({scopeKey:R,unit:null}),Z=B.scopeKey===R?B.tokenStack:[],ee=B.scopeKey===R?B.currentToken:void 0,et=Q.scopeKey===R&&Q.open,es=J.scopeKey===R?J.unit:null,ea=W.scopeKey===R?W.unit:null,er=X.scopeKey===R?X.unit:null,en=function(e,t,s,a=20){let{context:r,ready:n}=(0,y.useRuntimeContext)();return(0,f.useQuery)({queryKey:g.queryKeys.memoryUnits(r.dataScopeKey,e,t,s,a),queryFn:()=>(0,j.listMemoryUnits)(e,t,{nextToken:s,limit:a}),enabled:n&&!!e&&!!t?.appId,staleTime:3e4})}(C,I.appId?I:null,ee,K),el=(e=(0,v.useQueryClient)(),(0,b.useMutation)({mutationFn:e=>(0,j.deleteMemoryUnit)(e),onSuccess:()=>{(0,g.invalidateMemoryQueries)(e)}})),ei=en.data?.items??[];function eo(e,t){return e.scope?.appId?e.scope:t}function ec(e,t){let s=M(e),a=eo(e,t);return!!a.appId&&!(0,N.hasWildcardScope)(a)&&"-"!==s}let ed=es?eo(es,I):I,eu=ea?eo(ea,I):I,em=er?eo(er,I):I;async function ex(){if(!er)return;let e=M(er);if("-"===e)return void o.toast.error("记忆单元缺少 ID,无法删除");if(!ec(er,I))return void o.toast.error("当前记忆单元缺少精确范围,无法删除");try{await el.mutateAsync({memoryStoreName:C,memoryId:e,scope:em}),o.toast.success("记忆单元已删除"),Y({scopeKey:R,unit:null}),en.refetch()}catch(e){o.toast.error(e instanceof Error?e.message:"删除记忆单元失败")}}async function eh(){if(!O.trim())return void o.toast.error("请输入记忆 ID");if(!I.appId)return void o.toast.error("请先设置精确的范围");F(!0);try{let e=await (0,L.apiGet)(`/api/v1/memory/stores/${encodeURIComponent(C)}/units/${encodeURIComponent(O.trim())}?${new URLSearchParams({appId:I.appId,...I.tenantId?{tenantId:I.tenantId}:{},...I.agentId?{agentId:I.agentId}:{},...I.runId?{runId:I.runId}:{}}).toString()}`);z(e.memory),o.toast.success("找到记忆单元")}catch(e){z(null),o.toast.error(e instanceof Error?e.message:"未找到该记忆单元")}finally{F(!1)}}function ep(){$(""),z(null)}let ef=_?[_]:ei,ej=_?1:en.data?.totalCount??0;return en.isLoading&&!_?(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsx)(h.Skeleton,{className:"h-8 w-48"}),(0,t.jsx)(h.Skeleton,{className:"h-10 w-full"}),(0,t.jsx)(h.Skeleton,{className:"h-64 w-full"})]}):(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsx)(u.PageHeader,{title:`长期记忆 (${ej})`,children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(x.RefreshButton,{loading:en.isRefetching,onClick:()=>{en.refetch(),ep()}}),D?(0,t.jsx)(p.TooltipProvider,{delayDuration:200,children:(0,t.jsxs)(p.Tooltip,{children:[(0,t.jsx)(p.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("span",{tabIndex:0,className:"inline-flex",children:(0,t.jsxs)(c.Button,{disabled:!0,className:"pointer-events-none",children:[(0,t.jsx)(l.Plus,{className:"mr-2 h-4 w-4"}),"添加记忆"]})})}),(0,t.jsx)(p.TooltipContent,{side:"bottom",className:"max-w-[240px]",children:(0,t.jsx)("p",{children:"请在上方范围栏中为所有字段设置具体值后再添加记忆"})})]})}):(0,t.jsxs)(c.Button,{onClick:()=>A({scopeKey:R,open:!0}),children:[(0,t.jsx)(l.Plus,{className:"mr-2 h-4 w-4"}),"添加记忆"]})]})}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(d.Input,{value:O,onChange:e=>$(e.target.value),placeholder:"输入记忆 ID 查询单条记忆...",className:"max-w-md",onKeyDown:e=>"Enter"===e.key&&eh()}),(0,t.jsxs)(c.Button,{onClick:eh,disabled:q||!I.appId,children:[(0,t.jsx)(i.Search,{className:"mr-1.5 h-4 w-4"}),q?"查询中...":"查询"]}),_&&(0,t.jsx)(c.Button,{variant:"outline",onClick:ep,children:"返回列表"})]}),D&&!_&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:"当前范围含通配符,仅支持只读查询,无法执行新增、查看详情、编辑或删除。"}),(0,t.jsx)(E,{units:ef,readOnly:!!_,isActionDisabled:e=>!!_||!ec(e,I),onView:e=>V({scopeKey:R,unit:e}),onEdit:e=>G({scopeKey:R,unit:e}),onDelete:e=>Y({scopeKey:R,unit:e})}),!_&&(0,t.jsxs)("div",{className:"flex items-center justify-between py-2",children:[(0,t.jsxs)("span",{className:"text-sm text-muted-foreground",children:["第 ",Z.length+1," 页"]}),(0,t.jsxs)("div",{className:"flex items-center gap-4",children:[(0,t.jsxs)(c.Button,{variant:"outline",size:"sm",onClick:()=>{P(e=>{let t=[...e.scopeKey===R?e.tokenStack:[]],s=t.pop();return{scopeKey:R,tokenStack:t,currentToken:s||void 0}})},disabled:0===Z.length,children:[(0,t.jsx)(r.ChevronLeft,{className:"mr-1 h-4 w-4"}),"上一页"]}),(0,t.jsxs)(c.Button,{variant:"outline",size:"sm",onClick:()=>{en.data?.nextToken&&P(e=>({scopeKey:R,tokenStack:[...e.scopeKey===R?e.tokenStack:[],ee??""],currentToken:en.data.nextToken}))},disabled:!en.data?.nextToken,children:["下一页",(0,t.jsx)(n.ChevronRight,{className:"ml-1 h-4 w-4"})]})]})]}),(0,t.jsx)(S,{memoryStoreName:C,scope:I,open:et,onOpenChange:e=>A({scopeKey:R,open:e}),onSuccess:()=>{en.refetch(),ep()}}),(0,t.jsx)(U,{memoryStoreName:C,scope:ed,unit:es,open:!!es&&ec(es,I),onOpenChange:e=>{e||V({scopeKey:R,unit:null})}}),(0,t.jsx)(H,{memoryStoreName:C,scope:eu,unit:ea,open:!!ea&&ec(ea,I),onOpenChange:e=>{e||G({scopeKey:R,unit:null})}}),(0,t.jsx)(m.ConfirmDialog,{open:!!er&&ec(er,I),onOpenChange:e=>{e||Y({scopeKey:R,unit:null})},title:"删除记忆单元",description:`确定要删除记忆单元 "${er?M(er):""}" 吗?此操作不可撤销。`,variant:"danger",onConfirm:ex})]})}],700144)}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,323516,e=>{"use strict";var t=e.i(44501),s=e.i(861403),a=e.i(465581),r=e.i(979980),n=e.i(876490);let l={"knowledge-base":"知识库",memory:"记忆库","llm-providers":"大模型",projects:"项目管理",documents:"文档",retrieval:"检索测试",qa:"问答测试",search:"记忆检索",units:"长期记忆",messages:"短期记忆",requests:"请求审计",settings:"设置",create:"新建",new:"新建",chat:"对话"};e.s(["PageHeader",0,function({title:e,description:i,hideBreadcrumb:o,children:c,className:d}){let u=(0,a.usePathname)()??"/",m=o?[]:function(e){if(/^\/knowledge-base\/[^/]+(?:\/.*)?$/.test(e)||/^\/memory\/[^/]+(?:\/.*)?$/.test(e))return[];let t=e.split("/").filter(Boolean);if(0===t.length)return[];let s=[],a="";return t.forEach((e,r)=>{a+=`/${e}`;let n=decodeURIComponent(e),i=l[n]??n;s.push({label:i,href:r<t.length-1?a:void 0})}),s}(u);return(0,t.jsxs)("div",{className:(0,n.cn)("mb-5 flex flex-col gap-2",d),children:[m.length>1&&(0,t.jsxs)("nav",{"aria-label":"面包屑",className:"flex items-center gap-1 text-[13px] text-[hsl(var(--muted-foreground))]",children:[(0,t.jsx)(s.default,{href:"/",className:"transition-colors hover:text-[hsl(var(--foreground))]",children:"主页"}),m.map((e,a)=>(0,t.jsxs)("span",{className:"flex items-center gap-1",children:[(0,t.jsx)(r.ChevronRight,{className:"h-3 w-3 opacity-60"}),e.href?(0,t.jsx)(s.default,{href:e.href,className:"transition-colors hover:text-[hsl(var(--foreground))]",children:e.label}):(0,t.jsx)("span",{className:"font-medium text-[hsl(var(--foreground))]",children:e.label})]},`${e.label}-${a}`))]}),(0,t.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsx)("h1",{className:"text-xl font-semibold leading-tight text-[hsl(var(--foreground))]",children:e}),i&&(0,t.jsx)("p",{className:"text-[13px] text-[hsl(var(--muted-foreground))]",children:i})]}),c&&(0,t.jsx)("div",{className:"flex shrink-0 items-center gap-2",children:c})]})]})}])},533153,e=>{"use strict";let t=(0,e.i(801685).default)("pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);e.s(["Pencil",0,t],533153)},730068,e=>{"use strict";let t=(0,e.i(801685).default)("refresh-cw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);e.s(["RefreshCw",0,t],730068)},322740,e=>{"use strict";var t=e.i(44501),s=e.i(101685),a=e.i(876490);let r=s.forwardRef(({className:e,...s},r)=>(0,t.jsx)("div",{className:"relative w-full overflow-auto",children:(0,t.jsx)("table",{ref:r,className:(0,a.cn)("w-full caption-bottom text-sm",e),...s})}));r.displayName="Table";let n=s.forwardRef(({className:e,...s},r)=>(0,t.jsx)("thead",{ref:r,className:(0,a.cn)("[&_tr]:border-b [&_tr]:border-[hsl(var(--border))] [&_tr]:bg-[hsl(var(--secondary))]",e),...s}));n.displayName="TableHeader";let l=s.forwardRef(({className:e,...s},r)=>(0,t.jsx)("tbody",{ref:r,className:(0,a.cn)("[&_tr:last-child]:border-0",e),...s}));l.displayName="TableBody",s.forwardRef(({className:e,...s},r)=>(0,t.jsx)("tfoot",{ref:r,className:(0,a.cn)("border-t border-[hsl(var(--border))] bg-[hsl(var(--secondary)/0.5)] font-medium [&>tr]:last:border-b-0",e),...s})).displayName="TableFooter";let i=s.forwardRef(({className:e,...s},r)=>(0,t.jsx)("tr",{ref:r,className:(0,a.cn)("border-b border-[hsl(var(--border-light))] transition-colors hover:bg-[hsl(var(--secondary)/0.5)] data-[state=selected]:bg-[hsl(var(--primary-soft))]",e),...s}));i.displayName="TableRow";let o=s.forwardRef(({className:e,...s},r)=>(0,t.jsx)("th",{ref:r,className:(0,a.cn)("h-9 px-3 text-left align-middle text-xs font-medium text-[hsl(var(--muted-foreground))] [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",e),...s}));o.displayName="TableHead";let c=s.forwardRef(({className:e,...s},r)=>(0,t.jsx)("td",{ref:r,className:(0,a.cn)("px-3 py-2 align-middle text-sm [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",e),...s}));c.displayName="TableCell",s.forwardRef(({className:e,...s},r)=>(0,t.jsx)("caption",{ref:r,className:(0,a.cn)("mt-4 text-sm text-[hsl(var(--muted-foreground))]",e),...s})).displayName="TableCaption",e.s(["Table",0,r,"TableBody",0,l,"TableCell",0,c,"TableHead",0,o,"TableHeader",0,n,"TableRow",0,i])},431592,e=>{"use strict";var t=e.i(44501),s=e.i(101685),a=e.i(730068),r=e.i(942595),n=e.i(876490);e.s(["RefreshButton",0,function({loading:e,onClick:l,title:i="刷新",className:o,size:c="icon",label:d,variant:u="ghost"}){let m=(0,s.useRef)(null),x=(0,s.useRef)(null),h=(0,s.useRef)(e),p=()=>{let e=m.current;if(!e||x.current)return;let t=e.animate([{transform:"rotate(0deg)"},{transform:"rotate(360deg)"}],{duration:800,easing:"linear",iterations:1,fill:"none"});x.current=t,t.addEventListener("finish",()=>{x.current=null,h.current&&p()}),t.addEventListener("cancel",()=>{x.current=null})};(0,s.useEffect)(()=>{h.current=e},[e]),(0,s.useEffect)(()=>{e&&p()},[e]),(0,s.useEffect)(()=>()=>{x.current?.cancel(),x.current=null},[]);let f="icon"!==c&&!!d;return(0,t.jsxs)(r.Button,{type:"button",variant:u,size:c,onClick:()=>{e||(p(),l())},title:i,"aria-label":d??i,"aria-busy":e||void 0,className:(0,n.cn)("group text-muted-foreground transition-colors duration-150","hover:text-foreground active:scale-[0.96]","ghost"===u&&"hover:bg-[hsl(var(--accent))]",o),children:[(0,t.jsx)("span",{ref:m,"aria-hidden":!0,className:(0,n.cn)("inline-flex transform-gpu",f&&"mr-1.5"),children:(0,t.jsx)(a.RefreshCw,{className:"sm"===c?"h-3.5 w-3.5":"h-4 w-4"})}),f&&d]})}])},573581,e=>{"use strict";let t=(0,e.i(801685).default)("eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);e.s(["Eye",0,t],573581)},326042,e=>{"use strict";var t=e.i(543876),s=e.i(164204),a=e.i(247570),r=e.i(307166);e.s(["useMemoryUnit",0,function(e,n,l,i=!0){let{context:o,ready:c}=(0,r.useRuntimeContext)();return(0,t.useQuery)({queryKey:a.queryKeys.memoryUnit(o.dataScopeKey,e,n,l),queryFn:()=>(0,s.getMemoryUnit)({memoryStoreName:e,memoryId:n,scope:l}),enabled:c&&i&&!!e&&!!l?.appId&&!!n&&"-"!==n})}])},700144,e=>{"use strict";var t=e.i(44501),s=e.i(101685),a=e.i(465581),r=e.i(568432),n=e.i(979980),l=e.i(358204),i=e.i(396416),o=e.i(187014),c=e.i(942595),d=e.i(723888),u=e.i(323516),m=e.i(12251),x=e.i(431592),h=e.i(831211),p=e.i(12122),f=e.i(543876),j=e.i(164204),g=e.i(247570),y=e.i(307166),b=e.i(137500),v=e.i(712984),N=e.i(481015),w=e.i(433253),k=e.i(766476),C=e.i(45123);function S({memoryStoreName:e,scope:a,open:r,onOpenChange:n,onSuccess:l}){let i,d=(i=(0,v.useQueryClient)(),(0,b.useMutation)({mutationFn:e=>(0,j.addMemory)(e),onSuccess:()=>{(0,g.invalidateMemoryQueries)(i)}})),[u,m]=(0,s.useState)(""),[x,h]=(0,s.useState)("");async function p(){try{let t=(0,N.parseJsonObject)(x);if(!u.trim())return void o.toast.error("请输入要提取为记忆的文本");await d.mutateAsync({memoryStoreName:e,scope:a,text:u.trim(),metadata:t,sync:!1}),o.toast.success("记忆正在加工中,请稍后查看"),m(""),h(""),n(!1),l?.()}catch(e){o.toast.error(e instanceof Error?e.message:"添加记忆失败")}}return(0,t.jsx)(w.Dialog,{open:r,onOpenChange:n,children:(0,t.jsxs)(w.DialogContent,{className:"max-w-xl",children:[(0,t.jsx)(w.DialogHeader,{children:(0,t.jsx)(w.DialogTitle,{children:"添加记忆"})}),(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(k.Label,{children:"记忆文本"}),(0,t.jsx)(C.Textarea,{value:u,onChange:e=>m(e.target.value),placeholder:"输入要提取为记忆的文本...",rows:5})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(k.Label,{children:"元数据(JSON,可选)"}),(0,t.jsx)(C.Textarea,{value:x,onChange:e=>h(e.target.value),placeholder:'{"source":"dashboard"}',rows:3})]}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:"记忆将通过异步方式处理,添加后可在记忆单元中查看结果。"})]}),(0,t.jsxs)(w.DialogFooter,{children:[(0,t.jsx)(c.Button,{variant:"outline",onClick:()=>n(!1),children:"取消"}),(0,t.jsx)(c.Button,{onClick:p,disabled:d.isPending,children:d.isPending?"提交中...":"提交"})]})]})})}var T=e.i(573581),I=e.i(533153),D=e.i(330363),R=e.i(322740);let B="当前记忆单元缺少精确范围或 ID,无法操作";function M(e){return e.id??e.memoryId??"-"}let P=(0,s.memo)(function({unit:e,actionDisabled:a,onView:r,onEdit:n,onDelete:l}){let i=(0,s.useCallback)(()=>r?.(e),[r,e]),o=(0,s.useCallback)(()=>n?.(e),[n,e]),d=(0,s.useCallback)(()=>l?.(e),[l,e]);return(0,t.jsxs)(R.TableRow,{children:[(0,t.jsx)(R.TableCell,{className:"font-mono text-xs",children:M(e)}),(0,t.jsxs)(R.TableCell,{className:"max-w-[420px]",children:[(0,t.jsx)("p",{className:"line-clamp-2 text-sm",children:e.text}),e.search_text&&(0,t.jsx)("p",{className:"mt-1 line-clamp-1 text-xs text-muted-foreground",children:e.search_text})]}),(0,t.jsx)(R.TableCell,{children:e.unit_type??"-"}),(0,t.jsx)(R.TableCell,{children:e.version??"-"}),(0,t.jsx)(R.TableCell,{className:"text-xs text-muted-foreground",children:function(e){if(!e)return"-";try{let t=new Date(e);if(isNaN(t.getTime()))return String(e);return t.toLocaleString("zh-CN",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"})}catch{return String(e)}}(e.created_at??e.createdAt)}),(0,t.jsx)(R.TableCell,{children:(0,t.jsxs)("div",{className:"flex justify-end gap-1",children:[(0,t.jsx)(c.Button,{type:"button",variant:"ghost",size:"icon",disabled:a,onClick:i,title:a?B:"查看详情",children:(0,t.jsx)(T.Eye,{className:"h-4 w-4"})}),(0,t.jsx)(c.Button,{type:"button",variant:"ghost",size:"icon",disabled:a,onClick:o,title:a?B:"编辑",children:(0,t.jsx)(I.Pencil,{className:"h-4 w-4"})}),(0,t.jsx)(c.Button,{type:"button",variant:"ghost",size:"icon",disabled:a,onClick:d,title:a?B:"删除",children:(0,t.jsx)(D.Trash2,{className:"h-4 w-4 text-[hsl(var(--destructive))]"})})]})})]})});function E({units:e,readOnly:s=!1,isActionDisabled:a,onView:r,onEdit:n,onDelete:l}){return e.length?(0,t.jsx)("div",{className:"rounded-lg border",children:(0,t.jsxs)(R.Table,{children:[(0,t.jsx)(R.TableHeader,{children:(0,t.jsxs)(R.TableRow,{children:[(0,t.jsx)(R.TableHead,{className:"w-[180px]",children:"ID"}),(0,t.jsx)(R.TableHead,{children:"内容"}),(0,t.jsx)(R.TableHead,{className:"w-[140px]",children:"类型"}),(0,t.jsx)(R.TableHead,{className:"w-[120px]",children:"版本"}),(0,t.jsx)(R.TableHead,{className:"w-[170px]",children:"创建时间"}),(0,t.jsx)(R.TableHead,{className:"w-[160px] text-right",children:"操作"})]})}),(0,t.jsx)(R.TableBody,{children:e.map((e,i)=>{let o=s||a?.(e)||!1,c=M(e);return(0,t.jsx)(P,{unit:e,actionDisabled:o,onView:r,onEdit:n,onDelete:l},"-"===c?i:c)})})]})}):(0,t.jsx)("div",{className:"rounded-lg border border-dashed py-12 text-center text-sm text-muted-foreground",children:"当前范围下暂无记忆单元"})}function H({memoryStoreName:e,scope:s,unit:a,open:r,onOpenChange:n}){let l,i=(l=(0,v.useQueryClient)(),(0,b.useMutation)({mutationFn:e=>(0,j.updateMemoryUnit)(e),onSuccess:()=>{(0,g.invalidateMemoryQueries)(l)}})),d=a?M(a):"empty";async function u(t){if(t.preventDefault(),!a)return;let r=M(a);if("-"===r)return void o.toast.error("记忆单元缺少 ID,无法编辑");let l=new FormData(t.currentTarget),c=String(l.get("text")??"").trim(),d=String(l.get("metadata")??"");try{await i.mutateAsync({memoryStoreName:e,memoryId:r,scope:s,text:c||void 0,metadata:(0,N.parseJsonObject)(d)}),o.toast.success("记忆单元已更新"),n(!1)}catch(e){o.toast.error(e instanceof Error?e.message:"更新记忆失败")}}return(0,t.jsx)(w.Dialog,{open:r,onOpenChange:n,children:(0,t.jsxs)(w.DialogContent,{className:"max-w-2xl",children:[(0,t.jsx)(w.DialogHeader,{children:(0,t.jsx)(w.DialogTitle,{children:"编辑记忆单元"})}),(0,t.jsxs)("form",{onSubmit:u,className:"space-y-4",children:[(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(k.Label,{children:"记忆文本"}),(0,t.jsx)(C.Textarea,{name:"text",defaultValue:a?.text??"",rows:5})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(k.Label,{children:"元数据(JSON)"}),(0,t.jsx)(C.Textarea,{name:"metadata",defaultValue:a?.metadata?JSON.stringify(a.metadata,null,2):"",rows:4})]}),(0,t.jsxs)(w.DialogFooter,{children:[(0,t.jsx)(c.Button,{type:"button",variant:"outline",onClick:()=>n(!1),children:"取消"}),(0,t.jsx)(c.Button,{type:"submit",disabled:i.isPending,children:i.isPending?"保存中...":"保存"})]})]},d)]})})}var K=e.i(326042);function O({label:e,children:s}){return(0,t.jsxs)("div",{className:"grid grid-cols-[120px_1fr] items-start gap-3",children:[(0,t.jsx)("span",{className:"pt-0.5 text-xs font-medium text-muted-foreground",children:e}),(0,t.jsx)("div",{className:"min-w-0 text-sm text-foreground",children:s})]})}function U({memoryStoreName:e,scope:s,unit:a,open:r,onOpenChange:n}){let l=a?M(a):void 0,i=(0,K.useMemoryUnit)(e,l,s,r),o=i.data?.memory;return(0,t.jsx)(w.Dialog,{open:r,onOpenChange:n,children:(0,t.jsxs)(w.DialogContent,{className:"max-w-2xl",children:[(0,t.jsx)(w.DialogHeader,{children:(0,t.jsx)(w.DialogTitle,{children:"记忆单元详情"})}),a?"-"===l?(0,t.jsx)("p",{className:"text-sm text-destructive",children:"记忆单元缺少 ID,无法加载详情。"}):i.isLoading?(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(h.Skeleton,{className:"h-4 w-16"}),(0,t.jsx)(h.Skeleton,{className:"h-5 w-64"})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(h.Skeleton,{className:"h-4 w-16"}),(0,t.jsx)(h.Skeleton,{className:"h-24 w-full"})]}),(0,t.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2",children:[(0,t.jsx)(h.Skeleton,{className:"h-14 w-full"}),(0,t.jsx)(h.Skeleton,{className:"h-14 w-full"}),(0,t.jsx)(h.Skeleton,{className:"h-14 w-full"}),(0,t.jsx)(h.Skeleton,{className:"h-14 w-full"})]})]}):i.isError?(0,t.jsx)("p",{className:"rounded-md bg-destructive/5 p-3 text-sm text-destructive",children:i.error instanceof Error?i.error.message:"加载记忆单元详情失败"}):o?(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsx)(O,{label:"ID",children:(0,t.jsx)("span",{className:"break-all font-mono text-xs",children:o.id??o.memoryId??"-"})}),(0,t.jsx)(O,{label:"内容",children:(0,t.jsx)("p",{className:"whitespace-pre-wrap rounded-md bg-muted p-3 text-sm",children:o.text})}),o.search_text&&(0,t.jsx)(O,{label:"检索文本",children:(0,t.jsx)("p",{className:"whitespace-pre-wrap rounded-md bg-muted p-3 text-sm",children:o.search_text})}),(0,t.jsx)(O,{label:"范围",children:(0,N.formatScope)(o.scope)}),(0,t.jsx)(O,{label:"类型",children:o.unit_type??"-"}),(0,t.jsx)(O,{label:"重要度",children:o.salience??"-"}),(0,t.jsx)(O,{label:"版本",children:o.version??"-"}),o.metadata&&(0,t.jsx)(O,{label:"元数据",children:(0,t.jsx)("pre",{className:"overflow-auto rounded-md bg-muted p-3 text-xs",children:JSON.stringify(o.metadata,null,2)})})]}):(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:"未找到记忆单元详情。"}):null]})})}var L=e.i(593321);e.s(["default",0,function(){let e,w=(0,a.useParams)(),k=(0,a.useSearchParams)(),C=decodeURIComponent(w.store),T=k.toString(),I=(0,s.useMemo)(()=>(0,N.buildMemoryScope)(new URLSearchParams(T)),[T]),D=(0,N.hasWildcardScope)(I),R=(0,s.useMemo)(()=>`${I.appId}|${I.tenantId??""}|${I.agentId??""}|${I.runId??""}`,[I.appId,I.tenantId,I.agentId,I.runId]),[B,P]=(0,s.useState)({scopeKey:R,tokenStack:[]}),[K]=(0,s.useState)(20),[O,$]=(0,s.useState)(""),[_,z]=(0,s.useState)(null),[q,F]=(0,s.useState)(!1),[Q,A]=(0,s.useState)({scopeKey:R,open:!1}),[J,V]=(0,s.useState)({scopeKey:R,unit:null}),[W,G]=(0,s.useState)({scopeKey:R,unit:null}),[X,Y]=(0,s.useState)({scopeKey:R,unit:null}),Z=B.scopeKey===R?B.tokenStack:[],ee=B.scopeKey===R?B.currentToken:void 0,et=Q.scopeKey===R&&Q.open,es=J.scopeKey===R?J.unit:null,ea=W.scopeKey===R?W.unit:null,er=X.scopeKey===R?X.unit:null,en=function(e,t,s,a=20){let{context:r,ready:n}=(0,y.useRuntimeContext)();return(0,f.useQuery)({queryKey:g.queryKeys.memoryUnits(r.dataScopeKey,e,t,s,a),queryFn:()=>(0,j.listMemoryUnits)(e,t,{nextToken:s,limit:a}),enabled:n&&!!e&&!!t?.appId,staleTime:3e4})}(C,I.appId?I:null,ee,K),el=(e=(0,v.useQueryClient)(),(0,b.useMutation)({mutationFn:e=>(0,j.deleteMemoryUnit)(e),onSuccess:()=>{(0,g.invalidateMemoryQueries)(e)}})),ei=en.data?.items??[];function eo(e,t){return e.scope?.appId?e.scope:t}function ec(e,t){let s=M(e),a=eo(e,t);return!!a.appId&&!(0,N.hasWildcardScope)(a)&&"-"!==s}let ed=es?eo(es,I):I,eu=ea?eo(ea,I):I,em=er?eo(er,I):I;async function ex(){if(!er)return;let e=M(er);if("-"===e)return void o.toast.error("记忆单元缺少 ID,无法删除");if(!ec(er,I))return void o.toast.error("当前记忆单元缺少精确范围,无法删除");try{await el.mutateAsync({memoryStoreName:C,memoryId:e,scope:em}),o.toast.success("记忆单元已删除"),Y({scopeKey:R,unit:null}),en.refetch()}catch(e){o.toast.error(e instanceof Error?e.message:"删除记忆单元失败")}}async function eh(){if(!O.trim())return void o.toast.error("请输入记忆 ID");if(!I.appId)return void o.toast.error("请先设置精确的范围");F(!0);try{let e=await (0,L.apiGet)(`/api/v1/memory/stores/${encodeURIComponent(C)}/units/${encodeURIComponent(O.trim())}?${new URLSearchParams({appId:I.appId,...I.tenantId?{tenantId:I.tenantId}:{},...I.agentId?{agentId:I.agentId}:{},...I.runId?{runId:I.runId}:{}}).toString()}`);z(e.memory),o.toast.success("找到记忆单元")}catch(e){z(null),o.toast.error(e instanceof Error?e.message:"未找到该记忆单元")}finally{F(!1)}}function ep(){$(""),z(null)}let ef=_?[_]:ei;return en.isLoading&&!_?(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsx)(h.Skeleton,{className:"h-8 w-48"}),(0,t.jsx)(h.Skeleton,{className:"h-10 w-full"}),(0,t.jsx)(h.Skeleton,{className:"h-64 w-full"})]}):(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsx)(u.PageHeader,{title:"长期记忆",children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(x.RefreshButton,{loading:en.isRefetching,onClick:()=>{en.refetch(),ep()}}),D?(0,t.jsx)(p.TooltipProvider,{delayDuration:200,children:(0,t.jsxs)(p.Tooltip,{children:[(0,t.jsx)(p.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("span",{tabIndex:0,className:"inline-flex",children:(0,t.jsxs)(c.Button,{disabled:!0,className:"pointer-events-none",children:[(0,t.jsx)(l.Plus,{className:"mr-2 h-4 w-4"}),"添加记忆"]})})}),(0,t.jsx)(p.TooltipContent,{side:"bottom",className:"max-w-[240px]",children:(0,t.jsx)("p",{children:"请在上方范围栏中为所有字段设置具体值后再添加记忆"})})]})}):(0,t.jsxs)(c.Button,{onClick:()=>A({scopeKey:R,open:!0}),children:[(0,t.jsx)(l.Plus,{className:"mr-2 h-4 w-4"}),"添加记忆"]})]})}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(d.Input,{value:O,onChange:e=>$(e.target.value),placeholder:"输入记忆 ID 查询单条记忆...",className:"max-w-md",onKeyDown:e=>"Enter"===e.key&&eh()}),(0,t.jsxs)(c.Button,{onClick:eh,disabled:q||!I.appId,children:[(0,t.jsx)(i.Search,{className:"mr-1.5 h-4 w-4"}),q?"查询中...":"查询"]}),_&&(0,t.jsx)(c.Button,{variant:"outline",onClick:ep,children:"返回列表"})]}),D&&!_&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:"当前范围含通配符,仅支持只读查询,无法执行新增、查看详情、编辑或删除。"}),(0,t.jsx)(E,{units:ef,readOnly:!!_,isActionDisabled:e=>!!_||!ec(e,I),onView:e=>V({scopeKey:R,unit:e}),onEdit:e=>G({scopeKey:R,unit:e}),onDelete:e=>Y({scopeKey:R,unit:e})}),!_&&(0,t.jsxs)("div",{className:"flex items-center justify-between py-2",children:[(0,t.jsxs)("span",{className:"text-sm text-muted-foreground",children:["第 ",Z.length+1," 页"]}),(0,t.jsxs)("div",{className:"flex items-center gap-4",children:[(0,t.jsxs)(c.Button,{variant:"outline",size:"sm",onClick:()=>{P(e=>{let t=[...e.scopeKey===R?e.tokenStack:[]],s=t.pop();return{scopeKey:R,tokenStack:t,currentToken:s||void 0}})},disabled:0===Z.length,children:[(0,t.jsx)(r.ChevronLeft,{className:"mr-1 h-4 w-4"}),"上一页"]}),(0,t.jsxs)(c.Button,{variant:"outline",size:"sm",onClick:()=>{en.data?.nextToken&&P(e=>({scopeKey:R,tokenStack:[...e.scopeKey===R?e.tokenStack:[],ee??""],currentToken:en.data.nextToken}))},disabled:!en.data?.nextToken,children:["下一页",(0,t.jsx)(n.ChevronRight,{className:"ml-1 h-4 w-4"})]})]})]}),(0,t.jsx)(S,{memoryStoreName:C,scope:I,open:et,onOpenChange:e=>A({scopeKey:R,open:e}),onSuccess:()=>{en.refetch(),ep()}}),(0,t.jsx)(U,{memoryStoreName:C,scope:ed,unit:es,open:!!es&&ec(es,I),onOpenChange:e=>{e||V({scopeKey:R,unit:null})}}),(0,t.jsx)(H,{memoryStoreName:C,scope:eu,unit:ea,open:!!ea&&ec(ea,I),onOpenChange:e=>{e||G({scopeKey:R,unit:null})}}),(0,t.jsx)(m.ConfirmDialog,{open:!!er&&ec(er,I),onOpenChange:e=>{e||Y({scopeKey:R,unit:null})},title:"删除记忆单元",description:`确定要删除记忆单元 "${er?M(er):""}" 吗?此操作不可撤销。`,variant:"danger",onConfirm:ex})]})}],700144)}]);
@@ -135,4 +135,4 @@ Uppercase Upper
135
135
  Variation_Selector VS
136
136
  White_Space space
137
137
  XID_Continue XIDC
138
- XID_Start XIDS`.split(/\s/).map(e=>[nn(e),e])),nD=new Map([["s",nN(383)],[nN(383),"s"]]),nU=new Map([[nN(223),nN(7838)],[nN(107),nN(8490)],[nN(229),nN(8491)],[nN(969),nN(8486)]]),nF=new Map([nq(453),nq(456),nq(459),nq(498),...nz(8072,8079),...nz(8088,8095),...nz(8104,8111),nq(8124),nq(8140),nq(8188)]),nW=new Map([["alnum",nE`[\p{Alpha}\p{Nd}]`],["alpha",nE`\p{Alpha}`],["ascii",nE`\p{ASCII}`],["blank",nE`[\p{Zs}\t]`],["cntrl",nE`\p{Cc}`],["digit",nE`\p{Nd}`],["graph",nE`[\P{space}&&\P{Cc}&&\P{Cn}&&\P{Cs}]`],["lower",nE`\p{Lower}`],["print",nE`[[\P{space}&&\P{Cc}&&\P{Cn}&&\P{Cs}]\p{Zs}]`],["punct",nE`[\p{P}\p{S}]`],["space",nE`\p{space}`],["upper",nE`\p{Upper}`],["word",nE`[\p{Alpha}\p{M}\p{Nd}\p{Pc}]`],["xdigit",nE`\p{AHex}`]]);function nq(e){let t=nN(e);return[t.toLowerCase(),t]}function nz(e,t){return(function(e,t){let r=[];for(let n=e;n<=t;n++)r.push(n);return r})(e,t).map(e=>nq(e))}var nH=new Set(["Lower","Lowercase","Upper","Uppercase","Ll","Lowercase_Letter","Lt","Titlecase_Letter","Lu","Uppercase_Letter"]),nV={AbsenceFunction({node:e,parent:t,replaceWith:r}){let{body:n,kind:i}=e;if("repeater"===i){let e=r6();e.body[0].body.push(r8({negate:!0,body:n}),r9("Any"));let i=r6();i.body[0].body.push(r3("greedy",0,1/0,e)),r(n8(i,t),{traverse:!0})}else throw Error('Unsupported absence function "(?~|"')},Alternative:{enter({node:e,parent:t,key:r},{flagDirectivesByAlt:n}){let i=e.body.filter(e=>"flags"===e.kind);for(let e=r+1;e<t.body.length;e++)n$(n,t.body[e],[]).push(...i)},exit({node:e},{flagDirectivesByAlt:t}){if(t.get(e)?.length){let r=nY(t.get(e));if(r){let t=r6({flags:r});t.body[0].body=e.body,e.body=[n8(t,e)]}}}},Assertion({node:e,parent:t,key:r,container:n,root:i,remove:a,replaceWith:s},o){let{kind:l,negate:u}=e,{asciiWordBoundaries:c,avoidSubclass:h,supportedGNodes:p,wordIsAscii:d}=o;if("text_segment_boundary"===l)throw Error(`Unsupported text segment boundary "\\${u?"Y":"y"}"`);if("line_end"===l)s(n8(r8({body:[rJ({body:[rZ("string_end")]}),rJ({body:[r1(10)]})]}),t));else if("line_start"===l)s(n8(n2(nE`(?<=\A|\n(?!\z))`,{skipLookbehindValidation:!0}),t));else if("search_start"===l)if(p.has(e))i.flags.sticky=!0,a();else{var f;let e,i=n[r-1];if(i&&((e=["Character","CharacterClass","CharacterSet"]).includes((f=i).type)||"Quantifier"===f.type&&f.min&&e.includes(f.body.type)))s(n8(r8({negate:!0}),t));else if(h)throw Error(nE`Uses "\G" in a way that requires a subclass`);else s(n6(rZ("string_start"),t)),o.strategy="clip_search"}else if("string_end"===l||"string_start"===l);else if("string_end_newline"===l)s(n8(n2(nE`(?=\n?\z)`),t));else if("word_boundary"===l){if(!d&&!c){let e=`(?:(?<=${nB})(?!${nB})|(?<!${nB})(?=${nB}))`,r=`(?:(?<=${nB})(?=${nB})|(?<!${nB})(?!${nB}))`;s(n8(n2(u?r:e),t))}}else throw Error(`Unexpected assertion kind "${l}"`)},Backreference({node:e},{jsGroupNameMap:t}){let{ref:r}=e;"string"!=typeof r||n1(r)||(e.ref=r=nZ(r,t))},CapturingGroup({node:e},{jsGroupNameMap:t,subroutineRefMap:r}){let{name:n}=e;n&&!n1(n)&&(e.name=n=nZ(n,t)),r.set(e.number,e),n&&r.set(n,e)},CharacterClassRange({node:e,parent:t,replaceWith:r}){"intersection"===t.kind&&r(n8(r2({body:[e]}),t),{traverse:!0})},CharacterSet({node:e,parent:t,replaceWith:r},{accuracy:n,minTargetEs2024:i,digitIsAscii:a,spaceIsAscii:s,wordIsAscii:o}){let{kind:l,negate:u,value:c}=e;if(a&&("digit"===l||"digit"===c))return void r(n6(r5("digit",{negate:u}),t));if(s&&("space"===l||"space"===c))return void r(n8(n5(n2("[ -\r ]"),u),t));if(o&&("word"===l||"word"===c))return void r(n6(r5("word",{negate:u}),t));if("any"===l)r(n6(r9("Any"),t));else if("digit"===l)r(n6(r9("Nd",{negate:u}),t));else if("dot"===l);else if("text_segment"===l){if("strict"===n)throw Error(nE`Use of "\X" requires non-strict accuracy`);let e="\\p{Emoji}(?:\\p{EMod}|\\uFE0F\\u20E3?|[\\x{E0020}-\\x{E007E}]+\\x{E007F})?",a=nE`\p{RI}{2}|${e}(?:\u200D${e})*`;r(n8(n2(nE`(?>\r\n|${i?nE`\p{RGI_Emoji}`:a}|\P{M}\p{M}*)`,{skipPropertyNameValidation:!0}),t))}else if("hex"===l)r(n6(r9("AHex",{negate:u}),t));else if("newline"===l)r(n8(n2(u?"[^\n]":"(?>\r\n?|[\n\v\f…\u2028\u2029])"),t));else if("posix"===l)if(i||"graph"!==c&&"print"!==c)r(n8(n5(n2(nW.get(c)),u),t));else{if("strict"===n)throw Error(`POSIX class "${c}" requires min target ES2024 or non-strict accuracy`);let e={graph:"!-~",print:" -~"}[c];u&&(e=`\0-${nN(e.codePointAt(0)-1)}${nN(e.codePointAt(2)+1)}-\u{10FFFF}`),r(n8(n2(`[${e}]`),t))}else if("property"===l)nG.has(nn(c))||(e.key="sc");else if("space"===l)r(n6(r9("space",{negate:u}),t));else if("word"===l)r(n8(n5(n2(nB),u),t));else throw Error(`Unexpected character set kind "${l}"`)},Directive({node:e,parent:t,root:r,remove:n,replaceWith:i,removeAllPrevSiblings:a,removeAllNextSiblings:s}){let{kind:o,flags:l}=e;if("flags"===o)if(l.enable||l.disable){let e=r6({flags:l});e.body[0].body=s(),i(n8(e,t),{traverse:!0})}else n();else if("keep"===o){let e=r.body[0],n=1===r.body.length&&rQ(e,{type:"Group"})&&1===e.body[0].body.length?e.body[0]:r;if(t.parent!==n||n.body.length>1)throw Error(nE`Uses "\K" in a way that's unsupported`);let s=r8({behind:!0});s.body[0].body=a(),i(n8(s,t))}else throw Error(`Unexpected directive kind "${o}"`)},Flags({node:e,parent:t}){if(e.posixIsAscii)throw Error('Unsupported flag "P"');if("word"===e.textSegmentMode)throw Error('Unsupported flag "y{w}"');["digitIsAscii","extended","posixIsAscii","spaceIsAscii","wordIsAscii","textSegmentMode"].forEach(t=>delete e[t]),Object.assign(e,{global:!1,hasIndices:!1,multiline:!1,sticky:e.sticky??!1}),t.options={disable:{x:!0,n:!0},force:{v:!0}}},Group({node:e}){if(!e.flags)return;let{enable:t,disable:r}=e.flags;t?.extended&&delete t.extended,r?.extended&&delete r.extended,t?.dotAll&&r?.dotAll&&delete t.dotAll,t?.ignoreCase&&r?.ignoreCase&&delete t.ignoreCase,t&&!Object.keys(t).length&&delete e.flags.enable,r&&!Object.keys(r).length&&delete e.flags.disable,e.flags.enable||e.flags.disable||delete e.flags},LookaroundAssertion({node:e},t){let{kind:r}=e;"lookbehind"===r&&(t.passedLookbehind=!0)},NamedCallout({node:e,parent:t,replaceWith:r}){let{kind:n}=e;if("fail"===n)r(n8(r8({negate:!0}),t));else throw Error(`Unsupported named callout "(*${n.toUpperCase()}"`)},Quantifier({node:e}){if("Quantifier"===e.body.type){let t=r6();t.body[0].body.push(e.body),e.body=n8(t,e)}},Regex:{enter({node:e},{supportedGNodes:t}){let r=[],n=!1,i=!1;for(let t of e.body)if(1===t.body.length&&"search_start"===t.body[0].kind)t.body.pop();else{let e=function e(t){let r=t.find(e=>"search_start"===e.kind||function(e,t){let r={negate:null,...t};return"LookaroundAssertion"===e.type&&(null===r.negate||e.negate===r.negate)&&1===e.body.length&&rQ(e.body[0],{type:"Assertion",kind:"search_start"})}(e,{negate:!1})||!function({type:e}){return"Assertion"===e||"Directive"===e||"LookaroundAssertion"===e}(e));if(!r)return null;if("search_start"===r.kind)return r;if("LookaroundAssertion"===r.type)return r.body[0].body[0];if("CapturingGroup"===r.type||"Group"===r.type){let t=[];for(let n of r.body){let r=e(n.body);if(!r)return null;Array.isArray(r)?t.push(...r):t.push(r)}return t}return null}(t.body);e?(n=!0,Array.isArray(e)?r.push(...e):r.push(e)):i=!0}n&&!i&&r.forEach(e=>t.add(e))},exit(e,{accuracy:t,passedLookbehind:r,strategy:n}){if("strict"===t&&r&&n)throw Error(nE`Uses "\G" in a way that requires non-strict accuracy`)}},Subroutine({node:e},{jsGroupNameMap:t}){let{ref:r}=e;"string"!=typeof r||n1(r)||(e.ref=r=nZ(r,t))}},nQ={Backreference({node:e},{multiplexCapturesToLeftByRef:t,reffedNodesByReferencer:r}){let{orphan:n,ref:i}=e;n||r.set(e,[...t.get(i).map(({node:e})=>e)])},CapturingGroup:{enter({node:e,parent:t,replaceWith:r,skip:n},{groupOriginByCopy:i,groupsByName:a,multiplexCapturesToLeftByRef:s,openRefs:o,reffedNodesByReferencer:l}){let u=i.get(e);if(u&&o.has(e.number)){let n=n6(nJ(e.number),t);l.set(n,o.get(e.number)),r(n);return}o.set(e.number,e),s.set(e.number,[]),e.name&&n$(s,e.name,[]);let c=s.get(e.name??e.number);for(let t=0;t<c.length;t++){let r=c[t];if(u===r.node||u&&u===r.origin||e===r.origin){c.splice(t,1);break}}if(s.get(e.number).push({node:e,origin:u}),e.name&&s.get(e.name).push({node:e,origin:u}),e.name){let t=n$(a,e.name,new Map),r=!1;if(u)r=!0;else for(let e of t.values())if(!e.hasDuplicateNameToRemove){r=!0;break}a.get(e.name).set(e,{node:e,hasDuplicateNameToRemove:r})}},exit({node:e},{openRefs:t}){t.get(e.number)===e&&t.delete(e.number)}},Group:{enter({node:e},t){t.prevFlags=t.currentFlags,e.flags&&(t.currentFlags=nj(t.currentFlags,e.flags))},exit(e,t){t.currentFlags=t.prevFlags}},Subroutine({node:e,parent:t,replaceWith:r},n){let{isRecursive:i,ref:a}=e;if(i){let r=t;for(;(r=r.parent)&&("CapturingGroup"!==r.type||r.name!==a&&r.number!==a););n.reffedNodesByReferencer.set(e,r);return}let s=n.subroutineRefMap.get(a),o=0===a,l=o?nJ(0):function e(t,r,n,i){let a=Array.isArray(t)?[]:{};for(let[s,o]of Object.entries(t))"parent"===s?a.parent=Array.isArray(n)?i:n:o&&"object"==typeof o?a[s]=e(o,r,a,n):("type"===s&&"CapturingGroup"===o&&r.set(a,r.get(t)??t),a[s]=o);return a}(s,n.groupOriginByCopy,null),u=l;if(!o){var c,h;let e=nY(function(e,t){let r=[];for(;e=e.parent;)(!t||t(e))&&r.push(e);return r}(s,e=>"Group"===e.type&&!!e.flags)),t=e?nj(n.globalFlags,e):n.globalFlags;c=t,h=n.currentFlags,(c.dotAll!==h.dotAll||c.ignoreCase!==h.ignoreCase)&&(u=r6({flags:function({dotAll:e,ignoreCase:t}){let r={};return(e||t)&&(r.enable={},e&&(r.enable.dotAll=!0),t&&(r.enable.ignoreCase=!0)),e&&t||(r.disable={},e||(r.disable.dotAll=!0),t||(r.disable.ignoreCase=!0)),r}(t)})).body[0].body.push(l)}r(n8(u,t),{traverse:!o})}},nK={Backreference({node:e,parent:t,replaceWith:r},n){if(e.orphan){n.highestOrphanBackref=Math.max(n.highestOrphanBackref,e.ref);return}let i=n.reffedNodesByReferencer.get(e).filter(t=>(function(e,t){let r=t;do{if("Regex"===r.type)return!1;if("Alternative"===r.type)continue;if(r===e)return!1;for(let t of n0(r.parent)){if(t===r)break;if(t===e||function e(t,r){for(let n of n0(t)??[])if(n===r||e(n,r))return!0;return!1}(t,e))return!0}}while(r=r.parent)throw Error("Unexpected path")})(t,e));i.length?i.length>1?r(n8(r6({atomic:!0,body:i.reverse().map(e=>rJ({body:[rY(e.number)]}))}),t)):e.ref=i[0].number:r(n8(r8({negate:!0}),t))},CapturingGroup({node:e},t){e.number=++t.numCapturesToLeft,e.name&&t.groupsByName.get(e.name).get(e).hasDuplicateNameToRemove&&delete e.name},Regex:{exit({node:e},t){let r=Math.max(t.highestOrphanBackref-t.numCapturesToLeft,0);for(let t=0;t<r;t++){let t=r0();e.body.at(-1).body.push(t)}}},Subroutine({node:e},t){e.isRecursive&&0!==e.ref&&(e.ref=t.reffedNodesByReferencer.get(e).number)}};function nX(e){ns(e,{"*"({node:e,parent:t}){e.parent=t}})}function nJ(e){let t=r4(e);return t.isRecursive=!0,t}function nZ(e,t){if(t.has(e))return t.get(e);let r=`$${t.size}_${e.replace(/^[^$_\p{IDS}]|[^$\u200C\u200D\p{IDC}]/ug,"_")}`;return t.set(e,r),r}function nY(e){let t=["dotAll","ignoreCase"],r={enable:{},disable:{}};return(e.forEach(({flags:e})=>{t.forEach(t=>{e.enable?.[t]&&(delete r.disable[t],r.enable[t]=!0),e.disable?.[t]&&(r.disable[t]=!0)})}),Object.keys(r.enable).length||delete r.enable,Object.keys(r.disable).length||delete r.disable,r.enable||r.disable)?r:null}function n0(e){if(!e)throw Error("Node expected");let{body:t}=e;return Array.isArray(t)?t:t?[t]:null}function n1(e){return/^[$_\p{IDS}][$\u200C\u200D\p{IDC}]*$/u.test(e)}function n2(e,t){let r=rX(e,{...t,unicodePropertyMap:nG}).body;return r.length>1||r[0].body.length>1?r6({body:r}):r[0].body[0]}function n5(e,t){return e.negate=t,e}function n6(e,t){return e.parent=t,e}function n8(e,t){return nX(e),e.parent=t,e}var n3={"*":{enter({node:e},t){if(io(e)){let r=t.getCurrentModI();t.pushModI(e.flags?nj({ignoreCase:r},e.flags).ignoreCase:r)}},exit({node:e},t){io(e)&&t.popModI()}},Backreference(e,t){t.setHasCasedChar()},Character({node:e},t){ii(nN(e.value))&&t.setHasCasedChar()},CharacterClassRange({node:e,skip:t},r){t(),ia(e,{firstOnly:!0}).length&&r.setHasCasedChar()},CharacterSet({node:e},t){"property"===e.kind&&nH.has(e.value)&&t.setHasCasedChar()}},n4={Alternative:({body:e},t,r)=>e.map(r).join(""),Assertion({kind:e,negate:t}){if("string_end"===e)return"$";if("string_start"===e)return"^";if("word_boundary"===e)return t?nE`\B`:nE`\b`;throw Error(`Unexpected assertion kind "${e}"`)},Backreference({ref:e},t){if("number"!=typeof e)throw Error("Unexpected named backref in transformed AST");if(!t.useFlagMods&&"strict"===t.accuracy&&t.currentFlags.ignoreCase&&!t.captureMap.get(e).ignoreCase)throw Error("Use of case-insensitive backref to case-sensitive group requires target ES2025 or non-strict accuracy");return"\\"+e},CapturingGroup(e,t,r){let{body:n,name:i,number:a}=e,s={ignoreCase:t.currentFlags.ignoreCase},o=t.originMap.get(e);return o&&(s.hidden=!0,a>o.number&&(s.transferTo=o.number)),t.captureMap.set(a,s),`(${i?`?<${i}>`:""}${n.map(r).join("|")})`},Character({value:e},t){let r=nN(e),n=is(e,{escDigit:"Backreference"===t.lastNode.type,inCharClass:t.inCharClass,useFlagV:t.useFlagV});if(n!==r)return n;if(t.useAppliedIgnoreCase&&t.currentFlags.ignoreCase&&ii(r)){let e=nO(r);return t.inCharClass?e.join(""):e.length>1?`[${e.join("")}]`:e[0]}return r},CharacterClass(e,t,r){let{kind:n,negate:i,parent:a}=e,{body:s}=e;if("intersection"===n&&!t.useFlagV)throw Error("Use of character class intersection requires min target ES2024");nI.bugFlagVLiteralHyphenIsRange&&t.useFlagV&&s.some(il)&&(s=[r1(45),...s.filter(e=>!il(e))]);let o=()=>`[${i?"^":""}${s.map(r).join("intersection"===n?"&&":"")}]`;if(!t.inCharClass){if((!t.useFlagV||nI.bugNestedClassIgnoresNegation)&&!i){let t=s.filter(e=>"CharacterClass"===e.type&&"union"===e.kind&&e.negate);if(t.length){let n=r6(),i=n.body[0];return n.parent=a,i.parent=n,e.body=s=s.filter(e=>!t.includes(e)),s.length?(e.parent=i,i.body.push(e)):n.body.pop(),t.forEach(e=>{let t=rJ({body:[e]});e.parent=t,t.parent=n,n.body.push(t)}),r(n)}}t.inCharClass=!0;let n=o();return t.inCharClass=!1,n}let l=s[0];if("union"===n&&!i&&l&&((!t.useFlagV||!t.verbose)&&"union"===a.kind&&!(nI.bugFlagVLiteralHyphenIsRange&&t.useFlagV)||!t.verbose&&"intersection"===a.kind&&1===s.length&&"CharacterClassRange"!==l.type))return s.map(r).join("");if(!t.useFlagV&&"CharacterClass"===a.type)throw Error("Uses nested character class in a way that requires min target ES2024");return o()},CharacterClassRange(e,t){let r=e.min.value,n=e.max.value,i={escDigit:!1,inCharClass:!0,useFlagV:t.useFlagV},a=is(r,i),s=is(n,i),o=new Set;return t.useAppliedIgnoreCase&&t.currentFlags.ignoreCase&&(function(e){let t=e.map(e=>e.codePointAt(0)).sort((e,t)=>e-t),r=[],n=null;for(let e=0;e<t.length;e++)t[e+1]===t[e]+1?n??=t[e]:null===n?r.push(t[e]):(r.push([n,t[e]]),n=null);return r})(ia(e)).forEach(e=>{o.add(Array.isArray(e)?`${is(e[0],i)}-${is(e[1],i)}`:is(e,i))}),`${a}-${s}${[...o].join("")}`},CharacterSet({kind:e,negate:t,value:r,key:n},i){if("dot"===e)return i.currentFlags.dotAll?i.appliedGlobalFlags.dotAll||i.useFlagMods?".":"[^]":nE`[^\n]`;if("digit"===e)return t?nE`\D`:nE`\d`;if("property"===e){if(i.useAppliedIgnoreCase&&i.currentFlags.ignoreCase&&nH.has(r))throw Error(`Unicode property "${r}" can't be case-insensitive when other chars have specific case`);return`${t?nE`\P`:nE`\p`}{${n?`${n}=`:""}${r}}`}if("word"===e)return t?nE`\W`:nE`\w`;throw Error(`Unexpected character set kind "${e}"`)},Flags:(e,t)=>(t.appliedGlobalFlags.ignoreCase?"i":"")+(e.dotAll?"s":"")+(e.sticky?"y":""),Group({atomic:e,body:t,flags:r,parent:n},i,a){let s=i.currentFlags;r&&(i.currentFlags=nj(s,r));let o=t.map(a).join("|"),l=i.verbose||1!==t.length||"Quantifier"===n.type||e||i.useFlagMods&&r?`(?${function(e,t,r){if(e)return">";let n="";if(t&&r){let{enable:e,disable:r}=t;n=(e?.ignoreCase?"i":"")+(e?.dotAll?"s":"")+(r?"-":"")+(r?.ignoreCase?"i":"")+(r?.dotAll?"s":"")}return`${n}:`}(e,r,i.useFlagMods)}${o})`:o;return i.currentFlags=s,l},LookaroundAssertion({body:e,kind:t,negate:r},n,i){let a=`${"lookahead"===t?"":"<"}${r?"!":"="}`;return`(?${a}${e.map(i).join("|")})`},Quantifier:(e,t,r)=>r(e.body)+function({kind:e,max:t,min:r}){return(r||1!==t?r||t!==1/0?1===r&&t===1/0?"+":r===t?`{${r}}`:`{${r},${t===1/0?"":t}}`:"*":"?")+({greedy:"",lazy:"?",possessive:"+"})[e]}(e),Subroutine({isRecursive:e,ref:t},r){if(!e)throw Error("Unexpected non-recursive subroutine in transformed AST");let n=r.recursionLimit;return 0===t?`(?R=${n})`:nE`\g<${t}&R=${n}>`}},n9=new Set(["$","(",")","*","+",".","?","[","\\","]","^","{","|","}"]),n7=new Set(["-","\\","]","^","["]),ie=new Set(["(",")","-","/","[","\\","]","^","{","|","}","!","#","$","%","&","*","+",",",".",":",";","<","=",">","?","@","`","~"]),it=new Map([[9,nE`\t`],[10,nE`\n`],[11,nE`\v`],[12,nE`\f`],[13,nE`\r`],[8232,nE`\u2028`],[8233,nE`\u2029`],[65279,nE`\uFEFF`]]),ir=/^\p{Cased}$/u;function ii(e){return ir.test(e)}function ia(e,t){let r=!!t?.firstOnly,n=e.min.value,i=e.max.value,a=[];if(n<65&&(65535===i||i>=131071)||65536===n&&i>=131071)return a;for(let e=n;e<=i;e++){let t=nN(e);if(!ii(t))continue;let s=nO(t).filter(e=>{let t=e.codePointAt(0);return t<n||t>i});if(s.length&&(a.push(...s),r))break}return a}function is(e,{escDigit:t,inCharClass:r,useFlagV:n}){var i;if(it.has(e))return it.get(e);if(e<32||e>126&&e<160||e>262143||t&&(i=e)>47&&i<58)return e>255?`\\u{${e.toString(16).toUpperCase()}}`:`\\x${e.toString(16).toUpperCase().padStart(2,"0")}`;let a=nN(e);return((r?n?ie:n7:n9).has(a)?"\\":"")+a}function io({type:e}){return"CapturingGroup"===e||"Group"===e||"LookaroundAssertion"===e}function il({type:e,value:t}){return"Character"===e&&45===t}var iu=class e extends RegExp{#e=new Map;#t=null;#r;#n=null;#i=null;rawOptions={};get source(){return this.#r||"(?:)"}constructor(t,r,n){const i=!!n?.lazyCompile;if(t instanceof RegExp){if(n)throw Error("Cannot provide options when copying a regexp");super(t,r),this.#r=t.source,t instanceof e&&(this.#e=t.#e,this.#n=t.#n,this.#i=t.#i,this.rawOptions=t.rawOptions)}else{const e={hiddenCaptures:[],strategy:null,transfers:[],...n};super(i?"":t,r),this.#r=t,this.#e=function(e,t){let r=new Map;for(let t of e)r.set(t,{hidden:!0});for(let[e,n]of t)for(let t of n)n$(r,t,{}).transferTo=e;return r}(e.hiddenCaptures,e.transfers),this.#i=e.strategy,this.rawOptions=n??{}}i||(this.#t=this)}exec(t){if(!this.#t){let{lazyCompile:t,...r}=this.rawOptions;this.#t=new e(this.#r,this.flags,r)}let r=this.global||this.sticky,n=this.lastIndex;if("clip_search"===this.#i&&r&&n){this.lastIndex=0;let e=this.#a(t.slice(n));return e&&(function(e,t,r,n){if(e.index+=t,e.input=r,n){let r=e.indices;for(let e=0;e<r.length;e++){let n=r[e];n&&(r[e]=[n[0]+t,n[1]+t])}let n=r.groups;n&&Object.keys(n).forEach(e=>{let r=n[e];r&&(n[e]=[r[0]+t,r[1]+t])})}}(e,n,t,this.hasIndices),this.lastIndex+=n),e}return this.#a(t)}#a(e){let t;this.#t.lastIndex=this.lastIndex;let r=super.exec.call(this.#t,e);if(this.lastIndex=this.#t.lastIndex,!r||!this.#e.size)return r;let n=[...r];r.length=1,this.hasIndices&&(t=[...r.indices],r.indices.length=1);let i=[0];for(let e=1;e<n.length;e++){let{hidden:a,transferTo:s}=this.#e.get(e)??{};if(a?i.push(null):(i.push(r.length),r.push(n[e]),this.hasIndices&&r.indices.push(t[e])),s&&void 0!==n[e]){let a=i[s];if(!a)throw Error(`Invalid capture transfer to "${a}"`);if(r[a]=n[e],this.hasIndices&&(r.indices[a]=t[e]),r.groups){this.#n||(this.#n=function(e){let t,r=/(?<capture>\((?:\?<(?![=!])(?<name>[^>]+)>|(?!\?)))|\\?./gsu,n=new Map,i=0,a=0;for(;t=r.exec(e);){let{0:e,groups:{capture:r,name:s}}=t;"["===e?i++:i?"]"===e&&i--:r&&(a++,s&&n.set(a,s))}return n}(this.source));let i=this.#n.get(s);i&&(r.groups[i]=n[e],this.hasIndices&&(r.indices.groups[i]=t[e]))}}}return r}};class ic{constructor(e,t={}){this.patterns=e,this.options=t;const{forgiving:r=!1,cache:n,regexConstructor:i}=t;if(!i)throw Error("Option `regexConstructor` is not provided");this.regexps=e.map(e=>{if("string"!=typeof e)return e;let t=n?.get(e);if(t){if(t instanceof RegExp)return t;if(r)return null;throw t}try{let t=i(e);return n?.set(e,t),t}catch(t){if(n?.set(e,t),r)return null;throw t}})}regexps;findNextMatchSync(e,t,r){let n="string"==typeof e?e:e.content,i=[];function a(e,t,r=0){return{index:e,captureIndices:t.indices.map(e=>null==e?{start:0xffffffff,end:0xffffffff,length:0}:{start:e[0]+r,end:e[1]+r,length:e[1]-e[0]})}}for(let e=0;e<this.regexps.length;e++){let r=this.regexps[e];if(r)try{r.lastIndex=t;let s=r.exec(n);if(!s)continue;if(s.index===t)return a(e,s,0);i.push([e,s,0])}catch(e){if(this.options.forgiving)continue;throw e}}if(i.length){let e=Math.min(...i.map(e=>e[1].index));for(let[t,r,n]of i)if(r.index===e)return a(t,r,n)}return null}}var ih=function(e={}){let t=Object.assign({target:"auto",cache:new Map},e);return t.regexConstructor||=e=>{let r;return(r=function(e,t){var r;let n,i,a,s,o=nR(t),l=(r=rX(e,{flags:o.flags,normalizeUnknownPropertyNames:!0,rules:{captureGroup:o.rules.captureGroup,singleline:o.rules.singleline},skipBackrefValidation:o.rules.allowOrphanBackrefs,unicodePropertyMap:nG}),n={accuracy:"default",asciiWordBoundaries:!1,avoidSubclass:!1,bestEffortTarget:"ES2025",...{accuracy:o.accuracy,asciiWordBoundaries:o.rules.asciiWordBoundaries,avoidSubclass:o.avoidSubclass,bestEffortTarget:o.target}},nX(r),i={accuracy:n.accuracy,asciiWordBoundaries:n.asciiWordBoundaries,avoidSubclass:n.avoidSubclass,flagDirectivesByAlt:new Map,jsGroupNameMap:new Map,minTargetEs2024:nT[n.bestEffortTarget]>=nT.ES2024,passedLookbehind:!1,strategy:null,subroutineRefMap:new Map,supportedGNodes:new Set,digitIsAscii:r.flags.digitIsAscii,spaceIsAscii:r.flags.spaceIsAscii,wordIsAscii:r.flags.wordIsAscii},ns(r,nV,i),s={currentFlags:a={dotAll:r.flags.dotAll,ignoreCase:r.flags.ignoreCase},prevFlags:null,globalFlags:a,groupOriginByCopy:new Map,groupsByName:new Map,multiplexCapturesToLeftByRef:new Map,openRefs:new Map,reffedNodesByReferencer:new Map,subroutineRefMap:i.subroutineRefMap},ns(r,nQ,s),ns(r,nK,{groupsByName:s.groupsByName,highestOrphanBackref:0,numCapturesToLeft:0,reffedNodesByReferencer:s.reffedNodesByReferencer}),r._originMap=s.groupOriginByCopy,r._strategy=i.strategy,r),u=function(e,t){let r=nR(t),n=nT[r.target]>=nT.ES2024,i=nT[r.target]>=nT.ES2025,a=r.rules.recursionLimit;if(!Number.isInteger(a)||a<2||a>20)throw Error("Invalid recursionLimit; use 2-20");let s=null,o=null;if(!i){let t=[e.flags.ignoreCase];ns(e,n3,{getCurrentModI:()=>t.at(-1),popModI(){t.pop()},pushModI(e){t.push(e)},setHasCasedChar(){t.at(-1)?s=!0:o=!0}})}let l={dotAll:e.flags.dotAll,ignoreCase:!!((e.flags.ignoreCase||s)&&!o)},u=e,c={accuracy:r.accuracy,appliedGlobalFlags:l,captureMap:new Map,currentFlags:{dotAll:e.flags.dotAll,ignoreCase:e.flags.ignoreCase},inCharClass:!1,lastNode:u,originMap:e._originMap,recursionLimit:a,useAppliedIgnoreCase:!!(!i&&s&&o),useFlagMods:i,useFlagV:n,verbose:r.verbose};function h(e){return c.lastNode=u,u=e,(function(e,t){if(null==e)throw Error(t??"Value expected");return e})(n4[e.type],`Unexpected node type "${e.type}"`)(e,c,h)}let p={pattern:e.body.map(h).join("|"),flags:h(e.flags),options:{...e.options}};return n||(delete p.options.force.v,p.options.disable.v=!0,p.options.unicodeSetsPlugin=null),p._captureTransfers=new Map,p._hiddenCaptures=[],c.captureMap.forEach((e,t)=>{e.hidden&&p._hiddenCaptures.push(t),e.transferTo&&n$(p._captureTransfers,e.transferTo,[]).push(t)}),p}(l,o),c=function(e,t){let r,{hiddenCaptures:n,mode:i}={hiddenCaptures:[],mode:"plugin",...t},a=t?.captureTransfers??new Map;if(!RegExp(nb,"su").test(e))return{pattern:e,captureTransfers:a,hiddenCaptures:n};if("plugin"===i&&np(e,ng`\(\?\(DEFINE\)`,nc.DEFAULT))throw Error("DEFINE groups cannot be used with recursion");let s=[],o=np(e,ng`\\[1-9]`,nc.DEFAULT),l=new Map,u=[],c=!1,h=0,p=0;for(nA.lastIndex=0;r=nA.exec(e);){let{0:t,groups:{captureName:d,rDepth:f,gRNameOrNum:m,gRDepth:g}}=r;if("["===t)h++;else if(h)"]"===t&&h--;else if(f){if(n_(f),c)throw Error(nv);if(o)throw Error(`${"external"===i?"Backrefs":"Numbered backrefs"} cannot be used with global recursion`);let t=e.slice(0,r.index),l=e.slice(nA.lastIndex);if(np(l,nb,nc.DEFAULT))throw Error(nv);let u=f-1;e=nk(t,l,u,!1,n,s,p),a=nS(a,t,u,s.length,0,p);break}else if(m){n_(g);let h=!1;for(let e of u)if(e.name===m||e.num===+m){if(h=!0,e.hasRecursedWithin)throw Error(nv);break}if(!h)throw Error(ng`Recursive \g cannot be used outside the referenced group "${"external"===i?m:ng`\g<${m}&R=${g}>`}"`);let d=l.get(m),f=function(e,t){let r,n=/\\?./gsu;n.lastIndex=t;let i=e.length,a=0,s=1;for(;r=n.exec(e);){let[e]=r;if("["===e)a++;else if(a)"]"===e&&a--;else if("("===e)s++;else if(")"===e&&!--s){i=r.index;break}}return e.slice(t,i)}(e,d);if(o&&np(f,ng`${nx}|\((?!\?)`,nc.DEFAULT))throw Error(`${"external"===i?"Backrefs":"Numbered backrefs"} cannot be used with recursion of capturing groups`);let y=e.slice(d,r.index),b=f.slice(y.length+t.length),x=s.length,w=g-1,A=nk(y,b,w,!0,n,s,p);a=nS(a,y,w,s.length-x,x,p);let v=e.slice(0,d),_=e.slice(d+f.length);e=`${v}${A}${_}`,nA.lastIndex+=A.length-t.length-y.length-b.length,u.forEach(e=>e.hasRecursedWithin=!0),c=!0}else if(d)p++,l.set(String(p),nA.lastIndex),l.set(d,nA.lastIndex),u.push({num:p,name:d});else if("("===t[0]){let e="("===t;e&&(p++,l.set(String(p),nA.lastIndex)),u.push(e?{num:p}:{})}else")"===t&&u.pop()}return n.push(...s),{pattern:e,captureTransfers:a,hiddenCaptures:n}}(u.pattern,{captureTransfers:u._captureTransfers,hiddenCaptures:u._hiddenCaptures,mode:"external"}),h=function(e,t){let r,n=t?.hiddenCaptures??[],i=t?.captureTransfers??new Map;if(!/\(\?>/.test(e))return{pattern:e,captureTransfers:i,hiddenCaptures:n};let a="(?:(?=(",s=[0],o=[],l=0,u=0,c=NaN;do{let t;r=!1;let h=0,p=0,d=!1;for(nd.lastIndex=Number.isNaN(c)?0:c+a.length;t=nd.exec(e);){let{0:f,index:m,groups:{capturingStart:g,noncapturingStart:y}}=t;if("["===f)h++;else if(h)"]"===f&&h--;else if("(?>"!==f||d){if(d&&y)p++;else if(g)d?p++:(l++,s.push(l+u));else if(")"===f&&d){if(!p){let t=l+ ++u;e=`${e.slice(0,c)}${a}${e.slice(c+3,m)}))<$$${t}>)${e.slice(m+1)}`,r=!0,o.push(t);for(let e=0;e<n.length;e++)n[e]>=t&&n[e]++;if(i.size){let e=new Map;i.forEach((r,n)=>{e.set(n>=t?n+1:n,r.map(e=>e>=t?e+1:e))}),i=e}break}p--}}else c=m,d=!0}}while(r)return n.push(...o),{pattern:e=nh(e,String.raw`\\(?<backrefNum>[1-9]\d*)|<\$\$(?<wrappedBackrefNum>\d+)>`,({0:e,groups:{backrefNum:t,wrappedBackrefNum:r}})=>{if(t){let r=+t;if(r>s.length-1)throw Error(`Backref "${e}" greater than number of captures`);return`\\${s[r]}`}return`\\${r}`},nc.DEFAULT),captureTransfers:i,hiddenCaptures:n}}(function(e){let t;if(!RegExp(`${nf}\\+`).test(e))return{pattern:e};let r=[],n=null,i=null,a="",s=0;for(nm.lastIndex=0;t=nm.exec(e);){let{0:u,index:c,groups:{qBase:h,qMod:p,invalidQ:d}}=t;if("["===u)s||(i=c),s++;else if("]"===u)s?s--:i=null;else if(!s)if("+"===p&&a&&!a.startsWith("(")){if(d)throw Error(`Invalid quantifier "${u}"`);let t=-1;if(/^\{\d+\}$/.test(h)){var o,l;o=e,l=c+h.length,e=o.slice(0,l)+""+o.slice(l+p.length)}else{if(")"===a||"]"===a){let t=")"===a?n:i;if(null===t)throw Error(`Invalid unmatched "${a}"`);e=`${e.slice(0,t)}(?>${e.slice(t,c)}${h})${e.slice(c+u.length)}`}else e=`${e.slice(0,c-a.length)}(?>${a}${h})${e.slice(c+u.length)}`;t+=4}nm.lastIndex+=t}else"("===u[0]?r.push(c):")"===u&&(n=r.length?r.pop():null);a=u}return{pattern:e}}(c.pattern).pattern,{captureTransfers:c.captureTransfers,hiddenCaptures:c.hiddenCaptures}),p={pattern:h.pattern,flags:`${o.hasIndices?"d":""}${o.global?"g":""}${u.flags}${u.options.disable.v?"u":"v"}`};if(o.avoidSubclass){if(o.lazyCompileLength!==1/0)throw Error("Lazy compilation requires subclass")}else{let e=h.hiddenCaptures.sort((e,t)=>e-t),t=Array.from(h.captureTransfers),r=l._strategy,n=p.pattern.length>=o.lazyCompileLength;(e.length||t.length||r||n)&&(p.options={...e.length&&{hiddenCaptures:e},...t.length&&{transfers:t},...r&&{strategy:r},...n&&{lazyCompile:n}})}return p}(e,{global:!0,hasIndices:!0,lazyCompileLength:3e3,rules:{allowOrphanBackrefs:!0,asciiWordBoundaries:!0,captureGroup:!0,recursionLimit:5,singleline:!0},...{target:t.target}})).options?new iu(r.pattern,r.flags,r.options):new RegExp(r.pattern,r.flags)},{createScanner:e=>new ic(e,t),createString:e=>({content:e})}}({forgiving:!0}),ip=Object.fromEntries(R.flatMap(e=>{var t;return(null!=(t=e.aliases)?t:[]).map(t=>[t,e.id])})),id=new Set(Object.keys(O)),im=e=>{let t=e.trim().toLowerCase();return ip[t]||(id.has(t),t)},ig=new Map,iy=new Map,ib=new Map,ix=e=>{var t;return"string"==typeof e?e:null!=(t=e.name)?t:"custom"},iw=function(e={}){var t;let r=null!=(t=e.themes)?t:["github-light","github-dark"];return{name:"shiki",type:"code-highlighter",supportsLanguage(e){let t=im(e);return id.has(t)},getSupportedLanguages:()=>Array.from(id),getThemes:()=>r,highlight({code:e,language:t,themes:r},n){let i,a,s=im(t),o=[ix(r[0]),ix(r[1])],l=(i=e.slice(0,100),a=e.length>100?e.slice(-100):"",`${s}:${o[0]}:${o[1]}:${e.length}:${i}:${a}`);return iy.has(l)?iy.get(l):(n&&(ib.has(l)||ib.set(l,new Set),ib.get(l).add(n)),((e,t)=>{let r=`${e}-${ix(t[0])}-${ix(t[1])}`;if(ig.has(r))return ig.get(r);let n=rS({themes:t,langs:[e],engine:ih});return ig.set(r,n),n})(id.has(s)?s:"text",r).then(t=>{let r=t.getLoadedLanguages().includes(s)?s:"text",n=t.codeToTokens(e,{lang:r,themes:{light:o[0],dark:o[1]}});iy.set(l,n);let i=ib.get(l);if(i){for(let e of i)e(n);ib.delete(l)}}).catch(e=>{console.error("[Streamdown Code] Failed to highlight code:",e),ib.delete(l)}),null)}}}(),iA=e.i(176116),iv=e.i(506703);function i_({className:e,children:t,node:r,...n}){let i=(0,c.useRef)(null),[a,s]=(0,c.useState)(!1),o=function(e){for(let t of c.Children.toArray(e)){if(!(0,c.isValidElement)(t))continue;let e=t.props;if("string"!=typeof e?.className)continue;let r=e.className.match(/language-([a-z0-9+#-]+)/i);if(r)return r[1]}}(t)??"",l=(0,c.useCallback)(async()=>{let e=i.current?.innerText??"";if(e)try{await navigator.clipboard.writeText(e),s(!0),window.setTimeout(()=>s(!1),2e3)}catch{}},[]);return(0,u.jsxs)("div",{className:"group relative my-2 overflow-hidden rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--muted)/0.5)]",children:[(0,u.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,u.jsx)("span",{className:"font-mono text-[11px] uppercase tracking-wide text-muted-foreground",children:o||"text"}),(0,u.jsx)("button",{type:"button",onClick:l,className:(0,b.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",a&&"opacity-100 text-primary"),"aria-label":"复制代码",children:a?(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(iv.Check,{className:"h-3 w-3"}),"已复制"]}):(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(k.Copy,{className:"h-3 w-3"}),"复制"]})})]}),(0,u.jsx)("pre",{ref:i,className:(0,b.cn)("overflow-x-auto p-3 text-xs leading-relaxed","[&_code]:bg-transparent [&_code]:p-0",e),...n,children:t})]})}let ik=["https://","http://","mailto:","#","/"],iC=["https://","data:image/"],iS=(e,t)=>{let r=e.toLowerCase();return("src"===t?iC:ik).some(e=>r.startsWith(e))?e:""};function iN({children:e,className:t}){return(0,u.jsx)("div",{className:(0,b.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))]",t),children:(0,u.jsx)(iA.C,{parseIncompleteMarkdown:!0,skipHtml:!0,urlTransform:iS,plugins:{code:iw},components:{pre:i_},controls:{code:!1,table:!1,mermaid:!1},children:e})})}function iE(e){try{let t=document.createElement("textarea");t.value=e,t.style.position="fixed",t.style.opacity="0",document.body.appendChild(t),t.select(),document.execCommand("copy"),document.body.removeChild(t),I.toast.success("已复制")}catch{I.toast.error("复制失败")}}let iI=(0,c.memo)(function({message:e,busy:t,onDelete:r,onResend:n,onRegenerate:i,onEditSave:a}){return"user"===e.role?(0,u.jsx)(iP,{message:e,busy:t,onDelete:r,onResend:n,onEditSave:a}):(0,u.jsx)(iR,{message:e,busy:t,onDelete:r,onRegenerate:i})},(e,t)=>e.message===t.message&&e.busy===t.busy);function iL({align:e,disabled:t,onCopy:r,onDelete:n,onEdit:i,onResend:a,onRegenerate:s}){return(0,u.jsxs)("div",{className:(0,b.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"===e?"justify-end":"justify-start"),children:[(0,u.jsx)(ij,{title:"复制",disabled:t,onClick:r,children:(0,u.jsx)(k.Copy,{className:"h-3.5 w-3.5"})}),i&&(0,u.jsx)(ij,{title:"编辑",disabled:t,onClick:i,children:(0,u.jsx)(C.Pencil,{className:"h-3.5 w-3.5"})}),a&&(0,u.jsx)(ij,{title:"重新发送",disabled:t,onClick:a,children:(0,u.jsx)(d,{className:"h-3.5 w-3.5"})}),s&&(0,u.jsx)(ij,{title:"重新生成",disabled:t,onClick:s,children:(0,u.jsx)(S.RotateCcw,{className:"h-3.5 w-3.5"})}),(0,u.jsx)(ij,{title:"删除",disabled:t,onClick:n,destructive:!0,children:(0,u.jsx)(E.Trash2,{className:"h-3.5 w-3.5"})})]})}function ij({title:e,disabled:t,destructive:r,onClick:n,children:i}){return(0,u.jsx)(m.Button,{type:"button",variant:"ghost",size:"icon",title:e,"aria-label":e,disabled:t,onClick:n,className:(0,b.cn)("h-7 w-7 text-muted-foreground hover:text-foreground",r&&"hover:text-[hsl(var(--destructive))] hover:bg-[hsl(var(--destructive))]/10"),children:i})}function i$({rewriteFailed:e,rewriteError:t,failedKbCount:r,failedKbDetails:n}){let i=!!e,a=(r??0)>0;return i||a?(0,u.jsxs)("div",{className:"space-y-1.5",children:[i&&(0,u.jsx)(iT,{label:"意图重写失败 · 已回退到原问题",detail:t??"rewriter 返回空结果或抛错"}),a&&n&&(0,u.jsx)(iT,{label:`${r} 个知识库检索失败`,detail:n.map(e=>`• ${e.name}: ${e.reason}`).join("\n")})]}):null}function iT({label:e,detail:t}){let[r,n]=(0,c.useState)(!1);return(0,u.jsxs)("div",{className:"rounded-md border border-amber-500/30 bg-amber-500/5",children:[(0,u.jsxs)("button",{type:"button",onClick:()=>n(e=>!e),className:(0,b.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,u.jsx)(w.AlertTriangle,{className:"h-3.5 w-3.5 shrink-0"}),(0,u.jsx)("span",{className:"flex-1 text-left",children:e}),(0,u.jsx)(_.ChevronDown,{className:(0,b.cn)("h-3 w-3 opacity-60 transition-transform duration-150",r&&"rotate-180")})]}),r&&(0,u.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:t})]})}function iP({message:e,busy:t,onDelete:r,onResend:n,onEditSave:i}){let[a,s]=(0,c.useState)(!1),[o,l]=(0,c.useState)(!1),[h,p]=(0,c.useState)(e.content),[d,f]=(0,c.useState)(!1),[y,b]=(0,c.useState)(!1),[x,w]=(0,c.useState)(!0),A=(0,c.useCallback)(()=>{if(e.content)try{navigator.clipboard&&window.isSecureContext?navigator.clipboard.writeText(e.content).then(()=>I.toast.success("已复制"),()=>{iE(e.content)}):iE(e.content)}catch{iE(e.content)}},[e.content]),v=(0,c.useCallback)(()=>{let t=h.trim();if(!t||t===e.content){l(!1),p(e.content);return}l(!1),i(e.id,t)},[h,e.content,e.id,i]),_=(0,c.useCallback)(()=>{p(e.content),l(!1)},[e.content]),k=(0,c.useCallback)(e=>{"Escape"===e.key?(e.preventDefault(),_()):"Enter"===e.key&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),v())},[v,_]);return(0,u.jsxs)("div",{className:"group flex justify-end","data-touched":a?"true":void 0,onClickCapture:()=>s(!0),children:[(0,u.jsxs)("div",{className:"flex max-w-[85%] flex-col items-end",children:[o?(0,u.jsxs)("div",{className:"w-full max-w-2xl rounded-2xl border border-[hsl(var(--primary))] bg-[hsl(var(--background))] p-2",children:[(0,u.jsx)(g.Textarea,{autoFocus:!0,value:h,onChange:e=>p(e.target.value),onKeyDown:k,className:"min-h-[80px] resize-y border-0 p-2 text-sm shadow-none focus-visible:ring-0"}),(0,u.jsxs)("div",{className:"mt-1 flex justify-end gap-2",children:[(0,u.jsx)(m.Button,{type:"button",variant:"ghost",size:"sm",onClick:_,children:"取消"}),(0,u.jsx)(m.Button,{type:"button",size:"sm",disabled:!h.trim()||h.trim()===e.content,onClick:v,children:"保存并重发"})]})]}):(0,u.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:e.content}),!o&&(0,u.jsx)(iL,{align:"right",disabled:t,onCopy:A,onEdit:()=>{p(e.content),l(!0)},onResend:()=>b(!0),onDelete:()=>f(!0)})]}),(0,u.jsx)(T.ConfirmDialog,{open:d,onOpenChange:f,title:"删除此消息?",description:"该操作不可撤销。",confirmText:"删除",variant:"danger",onConfirm:()=>{r(e.id,{withNextAssistant:x}),f(!1)},children:(0,u.jsxs)("label",{className:"flex items-center gap-2 text-sm text-foreground",children:[(0,u.jsx)(L.Checkbox,{checked:x,onCheckedChange:e=>w(!0===e)}),"同时删除下方的 AI 回复"]})}),(0,u.jsx)(T.ConfirmDialog,{open:y,onOpenChange:b,title:"重新发送此消息?",description:"将丢弃下方所有消息并重新生成回答。",confirmText:"重新发送",onConfirm:()=>{b(!1),n(e.id)}})]})}function iR({message:e,busy:t,onDelete:r,onRegenerate:n}){let[i,a]=(0,c.useState)(!1),[s,o]=(0,c.useState)(!1),[l,h]=(0,c.useState)(!1),p="streaming"===e.status,d="error"===e.status,f=(e.reasoning?.length??0)>0,m=(e.content?.length??0)>0,g=f||p&&!m,y=!!e.usingRag&&!e.retrievalQuery,b=!!e.retrievalQuery&&!e.retrievedChunks,w=(e.retrievalGroups??[]).filter(e=>e.error).map(e=>({name:e.knowledgeBaseName,reason:e.error??""})),A=(0,c.useCallback)(()=>{if(e.content)try{navigator.clipboard&&window.isSecureContext?navigator.clipboard.writeText(e.content).then(()=>I.toast.success("已复制"),()=>{iE(e.content)}):iE(e.content)}catch{iE(e.content)}},[e.content]);return(0,u.jsxs)("div",{className:"group space-y-3 text-sm leading-relaxed","data-touched":i?"true":void 0,onClickCapture:()=>a(!0),children:[g?(0,u.jsx)(iM,{reasoning:e.reasoning??"",streaming:p,startedAt:e.reasoningStartedAt,completedAt:e.reasoningCompletedAt,intentExtracting:y,retrievalInFlight:b}):null,(0,u.jsx)(i$,{rewriteFailed:e.queryRewriteFailed,rewriteError:e.queryRewriteError,failedKbCount:w.length,failedKbDetails:w}),e.retrievalQueryRewritten&&e.retrievalQuery?(0,u.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,u.jsx)(N.Search,{className:"h-3 w-3 shrink-0"}),(0,u.jsx)("span",{className:"font-medium shrink-0",children:"检索关键词:"}),(0,u.jsx)("span",{className:"truncate font-mono text-foreground/80",children:e.retrievalQuery})]}):null,e.retrievedChunks&&e.retrievedChunks.length>0?(0,u.jsx)(iB,{chunks:e.retrievedChunks,groups:e.retrievalGroups}):null,e.memoryHits&&e.memoryHits.length>0?(0,u.jsx)(iD,{hits:e.memoryHits,query:e.memoryQuery}):null,d?(0,u.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,u.jsx)(x,{className:"mt-0.5 h-4 w-4 shrink-0"}),(0,u.jsx)("span",{className:"text-xs",children:e.errorMessage??"生成失败"})]}):(0,u.jsxs)("div",{className:"text-foreground/90",children:[(0,u.jsx)(iN,{children:e.content}),p?(0,u.jsx)("span",{className:"ml-0.5 inline-block h-3.5 w-1.5 animate-pulse bg-foreground align-baseline"}):null]}),(0,u.jsx)(iL,{align:"left",disabled:t||p,onCopy:A,onRegenerate:()=>h(!0),onDelete:()=>o(!0)}),(0,u.jsx)(T.ConfirmDialog,{open:s,onOpenChange:o,title:"删除此回复?",description:"该操作不可撤销。",confirmText:"删除",variant:"danger",onConfirm:()=>{r(e.id),o(!1)}}),(0,u.jsx)(T.ConfirmDialog,{open:l,onOpenChange:h,title:"重新生成此回复?",description:"将丢弃下方所有消息并重新生成。",confirmText:"重新生成",onConfirm:()=>{h(!1),n(e.id)}})]})}function iM({reasoning:e,streaming:t,startedAt:r,completedAt:n,intentExtracting:i,retrievalInFlight:a}){var s,o;let l,h,p,[d,f]=(0,c.useState)(!1),m=function(e,t){let[r,n]=(0,c.useState)(()=>Date.now());return((0,c.useEffect)(()=>{if(!e||t)return;let r=window.setInterval(()=>n(Date.now()),250);return()=>window.clearInterval(r)},[e,t]),e)?Math.max(0,(t??r)-e):null}(r,n),g=null!=m?(s=m,o=!t||!!n,h=Math.floor((l=Math.floor(s/1e3))/60),p=l%60,o?0===h?`用时 ${p} 秒`:`用时 ${h} 分 ${p} 秒`:`${h}:${String(p).padStart(2,"0")}`):null,y=t&&!n,x=e.length>0,w="正在思考";return x?w="深度思考中":a?w="正在检索知识库":i&&(w="检索意图提取"),(0,u.jsxs)(j.Collapsible,{open:d,onOpenChange:f,children:[(0,u.jsx)(j.CollapsibleTrigger,{asChild:!0,children:(0,u.jsxs)("button",{type:"button",disabled:!x,className:(0,b.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",y?"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",!x&&"cursor-default"),"aria-live":y?"polite":"off",children:[(0,u.jsxs)("span",{className:"relative inline-flex h-5 w-5 items-center justify-center",children:[y&&(0,u.jsx)("span",{"aria-hidden":!0,className:"absolute inset-0 rounded-full bg-[hsl(var(--primary))] opacity-40 blur-[6px] animate-thinking-aurora"}),(0,u.jsx)(v.Brain,{className:(0,b.cn)("relative h-3.5 w-3.5",y&&"animate-thinking-icon text-[hsl(var(--primary))]")})]}),y?(0,u.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:w}):(0,u.jsx)("span",{children:"已深度思考"}),g&&(0,u.jsxs)("span",{className:(0,b.cn)("tabular-nums text-[11px]",y?"text-[hsl(var(--primary)/0.75)]":"text-muted-foreground/80"),children:["· ",g]}),x&&(0,u.jsx)(_.ChevronDown,{className:(0,b.cn)("h-3 w-3 opacity-60 transition-transform duration-200",d&&"rotate-180",y&&"text-[hsl(var(--primary))]")})]})}),x&&(0,u.jsx)(j.CollapsibleContent,{children:(0,u.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:e})})]})}function iB({chunks:e,groups:t}){let[r,n]=(0,c.useState)(!1),i=new Map;e.forEach((e,t)=>{i.set(`${e.docId}#${e.chunkId}`,t+1)});let a=(t??[]).filter(e=>!e.error),s=(t??[]).filter(e=>e.error),o=a.length>=2||s.length>0;return(0,u.jsxs)(j.Collapsible,{open:r,onOpenChange:n,children:[(0,u.jsx)(j.CollapsibleTrigger,{asChild:!0,children:(0,u.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,u.jsx)(A.BookOpen,{className:"h-3.5 w-3.5"}),"查看 ",e.length," 个引用",o?(0,u.jsxs)("span",{className:"text-muted-foreground/70",children:["· ",a.length," 个知识库",s.length>0?`(${s.length} 失败)`:""]}):null,(0,u.jsx)(_.ChevronDown,{className:(0,b.cn)("h-3 w-3 transition-transform duration-200",r&&"rotate-180")})]})}),(0,u.jsx)(j.CollapsibleContent,{children:(0,u.jsx)("div",{className:"mt-2 space-y-3",children:o?(0,u.jsxs)(u.Fragment,{children:[a.map(e=>(0,u.jsx)(iO,{group:e,indexByKey:i},`ok-${e.knowledgeBaseName}`)),s.map(e=>(0,u.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,u.jsx)("span",{className:"font-medium",children:e.knowledgeBaseName}),(0,u.jsxs)("span",{className:"ml-2 text-[hsl(var(--destructive))/0.8]",children:["检索失败:",e.error]})]},`err-${e.knowledgeBaseName}`))]}):(0,u.jsx)("div",{className:"space-y-2",children:e.map((e,t)=>(0,u.jsx)(iG,{chunk:e,index:t+1},`${e.docId}-${e.chunkId}`))})})})]})}function iO({group:e,indexByKey:t}){return(0,u.jsxs)("div",{className:"space-y-2",children:[(0,u.jsxs)("div",{className:"flex items-center gap-2 text-xs font-medium text-muted-foreground",children:[(0,u.jsx)("span",{className:"text-foreground/80",children:e.knowledgeBaseName}),(0,u.jsxs)("span",{children:["· ",e.chunks.length," 条"]})]}),(0,u.jsx)("div",{className:"space-y-2 border-l-2 border-[hsl(var(--border))] pl-3",children:e.chunks.map(e=>{let r=`${e.docId}#${e.chunkId}`,n=t.get(r)??0;return(0,u.jsx)(iG,{chunk:e,index:n},`${e.docId}-${e.chunkId}`)})})]})}function iG({chunk:e,index:t}){let[r,n]=(0,c.useState)(null),[i,a]=(0,c.useState)(!1),s=e.ossKey?.split("/").pop()||e.ossKey||"未知文件",o=e.chunkType?.toLowerCase()==="image",l=e.imageBase64?e.imageBase64.startsWith("data:")?e.imageBase64:`${P.IMAGE_FALLBACK_DATA_PREFIX}${e.imageBase64}`:void 0;return(0,u.jsxs)("div",{className:"rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--muted)/0.3)] p-3",children:[(0,u.jsxs)("div",{className:"mb-1.5 flex items-center gap-2 text-xs text-muted-foreground",children:[(0,u.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:t>0?t:"–"}),(0,u.jsx)("span",{className:"font-medium text-foreground/80",children:s}),(0,u.jsxs)("span",{children:["Chunk #",e.chunkId]}),o&&(0,u.jsx)("span",{className:"rounded bg-primary/10 px-1 py-0.5 text-[10px] font-medium text-primary",children:"IMAGE"}),(0,u.jsx)("span",{className:"ml-auto font-mono",children:e.score.toFixed(4)})]}),o&&l&&(0,u.jsx)("img",{src:l,alt:`Image chunk #${e.chunkId}`,className:"mt-2 max-w-[180px] max-h-[180px] object-contain rounded border border-border cursor-pointer hover:opacity-80 transition-opacity",onClick:()=>n(l)}),e.content&&(0,u.jsxs)("div",{className:"relative",children:[(0,u.jsx)("p",{className:(0,b.cn)("whitespace-pre-wrap text-xs text-foreground/80 cursor-pointer",!i&&"line-clamp-4",o&&"mt-2"),onClick:()=>a(e=>!e),children:e.content}),!i&&(0,u.jsx)("div",{className:"pointer-events-none absolute bottom-0 left-0 right-0 h-8 bg-gradient-to-t from-[hsl(var(--muted)/0.3)] to-transparent"}),(0,u.jsx)("button",{type:"button",className:"mt-1 text-[10px] text-muted-foreground hover:text-foreground",onClick:()=>a(e=>!e),children:i?"点击收起":"点击展开"})]}),(0,u.jsx)($.Dialog,{open:!!r,onOpenChange:()=>n(null),children:(0,u.jsxs)($.DialogContent,{className:"max-w-[90vw] max-h-[90vh] p-2 flex items-center justify-center border-none bg-black/90 data-[state=open]:animate-none data-[state=closed]:animate-none duration-0",children:[(0,u.jsx)($.DialogTitle,{className:"sr-only",children:"图片放大预览"}),r&&(0,u.jsx)("img",{src:r,alt:"放大预览",className:"max-w-full max-h-[85vh] object-contain"})]})})]})}function iD({hits:e,query:t}){let[r,n]=(0,c.useState)(!1);return(0,u.jsxs)(j.Collapsible,{open:r,onOpenChange:n,children:[(0,u.jsx)(j.CollapsibleTrigger,{asChild:!0,children:(0,u.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,u.jsx)(v.Brain,{className:"h-3.5 w-3.5"}),"参考 ",e.length," 条记忆",t?(0,u.jsxs)("span",{className:"max-w-[200px] truncate text-muted-foreground/70",children:["· ",t]}):null,(0,u.jsx)(_.ChevronDown,{className:(0,b.cn)("h-3 w-3 transition-transform duration-200",r&&"rotate-180")})]})}),(0,u.jsx)(j.CollapsibleContent,{children:(0,u.jsx)("div",{className:"mt-2 space-y-2",children:e.map((e,t)=>(0,u.jsx)(iU,{hit:e,index:t+1},e.unit.memcell_id??`${t}-${(e.unit.text??"").slice(0,16)}`))})})]})}function iU({hit:e,index:t}){let r=e.unit.memcell_id,n="number"==typeof e.score?e.score:void 0;return(0,u.jsxs)("div",{className:"rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--muted)/0.3)] p-3",children:[(0,u.jsxs)("div",{className:"mb-1.5 flex items-center gap-2 text-xs text-muted-foreground",children:[(0,u.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:t}),r?(0,u.jsx)("span",{className:"min-w-0 truncate font-mono text-foreground/80",title:r,children:r}):(0,u.jsx)("span",{className:"text-muted-foreground/70",children:"未命名记忆"}),e.source?(0,u.jsx)("span",{className:"rounded bg-[hsl(var(--muted))] px-1.5 py-0.5 text-[10px] uppercase tracking-wide text-muted-foreground",children:e.source}):null,(0,u.jsx)("span",{className:"ml-auto shrink-0 font-mono",children:void 0!==n?n.toFixed(4):"—"})]}),(0,u.jsx)("p",{className:"line-clamp-4 whitespace-pre-wrap text-xs text-foreground/80",children:e.unit.text})]})}iI.displayName="QaMessage",e.s(["QaChatPanel",0,function({messages:e,isStreaming:t,canSend:r,error:n,onSend:i,onStop:a,onDelete:s,onResend:o,onRegenerate:l,onEditSave:p,emptyState:x,disabledPlaceholder:w}){let[A,v]=(0,c.useState)(""),_=(0,c.useRef)(null),k=(0,c.useRef)(e.length);(0,c.useEffect)(()=>{let t=_.current;if(!t)return;let r=e.length>k.current;(k.current=e.length,r)?requestAnimationFrame(()=>{t.scrollTo({top:t.scrollHeight,behavior:"smooth"})}):t.scrollHeight-t.scrollTop-t.clientHeight<120&&t.scrollTo({top:t.scrollHeight,behavior:"smooth"})},[e]);let C=()=>{let e=A.trim();e&&r&&!t&&(i(e),v(""))};return(0,u.jsxs)("div",{className:"flex h-full min-h-0 flex-1 flex-col bg-[hsl(var(--card))]",children:[(0,u.jsx)("div",{ref:_,role:"log","aria-live":"polite","aria-relevant":"additions text","aria-busy":t,className:"flex-1 space-y-6 overflow-y-auto px-6 py-5",children:0===e.length?(0,u.jsx)("div",{className:"flex h-full min-h-[320px] items-center justify-center",children:(0,u.jsx)(y.EmptyState,{icon:h.MessageSquare,title:x?.title??"开始对话",description:x?.description??"输入问题,系统会先从知识库检索相关内容,再让大模型基于检索结果回答",action:x?.actionLabel&&x?.onAction?(0,u.jsx)(m.Button,{type:"button",onClick:x.onAction,children:x.actionLabel}):void 0})}):e.map(e=>(0,u.jsx)(iI,{message:e,busy:t,onDelete:s,onResend:o,onRegenerate:l,onEditSave:p},e.id))}),(0,u.jsxs)("div",{className:"border-t border-[hsl(var(--border))] bg-[hsl(var(--surface)/0.6)] px-4 py-3",children:[n&&(0,u.jsx)("p",{className:"mb-2 text-xs text-[hsl(var(--destructive))]",children:n}),(0,u.jsxs)("div",{className:"flex items-end gap-2",children:[(0,u.jsx)(g.Textarea,{value:A,onChange:e=>v(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||e.nativeEvent.isComposing||(e.preventDefault(),C())},placeholder:r?"输入问题,Enter 发送,Shift+Enter 换行":w??"请先在左侧选择模型...",disabled:!r,className:(0,b.cn)("min-h-[44px] max-h-40 resize-none text-sm"),rows:1}),t?(0,u.jsx)(m.Button,{type:"button",variant:"outline",size:"icon",onClick:a,title:"停止",children:(0,u.jsx)(f,{className:"h-4 w-4 fill-current"})}):(0,u.jsx)(m.Button,{type:"button",size:"icon",disabled:!r||!A.trim(),onClick:C,title:"发送",children:(0,u.jsx)(d,{className:"h-4 w-4"})})]})]})]})}],821122)},550657,851024,109012,e=>{"use strict";var t=e.i(44501),r=e.i(101685),n=e.i(506703),i=e.i(497634),a=e.i(51517),s=e.i(358204),o=e.i(730068),l=e.i(942595),u=e.i(153139),c=e.i(766476),h=e.i(636766),p=e.i(166473),d=e.i(870036),f=e.i(543876),m=e.i(392820),g=e.i(247570),y=e.i(307166),b=e.i(876490);function x({value:e,options:a,onChange:o,disabled:c,fetching:p}){let[d,f]=(0,r.useState)(!1),[m,g]=(0,r.useState)(""),y=m.trim(),w=(0,r.useMemo)(()=>{if(!y)return a;let e=y.toLowerCase();return a.filter(t=>t.toLowerCase().includes(e))},[a,y]),A=a.some(e=>e.toLowerCase()===y.toLowerCase()),v=y.length>0&&!A,_=e=>{o(e),g(""),f(!1)};return(0,t.jsxs)(h.Popover,{open:d,onOpenChange:f,children:[(0,t.jsx)(h.PopoverTrigger,{asChild:!0,children:(0,t.jsxs)(l.Button,{type:"button",variant:"outline",role:"combobox","aria-expanded":d,disabled:c,className:"w-full justify-between font-normal",children:[(0,t.jsx)("span",{className:(0,b.cn)("truncate text-left",!e&&"text-[hsl(var(--subtle))]"),children:e||"选择或输入模型名"}),(0,t.jsx)(i.ChevronsUpDown,{className:"h-4 w-4 shrink-0 opacity-50"})]})}),(0,t.jsx)(h.PopoverContent,{align:"start",className:"w-[var(--radix-popover-trigger-width)] p-0",children:(0,t.jsxs)(u.Command,{shouldFilter:!1,children:[(0,t.jsx)(u.CommandInput,{placeholder:"搜索或输入模型名",value:m,onValueChange:g}),(0,t.jsxs)(u.CommandList,{children:[0!==w.length||v?null:(0,t.jsx)(u.CommandEmpty,{children:p?"正在拉取模型列表...":0===a.length?"点击「刷新列表」拉取可用模型":"无匹配结果"}),w.length>0&&(0,t.jsx)(u.CommandGroup,{heading:v?"可选模型":void 0,children:w.map(r=>(0,t.jsxs)(u.CommandItem,{value:r,onSelect:()=>_(r),children:[(0,t.jsx)(n.Check,{className:(0,b.cn)("h-4 w-4",e===r?"opacity-100":"opacity-0")}),(0,t.jsx)("span",{className:"truncate",children:r})]},r))}),v&&(0,t.jsx)(u.CommandGroup,{heading:"使用自定义",children:(0,t.jsxs)(u.CommandItem,{value:`__custom__${y}`,onSelect:()=>_(y),children:[(0,t.jsx)(s.Plus,{className:"h-4 w-4 text-[hsl(var(--primary))]"}),(0,t.jsxs)("span",{className:"truncate",children:['使用 "',y,'"']})]})})]})]})})]})}e.s(["LLMModelSelector",0,function({providerId:e,model:n,onProviderChange:i,onModelChange:s,autoSelectFirst:u=!1,providerLabel:h="Provider",modelLabel:b="Model"}){let{data:w=[],isLoading:A}=(0,d.useLLMProviders)(),{data:v,isFetching:_,refetch:k}=function(e,t={}){let{context:r,ready:n}=(0,y.useRuntimeContext)();return(0,f.useQuery)({queryKey:g.queryKeys.llmProviderModels(r.dataScopeKey,e),queryFn:()=>(0,m.fetchProviderModels)(e),enabled:n&&!!e&&(t.enabled??!0),staleTime:3e5,retry:!1})}(e||void 0,{enabled:!!e});(0,r.useEffect)(()=>{if(!u||e||0===w.length)return;let t=w[0];i(t.id,t.defaultModel??"")},[u,e,w]);let C=(0,r.useMemo)(()=>{let t=new Set;for(let e of(n&&t.add(n),v??[]))t.add(e.id);let r=w.find(t=>t.id===e);return r?.defaultModel&&t.add(r.defaultModel),Array.from(t)},[n,v,w,e]);return(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(c.Label,{className:"text-sm font-medium",children:h}),(0,t.jsxs)(p.Select,{value:e,onValueChange:e=>{let t=w.find(t=>t.id===e);i(e,t?.defaultModel??"")},disabled:A||0===w.length,children:[(0,t.jsx)(p.SelectTrigger,{children:(0,t.jsx)(p.SelectValue,{placeholder:A?"加载中...":0===w.length?"请先在「模型提供商」中创建配置":"选择 Provider"})}),(0,t.jsx)(p.SelectContent,{children:w.map(e=>(0,t.jsx)(p.SelectItem,{value:e.id,children:e.name},e.id))})]})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)(c.Label,{className:"text-sm font-medium",children:b}),(0,t.jsxs)(l.Button,{type:"button",variant:"ghost",size:"sm",className:"h-6 px-2 text-xs",disabled:!e||_,onClick:()=>k(),children:[_?(0,t.jsx)(a.Loader2,{className:"mr-1 h-3 w-3 animate-spin"}):(0,t.jsx)(o.RefreshCw,{className:"mr-1 h-3 w-3"}),"刷新列表"]})]}),(0,t.jsx)(x,{value:n,options:C,onChange:s,disabled:!e,fetching:_})]})]})}],550657);var w=e.i(45123);e.s(["SystemPromptInput",0,function({value:e,onChange:r,placeholder:n,helperText:i,rows:a=3,label:s="系统提示词"}){return(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(c.Label,{className:"text-sm font-medium",children:s}),(0,t.jsx)(w.Textarea,{rows:a,value:e,onChange:e=>r(e.target.value),placeholder:n,className:"text-sm"}),i&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:i})]})}],851024);var A=e.i(563805);e.s(["TemperatureSlider",0,function({value:e,onChange:r,min:n=0,max:i=2,step:a=.05,fallback:s=.7,label:o="温度"}){let l=(e??s).toFixed(2);return(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between text-sm",children:[(0,t.jsx)("span",{className:"font-medium",children:o}),(0,t.jsx)("span",{className:"font-mono text-xs text-muted-foreground",children:l})]}),(0,t.jsx)(A.Slider,{value:[e??s],min:n,max:i,step:a,onValueChange:e=>r(e[0]??s)})]})}],109012)},567730,e=>{"use strict";var t=e.i(307166);e.s(["useActiveInstance",0,function(){let{context:e,ready:r}=(0,t.useRuntimeContext)();return{activeInstance:e.activeInstance,ready:r,dataScopeKey:e.dataScopeKey,configRevision:e.configRevision}}])},84625,e=>{"use strict";async function*t(e,t){let n=await fetch("/api/v1/llm/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e),signal:t});if(!n.ok||!n.body){let e=`Chat request failed with status ${n.status}`,t="STREAM_ERROR";try{let r=await n.json();e=r.message??e,t=r.code??t}catch{}yield{type:"error",code:t,message:e};return}let i=n.body.getReader(),a=new TextDecoder("utf-8"),s="";for(;;){let{value:e,done:t}=await i.read();if(t)break;let n=(s+=a.decode(e,{stream:!0})).indexOf("\n\n");for(;-1!==n;){let e=s.slice(0,n);s=s.slice(n+2);let t=r(e);t&&(yield t),n=s.indexOf("\n\n")}}if(s.trim()){let e=r(s);e&&(yield e)}}function r(e){let t=e.split("\n"),r=[];for(let e of t)!(!e||e.startsWith(":"))&&e.startsWith("data:")&&r.push(e.slice(5).trimStart());if(0===r.length)return null;try{return JSON.parse(r.join("\n"))}catch{return null}}e.s(["streamChat",0,t])},906962,e=>{"use strict";e.s(["newId",0,function(e="id"){return"u">typeof crypto&&"randomUUID"in crypto?crypto.randomUUID():`${e}_${Date.now()}_${Math.random().toString(36).slice(2)}`}])},440596,786196,e=>{"use strict";var t=e.i(101685),r=e.i(84625),n=e.i(906962);function i(e,t){let r=e.findIndex(e=>e.id===t);return r<0?e:e.slice(0,r+1)}function a(e,t){let r=e.findIndex(e=>e.id===t);if(r<0)return e;let n=e.slice();return n.splice(r,1),n}function s(e,t){let r=e.findIndex(e=>e.id===t);if(r<0)return e;let n=e.slice(),i=e[r+1]&&"assistant"===e[r+1].role?2:1;return n.splice(r,i),n}e.s(["findUserAnchorAbove",0,function(e,t){let r=e.findIndex(e=>e.id===t);if(r<0)return null;for(let t=r-1;t>=0;t-=1)if("user"===e[t].role)return e[t];return null},"removeAt",0,a,"removePair",0,s,"truncateUpToAndIncluding",0,i],786196),e.s(["useQaChat",0,function(e){let[o,l]=(0,t.useState)([]),[u,c]=(0,t.useState)(!1),[h,p]=(0,t.useState)(null),d=(0,t.useRef)(null),f=(0,t.useRef)(e.onPersist);f.current=e.onPersist;let m=(0,t.useRef)(o);m.current=o;let g=(0,t.useRef)(e);g.current=e;let y=(0,t.useRef)(u);y.current=u;let b=(0,t.useRef)(new Map),x=(0,t.useRef)(null),w=(0,t.useCallback)(()=>{x.current=null;let e=b.current;if(0===e.size)return;let t=new Map(e);e.clear(),l(e=>e.map(e=>{let r=t.get(e.id);return r?{...e,...r.content?{content:e.content+r.content}:null,...r.reasoning?{reasoning:(e.reasoning??"")+r.reasoning}:null}:e}))},[]),A=(0,t.useCallback)(()=>{if(null===x.current){if("u"<typeof requestAnimationFrame)return void w();x.current=requestAnimationFrame(w)}},[w]),v=(0,t.useCallback)(()=>{null!==x.current&&"u">typeof cancelAnimationFrame&&cancelAnimationFrame(x.current),x.current=null},[]);(0,t.useEffect)(()=>v,[v]);let _=(0,t.useCallback)(()=>{d.current?.abort()},[]),k=(0,t.useCallback)(()=>{d.current?.abort(),m.current=[],l([]),p(null)},[]),C=(0,t.useCallback)(e=>{d.current?.abort(),m.current=e,l(e),p(null)},[]),S=(0,t.useCallback)(async(e,t,n)=>{let i=g.current,a=new AbortController;d.current=a;let s={current:!1},o={current:!1},u=t=>{l(r=>r.map(r=>r.id===e?{...r,...t}:r))};try{let l={activeInstance:i.activeInstance,providerId:i.providerId,model:i.model,messages:t,systemPrompt:i.systemPrompt,temperature:i.temperature,rag:i.rag,...i.memory?{memory:{...i.memory,turnId:n}}:{}};for await(let n of(function(e){try{return"1"===window.localStorage.getItem("tsagent.dev."+e)}catch{return!1}}("logChatRequest")&&(console.groupCollapsed("[chat] outgoing turn"),console.log("assistantId",e),console.log("messages",t),console.log("rag.knowledgeBases",i.rag?.knowledgeBases),console.groupEnd()),(0,r.streamChat)(l,a.signal)))if("query.rewritten"===n.type)u({retrievalQuery:n.query,retrievalQueryRewritten:n.query!==n.original});else if("query.fallback"===n.type)u({retrievalQuery:n.original,retrievalQueryRewritten:!1,queryRewriteFailed:!0,queryRewriteError:n.reason});else if("retrieval.done"===n.type)u({retrievedChunks:n.chunks,retrievalGroups:n.byKnowledgeBase});else if("memory.start"===n.type)u({memoryQuery:n.query});else if("memory.done"===n.type)u({memoryHits:n.hits});else if("memory.save.skipped"===n.type)console.warn("[chat] memory.save.skipped:",n.reason);else if("reasoning.delta"===n.type){let t=b.current.get(e)??{};t.reasoning=(t.reasoning??"")+n.delta,b.current.set(e,t),s.current||(s.current=!0,u({reasoningStartedAt:Date.now()})),A()}else if("content.delta"===n.type){let t=b.current.get(e)??{};t.content=(t.content??"")+n.delta,b.current.set(e,t),s.current&&!o.current&&(o.current=!0,u({reasoningCompletedAt:Date.now()})),A()}else if("error"===n.type){v(),w();let e={status:"error",errorMessage:`${n.code}: ${n.message}`};s.current&&!o.current&&(e.reasoningCompletedAt=Date.now()),u(e),p(n.message);break}else if("done"===n.type){v(),w();let e={status:"done"};s.current&&!o.current&&(e.reasoningCompletedAt=Date.now()),u(e);break}}catch(r){v(),w();let e=r instanceof DOMException&&"AbortError"===r.name,t=s.current&&!o.current?{reasoningCompletedAt:Date.now()}:void 0;if(e)u({status:"done",...t});else{let e=r instanceof Error?r.message:String(r);u({status:"error",errorMessage:e,...t}),p(e)}}finally{c(!1),d.current=null;let e=f.current;e&&e(m.current)}},[A,w,v]),N=(0,t.useCallback)(async e=>{let t=e.trim();if(!t||y.current)return;let r=g.current;if(!r.providerId||!r.model)return void p("请先选择模型与 Provider");p(null);let i=(0,n.newId)("turn"),a={id:(0,n.newId)(),role:"user",content:t,createdAt:Date.now(),status:"done",turnId:i},s=(0,n.newId)(),o=(r.rag?.knowledgeBases?.length??0)>0,u={id:s,role:"assistant",content:"",reasoning:"",createdAt:Date.now(),status:"streaming",usingRag:o},h=[...m.current,a].map(e=>({role:e.role,content:e.content})),d=[...m.current,a,u];m.current=d,l(d),c(!0),await S(s,h,i)},[S]),E=(0,t.useCallback)(async e=>{if(y.current)return;let t=g.current;if(!t.providerId||!t.model)return void p("请先选择模型与 Provider");let r=i(m.current,e),a=r[r.length-1];if(!a||"user"!==a.role)return;let s=a.turnId??(0,n.newId)("turn");if(!a.turnId){let e=r.length-1;r[e]={...a,turnId:s}}p(null);let o=(0,n.newId)(),u=(t.rag?.knowledgeBases?.length??0)>0,h={id:o,role:"assistant",content:"",reasoning:"",createdAt:Date.now(),status:"streaming",usingRag:u},d=r.map(e=>({role:e.role,content:e.content})),f=[...r,h];m.current=f,l(f),c(!0),await S(o,d,s)},[S]);return{messages:o,isStreaming:u,error:h,send:N,reissueTurn:E,deleteMessage:(0,t.useCallback)((e,t)=>{if(y.current)return;let r=m.current,n=r.find(t=>t.id===e);if(!n)return;let i="user"===n.role&&t?.withNextAssistant?s(r,e):a(r,e);m.current=i,l(i),f.current?.(i)},[]),editUserMessage:(0,t.useCallback)((e,t)=>{let r=m.current,n=r.findIndex(t=>t.id===e);if(n<0||"user"!==r[n].role)return null;let i=r.slice();return i[n]={...r[n],content:t},m.current=i,l(i),e},[]),stop:_,clear:k,setMessages:C}}],440596)}]);
138
+ XID_Start XIDS`.split(/\s/).map(e=>[nn(e),e])),nD=new Map([["s",nN(383)],[nN(383),"s"]]),nU=new Map([[nN(223),nN(7838)],[nN(107),nN(8490)],[nN(229),nN(8491)],[nN(969),nN(8486)]]),nF=new Map([nq(453),nq(456),nq(459),nq(498),...nz(8072,8079),...nz(8088,8095),...nz(8104,8111),nq(8124),nq(8140),nq(8188)]),nW=new Map([["alnum",nE`[\p{Alpha}\p{Nd}]`],["alpha",nE`\p{Alpha}`],["ascii",nE`\p{ASCII}`],["blank",nE`[\p{Zs}\t]`],["cntrl",nE`\p{Cc}`],["digit",nE`\p{Nd}`],["graph",nE`[\P{space}&&\P{Cc}&&\P{Cn}&&\P{Cs}]`],["lower",nE`\p{Lower}`],["print",nE`[[\P{space}&&\P{Cc}&&\P{Cn}&&\P{Cs}]\p{Zs}]`],["punct",nE`[\p{P}\p{S}]`],["space",nE`\p{space}`],["upper",nE`\p{Upper}`],["word",nE`[\p{Alpha}\p{M}\p{Nd}\p{Pc}]`],["xdigit",nE`\p{AHex}`]]);function nq(e){let t=nN(e);return[t.toLowerCase(),t]}function nz(e,t){return(function(e,t){let r=[];for(let n=e;n<=t;n++)r.push(n);return r})(e,t).map(e=>nq(e))}var nH=new Set(["Lower","Lowercase","Upper","Uppercase","Ll","Lowercase_Letter","Lt","Titlecase_Letter","Lu","Uppercase_Letter"]),nV={AbsenceFunction({node:e,parent:t,replaceWith:r}){let{body:n,kind:i}=e;if("repeater"===i){let e=r6();e.body[0].body.push(r8({negate:!0,body:n}),r9("Any"));let i=r6();i.body[0].body.push(r3("greedy",0,1/0,e)),r(n8(i,t),{traverse:!0})}else throw Error('Unsupported absence function "(?~|"')},Alternative:{enter({node:e,parent:t,key:r},{flagDirectivesByAlt:n}){let i=e.body.filter(e=>"flags"===e.kind);for(let e=r+1;e<t.body.length;e++)n$(n,t.body[e],[]).push(...i)},exit({node:e},{flagDirectivesByAlt:t}){if(t.get(e)?.length){let r=nY(t.get(e));if(r){let t=r6({flags:r});t.body[0].body=e.body,e.body=[n8(t,e)]}}}},Assertion({node:e,parent:t,key:r,container:n,root:i,remove:a,replaceWith:s},o){let{kind:l,negate:u}=e,{asciiWordBoundaries:c,avoidSubclass:h,supportedGNodes:p,wordIsAscii:d}=o;if("text_segment_boundary"===l)throw Error(`Unsupported text segment boundary "\\${u?"Y":"y"}"`);if("line_end"===l)s(n8(r8({body:[rJ({body:[rZ("string_end")]}),rJ({body:[r1(10)]})]}),t));else if("line_start"===l)s(n8(n2(nE`(?<=\A|\n(?!\z))`,{skipLookbehindValidation:!0}),t));else if("search_start"===l)if(p.has(e))i.flags.sticky=!0,a();else{var f;let e,i=n[r-1];if(i&&((e=["Character","CharacterClass","CharacterSet"]).includes((f=i).type)||"Quantifier"===f.type&&f.min&&e.includes(f.body.type)))s(n8(r8({negate:!0}),t));else if(h)throw Error(nE`Uses "\G" in a way that requires a subclass`);else s(n6(rZ("string_start"),t)),o.strategy="clip_search"}else if("string_end"===l||"string_start"===l);else if("string_end_newline"===l)s(n8(n2(nE`(?=\n?\z)`),t));else if("word_boundary"===l){if(!d&&!c){let e=`(?:(?<=${nB})(?!${nB})|(?<!${nB})(?=${nB}))`,r=`(?:(?<=${nB})(?=${nB})|(?<!${nB})(?!${nB}))`;s(n8(n2(u?r:e),t))}}else throw Error(`Unexpected assertion kind "${l}"`)},Backreference({node:e},{jsGroupNameMap:t}){let{ref:r}=e;"string"!=typeof r||n1(r)||(e.ref=r=nZ(r,t))},CapturingGroup({node:e},{jsGroupNameMap:t,subroutineRefMap:r}){let{name:n}=e;n&&!n1(n)&&(e.name=n=nZ(n,t)),r.set(e.number,e),n&&r.set(n,e)},CharacterClassRange({node:e,parent:t,replaceWith:r}){"intersection"===t.kind&&r(n8(r2({body:[e]}),t),{traverse:!0})},CharacterSet({node:e,parent:t,replaceWith:r},{accuracy:n,minTargetEs2024:i,digitIsAscii:a,spaceIsAscii:s,wordIsAscii:o}){let{kind:l,negate:u,value:c}=e;if(a&&("digit"===l||"digit"===c))return void r(n6(r5("digit",{negate:u}),t));if(s&&("space"===l||"space"===c))return void r(n8(n5(n2("[ -\r ]"),u),t));if(o&&("word"===l||"word"===c))return void r(n6(r5("word",{negate:u}),t));if("any"===l)r(n6(r9("Any"),t));else if("digit"===l)r(n6(r9("Nd",{negate:u}),t));else if("dot"===l);else if("text_segment"===l){if("strict"===n)throw Error(nE`Use of "\X" requires non-strict accuracy`);let e="\\p{Emoji}(?:\\p{EMod}|\\uFE0F\\u20E3?|[\\x{E0020}-\\x{E007E}]+\\x{E007F})?",a=nE`\p{RI}{2}|${e}(?:\u200D${e})*`;r(n8(n2(nE`(?>\r\n|${i?nE`\p{RGI_Emoji}`:a}|\P{M}\p{M}*)`,{skipPropertyNameValidation:!0}),t))}else if("hex"===l)r(n6(r9("AHex",{negate:u}),t));else if("newline"===l)r(n8(n2(u?"[^\n]":"(?>\r\n?|[\n\v\f…\u2028\u2029])"),t));else if("posix"===l)if(i||"graph"!==c&&"print"!==c)r(n8(n5(n2(nW.get(c)),u),t));else{if("strict"===n)throw Error(`POSIX class "${c}" requires min target ES2024 or non-strict accuracy`);let e={graph:"!-~",print:" -~"}[c];u&&(e=`\0-${nN(e.codePointAt(0)-1)}${nN(e.codePointAt(2)+1)}-\u{10FFFF}`),r(n8(n2(`[${e}]`),t))}else if("property"===l)nG.has(nn(c))||(e.key="sc");else if("space"===l)r(n6(r9("space",{negate:u}),t));else if("word"===l)r(n8(n5(n2(nB),u),t));else throw Error(`Unexpected character set kind "${l}"`)},Directive({node:e,parent:t,root:r,remove:n,replaceWith:i,removeAllPrevSiblings:a,removeAllNextSiblings:s}){let{kind:o,flags:l}=e;if("flags"===o)if(l.enable||l.disable){let e=r6({flags:l});e.body[0].body=s(),i(n8(e,t),{traverse:!0})}else n();else if("keep"===o){let e=r.body[0],n=1===r.body.length&&rQ(e,{type:"Group"})&&1===e.body[0].body.length?e.body[0]:r;if(t.parent!==n||n.body.length>1)throw Error(nE`Uses "\K" in a way that's unsupported`);let s=r8({behind:!0});s.body[0].body=a(),i(n8(s,t))}else throw Error(`Unexpected directive kind "${o}"`)},Flags({node:e,parent:t}){if(e.posixIsAscii)throw Error('Unsupported flag "P"');if("word"===e.textSegmentMode)throw Error('Unsupported flag "y{w}"');["digitIsAscii","extended","posixIsAscii","spaceIsAscii","wordIsAscii","textSegmentMode"].forEach(t=>delete e[t]),Object.assign(e,{global:!1,hasIndices:!1,multiline:!1,sticky:e.sticky??!1}),t.options={disable:{x:!0,n:!0},force:{v:!0}}},Group({node:e}){if(!e.flags)return;let{enable:t,disable:r}=e.flags;t?.extended&&delete t.extended,r?.extended&&delete r.extended,t?.dotAll&&r?.dotAll&&delete t.dotAll,t?.ignoreCase&&r?.ignoreCase&&delete t.ignoreCase,t&&!Object.keys(t).length&&delete e.flags.enable,r&&!Object.keys(r).length&&delete e.flags.disable,e.flags.enable||e.flags.disable||delete e.flags},LookaroundAssertion({node:e},t){let{kind:r}=e;"lookbehind"===r&&(t.passedLookbehind=!0)},NamedCallout({node:e,parent:t,replaceWith:r}){let{kind:n}=e;if("fail"===n)r(n8(r8({negate:!0}),t));else throw Error(`Unsupported named callout "(*${n.toUpperCase()}"`)},Quantifier({node:e}){if("Quantifier"===e.body.type){let t=r6();t.body[0].body.push(e.body),e.body=n8(t,e)}},Regex:{enter({node:e},{supportedGNodes:t}){let r=[],n=!1,i=!1;for(let t of e.body)if(1===t.body.length&&"search_start"===t.body[0].kind)t.body.pop();else{let e=function e(t){let r=t.find(e=>"search_start"===e.kind||function(e,t){let r={negate:null,...t};return"LookaroundAssertion"===e.type&&(null===r.negate||e.negate===r.negate)&&1===e.body.length&&rQ(e.body[0],{type:"Assertion",kind:"search_start"})}(e,{negate:!1})||!function({type:e}){return"Assertion"===e||"Directive"===e||"LookaroundAssertion"===e}(e));if(!r)return null;if("search_start"===r.kind)return r;if("LookaroundAssertion"===r.type)return r.body[0].body[0];if("CapturingGroup"===r.type||"Group"===r.type){let t=[];for(let n of r.body){let r=e(n.body);if(!r)return null;Array.isArray(r)?t.push(...r):t.push(r)}return t}return null}(t.body);e?(n=!0,Array.isArray(e)?r.push(...e):r.push(e)):i=!0}n&&!i&&r.forEach(e=>t.add(e))},exit(e,{accuracy:t,passedLookbehind:r,strategy:n}){if("strict"===t&&r&&n)throw Error(nE`Uses "\G" in a way that requires non-strict accuracy`)}},Subroutine({node:e},{jsGroupNameMap:t}){let{ref:r}=e;"string"!=typeof r||n1(r)||(e.ref=r=nZ(r,t))}},nQ={Backreference({node:e},{multiplexCapturesToLeftByRef:t,reffedNodesByReferencer:r}){let{orphan:n,ref:i}=e;n||r.set(e,[...t.get(i).map(({node:e})=>e)])},CapturingGroup:{enter({node:e,parent:t,replaceWith:r,skip:n},{groupOriginByCopy:i,groupsByName:a,multiplexCapturesToLeftByRef:s,openRefs:o,reffedNodesByReferencer:l}){let u=i.get(e);if(u&&o.has(e.number)){let n=n6(nJ(e.number),t);l.set(n,o.get(e.number)),r(n);return}o.set(e.number,e),s.set(e.number,[]),e.name&&n$(s,e.name,[]);let c=s.get(e.name??e.number);for(let t=0;t<c.length;t++){let r=c[t];if(u===r.node||u&&u===r.origin||e===r.origin){c.splice(t,1);break}}if(s.get(e.number).push({node:e,origin:u}),e.name&&s.get(e.name).push({node:e,origin:u}),e.name){let t=n$(a,e.name,new Map),r=!1;if(u)r=!0;else for(let e of t.values())if(!e.hasDuplicateNameToRemove){r=!0;break}a.get(e.name).set(e,{node:e,hasDuplicateNameToRemove:r})}},exit({node:e},{openRefs:t}){t.get(e.number)===e&&t.delete(e.number)}},Group:{enter({node:e},t){t.prevFlags=t.currentFlags,e.flags&&(t.currentFlags=nj(t.currentFlags,e.flags))},exit(e,t){t.currentFlags=t.prevFlags}},Subroutine({node:e,parent:t,replaceWith:r},n){let{isRecursive:i,ref:a}=e;if(i){let r=t;for(;(r=r.parent)&&("CapturingGroup"!==r.type||r.name!==a&&r.number!==a););n.reffedNodesByReferencer.set(e,r);return}let s=n.subroutineRefMap.get(a),o=0===a,l=o?nJ(0):function e(t,r,n,i){let a=Array.isArray(t)?[]:{};for(let[s,o]of Object.entries(t))"parent"===s?a.parent=Array.isArray(n)?i:n:o&&"object"==typeof o?a[s]=e(o,r,a,n):("type"===s&&"CapturingGroup"===o&&r.set(a,r.get(t)??t),a[s]=o);return a}(s,n.groupOriginByCopy,null),u=l;if(!o){var c,h;let e=nY(function(e,t){let r=[];for(;e=e.parent;)(!t||t(e))&&r.push(e);return r}(s,e=>"Group"===e.type&&!!e.flags)),t=e?nj(n.globalFlags,e):n.globalFlags;c=t,h=n.currentFlags,(c.dotAll!==h.dotAll||c.ignoreCase!==h.ignoreCase)&&(u=r6({flags:function({dotAll:e,ignoreCase:t}){let r={};return(e||t)&&(r.enable={},e&&(r.enable.dotAll=!0),t&&(r.enable.ignoreCase=!0)),e&&t||(r.disable={},e||(r.disable.dotAll=!0),t||(r.disable.ignoreCase=!0)),r}(t)})).body[0].body.push(l)}r(n8(u,t),{traverse:!o})}},nK={Backreference({node:e,parent:t,replaceWith:r},n){if(e.orphan){n.highestOrphanBackref=Math.max(n.highestOrphanBackref,e.ref);return}let i=n.reffedNodesByReferencer.get(e).filter(t=>(function(e,t){let r=t;do{if("Regex"===r.type)return!1;if("Alternative"===r.type)continue;if(r===e)return!1;for(let t of n0(r.parent)){if(t===r)break;if(t===e||function e(t,r){for(let n of n0(t)??[])if(n===r||e(n,r))return!0;return!1}(t,e))return!0}}while(r=r.parent)throw Error("Unexpected path")})(t,e));i.length?i.length>1?r(n8(r6({atomic:!0,body:i.reverse().map(e=>rJ({body:[rY(e.number)]}))}),t)):e.ref=i[0].number:r(n8(r8({negate:!0}),t))},CapturingGroup({node:e},t){e.number=++t.numCapturesToLeft,e.name&&t.groupsByName.get(e.name).get(e).hasDuplicateNameToRemove&&delete e.name},Regex:{exit({node:e},t){let r=Math.max(t.highestOrphanBackref-t.numCapturesToLeft,0);for(let t=0;t<r;t++){let t=r0();e.body.at(-1).body.push(t)}}},Subroutine({node:e},t){e.isRecursive&&0!==e.ref&&(e.ref=t.reffedNodesByReferencer.get(e).number)}};function nX(e){ns(e,{"*"({node:e,parent:t}){e.parent=t}})}function nJ(e){let t=r4(e);return t.isRecursive=!0,t}function nZ(e,t){if(t.has(e))return t.get(e);let r=`$${t.size}_${e.replace(/^[^$_\p{IDS}]|[^$\u200C\u200D\p{IDC}]/ug,"_")}`;return t.set(e,r),r}function nY(e){let t=["dotAll","ignoreCase"],r={enable:{},disable:{}};return(e.forEach(({flags:e})=>{t.forEach(t=>{e.enable?.[t]&&(delete r.disable[t],r.enable[t]=!0),e.disable?.[t]&&(r.disable[t]=!0)})}),Object.keys(r.enable).length||delete r.enable,Object.keys(r.disable).length||delete r.disable,r.enable||r.disable)?r:null}function n0(e){if(!e)throw Error("Node expected");let{body:t}=e;return Array.isArray(t)?t:t?[t]:null}function n1(e){return/^[$_\p{IDS}][$\u200C\u200D\p{IDC}]*$/u.test(e)}function n2(e,t){let r=rX(e,{...t,unicodePropertyMap:nG}).body;return r.length>1||r[0].body.length>1?r6({body:r}):r[0].body[0]}function n5(e,t){return e.negate=t,e}function n6(e,t){return e.parent=t,e}function n8(e,t){return nX(e),e.parent=t,e}var n3={"*":{enter({node:e},t){if(io(e)){let r=t.getCurrentModI();t.pushModI(e.flags?nj({ignoreCase:r},e.flags).ignoreCase:r)}},exit({node:e},t){io(e)&&t.popModI()}},Backreference(e,t){t.setHasCasedChar()},Character({node:e},t){ii(nN(e.value))&&t.setHasCasedChar()},CharacterClassRange({node:e,skip:t},r){t(),ia(e,{firstOnly:!0}).length&&r.setHasCasedChar()},CharacterSet({node:e},t){"property"===e.kind&&nH.has(e.value)&&t.setHasCasedChar()}},n4={Alternative:({body:e},t,r)=>e.map(r).join(""),Assertion({kind:e,negate:t}){if("string_end"===e)return"$";if("string_start"===e)return"^";if("word_boundary"===e)return t?nE`\B`:nE`\b`;throw Error(`Unexpected assertion kind "${e}"`)},Backreference({ref:e},t){if("number"!=typeof e)throw Error("Unexpected named backref in transformed AST");if(!t.useFlagMods&&"strict"===t.accuracy&&t.currentFlags.ignoreCase&&!t.captureMap.get(e).ignoreCase)throw Error("Use of case-insensitive backref to case-sensitive group requires target ES2025 or non-strict accuracy");return"\\"+e},CapturingGroup(e,t,r){let{body:n,name:i,number:a}=e,s={ignoreCase:t.currentFlags.ignoreCase},o=t.originMap.get(e);return o&&(s.hidden=!0,a>o.number&&(s.transferTo=o.number)),t.captureMap.set(a,s),`(${i?`?<${i}>`:""}${n.map(r).join("|")})`},Character({value:e},t){let r=nN(e),n=is(e,{escDigit:"Backreference"===t.lastNode.type,inCharClass:t.inCharClass,useFlagV:t.useFlagV});if(n!==r)return n;if(t.useAppliedIgnoreCase&&t.currentFlags.ignoreCase&&ii(r)){let e=nO(r);return t.inCharClass?e.join(""):e.length>1?`[${e.join("")}]`:e[0]}return r},CharacterClass(e,t,r){let{kind:n,negate:i,parent:a}=e,{body:s}=e;if("intersection"===n&&!t.useFlagV)throw Error("Use of character class intersection requires min target ES2024");nI.bugFlagVLiteralHyphenIsRange&&t.useFlagV&&s.some(il)&&(s=[r1(45),...s.filter(e=>!il(e))]);let o=()=>`[${i?"^":""}${s.map(r).join("intersection"===n?"&&":"")}]`;if(!t.inCharClass){if((!t.useFlagV||nI.bugNestedClassIgnoresNegation)&&!i){let t=s.filter(e=>"CharacterClass"===e.type&&"union"===e.kind&&e.negate);if(t.length){let n=r6(),i=n.body[0];return n.parent=a,i.parent=n,e.body=s=s.filter(e=>!t.includes(e)),s.length?(e.parent=i,i.body.push(e)):n.body.pop(),t.forEach(e=>{let t=rJ({body:[e]});e.parent=t,t.parent=n,n.body.push(t)}),r(n)}}t.inCharClass=!0;let n=o();return t.inCharClass=!1,n}let l=s[0];if("union"===n&&!i&&l&&((!t.useFlagV||!t.verbose)&&"union"===a.kind&&!(nI.bugFlagVLiteralHyphenIsRange&&t.useFlagV)||!t.verbose&&"intersection"===a.kind&&1===s.length&&"CharacterClassRange"!==l.type))return s.map(r).join("");if(!t.useFlagV&&"CharacterClass"===a.type)throw Error("Uses nested character class in a way that requires min target ES2024");return o()},CharacterClassRange(e,t){let r=e.min.value,n=e.max.value,i={escDigit:!1,inCharClass:!0,useFlagV:t.useFlagV},a=is(r,i),s=is(n,i),o=new Set;return t.useAppliedIgnoreCase&&t.currentFlags.ignoreCase&&(function(e){let t=e.map(e=>e.codePointAt(0)).sort((e,t)=>e-t),r=[],n=null;for(let e=0;e<t.length;e++)t[e+1]===t[e]+1?n??=t[e]:null===n?r.push(t[e]):(r.push([n,t[e]]),n=null);return r})(ia(e)).forEach(e=>{o.add(Array.isArray(e)?`${is(e[0],i)}-${is(e[1],i)}`:is(e,i))}),`${a}-${s}${[...o].join("")}`},CharacterSet({kind:e,negate:t,value:r,key:n},i){if("dot"===e)return i.currentFlags.dotAll?i.appliedGlobalFlags.dotAll||i.useFlagMods?".":"[^]":nE`[^\n]`;if("digit"===e)return t?nE`\D`:nE`\d`;if("property"===e){if(i.useAppliedIgnoreCase&&i.currentFlags.ignoreCase&&nH.has(r))throw Error(`Unicode property "${r}" can't be case-insensitive when other chars have specific case`);return`${t?nE`\P`:nE`\p`}{${n?`${n}=`:""}${r}}`}if("word"===e)return t?nE`\W`:nE`\w`;throw Error(`Unexpected character set kind "${e}"`)},Flags:(e,t)=>(t.appliedGlobalFlags.ignoreCase?"i":"")+(e.dotAll?"s":"")+(e.sticky?"y":""),Group({atomic:e,body:t,flags:r,parent:n},i,a){let s=i.currentFlags;r&&(i.currentFlags=nj(s,r));let o=t.map(a).join("|"),l=i.verbose||1!==t.length||"Quantifier"===n.type||e||i.useFlagMods&&r?`(?${function(e,t,r){if(e)return">";let n="";if(t&&r){let{enable:e,disable:r}=t;n=(e?.ignoreCase?"i":"")+(e?.dotAll?"s":"")+(r?"-":"")+(r?.ignoreCase?"i":"")+(r?.dotAll?"s":"")}return`${n}:`}(e,r,i.useFlagMods)}${o})`:o;return i.currentFlags=s,l},LookaroundAssertion({body:e,kind:t,negate:r},n,i){let a=`${"lookahead"===t?"":"<"}${r?"!":"="}`;return`(?${a}${e.map(i).join("|")})`},Quantifier:(e,t,r)=>r(e.body)+function({kind:e,max:t,min:r}){return(r||1!==t?r||t!==1/0?1===r&&t===1/0?"+":r===t?`{${r}}`:`{${r},${t===1/0?"":t}}`:"*":"?")+({greedy:"",lazy:"?",possessive:"+"})[e]}(e),Subroutine({isRecursive:e,ref:t},r){if(!e)throw Error("Unexpected non-recursive subroutine in transformed AST");let n=r.recursionLimit;return 0===t?`(?R=${n})`:nE`\g<${t}&R=${n}>`}},n9=new Set(["$","(",")","*","+",".","?","[","\\","]","^","{","|","}"]),n7=new Set(["-","\\","]","^","["]),ie=new Set(["(",")","-","/","[","\\","]","^","{","|","}","!","#","$","%","&","*","+",",",".",":",";","<","=",">","?","@","`","~"]),it=new Map([[9,nE`\t`],[10,nE`\n`],[11,nE`\v`],[12,nE`\f`],[13,nE`\r`],[8232,nE`\u2028`],[8233,nE`\u2029`],[65279,nE`\uFEFF`]]),ir=/^\p{Cased}$/u;function ii(e){return ir.test(e)}function ia(e,t){let r=!!t?.firstOnly,n=e.min.value,i=e.max.value,a=[];if(n<65&&(65535===i||i>=131071)||65536===n&&i>=131071)return a;for(let e=n;e<=i;e++){let t=nN(e);if(!ii(t))continue;let s=nO(t).filter(e=>{let t=e.codePointAt(0);return t<n||t>i});if(s.length&&(a.push(...s),r))break}return a}function is(e,{escDigit:t,inCharClass:r,useFlagV:n}){var i;if(it.has(e))return it.get(e);if(e<32||e>126&&e<160||e>262143||t&&(i=e)>47&&i<58)return e>255?`\\u{${e.toString(16).toUpperCase()}}`:`\\x${e.toString(16).toUpperCase().padStart(2,"0")}`;let a=nN(e);return((r?n?ie:n7:n9).has(a)?"\\":"")+a}function io({type:e}){return"CapturingGroup"===e||"Group"===e||"LookaroundAssertion"===e}function il({type:e,value:t}){return"Character"===e&&45===t}var iu=class e extends RegExp{#e=new Map;#t=null;#r;#n=null;#i=null;rawOptions={};get source(){return this.#r||"(?:)"}constructor(t,r,n){const i=!!n?.lazyCompile;if(t instanceof RegExp){if(n)throw Error("Cannot provide options when copying a regexp");super(t,r),this.#r=t.source,t instanceof e&&(this.#e=t.#e,this.#n=t.#n,this.#i=t.#i,this.rawOptions=t.rawOptions)}else{const e={hiddenCaptures:[],strategy:null,transfers:[],...n};super(i?"":t,r),this.#r=t,this.#e=function(e,t){let r=new Map;for(let t of e)r.set(t,{hidden:!0});for(let[e,n]of t)for(let t of n)n$(r,t,{}).transferTo=e;return r}(e.hiddenCaptures,e.transfers),this.#i=e.strategy,this.rawOptions=n??{}}i||(this.#t=this)}exec(t){if(!this.#t){let{lazyCompile:t,...r}=this.rawOptions;this.#t=new e(this.#r,this.flags,r)}let r=this.global||this.sticky,n=this.lastIndex;if("clip_search"===this.#i&&r&&n){this.lastIndex=0;let e=this.#a(t.slice(n));return e&&(function(e,t,r,n){if(e.index+=t,e.input=r,n){let r=e.indices;for(let e=0;e<r.length;e++){let n=r[e];n&&(r[e]=[n[0]+t,n[1]+t])}let n=r.groups;n&&Object.keys(n).forEach(e=>{let r=n[e];r&&(n[e]=[r[0]+t,r[1]+t])})}}(e,n,t,this.hasIndices),this.lastIndex+=n),e}return this.#a(t)}#a(e){let t;this.#t.lastIndex=this.lastIndex;let r=super.exec.call(this.#t,e);if(this.lastIndex=this.#t.lastIndex,!r||!this.#e.size)return r;let n=[...r];r.length=1,this.hasIndices&&(t=[...r.indices],r.indices.length=1);let i=[0];for(let e=1;e<n.length;e++){let{hidden:a,transferTo:s}=this.#e.get(e)??{};if(a?i.push(null):(i.push(r.length),r.push(n[e]),this.hasIndices&&r.indices.push(t[e])),s&&void 0!==n[e]){let a=i[s];if(!a)throw Error(`Invalid capture transfer to "${a}"`);if(r[a]=n[e],this.hasIndices&&(r.indices[a]=t[e]),r.groups){this.#n||(this.#n=function(e){let t,r=/(?<capture>\((?:\?<(?![=!])(?<name>[^>]+)>|(?!\?)))|\\?./gsu,n=new Map,i=0,a=0;for(;t=r.exec(e);){let{0:e,groups:{capture:r,name:s}}=t;"["===e?i++:i?"]"===e&&i--:r&&(a++,s&&n.set(a,s))}return n}(this.source));let i=this.#n.get(s);i&&(r.groups[i]=n[e],this.hasIndices&&(r.indices.groups[i]=t[e]))}}}return r}};class ic{constructor(e,t={}){this.patterns=e,this.options=t;const{forgiving:r=!1,cache:n,regexConstructor:i}=t;if(!i)throw Error("Option `regexConstructor` is not provided");this.regexps=e.map(e=>{if("string"!=typeof e)return e;let t=n?.get(e);if(t){if(t instanceof RegExp)return t;if(r)return null;throw t}try{let t=i(e);return n?.set(e,t),t}catch(t){if(n?.set(e,t),r)return null;throw t}})}regexps;findNextMatchSync(e,t,r){let n="string"==typeof e?e:e.content,i=[];function a(e,t,r=0){return{index:e,captureIndices:t.indices.map(e=>null==e?{start:0xffffffff,end:0xffffffff,length:0}:{start:e[0]+r,end:e[1]+r,length:e[1]-e[0]})}}for(let e=0;e<this.regexps.length;e++){let r=this.regexps[e];if(r)try{r.lastIndex=t;let s=r.exec(n);if(!s)continue;if(s.index===t)return a(e,s,0);i.push([e,s,0])}catch(e){if(this.options.forgiving)continue;throw e}}if(i.length){let e=Math.min(...i.map(e=>e[1].index));for(let[t,r,n]of i)if(r.index===e)return a(t,r,n)}return null}}var ih=function(e={}){let t=Object.assign({target:"auto",cache:new Map},e);return t.regexConstructor||=e=>{let r;return(r=function(e,t){var r;let n,i,a,s,o=nR(t),l=(r=rX(e,{flags:o.flags,normalizeUnknownPropertyNames:!0,rules:{captureGroup:o.rules.captureGroup,singleline:o.rules.singleline},skipBackrefValidation:o.rules.allowOrphanBackrefs,unicodePropertyMap:nG}),n={accuracy:"default",asciiWordBoundaries:!1,avoidSubclass:!1,bestEffortTarget:"ES2025",...{accuracy:o.accuracy,asciiWordBoundaries:o.rules.asciiWordBoundaries,avoidSubclass:o.avoidSubclass,bestEffortTarget:o.target}},nX(r),i={accuracy:n.accuracy,asciiWordBoundaries:n.asciiWordBoundaries,avoidSubclass:n.avoidSubclass,flagDirectivesByAlt:new Map,jsGroupNameMap:new Map,minTargetEs2024:nT[n.bestEffortTarget]>=nT.ES2024,passedLookbehind:!1,strategy:null,subroutineRefMap:new Map,supportedGNodes:new Set,digitIsAscii:r.flags.digitIsAscii,spaceIsAscii:r.flags.spaceIsAscii,wordIsAscii:r.flags.wordIsAscii},ns(r,nV,i),s={currentFlags:a={dotAll:r.flags.dotAll,ignoreCase:r.flags.ignoreCase},prevFlags:null,globalFlags:a,groupOriginByCopy:new Map,groupsByName:new Map,multiplexCapturesToLeftByRef:new Map,openRefs:new Map,reffedNodesByReferencer:new Map,subroutineRefMap:i.subroutineRefMap},ns(r,nQ,s),ns(r,nK,{groupsByName:s.groupsByName,highestOrphanBackref:0,numCapturesToLeft:0,reffedNodesByReferencer:s.reffedNodesByReferencer}),r._originMap=s.groupOriginByCopy,r._strategy=i.strategy,r),u=function(e,t){let r=nR(t),n=nT[r.target]>=nT.ES2024,i=nT[r.target]>=nT.ES2025,a=r.rules.recursionLimit;if(!Number.isInteger(a)||a<2||a>20)throw Error("Invalid recursionLimit; use 2-20");let s=null,o=null;if(!i){let t=[e.flags.ignoreCase];ns(e,n3,{getCurrentModI:()=>t.at(-1),popModI(){t.pop()},pushModI(e){t.push(e)},setHasCasedChar(){t.at(-1)?s=!0:o=!0}})}let l={dotAll:e.flags.dotAll,ignoreCase:!!((e.flags.ignoreCase||s)&&!o)},u=e,c={accuracy:r.accuracy,appliedGlobalFlags:l,captureMap:new Map,currentFlags:{dotAll:e.flags.dotAll,ignoreCase:e.flags.ignoreCase},inCharClass:!1,lastNode:u,originMap:e._originMap,recursionLimit:a,useAppliedIgnoreCase:!!(!i&&s&&o),useFlagMods:i,useFlagV:n,verbose:r.verbose};function h(e){return c.lastNode=u,u=e,(function(e,t){if(null==e)throw Error(t??"Value expected");return e})(n4[e.type],`Unexpected node type "${e.type}"`)(e,c,h)}let p={pattern:e.body.map(h).join("|"),flags:h(e.flags),options:{...e.options}};return n||(delete p.options.force.v,p.options.disable.v=!0,p.options.unicodeSetsPlugin=null),p._captureTransfers=new Map,p._hiddenCaptures=[],c.captureMap.forEach((e,t)=>{e.hidden&&p._hiddenCaptures.push(t),e.transferTo&&n$(p._captureTransfers,e.transferTo,[]).push(t)}),p}(l,o),c=function(e,t){let r,{hiddenCaptures:n,mode:i}={hiddenCaptures:[],mode:"plugin",...t},a=t?.captureTransfers??new Map;if(!RegExp(nb,"su").test(e))return{pattern:e,captureTransfers:a,hiddenCaptures:n};if("plugin"===i&&np(e,ng`\(\?\(DEFINE\)`,nc.DEFAULT))throw Error("DEFINE groups cannot be used with recursion");let s=[],o=np(e,ng`\\[1-9]`,nc.DEFAULT),l=new Map,u=[],c=!1,h=0,p=0;for(nA.lastIndex=0;r=nA.exec(e);){let{0:t,groups:{captureName:d,rDepth:f,gRNameOrNum:m,gRDepth:g}}=r;if("["===t)h++;else if(h)"]"===t&&h--;else if(f){if(n_(f),c)throw Error(nv);if(o)throw Error(`${"external"===i?"Backrefs":"Numbered backrefs"} cannot be used with global recursion`);let t=e.slice(0,r.index),l=e.slice(nA.lastIndex);if(np(l,nb,nc.DEFAULT))throw Error(nv);let u=f-1;e=nk(t,l,u,!1,n,s,p),a=nS(a,t,u,s.length,0,p);break}else if(m){n_(g);let h=!1;for(let e of u)if(e.name===m||e.num===+m){if(h=!0,e.hasRecursedWithin)throw Error(nv);break}if(!h)throw Error(ng`Recursive \g cannot be used outside the referenced group "${"external"===i?m:ng`\g<${m}&R=${g}>`}"`);let d=l.get(m),f=function(e,t){let r,n=/\\?./gsu;n.lastIndex=t;let i=e.length,a=0,s=1;for(;r=n.exec(e);){let[e]=r;if("["===e)a++;else if(a)"]"===e&&a--;else if("("===e)s++;else if(")"===e&&!--s){i=r.index;break}}return e.slice(t,i)}(e,d);if(o&&np(f,ng`${nx}|\((?!\?)`,nc.DEFAULT))throw Error(`${"external"===i?"Backrefs":"Numbered backrefs"} cannot be used with recursion of capturing groups`);let y=e.slice(d,r.index),b=f.slice(y.length+t.length),x=s.length,w=g-1,A=nk(y,b,w,!0,n,s,p);a=nS(a,y,w,s.length-x,x,p);let v=e.slice(0,d),_=e.slice(d+f.length);e=`${v}${A}${_}`,nA.lastIndex+=A.length-t.length-y.length-b.length,u.forEach(e=>e.hasRecursedWithin=!0),c=!0}else if(d)p++,l.set(String(p),nA.lastIndex),l.set(d,nA.lastIndex),u.push({num:p,name:d});else if("("===t[0]){let e="("===t;e&&(p++,l.set(String(p),nA.lastIndex)),u.push(e?{num:p}:{})}else")"===t&&u.pop()}return n.push(...s),{pattern:e,captureTransfers:a,hiddenCaptures:n}}(u.pattern,{captureTransfers:u._captureTransfers,hiddenCaptures:u._hiddenCaptures,mode:"external"}),h=function(e,t){let r,n=t?.hiddenCaptures??[],i=t?.captureTransfers??new Map;if(!/\(\?>/.test(e))return{pattern:e,captureTransfers:i,hiddenCaptures:n};let a="(?:(?=(",s=[0],o=[],l=0,u=0,c=NaN;do{let t;r=!1;let h=0,p=0,d=!1;for(nd.lastIndex=Number.isNaN(c)?0:c+a.length;t=nd.exec(e);){let{0:f,index:m,groups:{capturingStart:g,noncapturingStart:y}}=t;if("["===f)h++;else if(h)"]"===f&&h--;else if("(?>"!==f||d){if(d&&y)p++;else if(g)d?p++:(l++,s.push(l+u));else if(")"===f&&d){if(!p){let t=l+ ++u;e=`${e.slice(0,c)}${a}${e.slice(c+3,m)}))<$$${t}>)${e.slice(m+1)}`,r=!0,o.push(t);for(let e=0;e<n.length;e++)n[e]>=t&&n[e]++;if(i.size){let e=new Map;i.forEach((r,n)=>{e.set(n>=t?n+1:n,r.map(e=>e>=t?e+1:e))}),i=e}break}p--}}else c=m,d=!0}}while(r)return n.push(...o),{pattern:e=nh(e,String.raw`\\(?<backrefNum>[1-9]\d*)|<\$\$(?<wrappedBackrefNum>\d+)>`,({0:e,groups:{backrefNum:t,wrappedBackrefNum:r}})=>{if(t){let r=+t;if(r>s.length-1)throw Error(`Backref "${e}" greater than number of captures`);return`\\${s[r]}`}return`\\${r}`},nc.DEFAULT),captureTransfers:i,hiddenCaptures:n}}(function(e){let t;if(!RegExp(`${nf}\\+`).test(e))return{pattern:e};let r=[],n=null,i=null,a="",s=0;for(nm.lastIndex=0;t=nm.exec(e);){let{0:u,index:c,groups:{qBase:h,qMod:p,invalidQ:d}}=t;if("["===u)s||(i=c),s++;else if("]"===u)s?s--:i=null;else if(!s)if("+"===p&&a&&!a.startsWith("(")){if(d)throw Error(`Invalid quantifier "${u}"`);let t=-1;if(/^\{\d+\}$/.test(h)){var o,l;o=e,l=c+h.length,e=o.slice(0,l)+""+o.slice(l+p.length)}else{if(")"===a||"]"===a){let t=")"===a?n:i;if(null===t)throw Error(`Invalid unmatched "${a}"`);e=`${e.slice(0,t)}(?>${e.slice(t,c)}${h})${e.slice(c+u.length)}`}else e=`${e.slice(0,c-a.length)}(?>${a}${h})${e.slice(c+u.length)}`;t+=4}nm.lastIndex+=t}else"("===u[0]?r.push(c):")"===u&&(n=r.length?r.pop():null);a=u}return{pattern:e}}(c.pattern).pattern,{captureTransfers:c.captureTransfers,hiddenCaptures:c.hiddenCaptures}),p={pattern:h.pattern,flags:`${o.hasIndices?"d":""}${o.global?"g":""}${u.flags}${u.options.disable.v?"u":"v"}`};if(o.avoidSubclass){if(o.lazyCompileLength!==1/0)throw Error("Lazy compilation requires subclass")}else{let e=h.hiddenCaptures.sort((e,t)=>e-t),t=Array.from(h.captureTransfers),r=l._strategy,n=p.pattern.length>=o.lazyCompileLength;(e.length||t.length||r||n)&&(p.options={...e.length&&{hiddenCaptures:e},...t.length&&{transfers:t},...r&&{strategy:r},...n&&{lazyCompile:n}})}return p}(e,{global:!0,hasIndices:!0,lazyCompileLength:3e3,rules:{allowOrphanBackrefs:!0,asciiWordBoundaries:!0,captureGroup:!0,recursionLimit:5,singleline:!0},...{target:t.target}})).options?new iu(r.pattern,r.flags,r.options):new RegExp(r.pattern,r.flags)},{createScanner:e=>new ic(e,t),createString:e=>({content:e})}}({forgiving:!0}),ip=Object.fromEntries(R.flatMap(e=>{var t;return(null!=(t=e.aliases)?t:[]).map(t=>[t,e.id])})),id=new Set(Object.keys(O)),im=e=>{let t=e.trim().toLowerCase();return ip[t]||(id.has(t),t)},ig=new Map,iy=new Map,ib=new Map,ix=e=>{var t;return"string"==typeof e?e:null!=(t=e.name)?t:"custom"},iw=function(e={}){var t;let r=null!=(t=e.themes)?t:["github-light","github-dark"];return{name:"shiki",type:"code-highlighter",supportsLanguage(e){let t=im(e);return id.has(t)},getSupportedLanguages:()=>Array.from(id),getThemes:()=>r,highlight({code:e,language:t,themes:r},n){let i,a,s=im(t),o=[ix(r[0]),ix(r[1])],l=(i=e.slice(0,100),a=e.length>100?e.slice(-100):"",`${s}:${o[0]}:${o[1]}:${e.length}:${i}:${a}`);return iy.has(l)?iy.get(l):(n&&(ib.has(l)||ib.set(l,new Set),ib.get(l).add(n)),((e,t)=>{let r=`${e}-${ix(t[0])}-${ix(t[1])}`;if(ig.has(r))return ig.get(r);let n=rS({themes:t,langs:[e],engine:ih});return ig.set(r,n),n})(id.has(s)?s:"text",r).then(t=>{let r=t.getLoadedLanguages().includes(s)?s:"text",n=t.codeToTokens(e,{lang:r,themes:{light:o[0],dark:o[1]}});iy.set(l,n);let i=ib.get(l);if(i){for(let e of i)e(n);ib.delete(l)}}).catch(e=>{console.error("[Streamdown Code] Failed to highlight code:",e),ib.delete(l)}),null)}}}(),iA=e.i(176116),iv=e.i(506703);function i_({className:e,children:t,node:r,...n}){let i=(0,c.useRef)(null),[a,s]=(0,c.useState)(!1),o=function(e){for(let t of c.Children.toArray(e)){if(!(0,c.isValidElement)(t))continue;let e=t.props;if("string"!=typeof e?.className)continue;let r=e.className.match(/language-([a-z0-9+#-]+)/i);if(r)return r[1]}}(t)??"",l=(0,c.useCallback)(async()=>{let e=i.current?.innerText??"";if(e)try{await navigator.clipboard.writeText(e),s(!0),window.setTimeout(()=>s(!1),2e3)}catch{}},[]);return(0,u.jsxs)("div",{className:"group relative my-2 overflow-hidden rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--muted)/0.5)]",children:[(0,u.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,u.jsx)("span",{className:"font-mono text-[11px] uppercase tracking-wide text-muted-foreground",children:o||"text"}),(0,u.jsx)("button",{type:"button",onClick:l,className:(0,b.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",a&&"opacity-100 text-primary"),"aria-label":"复制代码",children:a?(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(iv.Check,{className:"h-3 w-3"}),"已复制"]}):(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(k.Copy,{className:"h-3 w-3"}),"复制"]})})]}),(0,u.jsx)("pre",{ref:i,className:(0,b.cn)("overflow-x-auto p-3 text-xs leading-relaxed","[&_code]:bg-transparent [&_code]:p-0",e),...n,children:t})]})}let ik=["https://","http://","mailto:","#","/"],iC=["https://","data:image/"],iS=(e,t)=>{let r=e.toLowerCase();return("src"===t?iC:ik).some(e=>r.startsWith(e))?e:""};function iN({children:e,className:t}){return(0,u.jsx)("div",{className:(0,b.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))]",t),children:(0,u.jsx)(iA.C,{parseIncompleteMarkdown:!0,skipHtml:!0,urlTransform:iS,plugins:{code:iw},components:{pre:i_},controls:{code:!1,table:!1,mermaid:!1},children:e})})}function iE(e){try{let t=document.createElement("textarea");t.value=e,t.style.position="fixed",t.style.opacity="0",document.body.appendChild(t),t.select(),document.execCommand("copy"),document.body.removeChild(t),I.toast.success("已复制")}catch{I.toast.error("复制失败")}}let iI=(0,c.memo)(function({message:e,busy:t,onDelete:r,onResend:n,onRegenerate:i,onEditSave:a}){return"user"===e.role?(0,u.jsx)(iP,{message:e,busy:t,onDelete:r,onResend:n,onEditSave:a}):(0,u.jsx)(iR,{message:e,busy:t,onDelete:r,onRegenerate:i})},(e,t)=>e.message===t.message&&e.busy===t.busy);function iL({align:e,disabled:t,onCopy:r,onDelete:n,onEdit:i,onResend:a,onRegenerate:s}){return(0,u.jsxs)("div",{className:(0,b.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"===e?"justify-end":"justify-start"),children:[(0,u.jsx)(ij,{title:"复制",disabled:t,onClick:r,children:(0,u.jsx)(k.Copy,{className:"h-3.5 w-3.5"})}),i&&(0,u.jsx)(ij,{title:"编辑",disabled:t,onClick:i,children:(0,u.jsx)(C.Pencil,{className:"h-3.5 w-3.5"})}),a&&(0,u.jsx)(ij,{title:"重新发送",disabled:t,onClick:a,children:(0,u.jsx)(d,{className:"h-3.5 w-3.5"})}),s&&(0,u.jsx)(ij,{title:"重新生成",disabled:t,onClick:s,children:(0,u.jsx)(S.RotateCcw,{className:"h-3.5 w-3.5"})}),(0,u.jsx)(ij,{title:"删除",disabled:t,onClick:n,destructive:!0,children:(0,u.jsx)(E.Trash2,{className:"h-3.5 w-3.5"})})]})}function ij({title:e,disabled:t,destructive:r,onClick:n,children:i}){return(0,u.jsx)(m.Button,{type:"button",variant:"ghost",size:"icon",title:e,"aria-label":e,disabled:t,onClick:n,className:(0,b.cn)("h-7 w-7 text-muted-foreground hover:text-foreground",r&&"hover:text-[hsl(var(--destructive))] hover:bg-[hsl(var(--destructive))]/10"),children:i})}function i$({rewriteFailed:e,rewriteError:t,failedKbCount:r,failedKbDetails:n}){let i=!!e,a=(r??0)>0;return i||a?(0,u.jsxs)("div",{className:"space-y-1.5",children:[i&&(0,u.jsx)(iT,{label:"意图重写失败 · 已回退到原问题",detail:t??"rewriter 返回空结果或抛错"}),a&&n&&(0,u.jsx)(iT,{label:`${r} 个知识库检索失败`,detail:n.map(e=>`• ${e.name}: ${e.reason}`).join("\n")})]}):null}function iT({label:e,detail:t}){let[r,n]=(0,c.useState)(!1);return(0,u.jsxs)("div",{className:"rounded-md border border-amber-500/30 bg-amber-500/5",children:[(0,u.jsxs)("button",{type:"button",onClick:()=>n(e=>!e),className:(0,b.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,u.jsx)(w.AlertTriangle,{className:"h-3.5 w-3.5 shrink-0"}),(0,u.jsx)("span",{className:"flex-1 text-left",children:e}),(0,u.jsx)(_.ChevronDown,{className:(0,b.cn)("h-3 w-3 opacity-60 transition-transform duration-150",r&&"rotate-180")})]}),r&&(0,u.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:t})]})}function iP({message:e,busy:t,onDelete:r,onResend:n,onEditSave:i}){let[a,s]=(0,c.useState)(!1),[o,l]=(0,c.useState)(!1),[h,p]=(0,c.useState)(e.content),[d,f]=(0,c.useState)(!1),[y,b]=(0,c.useState)(!1),[x,w]=(0,c.useState)(!0),A=(0,c.useCallback)(()=>{if(e.content)try{navigator.clipboard&&window.isSecureContext?navigator.clipboard.writeText(e.content).then(()=>I.toast.success("已复制"),()=>{iE(e.content)}):iE(e.content)}catch{iE(e.content)}},[e.content]),v=(0,c.useCallback)(()=>{let t=h.trim();if(!t||t===e.content){l(!1),p(e.content);return}l(!1),i(e.id,t)},[h,e.content,e.id,i]),_=(0,c.useCallback)(()=>{p(e.content),l(!1)},[e.content]),k=(0,c.useCallback)(e=>{"Escape"===e.key?(e.preventDefault(),_()):"Enter"===e.key&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),v())},[v,_]);return(0,u.jsxs)("div",{className:"group flex justify-end","data-touched":a?"true":void 0,onClickCapture:()=>s(!0),children:[(0,u.jsxs)("div",{className:"flex max-w-[85%] flex-col items-end",children:[o?(0,u.jsxs)("div",{className:"w-full max-w-2xl rounded-2xl border border-[hsl(var(--primary))] bg-[hsl(var(--background))] p-2",children:[(0,u.jsx)(g.Textarea,{autoFocus:!0,value:h,onChange:e=>p(e.target.value),onKeyDown:k,className:"min-h-[80px] resize-y border-0 p-2 text-sm shadow-none focus-visible:ring-0"}),(0,u.jsxs)("div",{className:"mt-1 flex justify-end gap-2",children:[(0,u.jsx)(m.Button,{type:"button",variant:"ghost",size:"sm",onClick:_,children:"取消"}),(0,u.jsx)(m.Button,{type:"button",size:"sm",disabled:!h.trim()||h.trim()===e.content,onClick:v,children:"保存并重发"})]})]}):(0,u.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:e.content}),!o&&(0,u.jsx)(iL,{align:"right",disabled:t,onCopy:A,onEdit:()=>{p(e.content),l(!0)},onResend:()=>b(!0),onDelete:()=>f(!0)})]}),(0,u.jsx)(T.ConfirmDialog,{open:d,onOpenChange:f,title:"删除此消息?",description:"该操作不可撤销。",confirmText:"删除",variant:"danger",onConfirm:()=>{r(e.id,{withNextAssistant:x}),f(!1)},children:(0,u.jsxs)("label",{className:"flex items-center gap-2 text-sm text-foreground",children:[(0,u.jsx)(L.Checkbox,{checked:x,onCheckedChange:e=>w(!0===e)}),"同时删除下方的 AI 回复"]})}),(0,u.jsx)(T.ConfirmDialog,{open:y,onOpenChange:b,title:"重新发送此消息?",description:"将丢弃下方所有消息并重新生成回答。",confirmText:"重新发送",onConfirm:()=>{b(!1),n(e.id)}})]})}function iR({message:e,busy:t,onDelete:r,onRegenerate:n}){let[i,a]=(0,c.useState)(!1),[s,o]=(0,c.useState)(!1),[l,h]=(0,c.useState)(!1),p="streaming"===e.status,d="error"===e.status,f=(e.reasoning?.length??0)>0,m=(e.content?.length??0)>0,g=f||p&&!m,y=!!e.usingRag&&!e.retrievalQuery,b=!!e.retrievalQuery&&!e.retrievedChunks,w=(e.retrievalGroups??[]).filter(e=>e.error).map(e=>({name:e.knowledgeBaseName,reason:e.error??""})),A=(0,c.useCallback)(()=>{if(e.content)try{navigator.clipboard&&window.isSecureContext?navigator.clipboard.writeText(e.content).then(()=>I.toast.success("已复制"),()=>{iE(e.content)}):iE(e.content)}catch{iE(e.content)}},[e.content]);return(0,u.jsxs)("div",{className:"group space-y-3 text-sm leading-relaxed","data-touched":i?"true":void 0,onClickCapture:()=>a(!0),children:[g?(0,u.jsx)(iM,{reasoning:e.reasoning??"",streaming:p,startedAt:e.reasoningStartedAt,completedAt:e.reasoningCompletedAt,intentExtracting:y,retrievalInFlight:b}):null,(0,u.jsx)(i$,{rewriteFailed:e.queryRewriteFailed,rewriteError:e.queryRewriteError,failedKbCount:w.length,failedKbDetails:w}),e.retrievalQueryRewritten&&e.retrievalQuery?(0,u.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,u.jsx)(N.Search,{className:"h-3 w-3 shrink-0"}),(0,u.jsx)("span",{className:"font-medium shrink-0",children:"检索关键词:"}),(0,u.jsx)("span",{className:"truncate font-mono text-foreground/80",children:e.retrievalQuery})]}):null,e.retrievedChunks&&e.retrievedChunks.length>0?(0,u.jsx)(iB,{chunks:e.retrievedChunks,groups:e.retrievalGroups}):null,e.memoryHits&&e.memoryHits.length>0?(0,u.jsx)(iD,{hits:e.memoryHits,query:e.memoryQuery}):null,d?(0,u.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,u.jsx)(x,{className:"mt-0.5 h-4 w-4 shrink-0"}),(0,u.jsx)("span",{className:"text-xs",children:e.errorMessage??"生成失败"})]}):(0,u.jsxs)("div",{className:"text-foreground/90",children:[(0,u.jsx)(iN,{children:e.content}),p?(0,u.jsx)("span",{className:"ml-0.5 inline-block h-3.5 w-1.5 animate-pulse bg-foreground align-baseline"}):null]}),(0,u.jsx)(iL,{align:"left",disabled:t||p,onCopy:A,onRegenerate:()=>h(!0),onDelete:()=>o(!0)}),(0,u.jsx)(T.ConfirmDialog,{open:s,onOpenChange:o,title:"删除此回复?",description:"该操作不可撤销。",confirmText:"删除",variant:"danger",onConfirm:()=>{r(e.id),o(!1)}}),(0,u.jsx)(T.ConfirmDialog,{open:l,onOpenChange:h,title:"重新生成此回复?",description:"将丢弃下方所有消息并重新生成。",confirmText:"重新生成",onConfirm:()=>{h(!1),n(e.id)}})]})}function iM({reasoning:e,streaming:t,startedAt:r,completedAt:n,intentExtracting:i,retrievalInFlight:a}){var s,o;let l,h,p,[d,f]=(0,c.useState)(!1),m=function(e,t){let[r,n]=(0,c.useState)(()=>Date.now());return((0,c.useEffect)(()=>{if(!e||t)return;let r=window.setInterval(()=>n(Date.now()),250);return()=>window.clearInterval(r)},[e,t]),e)?Math.max(0,(t??r)-e):null}(r,n),g=null!=m?(s=m,o=!t||!!n,h=Math.floor((l=Math.floor(s/1e3))/60),p=l%60,o?0===h?`用时 ${p} 秒`:`用时 ${h} 分 ${p} 秒`:`${h}:${String(p).padStart(2,"0")}`):null,y=t&&!n,x=e.length>0,w="正在思考";return x?w="深度思考中":a?w="正在检索知识库":i&&(w="检索意图提取"),(0,u.jsxs)(j.Collapsible,{open:d,onOpenChange:f,children:[(0,u.jsx)(j.CollapsibleTrigger,{asChild:!0,children:(0,u.jsxs)("button",{type:"button",disabled:!x,className:(0,b.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",y?"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",!x&&"cursor-default"),"aria-live":y?"polite":"off",children:[(0,u.jsxs)("span",{className:"relative inline-flex h-5 w-5 items-center justify-center",children:[y&&(0,u.jsx)("span",{"aria-hidden":!0,className:"absolute inset-0 rounded-full bg-[hsl(var(--primary))] opacity-40 blur-[6px] animate-thinking-aurora"}),(0,u.jsx)(v.Brain,{className:(0,b.cn)("relative h-3.5 w-3.5",y&&"animate-thinking-icon text-[hsl(var(--primary))]")})]}),y?(0,u.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:w}):(0,u.jsx)("span",{children:"已深度思考"}),g&&(0,u.jsxs)("span",{className:(0,b.cn)("tabular-nums text-[11px]",y?"text-[hsl(var(--primary)/0.75)]":"text-muted-foreground/80"),children:["· ",g]}),x&&(0,u.jsx)(_.ChevronDown,{className:(0,b.cn)("h-3 w-3 opacity-60 transition-transform duration-200",d&&"rotate-180",y&&"text-[hsl(var(--primary))]")})]})}),x&&(0,u.jsx)(j.CollapsibleContent,{children:(0,u.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:e})})]})}function iB({chunks:e,groups:t}){let[r,n]=(0,c.useState)(!1),i=new Map;e.forEach((e,t)=>{i.set(`${e.docId}#${e.chunkId}`,t+1)});let a=(t??[]).filter(e=>!e.error),s=(t??[]).filter(e=>e.error),o=a.length>=2||s.length>0;return(0,u.jsxs)(j.Collapsible,{open:r,onOpenChange:n,children:[(0,u.jsx)(j.CollapsibleTrigger,{asChild:!0,children:(0,u.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,u.jsx)(A.BookOpen,{className:"h-3.5 w-3.5"}),"查看 ",e.length," 个引用",o?(0,u.jsxs)("span",{className:"text-muted-foreground/70",children:["· ",a.length," 个知识库",s.length>0?`(${s.length} 失败)`:""]}):null,(0,u.jsx)(_.ChevronDown,{className:(0,b.cn)("h-3 w-3 transition-transform duration-200",r&&"rotate-180")})]})}),(0,u.jsx)(j.CollapsibleContent,{children:(0,u.jsx)("div",{className:"mt-2 space-y-3",children:o?(0,u.jsxs)(u.Fragment,{children:[a.map(e=>(0,u.jsx)(iO,{group:e,indexByKey:i},`ok-${e.knowledgeBaseName}`)),s.map(e=>(0,u.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,u.jsx)("span",{className:"font-medium",children:e.knowledgeBaseName}),(0,u.jsxs)("span",{className:"ml-2 text-[hsl(var(--destructive))/0.8]",children:["检索失败:",e.error]})]},`err-${e.knowledgeBaseName}`))]}):(0,u.jsx)("div",{className:"space-y-2",children:e.map((e,t)=>(0,u.jsx)(iG,{chunk:e,index:t+1},`${e.docId}-${e.chunkId}`))})})})]})}function iO({group:e,indexByKey:t}){return(0,u.jsxs)("div",{className:"space-y-2",children:[(0,u.jsxs)("div",{className:"flex items-center gap-2 text-xs font-medium text-muted-foreground",children:[(0,u.jsx)("span",{className:"text-foreground/80",children:e.knowledgeBaseName}),(0,u.jsxs)("span",{children:["· ",e.chunks.length," 条"]})]}),(0,u.jsx)("div",{className:"space-y-2 border-l-2 border-[hsl(var(--border))] pl-3",children:e.chunks.map(e=>{let r=`${e.docId}#${e.chunkId}`,n=t.get(r)??0;return(0,u.jsx)(iG,{chunk:e,index:n},`${e.docId}-${e.chunkId}`)})})]})}function iG({chunk:e,index:t}){let[r,n]=(0,c.useState)(null),[i,a]=(0,c.useState)(!1),s=e.ossKey?(0,b.extractFileName)(e.ossKey):"未知文件",o=e.chunkType?.toLowerCase()==="image",l=e.imageBase64?e.imageBase64.startsWith("data:")?e.imageBase64:`${P.IMAGE_FALLBACK_DATA_PREFIX}${e.imageBase64}`:void 0;return(0,u.jsxs)("div",{className:"rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--muted)/0.3)] p-3",children:[(0,u.jsxs)("div",{className:"mb-1.5 flex items-center gap-2 text-xs text-muted-foreground",children:[(0,u.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:t>0?t:"–"}),(0,u.jsx)("span",{className:"font-medium text-foreground/80",children:s}),(0,u.jsxs)("span",{children:["Chunk #",e.chunkId]}),o&&(0,u.jsx)("span",{className:"rounded bg-primary/10 px-1 py-0.5 text-[10px] font-medium text-primary",children:"IMAGE"}),(0,u.jsx)("span",{className:"ml-auto font-mono",children:e.score.toFixed(4)})]}),o&&l&&(0,u.jsx)("img",{src:l,alt:`Image chunk #${e.chunkId}`,className:"mt-2 max-w-[180px] max-h-[180px] object-contain rounded border border-border cursor-pointer hover:opacity-80 transition-opacity",onClick:()=>n(l)}),e.content&&(0,u.jsxs)("div",{className:"relative",children:[(0,u.jsx)("p",{className:(0,b.cn)("whitespace-pre-wrap text-xs text-foreground/80 cursor-pointer",!i&&"line-clamp-4",o&&"mt-2"),onClick:()=>a(e=>!e),children:e.content}),!i&&(0,u.jsx)("div",{className:"pointer-events-none absolute bottom-0 left-0 right-0 h-8 bg-gradient-to-t from-[hsl(var(--muted)/0.3)] to-transparent"}),(0,u.jsx)("button",{type:"button",className:"mt-1 text-[10px] text-muted-foreground hover:text-foreground",onClick:()=>a(e=>!e),children:i?"点击收起":"点击展开"})]}),(0,u.jsx)($.Dialog,{open:!!r,onOpenChange:()=>n(null),children:(0,u.jsxs)($.DialogContent,{className:"max-w-[90vw] max-h-[90vh] p-2 flex items-center justify-center border-none bg-black/90 data-[state=open]:animate-none data-[state=closed]:animate-none duration-0",children:[(0,u.jsx)($.DialogTitle,{className:"sr-only",children:"图片放大预览"}),r&&(0,u.jsx)("img",{src:r,alt:"放大预览",className:"max-w-full max-h-[85vh] object-contain"})]})})]})}function iD({hits:e,query:t}){let[r,n]=(0,c.useState)(!1);return(0,u.jsxs)(j.Collapsible,{open:r,onOpenChange:n,children:[(0,u.jsx)(j.CollapsibleTrigger,{asChild:!0,children:(0,u.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,u.jsx)(v.Brain,{className:"h-3.5 w-3.5"}),"参考 ",e.length," 条记忆",t?(0,u.jsxs)("span",{className:"max-w-[200px] truncate text-muted-foreground/70",children:["· ",t]}):null,(0,u.jsx)(_.ChevronDown,{className:(0,b.cn)("h-3 w-3 transition-transform duration-200",r&&"rotate-180")})]})}),(0,u.jsx)(j.CollapsibleContent,{children:(0,u.jsx)("div",{className:"mt-2 space-y-2",children:e.map((e,t)=>(0,u.jsx)(iU,{hit:e,index:t+1},e.unit.memcell_id??`${t}-${(e.unit.text??"").slice(0,16)}`))})})]})}function iU({hit:e,index:t}){let r=e.unit.memcell_id,n="number"==typeof e.score?e.score:void 0;return(0,u.jsxs)("div",{className:"rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--muted)/0.3)] p-3",children:[(0,u.jsxs)("div",{className:"mb-1.5 flex items-center gap-2 text-xs text-muted-foreground",children:[(0,u.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:t}),r?(0,u.jsx)("span",{className:"min-w-0 truncate font-mono text-foreground/80",title:r,children:r}):(0,u.jsx)("span",{className:"text-muted-foreground/70",children:"未命名记忆"}),e.source?(0,u.jsx)("span",{className:"rounded bg-[hsl(var(--muted))] px-1.5 py-0.5 text-[10px] uppercase tracking-wide text-muted-foreground",children:e.source}):null,(0,u.jsx)("span",{className:"ml-auto shrink-0 font-mono",children:void 0!==n?n.toFixed(4):"—"})]}),(0,u.jsx)("p",{className:"line-clamp-4 whitespace-pre-wrap text-xs text-foreground/80",children:e.unit.text})]})}iI.displayName="QaMessage",e.s(["QaChatPanel",0,function({messages:e,isStreaming:t,canSend:r,error:n,onSend:i,onStop:a,onDelete:s,onResend:o,onRegenerate:l,onEditSave:p,emptyState:x,disabledPlaceholder:w}){let[A,v]=(0,c.useState)(""),_=(0,c.useRef)(null),k=(0,c.useRef)(e.length);(0,c.useEffect)(()=>{let t=_.current;if(!t)return;let r=e.length>k.current;(k.current=e.length,r)?requestAnimationFrame(()=>{t.scrollTo({top:t.scrollHeight,behavior:"smooth"})}):t.scrollHeight-t.scrollTop-t.clientHeight<120&&t.scrollTo({top:t.scrollHeight,behavior:"smooth"})},[e]);let C=()=>{let e=A.trim();e&&r&&!t&&(i(e),v(""))};return(0,u.jsxs)("div",{className:"flex h-full min-h-0 flex-1 flex-col bg-[hsl(var(--card))]",children:[(0,u.jsx)("div",{ref:_,role:"log","aria-live":"polite","aria-relevant":"additions text","aria-busy":t,className:"flex-1 space-y-6 overflow-y-auto px-6 py-5",children:0===e.length?(0,u.jsx)("div",{className:"flex h-full min-h-[320px] items-center justify-center",children:(0,u.jsx)(y.EmptyState,{icon:h.MessageSquare,title:x?.title??"开始对话",description:x?.description??"输入问题,系统会先从知识库检索相关内容,再让大模型基于检索结果回答",action:x?.actionLabel&&x?.onAction?(0,u.jsx)(m.Button,{type:"button",onClick:x.onAction,children:x.actionLabel}):void 0})}):e.map(e=>(0,u.jsx)(iI,{message:e,busy:t,onDelete:s,onResend:o,onRegenerate:l,onEditSave:p},e.id))}),(0,u.jsxs)("div",{className:"border-t border-[hsl(var(--border))] bg-[hsl(var(--surface)/0.6)] px-4 py-3",children:[n&&(0,u.jsx)("p",{className:"mb-2 text-xs text-[hsl(var(--destructive))]",children:n}),(0,u.jsxs)("div",{className:"flex items-end gap-2",children:[(0,u.jsx)(g.Textarea,{value:A,onChange:e=>v(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||e.nativeEvent.isComposing||(e.preventDefault(),C())},placeholder:r?"输入问题,Enter 发送,Shift+Enter 换行":w??"请先在左侧选择模型...",disabled:!r,className:(0,b.cn)("min-h-[44px] max-h-40 resize-none text-sm"),rows:1}),t?(0,u.jsx)(m.Button,{type:"button",variant:"outline",size:"icon",onClick:a,title:"停止",children:(0,u.jsx)(f,{className:"h-4 w-4 fill-current"})}):(0,u.jsx)(m.Button,{type:"button",size:"icon",disabled:!r||!A.trim(),onClick:C,title:"发送",children:(0,u.jsx)(d,{className:"h-4 w-4"})})]})]})]})}],821122)},906962,e=>{"use strict";e.s(["newId",0,function(e="id"){return"u">typeof crypto&&"randomUUID"in crypto?crypto.randomUUID():`${e}_${Date.now()}_${Math.random().toString(36).slice(2)}`}])},550657,851024,109012,e=>{"use strict";var t=e.i(44501),r=e.i(101685),n=e.i(506703),i=e.i(497634),a=e.i(51517),s=e.i(358204),o=e.i(730068),l=e.i(942595),u=e.i(153139),c=e.i(766476),h=e.i(636766),p=e.i(166473),d=e.i(870036),f=e.i(543876),m=e.i(392820),g=e.i(247570),y=e.i(307166),b=e.i(876490);function x({value:e,options:a,onChange:o,disabled:c,fetching:p}){let[d,f]=(0,r.useState)(!1),[m,g]=(0,r.useState)(""),y=m.trim(),w=(0,r.useMemo)(()=>{if(!y)return a;let e=y.toLowerCase();return a.filter(t=>t.toLowerCase().includes(e))},[a,y]),A=a.some(e=>e.toLowerCase()===y.toLowerCase()),v=y.length>0&&!A,_=e=>{o(e),g(""),f(!1)};return(0,t.jsxs)(h.Popover,{open:d,onOpenChange:f,children:[(0,t.jsx)(h.PopoverTrigger,{asChild:!0,children:(0,t.jsxs)(l.Button,{type:"button",variant:"outline",role:"combobox","aria-expanded":d,disabled:c,className:"w-full justify-between font-normal",children:[(0,t.jsx)("span",{className:(0,b.cn)("truncate text-left",!e&&"text-[hsl(var(--subtle))]"),children:e||"选择或输入模型名"}),(0,t.jsx)(i.ChevronsUpDown,{className:"h-4 w-4 shrink-0 opacity-50"})]})}),(0,t.jsx)(h.PopoverContent,{align:"start",className:"w-[var(--radix-popover-trigger-width)] p-0",children:(0,t.jsxs)(u.Command,{shouldFilter:!1,children:[(0,t.jsx)(u.CommandInput,{placeholder:"搜索或输入模型名",value:m,onValueChange:g}),(0,t.jsxs)(u.CommandList,{children:[0!==w.length||v?null:(0,t.jsx)(u.CommandEmpty,{children:p?"正在拉取模型列表...":0===a.length?"点击「刷新列表」拉取可用模型":"无匹配结果"}),w.length>0&&(0,t.jsx)(u.CommandGroup,{heading:v?"可选模型":void 0,children:w.map(r=>(0,t.jsxs)(u.CommandItem,{value:r,onSelect:()=>_(r),children:[(0,t.jsx)(n.Check,{className:(0,b.cn)("h-4 w-4",e===r?"opacity-100":"opacity-0")}),(0,t.jsx)("span",{className:"truncate",children:r})]},r))}),v&&(0,t.jsx)(u.CommandGroup,{heading:"使用自定义",children:(0,t.jsxs)(u.CommandItem,{value:`__custom__${y}`,onSelect:()=>_(y),children:[(0,t.jsx)(s.Plus,{className:"h-4 w-4 text-[hsl(var(--primary))]"}),(0,t.jsxs)("span",{className:"truncate",children:['使用 "',y,'"']})]})})]})]})})]})}e.s(["LLMModelSelector",0,function({providerId:e,model:n,onProviderChange:i,onModelChange:s,autoSelectFirst:u=!1,providerLabel:h="Provider",modelLabel:b="Model"}){let{data:w=[],isLoading:A}=(0,d.useLLMProviders)(),{data:v,isFetching:_,refetch:k}=function(e,t={}){let{context:r,ready:n}=(0,y.useRuntimeContext)();return(0,f.useQuery)({queryKey:g.queryKeys.llmProviderModels(r.dataScopeKey,e),queryFn:()=>(0,m.fetchProviderModels)(e),enabled:n&&!!e&&(t.enabled??!0),staleTime:3e5,retry:!1})}(e||void 0,{enabled:!!e});(0,r.useEffect)(()=>{if(!u||e||0===w.length)return;let t=w[0];i(t.id,t.defaultModel??"")},[u,e,w]);let C=(0,r.useMemo)(()=>{let t=new Set;for(let e of(n&&t.add(n),v??[]))t.add(e.id);let r=w.find(t=>t.id===e);return r?.defaultModel&&t.add(r.defaultModel),Array.from(t)},[n,v,w,e]);return(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(c.Label,{className:"text-sm font-medium",children:h}),(0,t.jsxs)(p.Select,{value:e,onValueChange:e=>{let t=w.find(t=>t.id===e);i(e,t?.defaultModel??"")},disabled:A||0===w.length,children:[(0,t.jsx)(p.SelectTrigger,{children:(0,t.jsx)(p.SelectValue,{placeholder:A?"加载中...":0===w.length?"请先在「模型提供商」中创建配置":"选择 Provider"})}),(0,t.jsx)(p.SelectContent,{children:w.map(e=>(0,t.jsx)(p.SelectItem,{value:e.id,children:e.name},e.id))})]})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)(c.Label,{className:"text-sm font-medium",children:b}),(0,t.jsxs)(l.Button,{type:"button",variant:"ghost",size:"sm",className:"h-6 px-2 text-xs",disabled:!e||_,onClick:()=>k(),children:[_?(0,t.jsx)(a.Loader2,{className:"mr-1 h-3 w-3 animate-spin"}):(0,t.jsx)(o.RefreshCw,{className:"mr-1 h-3 w-3"}),"刷新列表"]})]}),(0,t.jsx)(x,{value:n,options:C,onChange:s,disabled:!e,fetching:_})]})]})}],550657);var w=e.i(45123);e.s(["SystemPromptInput",0,function({value:e,onChange:r,placeholder:n,helperText:i,rows:a=3,label:s="系统提示词"}){return(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(c.Label,{className:"text-sm font-medium",children:s}),(0,t.jsx)(w.Textarea,{rows:a,value:e,onChange:e=>r(e.target.value),placeholder:n,className:"text-sm"}),i&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:i})]})}],851024);var A=e.i(563805);e.s(["TemperatureSlider",0,function({value:e,onChange:r,min:n=0,max:i=2,step:a=.05,fallback:s=.7,label:o="温度"}){let l=(e??s).toFixed(2);return(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between text-sm",children:[(0,t.jsx)("span",{className:"font-medium",children:o}),(0,t.jsx)("span",{className:"font-mono text-xs text-muted-foreground",children:l})]}),(0,t.jsx)(A.Slider,{value:[e??s],min:n,max:i,step:a,onValueChange:e=>r(e[0]??s)})]})}],109012)},84625,e=>{"use strict";async function*t(e,t){let n=await fetch("/api/v1/llm/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e),signal:t});if(!n.ok||!n.body){let e=`Chat request failed with status ${n.status}`,t="STREAM_ERROR";try{let r=await n.json();e=r.message??e,t=r.code??t}catch{}yield{type:"error",code:t,message:e};return}let i=n.body.getReader(),a=new TextDecoder("utf-8"),s="";for(;;){let{value:e,done:t}=await i.read();if(t)break;let n=(s+=a.decode(e,{stream:!0})).indexOf("\n\n");for(;-1!==n;){let e=s.slice(0,n);s=s.slice(n+2);let t=r(e);t&&(yield t),n=s.indexOf("\n\n")}}if(s.trim()){let e=r(s);e&&(yield e)}}function r(e){let t=e.split("\n"),r=[];for(let e of t)!(!e||e.startsWith(":"))&&e.startsWith("data:")&&r.push(e.slice(5).trimStart());if(0===r.length)return null;try{return JSON.parse(r.join("\n"))}catch{return null}}e.s(["streamChat",0,t])},440596,786196,e=>{"use strict";var t=e.i(101685),r=e.i(84625),n=e.i(906962);function i(e,t){let r=e.findIndex(e=>e.id===t);return r<0?e:e.slice(0,r+1)}function a(e,t){let r=e.findIndex(e=>e.id===t);if(r<0)return e;let n=e.slice();return n.splice(r,1),n}function s(e,t){let r=e.findIndex(e=>e.id===t);if(r<0)return e;let n=e.slice(),i=e[r+1]&&"assistant"===e[r+1].role?2:1;return n.splice(r,i),n}e.s(["findUserAnchorAbove",0,function(e,t){let r=e.findIndex(e=>e.id===t);if(r<0)return null;for(let t=r-1;t>=0;t-=1)if("user"===e[t].role)return e[t];return null},"removeAt",0,a,"removePair",0,s,"truncateUpToAndIncluding",0,i],786196),e.s(["useQaChat",0,function(e){let[o,l]=(0,t.useState)([]),[u,c]=(0,t.useState)(!1),[h,p]=(0,t.useState)(null),d=(0,t.useRef)(null),f=(0,t.useRef)(e.onPersist);f.current=e.onPersist;let m=(0,t.useRef)(o);m.current=o;let g=(0,t.useRef)(e);g.current=e;let y=(0,t.useRef)(u);y.current=u;let b=(0,t.useRef)(new Map),x=(0,t.useRef)(null),w=(0,t.useCallback)(()=>{x.current=null;let e=b.current;if(0===e.size)return;let t=new Map(e);e.clear(),l(e=>e.map(e=>{let r=t.get(e.id);return r?{...e,...r.content?{content:e.content+r.content}:null,...r.reasoning?{reasoning:(e.reasoning??"")+r.reasoning}:null}:e}))},[]),A=(0,t.useCallback)(()=>{if(null===x.current){if("u"<typeof requestAnimationFrame)return void w();x.current=requestAnimationFrame(w)}},[w]),v=(0,t.useCallback)(()=>{null!==x.current&&"u">typeof cancelAnimationFrame&&cancelAnimationFrame(x.current),x.current=null},[]);(0,t.useEffect)(()=>v,[v]);let _=(0,t.useCallback)(()=>{d.current?.abort()},[]),k=(0,t.useCallback)(()=>{d.current?.abort(),m.current=[],l([]),p(null)},[]),C=(0,t.useCallback)(e=>{d.current?.abort(),m.current=e,l(e),p(null)},[]),S=(0,t.useCallback)(async(e,t,n)=>{let i=g.current,a=new AbortController;d.current=a;let s={current:!1},o={current:!1},u=t=>{l(r=>r.map(r=>r.id===e?{...r,...t}:r))};try{let l={activeInstance:i.activeInstance,providerId:i.providerId,model:i.model,messages:t,systemPrompt:i.systemPrompt,temperature:i.temperature,rag:i.rag,...i.memory?{memory:{...i.memory,turnId:n}}:{}};for await(let n of(function(e){try{return"1"===window.localStorage.getItem("tsagent.dev."+e)}catch{return!1}}("logChatRequest")&&(console.groupCollapsed("[chat] outgoing turn"),console.log("assistantId",e),console.log("messages",t),console.log("rag.knowledgeBases",i.rag?.knowledgeBases),console.groupEnd()),(0,r.streamChat)(l,a.signal)))if("query.rewritten"===n.type)u({retrievalQuery:n.query,retrievalQueryRewritten:n.query!==n.original});else if("query.fallback"===n.type)u({retrievalQuery:n.original,retrievalQueryRewritten:!1,queryRewriteFailed:!0,queryRewriteError:n.reason});else if("retrieval.done"===n.type)u({retrievedChunks:n.chunks,retrievalGroups:n.byKnowledgeBase});else if("memory.start"===n.type)u({memoryQuery:n.query});else if("memory.done"===n.type)u({memoryHits:n.hits});else if("memory.save.skipped"===n.type)console.warn("[chat] memory.save.skipped:",n.reason);else if("reasoning.delta"===n.type){let t=b.current.get(e)??{};t.reasoning=(t.reasoning??"")+n.delta,b.current.set(e,t),s.current||(s.current=!0,u({reasoningStartedAt:Date.now()})),A()}else if("content.delta"===n.type){let t=b.current.get(e)??{};t.content=(t.content??"")+n.delta,b.current.set(e,t),s.current&&!o.current&&(o.current=!0,u({reasoningCompletedAt:Date.now()})),A()}else if("error"===n.type){v(),w();let e={status:"error",errorMessage:`${n.code}: ${n.message}`};s.current&&!o.current&&(e.reasoningCompletedAt=Date.now()),u(e),p(n.message);break}else if("done"===n.type){v(),w();let e={status:"done"};s.current&&!o.current&&(e.reasoningCompletedAt=Date.now()),u(e);break}}catch(r){v(),w();let e=r instanceof DOMException&&"AbortError"===r.name,t=s.current&&!o.current?{reasoningCompletedAt:Date.now()}:void 0;if(e)u({status:"done",...t});else{let e=r instanceof Error?r.message:String(r);u({status:"error",errorMessage:e,...t}),p(e)}}finally{c(!1),d.current=null;let e=f.current;e&&e(m.current)}},[A,w,v]),N=(0,t.useCallback)(async e=>{let t=e.trim();if(!t||y.current)return;let r=g.current;if(!r.providerId||!r.model)return void p("请先选择模型与 Provider");p(null);let i=(0,n.newId)("turn"),a={id:(0,n.newId)(),role:"user",content:t,createdAt:Date.now(),status:"done",turnId:i},s=(0,n.newId)(),o=(r.rag?.knowledgeBases?.length??0)>0,u={id:s,role:"assistant",content:"",reasoning:"",createdAt:Date.now(),status:"streaming",usingRag:o},h=[...m.current,a].map(e=>({role:e.role,content:e.content})),d=[...m.current,a,u];m.current=d,l(d),c(!0),await S(s,h,i)},[S]),E=(0,t.useCallback)(async e=>{if(y.current)return;let t=g.current;if(!t.providerId||!t.model)return void p("请先选择模型与 Provider");let r=i(m.current,e),a=r[r.length-1];if(!a||"user"!==a.role)return;let s=a.turnId??(0,n.newId)("turn");if(!a.turnId){let e=r.length-1;r[e]={...a,turnId:s}}p(null);let o=(0,n.newId)(),u=(t.rag?.knowledgeBases?.length??0)>0,h={id:o,role:"assistant",content:"",reasoning:"",createdAt:Date.now(),status:"streaming",usingRag:u},d=r.map(e=>({role:e.role,content:e.content})),f=[...r,h];m.current=f,l(f),c(!0),await S(o,d,s)},[S]);return{messages:o,isStreaming:u,error:h,send:N,reissueTurn:E,deleteMessage:(0,t.useCallback)((e,t)=>{if(y.current)return;let r=m.current,n=r.find(t=>t.id===e);if(!n)return;let i="user"===n.role&&t?.withNextAssistant?s(r,e):a(r,e);m.current=i,l(i),f.current?.(i)},[]),editUserMessage:(0,t.useCallback)((e,t)=>{let r=m.current,n=r.findIndex(t=>t.id===e);if(n<0||"user"!==r[n].role)return null;let i=r.slice();return i[n]={...r[n],content:t},m.current=i,l(i),e},[]),stop:_,clear:k,setMessages:C}}],440596)},567730,e=>{"use strict";var t=e.i(307166);e.s(["useActiveInstance",0,function(){let{context:e,ready:r}=(0,t.useRuntimeContext)();return{activeInstance:e.activeInstance,ready:r,dataScopeKey:e.dataScopeKey,configRevision:e.configRevision}}])}]);
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,70666,e=>{"use strict";var s=e.i(44501),r=e.i(465581),t=e.i(831211),i=e.i(65958),n=e.i(480883),a=e.i(988310),o=e.i(832356),l=e.i(187014),d=e.i(942595),c=e.i(45123),m=e.i(321562),x=e.i(137500),u=e.i(712984),h=e.i(164204),j=e.i(247570);let b=o.z.object({description:o.z.string().trim().max(256,"描述不超过 256 字").optional(),extractInstructions:o.z.string().trim().max(4096,"抽取指令不超过 4096 字").optional()});function g({memoryStore:e}){let r,t=(r=(0,u.useQueryClient)(),(0,x.useMutation)({mutationFn:e=>(0,h.updateMemoryStore)(e),onSuccess:()=>{(0,j.invalidateMemoryQueries)(r)}})),i=(0,n.useForm)({resolver:(0,a.zodResolver)(b),defaultValues:{description:e.description??"",extractInstructions:e.extractInstructions??""}});async function o(s){try{let r=e.extractInstructions??"",i=s.extractInstructions??"",n=i!==r;await t.mutateAsync({memoryStoreName:e.memoryStoreName,description:s.description?.length?s.description:void 0,...n?{extractInstructions:i}:{}}),l.toast.success("记忆库设置已更新")}catch(e){l.toast.error(e instanceof Error?e.message:"更新记忆库失败")}}return(0,s.jsx)(m.Form,{...i,children:(0,s.jsxs)("form",{onSubmit:i.handleSubmit(o),className:"space-y-6",children:[(0,s.jsxs)("section",{className:"rounded-lg border border-[hsl(var(--border))] bg-[hsl(var(--card))] p-5 shadow-sm",children:[(0,s.jsx)(p,{title:"基本信息",description:"调整记忆库的描述,帮助团队识别用途。名称在创建后不可修改。"}),(0,s.jsxs)("div",{className:"space-y-4",children:[(0,s.jsx)(f,{label:"名称",value:e.memoryStoreName}),(0,s.jsx)(m.FormField,{control:i.control,name:"description",render:({field:e})=>(0,s.jsxs)(m.FormItem,{children:[(0,s.jsx)(m.FormLabel,{children:"描述"}),(0,s.jsx)(m.FormControl,{children:(0,s.jsx)(c.Textarea,{placeholder:"描述这个记忆库的用途...",className:"resize-none",rows:4,...e})}),(0,s.jsx)(m.FormMessage,{})]})})]})]}),(0,s.jsxs)("section",{className:"rounded-lg border border-[hsl(var(--border))] bg-[hsl(var(--card))] p-5 shadow-sm",children:[(0,s.jsx)(p,{title:"记忆抽取指令",description:"可选。这里填写的指令会注入到后台记忆抽取的提示词中,用于引导从对话里提炼哪些信息、忽略哪些信息。留空则使用默认抽取策略。"}),(0,s.jsx)(m.FormField,{control:i.control,name:"extractInstructions",render:({field:e})=>(0,s.jsxs)(m.FormItem,{children:[(0,s.jsx)(m.FormLabel,{children:"抽取指令"}),(0,s.jsx)(m.FormControl,{children:(0,s.jsx)(c.Textarea,{placeholder:"例如:重点关注用户的医疗术语与用药偏好;忽略寒暄与客套内容。",className:"resize-none",rows:5,...e})}),(0,s.jsx)(m.FormDescription,{children:"最多 4096 个字符。留空表示恢复默认抽取策略。"}),(0,s.jsx)(m.FormMessage,{})]})})]}),(0,s.jsx)("div",{className:"flex justify-end border-t border-[hsl(var(--border-light))] pt-4",children:(0,s.jsx)(d.Button,{type:"submit",disabled:t.isPending,children:t.isPending?"保存中...":"保存更改"})})]})})}function p({title:e,description:r}){return(0,s.jsxs)("header",{className:"mb-4 border-b border-[hsl(var(--border-light))] pb-3",children:[(0,s.jsx)("h3",{className:"text-[15px] font-semibold leading-tight text-[hsl(var(--foreground))]",children:e}),(0,s.jsx)("p",{className:"mt-1 text-xs leading-relaxed text-[hsl(var(--muted-foreground))]",children:r})]})}function f({label:e,value:r}){return(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[(0,s.jsx)("span",{className:"text-sm text-muted-foreground",children:e}),(0,s.jsx)("span",{className:"text-sm font-medium",children:r})]})}function N(e){if(!e)return"-";try{let s=new Date(e);if(isNaN(s.getTime()))return String(e);return s.toLocaleString("zh-CN",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"})}catch{return String(e)}}function v({title:e,description:r}){return(0,s.jsxs)("header",{className:"mb-4 border-b border-[hsl(var(--border-light))] pb-3",children:[(0,s.jsx)("h3",{className:"text-[15px] font-semibold leading-tight text-[hsl(var(--foreground))]",children:e}),(0,s.jsx)("p",{className:"mt-1 text-xs leading-relaxed text-[hsl(var(--muted-foreground))]",children:r})]})}function y({label:e,value:r}){return(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[(0,s.jsx)("span",{className:"text-sm text-muted-foreground",children:e}),(0,s.jsx)("span",{className:"text-sm font-medium",children:r})]})}e.s(["default",0,function(){let e=decodeURIComponent((0,r.useParams)().store),{data:n,isLoading:a}=(0,i.useMemoryStore)(e);return a?(0,s.jsxs)("div",{className:"space-y-6",children:[(0,s.jsx)(t.Skeleton,{className:"h-8 w-48"}),(0,s.jsx)(t.Skeleton,{className:"h-32 w-full"})]}):n?(0,s.jsxs)("div",{className:"grid gap-6 xl:grid-cols-[minmax(0,1fr)_320px]",children:[(0,s.jsx)(g,{memoryStore:n}),(0,s.jsx)("aside",{className:"space-y-6",children:(0,s.jsxs)("section",{className:"rounded-lg border border-[hsl(var(--border))] bg-[hsl(var(--card))] p-5 shadow-sm",children:[(0,s.jsx)(v,{title:"记忆库信息",description:"只读元数据,由服务端维护。"}),(0,s.jsxs)("div",{className:"space-y-3",children:[(0,s.jsx)(y,{label:"OTS 实例",value:n.otsInstance??"-"}),(0,s.jsx)(y,{label:"创建时间",value:N(n.createdAt)}),(0,s.jsx)(y,{label:"更新时间",value:N(n.updatedAt)}),n.lastSeenAt&&(0,s.jsx)(y,{label:"最近活跃",value:N(n.lastSeenAt)})]})]})})]}):(0,s.jsx)("div",{className:"py-12 text-center text-muted-foreground",children:"记忆库不存在"})}],70666)}]);
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,51517,e=>{"use strict";let t=(0,e.i(801685).default)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);e.s(["Loader2",0,t],51517)},534380,e=>{"use strict";let t=(0,e.i(801685).default)("calendar",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]]);e.s(["Calendar",0,t],534380)},869966,e=>{"use strict";var t=e.i(44501),s=e.i(101685),a=e.i(465581);let r=(0,e.i(801685).default)("arrow-down",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]);var n=e.i(890055),i=e.i(51517),l=e.i(237769),d=e.i(942595),o=e.i(831211),c=e.i(876490),x=e.i(481015),m=e.i(543876),u=e.i(164204),h=e.i(247570),g=e.i(307166);function p(e){let t=e.metadata?.speaker;if(t)return t;let s=(e.role??"user").toLowerCase();return"assistant"===s?"Assistant":"system"===s?"System":"User"}function f(e){if(!e)return"";try{return new Date(e).toDateString()}catch{return""}}function j(e){if(!e)return"";try{let t=new Date(e);if(isNaN(t.getTime()))return"";return t.toISOString()}catch{return""}}let v=[{bg:"bg-blue-600",text:"text-white"},{bg:"bg-emerald-600",text:"text-white"},{bg:"bg-violet-600",text:"text-white"},{bg:"bg-amber-500",text:"text-white"},{bg:"bg-rose-600",text:"text-white"},{bg:"bg-cyan-600",text:"text-white"},{bg:"bg-indigo-600",text:"text-white"},{bg:"bg-pink-600",text:"text-white"}];function b({label:e}){return(0,t.jsxs)("div",{className:"flex items-center gap-3 py-3",children:[(0,t.jsx)("div",{className:"h-px flex-1 bg-border"}),(0,t.jsx)("span",{className:"shrink-0 rounded-full bg-muted px-3 py-1 text-[11px] font-medium text-muted-foreground",children:e}),(0,t.jsx)("div",{className:"h-px flex-1 bg-border"})]})}let N=(0,s.memo)(function({message:e,showAvatar:s,showName:a,showTime:r}){var n;let i="user"===(e.role??"user").toLowerCase(),l=p(e),d=l?l.charAt(0).toUpperCase():"?",o=function(e){let t=0;for(let s=0;s<e.length;s++)t=31*t+e.charCodeAt(s)|0;return v[Math.abs(t)%v.length]}(l),x=function(e){if(!e)return"";try{let t=new Date(e);if(isNaN(t.getTime()))return"";return t.toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit"})}catch{return""}}(e.timestamp),m=(n=e.content)?n.replace(/^\[.*?\]\s*(?:\w+:\s*)?/,"").trim():"";return(0,t.jsxs)("div",{className:(0,c.cn)("flex gap-2.5",i?"flex-row-reverse":"flex-row",a?"mt-4":"mt-1"),children:[(0,t.jsx)("div",{className:"flex w-8 shrink-0 items-start pt-0.5",children:s&&(0,t.jsx)("div",{className:(0,c.cn)("flex h-8 w-8 items-center justify-center rounded-full text-xs font-semibold shadow-sm",o.bg,o.text),children:d})}),(0,t.jsxs)("div",{className:(0,c.cn)("flex max-w-[70%] flex-col",i?"items-end":"items-start"),children:[a&&(0,t.jsx)("span",{className:"mb-1 px-1 text-xs font-medium text-muted-foreground",children:l}),(0,t.jsx)("div",{className:(0,c.cn)("rounded-2xl px-3.5 py-2.5 text-[13.5px] leading-relaxed",i?"bg-blue-600 text-white rounded-tr-md":"bg-[hsl(var(--muted))] text-[hsl(var(--foreground))] rounded-tl-md"),children:(0,t.jsx)("p",{className:"whitespace-pre-wrap break-words",children:m})}),r&&x&&(0,t.jsx)("span",{className:"mt-1 px-1 text-[10px] text-muted-foreground/50",children:x})]})]})});var w=e.i(534380),y=e.i(723888),S=e.i(766476);function k({windowMinutes:e,onWindowChange:s,useCustom:a,customMin:r,customMax:n,onCustomMinChange:i,onCustomMaxChange:l,onToggleCustom:o}){return(0,t.jsxs)("div",{className:"flex flex-wrap items-end gap-3 border-b bg-background/80 px-5 py-3",children:[(0,t.jsx)(w.Calendar,{className:"h-4 w-4 shrink-0 text-muted-foreground mt-1"}),a?(0,t.jsxs)("div",{className:"flex items-end gap-2",children:[(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsx)(S.Label,{className:"text-[11px] text-muted-foreground",children:"起始时间"}),(0,t.jsx)(y.Input,{type:"datetime-local",value:r,onChange:e=>i(e.target.value),className:"h-8 w-[190px] text-xs"})]}),(0,t.jsx)("span",{className:"pb-1.5 text-xs text-muted-foreground",children:"—"}),(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsx)(S.Label,{className:"text-[11px] text-muted-foreground",children:"结束时间"}),(0,t.jsx)(y.Input,{type:"datetime-local",value:n,onChange:e=>l(e.target.value),className:"h-8 w-[190px] text-xs"})]}),(0,t.jsx)(d.Button,{variant:"link",size:"sm",className:"text-xs h-8",onClick:o,children:"快速选择"})]}):(0,t.jsxs)("div",{className:"flex items-end gap-2",children:[(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsx)(S.Label,{className:"text-[11px] text-muted-foreground",children:"时间窗口"}),(0,t.jsxs)("select",{className:"h-8 rounded-md border bg-background px-2 text-sm",value:e,onChange:e=>s(Number(e.target.value)),children:[(0,t.jsx)("option",{value:5,children:"最近 5 分钟"}),(0,t.jsx)("option",{value:30,children:"最近 30 分钟"}),(0,t.jsx)("option",{value:60,children:"最近 1 小时"}),(0,t.jsx)("option",{value:360,children:"最近 6 小时"}),(0,t.jsx)("option",{value:1440,children:"最近 1 天"}),(0,t.jsx)("option",{value:4320,children:"最近 3 天"}),(0,t.jsx)("option",{value:10080,children:"最近 7 天"}),(0,t.jsx)("option",{value:0,children:"不限"})]})]}),(0,t.jsx)(d.Button,{variant:"link",size:"sm",className:"text-xs h-8",onClick:o,children:"自定义范围"})]})]})}e.s(["default",0,function(){let e=(0,a.useParams)(),v=(0,a.useSearchParams)(),w=decodeURIComponent(e.store),y=v.toString(),S=(0,s.useMemo)(()=>(0,x.buildMemoryScope)(new URLSearchParams(y)),[y]),[C,T]=(0,s.useState)(1440),[M,D]=(0,s.useState)(!1),[_,F]=(0,s.useState)(""),[L,I]=(0,s.useState)(""),z=(0,s.useMemo)(()=>{if(M){let e={};return _&&(e.minTimestamp=j(_)),L&&(e.maxTimestamp=j(L)),Object.keys(e).length>0?e:void 0}if(0===C)return;let e=new Date;return{minTimestamp:new Date(e.getTime()-6e4*C).toISOString(),maxTimestamp:e.toISOString()}},[C,M,_,L]),q=JSON.stringify(z),A=(0,s.useRef)(q);(0,s.useEffect)(()=>{A.current!==q&&(A.current=q,R(void 0),B(new Set),K(new Map),W([]))},[q]);let[O,R]=(0,s.useState)(void 0),[U,B]=(0,s.useState)(new Set),[P,K]=(0,s.useState)(new Map),[E,H]=(0,s.useState)(!0),$=(0,s.useRef)(null),[J]=(0,s.useState)(50),[Q,W]=(0,s.useState)([]),G=(0,x.hasPreciseScope)(S),V=function(e,t,s,a=50,r=!0,n){let{context:i,ready:l}=(0,g.useRuntimeContext)();return(0,m.useQuery)({queryKey:h.queryKeys.memoryMessages(i.dataScopeKey,e,t,s,a,n),queryFn:()=>(0,u.listMemoryMessages)(e,t,{nextToken:s,limit:a,minTimestamp:n?.minTimestamp,maxTimestamp:n?.maxTimestamp}),enabled:l&&r&&!!e&&!!t?.appId,staleTime:3e4})}(w,G?S:null,O,J,G,z);(0,s.useEffect)(()=>{if(!V.data||!V.isFetched)return;let e=[...V.data.items??[]].reverse(),t=V.data.nextToken;U.has(O??"__initial__")||(W(t=>void 0===O?e:[...e,...t]),B(e=>new Set(e).add(O??"__initial__"))),void 0!==O&&K(e=>new Map(e).set(O,t))},[V.data,V.isFetched]),(0,s.useEffect)(()=>{!V.isFetching&&E&&$.current&&($.current.scrollTop=$.current.scrollHeight)},[Q,V.isFetching,E]);let X=(0,s.useCallback)(()=>{let e=$.current;e&&H(e.scrollHeight-e.scrollTop-e.clientHeight<100)},[]),Y=(0,s.useCallback)(()=>{$.current?.scrollTo({top:$.current.scrollHeight,behavior:"smooth"}),H(!0)},[]),Z=(0,s.useCallback)(()=>{if(V.isFetching)return;let e=O??"__initial__",t=void 0===O?V.data?.nextToken:P.get(e);t&&R(t)},[O,V.isFetching,V.data?.nextToken,P]),ee=void 0===O?V.data?.nextToken:P.get(O??"__initial__"),et=void 0!==ee&&""!==ee,es=!!S.appId,ea={windowMinutes:C,onWindowChange:T,useCustom:M,customMin:_,customMax:L,onCustomMinChange:F,onCustomMaxChange:I,onToggleCustom:()=>D(e=>!e)};return es?G?V.isLoading&&0===Q.length?(0,t.jsxs)("div",{className:"rounded-xl border bg-muted/20",children:[(0,t.jsx)(k,{...ea}),(0,t.jsx)("div",{className:"space-y-3 p-6",children:Array.from({length:5}).map((e,s)=>(0,t.jsxs)("div",{className:(0,c.cn)("flex gap-3",s%2==0?"":"flex-row-reverse"),children:[(0,t.jsx)(o.Skeleton,{className:"h-8 w-8 shrink-0 rounded-full"}),(0,t.jsx)(o.Skeleton,{className:(0,c.cn)("h-14 rounded-2xl",s%2==0?"w-3/5":"w-2/5")})]},s))})]}):(0,t.jsxs)("div",{className:"relative flex flex-col rounded-xl border bg-muted/20",children:[(0,t.jsx)(k,{...ea}),!E&&(0,t.jsx)("div",{className:"absolute bottom-12 right-4 z-10",children:(0,t.jsx)(d.Button,{variant:"secondary",size:"icon",className:"h-9 w-9 rounded-full shadow-lg border",onClick:Y,children:(0,t.jsx)(r,{className:"h-4 w-4"})})}),(0,t.jsxs)("div",{ref:$,onScroll:X,className:"flex max-h-[calc(100vh-440px)] min-h-[320px] flex-col overflow-y-auto px-5 py-4",children:[et&&(0,t.jsx)("div",{className:"mb-2 flex justify-center",children:(0,t.jsx)(d.Button,{variant:"ghost",size:"sm",onClick:Z,disabled:V.isFetching,className:"gap-1.5 text-xs text-muted-foreground hover:text-foreground",children:V.isFetching?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(i.Loader2,{className:"h-3.5 w-3.5 animate-spin"}),"加载中…"]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.ChevronUp,{className:"h-3.5 w-3.5"}),"加载更早的消息"]})})}),!et&&Q.length>0&&(0,t.jsx)("p",{className:"mb-2 text-center text-[11px] text-muted-foreground/50",children:"— 已加载全部消息 —"}),function(){if(0===Q.length)return(0,t.jsxs)("div",{className:"flex flex-col items-center justify-center py-20 text-muted-foreground",children:[(0,t.jsx)(l.MessageSquare,{className:"mb-2 h-5 w-5"}),(0,t.jsx)("span",{className:"text-sm",children:z?"该时间范围内暂无消息":"当前范围下暂无消息记录"})]});let e=[],s="",a="";return Q.forEach((r,n)=>{let i=f(r.timestamp),l=function(e){if(!e)return"";try{let t=new Date(e);if(isNaN(t.getTime()))return"";let s=new Date,a=new Date(s);if(a.setDate(a.getDate()-1),t.toDateString()===s.toDateString())return"今天";if(t.toDateString()===a.toDateString())return"昨天";return t.toLocaleDateString("zh-CN",{year:"numeric",month:"long",day:"numeric"})}catch{return""}}(r.timestamp),d=p(r);i&&i!==s&&(e.push((0,t.jsx)(b,{label:l},`date-${i}-${n}`)),a="",s=i);let o=Q[n+1],c=o?p(o):"",x=o?f(o.timestamp):"",m=!o||c!==d||x!==i,u=d!==a;e.push((0,t.jsx)(N,{message:r,showAvatar:u,showName:u,showTime:m},r.messageId??`${r.timestamp}-${n}`)),a=d}),e}()]}),Q.length>0&&(0,t.jsx)("div",{className:"border-t px-5 py-2.5",children:(0,t.jsxs)("span",{className:"text-[11px] text-muted-foreground",children:["共 ",Q.length," 条消息"]})})]}):(0,t.jsxs)("div",{className:"flex flex-col items-center justify-center rounded-xl border border-dashed py-16 text-muted-foreground",children:[(0,t.jsx)(l.MessageSquare,{className:"mb-2 h-5 w-5"}),(0,t.jsx)("span",{className:"text-sm",children:"请在上方范围栏中为所有字段设置具体值以查询短期记忆"})]}):(0,t.jsxs)("div",{className:"flex flex-col items-center justify-center rounded-xl border border-dashed py-16 text-muted-foreground",children:[(0,t.jsx)(l.MessageSquare,{className:"mb-2 h-5 w-5"}),(0,t.jsx)("span",{className:"text-sm",children:"请先在上方范围栏中填写「应用」"})]})}],869966)}]);