@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
@@ -34,7 +34,7 @@ import {
34
34
  } from "@/components/ui/collapsible";
35
35
  import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage } from "@/components/ui/form";
36
36
  import { useCreateDreamTask } from "@/hooks/use-create-dream-task";
37
- import type { MemoryScope } from "@/types/memory";
37
+ import type { DreamTaskType, MemoryScope } from "@/types/memory";
38
38
 
39
39
  interface DreamCreateDialogProps {
40
40
  memoryStoreName: string;
@@ -56,6 +56,7 @@ const scopeSchema = z
56
56
  });
57
57
 
58
58
  const formSchema = z.object({
59
+ taskType: z.enum(["memory", "skill", "profile"]),
59
60
  scopes: z.array(scopeSchema).min(1, "至少一个 scope"),
60
61
  applyMode: z.enum(["proposal", "safe_auto"]),
61
62
  scopeOutputMode: z.enum(["preserve_scope", "promote_scope"]).optional(),
@@ -99,6 +100,7 @@ export function MemoryDreamCreateDialog({
99
100
  const form = useForm<FormValues>({
100
101
  resolver: zodResolver(formSchema),
101
102
  defaultValues: {
103
+ taskType: "memory",
102
104
  scopes: [
103
105
  {
104
106
  // Filter out wildcard "*" placeholder values from the URL ScopeBar
@@ -130,6 +132,9 @@ export function MemoryDreamCreateDialog({
130
132
  name: "scopes",
131
133
  });
132
134
 
135
+ const taskType = form.watch("taskType");
136
+ const isMemoryType = taskType === "memory";
137
+
133
138
  const [advancedOpen, setAdvancedOpen] = useState(false);
134
139
  const [thresholdsOpen, setThresholdsOpen] = useState(false);
135
140
 
@@ -142,6 +147,8 @@ export function MemoryDreamCreateDialog({
142
147
  if (tUpdate !== undefined) thresholds.update = tUpdate;
143
148
  if (tMerge !== undefined) thresholds.merge = tMerge;
144
149
 
150
+ const isMemory = values.taskType === "memory";
151
+
145
152
  try {
146
153
  const result = await createMutation.mutateAsync({
147
154
  scopes: values.scopes.map((s) => {
@@ -151,8 +158,9 @@ export function MemoryDreamCreateDialog({
151
158
  if (s.runId) out.runId = s.runId;
152
159
  return out;
153
160
  }),
154
- applyMode: values.applyMode,
155
- ...(values.scopeOutputMode && { scopeOutputMode: values.scopeOutputMode }),
161
+ taskType: values.taskType,
162
+ ...(isMemory && { applyMode: values.applyMode }),
163
+ ...(isMemory && values.scopeOutputMode && { scopeOutputMode: values.scopeOutputMode }),
156
164
  ...(values.minTimestamp && { minTimestamp: values.minTimestamp }),
157
165
  ...(values.maxTimestamp && { maxTimestamp: values.maxTimestamp }),
158
166
  ...(parseOptionalInt(values.maxSessions) !== undefined && {
@@ -166,12 +174,17 @@ export function MemoryDreamCreateDialog({
166
174
  }),
167
175
  ...(values.instructions && { instructions: values.instructions }),
168
176
  ...(values.clientToken && { clientToken: values.clientToken }),
169
- ...(Object.keys(thresholds).length > 0 && {
177
+ ...(isMemory && Object.keys(thresholds).length > 0 && {
170
178
  confidenceThresholds: thresholds,
171
179
  }),
172
180
  });
173
181
 
174
- toast.success("记忆整理任务已创建");
182
+ const TOAST_MSG: Record<DreamTaskType, string> = {
183
+ memory: "记忆整理任务已创建",
184
+ skill: "技能抽取任务已创建",
185
+ profile: "用户画像任务已创建",
186
+ };
187
+ toast.success(TOAST_MSG[values.taskType]);
175
188
  onOpenChange(false);
176
189
  form.reset();
177
190
  router.push(
@@ -187,15 +200,38 @@ export function MemoryDreamCreateDialog({
187
200
  <Dialog open={open} onOpenChange={onOpenChange}>
188
201
  <DialogContent className="max-w-2xl">
189
202
  <DialogHeader>
190
- <DialogTitle>新建记忆整理任务</DialogTitle>
203
+ <DialogTitle>新建 Dream 任务</DialogTitle>
191
204
  <DialogDescription>
192
- Dream 会读取所选 scopes 下的消息与已有记忆,让 LLM 识别模式后生成动作建议(或自动应用)。
193
- 建议先用「建议模式」生成提案、人工审核后再应用。
205
+ Dream 会读取所选 scopes 下的消息与已有记忆,让 LLM 进行分析处理。
206
+ 记忆整理模式建议先用「建议模式」生成提案、人工审核后再应用。
194
207
  </DialogDescription>
195
208
  </DialogHeader>
196
209
 
197
210
  <Form {...form}>
198
211
  <form onSubmit={form.handleSubmit(onSubmit)} className="space-y-5">
212
+ <FormField
213
+ control={form.control}
214
+ name="taskType"
215
+ render={({ field }) => (
216
+ <FormItem>
217
+ <FormLabel>任务类型</FormLabel>
218
+ <Select onValueChange={field.onChange} defaultValue={field.value}>
219
+ <FormControl>
220
+ <SelectTrigger>
221
+ <SelectValue />
222
+ </SelectTrigger>
223
+ </FormControl>
224
+ <SelectContent>
225
+ <SelectItem value="memory">记忆整理 — 整合跨会话记忆</SelectItem>
226
+ <SelectItem value="skill">技能抽取 — 从对话中提取可复用技能</SelectItem>
227
+ <SelectItem value="profile">用户画像 — 整理用户画像</SelectItem>
228
+ </SelectContent>
229
+ </Select>
230
+ <FormMessage />
231
+ </FormItem>
232
+ )}
233
+ />
234
+
199
235
  <section className="space-y-3">
200
236
  <div className="flex items-center justify-between">
201
237
  <Label className="text-sm font-medium">Scope 范围</Label>
@@ -240,87 +276,98 @@ export function MemoryDreamCreateDialog({
240
276
  </div>
241
277
  </section>
242
278
 
243
- <section className="grid gap-3 sm:grid-cols-2">
244
- <FormField
245
- control={form.control}
246
- name="applyMode"
247
- render={({ field }) => (
248
- <FormItem>
249
- <FormLabel>应用模式</FormLabel>
250
- <Select onValueChange={field.onChange} defaultValue={field.value}>
251
- <FormControl>
252
- <SelectTrigger>
253
- <SelectValue />
254
- </SelectTrigger>
255
- </FormControl>
256
- <SelectContent>
257
- <SelectItem value="proposal">
258
- 建议模式(生成后人工 apply,推荐)
259
- </SelectItem>
260
- <SelectItem value="safe_auto">
261
- 安全自动(仅 ADD/UPDATE 自动;DELETE/跨 scope 仍需人工)
262
- </SelectItem>
263
- </SelectContent>
264
- </Select>
265
- <FormMessage />
266
- </FormItem>
267
- )}
268
- />
269
- <FormField
270
- control={form.control}
271
- name="scopeOutputMode"
272
- render={({ field }) => (
273
- <FormItem>
274
- <FormLabel>Scope 输出模式</FormLabel>
275
- <Select
276
- onValueChange={field.onChange}
277
- value={field.value ?? ""}
278
- >
279
- <FormControl>
280
- <SelectTrigger>
281
- <SelectValue placeholder="使用默认(preserve_scope)" />
282
- </SelectTrigger>
283
- </FormControl>
284
- <SelectContent>
285
- <SelectItem value="preserve_scope">保留原 scope</SelectItem>
286
- <SelectItem value="promote_scope">提升到父级 scope</SelectItem>
287
- </SelectContent>
288
- </Select>
289
- <FormMessage />
290
- </FormItem>
291
- )}
292
- />
293
- </section>
279
+ {isMemoryType && (
280
+ <section className="grid gap-3 sm:grid-cols-2">
281
+ <FormField
282
+ control={form.control}
283
+ name="applyMode"
284
+ render={({ field }) => (
285
+ <FormItem>
286
+ <FormLabel>应用模式</FormLabel>
287
+ <Select onValueChange={field.onChange} defaultValue={field.value}>
288
+ <FormControl>
289
+ <SelectTrigger>
290
+ <SelectValue />
291
+ </SelectTrigger>
292
+ </FormControl>
293
+ <SelectContent>
294
+ <SelectItem value="proposal">
295
+ 建议模式(生成后人工 apply,推荐)
296
+ </SelectItem>
297
+ <SelectItem value="safe_auto">
298
+ 安全自动(仅 ADD/UPDATE 自动;DELETE/跨 scope 仍需人工)
299
+ </SelectItem>
300
+ </SelectContent>
301
+ </Select>
302
+ <FormMessage />
303
+ </FormItem>
304
+ )}
305
+ />
306
+ <FormField
307
+ control={form.control}
308
+ name="scopeOutputMode"
309
+ render={({ field }) => (
310
+ <FormItem>
311
+ <FormLabel>Scope 输出模式</FormLabel>
312
+ <Select
313
+ onValueChange={field.onChange}
314
+ value={field.value ?? ""}
315
+ >
316
+ <FormControl>
317
+ <SelectTrigger>
318
+ <SelectValue placeholder="使用默认(preserve_scope)" />
319
+ </SelectTrigger>
320
+ </FormControl>
321
+ <SelectContent>
322
+ <SelectItem value="preserve_scope">保留原 scope</SelectItem>
323
+ <SelectItem value="promote_scope">提升到父级 scope</SelectItem>
324
+ </SelectContent>
325
+ </Select>
326
+ <FormMessage />
327
+ </FormItem>
328
+ )}
329
+ />
330
+ </section>
331
+ )}
294
332
 
295
333
  <FormField
296
334
  control={form.control}
297
335
  name="instructions"
298
- render={({ field }) => (
299
- <FormItem>
300
- <FormLabel>指令(可选)</FormLabel>
301
- <FormControl>
302
- <Textarea
303
- rows={2}
304
- placeholder="给 dream 规划器的额外指引"
305
- {...field}
306
- />
307
- </FormControl>
308
- </FormItem>
309
- )}
336
+ render={({ field }) => {
337
+ const placeholder: Record<DreamTaskType, string> = {
338
+ memory: "给 dream 规划器的额外指引",
339
+ skill: "指导技能抽取的方向,例如重点关注的领域",
340
+ profile: "用户画像整理的额外指引,例如需要关注的维度",
341
+ };
342
+ return (
343
+ <FormItem>
344
+ <FormLabel>指令(可选)</FormLabel>
345
+ <FormControl>
346
+ <Textarea
347
+ rows={2}
348
+ placeholder={placeholder[taskType]}
349
+ {...field}
350
+ />
351
+ </FormControl>
352
+ </FormItem>
353
+ );
354
+ }}
310
355
  />
311
356
 
312
- <Collapsible open={thresholdsOpen} onOpenChange={setThresholdsOpen}>
313
- <CollapsibleTrigger asChild>
314
- <Button type="button" variant="ghost" size="sm" className="px-0">
315
- {thresholdsOpen ? "" : ""} 置信度阈值
316
- </Button>
317
- </CollapsibleTrigger>
318
- <CollapsibleContent className="grid gap-3 pt-2 sm:grid-cols-3">
319
- <NumberField name="thresholdAdd" label="add" form={form} placeholder="0.7" />
320
- <NumberField name="thresholdUpdate" label="update" form={form} placeholder="0.6" />
321
- <NumberField name="thresholdMerge" label="merge" form={form} placeholder="0.6" />
322
- </CollapsibleContent>
323
- </Collapsible>
357
+ {isMemoryType && (
358
+ <Collapsible open={thresholdsOpen} onOpenChange={setThresholdsOpen}>
359
+ <CollapsibleTrigger asChild>
360
+ <Button type="button" variant="ghost" size="sm" className="px-0">
361
+ {thresholdsOpen ? "▾" : "▸"} 置信度阈值
362
+ </Button>
363
+ </CollapsibleTrigger>
364
+ <CollapsibleContent className="grid gap-3 pt-2 sm:grid-cols-3">
365
+ <NumberField name="thresholdAdd" label="add" form={form} placeholder="0.7" />
366
+ <NumberField name="thresholdUpdate" label="update" form={form} placeholder="0.6" />
367
+ <NumberField name="thresholdMerge" label="merge" form={form} placeholder="0.6" />
368
+ </CollapsibleContent>
369
+ </Collapsible>
370
+ )}
324
371
 
325
372
  <Collapsible open={advancedOpen} onOpenChange={setAdvancedOpen}>
326
373
  <CollapsibleTrigger asChild>
@@ -14,6 +14,7 @@ export interface MemorySearchValues {
14
14
  scope: MemoryScope;
15
15
  topK: number;
16
16
  enableRerank: boolean;
17
+ minSimilarity: number;
17
18
  metadata?: Record<string, string>;
18
19
  }
19
20
 
@@ -27,6 +28,7 @@ export function MemorySearchForm({ scope, isLoading, onSubmit }: MemorySearchFor
27
28
  const [query, setQuery] = useState("");
28
29
  const [topK, setTopK] = useState(10);
29
30
  const [enableRerank, setEnableRerank] = useState(true);
31
+ const [minSimilarity, setMinSimilarity] = useState(0);
30
32
  const [metadataJson, setMetadataJson] = useState("");
31
33
  const [error, setError] = useState<string | null>(null);
32
34
 
@@ -47,6 +49,10 @@ export function MemorySearchForm({ scope, isLoading, onSubmit }: MemorySearchFor
47
49
  setError("Top K 必须在 0 到 50 之间");
48
50
  return;
49
51
  }
52
+ if (minSimilarity < 0 || minSimilarity > 1) {
53
+ setError("相似度阈值必须在 0 到 1 之间");
54
+ return;
55
+ }
50
56
 
51
57
  try {
52
58
  await onSubmit({
@@ -54,6 +60,7 @@ export function MemorySearchForm({ scope, isLoading, onSubmit }: MemorySearchFor
54
60
  scope,
55
61
  topK,
56
62
  enableRerank,
63
+ minSimilarity,
57
64
  metadata: parseJsonObject(metadataJson),
58
65
  });
59
66
  } catch (err) {
@@ -100,6 +107,21 @@ export function MemorySearchForm({ scope, isLoading, onSubmit }: MemorySearchFor
100
107
  </div>
101
108
  </div>
102
109
 
110
+ <div className="space-y-2">
111
+ <Label>相似度阈值</Label>
112
+ <Input
113
+ type="number"
114
+ min={0}
115
+ max={1}
116
+ step={0.05}
117
+ value={minSimilarity}
118
+ onChange={(event) => setMinSimilarity(Number(event.target.value))}
119
+ />
120
+ <p className="text-xs text-muted-foreground">
121
+ 按归一化余弦相似度(0–1)过滤结果,0 表示不过滤。仅返回相似度不低于该值的命中。
122
+ </p>
123
+ </div>
124
+
103
125
  <div className="space-y-2">
104
126
  <Label>元数据过滤(JSON)</Label>
105
127
  <Textarea
@@ -64,8 +64,11 @@ export function MemorySearchResults({ results, elapsedMs }: MemorySearchResultsP
64
64
  <Card key={`${hit.unit.id ?? hit.unit.memoryId ?? index}-${index}`}>
65
65
  <CardContent className="space-y-3 p-4">
66
66
  <div className="flex flex-wrap items-center gap-2">
67
+ {hit.similarity !== undefined && (
68
+ <Badge variant="secondary">相似度 {hit.similarity.toFixed(4)}</Badge>
69
+ )}
67
70
  {hit.score !== undefined && (
68
- <Badge variant="secondary">相似度 {hit.score.toFixed(4)}</Badge>
71
+ <Badge variant="outline">相关度 {hit.score.toFixed(4)}</Badge>
69
72
  )}
70
73
  {hit.source && <Badge variant="outline">{hit.source}</Badge>}
71
74
  {hit.unit.unit_type && <Badge variant="outline">{hit.unit.unit_type}</Badge>}
@@ -9,6 +9,7 @@ import { Textarea } from "@/components/ui/textarea";
9
9
  import {
10
10
  Form,
11
11
  FormControl,
12
+ FormDescription,
12
13
  FormField,
13
14
  FormItem,
14
15
  FormLabel,
@@ -19,6 +20,11 @@ import type { MemoryStore } from "@/types/memory";
19
20
 
20
21
  const updateMemoryStoreSchema = z.object({
21
22
  description: z.string().trim().max(256, "描述不超过 256 字").optional(),
23
+ extractInstructions: z
24
+ .string()
25
+ .trim()
26
+ .max(4096, "抽取指令不超过 4096 字")
27
+ .optional(),
22
28
  });
23
29
 
24
30
  type UpdateMemoryStoreInput = z.infer<typeof updateMemoryStoreSchema>;
@@ -32,14 +38,27 @@ export function MemorySettingsForm({ memoryStore }: MemorySettingsFormProps) {
32
38
 
33
39
  const form = useForm<UpdateMemoryStoreInput>({
34
40
  resolver: zodResolver(updateMemoryStoreSchema),
35
- defaultValues: { description: memoryStore.description ?? "" },
41
+ defaultValues: {
42
+ description: memoryStore.description ?? "",
43
+ extractInstructions: memoryStore.extractInstructions ?? "",
44
+ },
36
45
  });
37
46
 
38
47
  async function onSubmit(values: UpdateMemoryStoreInput) {
39
48
  try {
49
+ // The currently-running server build may predate extractInstructions and
50
+ // rejects unknown JSON fields. Only include it in the PATCH when the user
51
+ // actually changed it, so description-only edits keep working. An empty
52
+ // string is a deliberate "clear" (the field uses pointer/PATCH semantics
53
+ // server-side once a newer build is deployed).
54
+ const initialInstructions = memoryStore.extractInstructions ?? "";
55
+ const nextInstructions = values.extractInstructions ?? "";
56
+ const instructionsChanged = nextInstructions !== initialInstructions;
57
+
40
58
  await updateStore.mutateAsync({
41
59
  memoryStoreName: memoryStore.memoryStoreName,
42
60
  description: values.description?.length ? values.description : undefined,
61
+ ...(instructionsChanged ? { extractInstructions: nextInstructions } : {}),
43
62
  });
44
63
  toast.success("记忆库设置已更新");
45
64
  } catch (error) {
@@ -76,14 +95,40 @@ export function MemorySettingsForm({ memoryStore }: MemorySettingsFormProps) {
76
95
  </FormItem>
77
96
  )}
78
97
  />
79
-
80
- <div className="flex justify-end border-t border-[hsl(var(--border-light))] pt-4">
81
- <Button type="submit" disabled={updateStore.isPending}>
82
- {updateStore.isPending ? "保存中..." : "保存更改"}
83
- </Button>
84
- </div>
85
98
  </div>
86
99
  </section>
100
+
101
+ <section className="rounded-lg border border-[hsl(var(--border))] bg-[hsl(var(--card))] p-5 shadow-sm">
102
+ <SettingsSectionHeader
103
+ title="记忆抽取指令"
104
+ description="可选。这里填写的指令会注入到后台记忆抽取的提示词中,用于引导从对话里提炼哪些信息、忽略哪些信息。留空则使用默认抽取策略。"
105
+ />
106
+ <FormField
107
+ control={form.control}
108
+ name="extractInstructions"
109
+ render={({ field }) => (
110
+ <FormItem>
111
+ <FormLabel>抽取指令</FormLabel>
112
+ <FormControl>
113
+ <Textarea
114
+ placeholder="例如:重点关注用户的医疗术语与用药偏好;忽略寒暄与客套内容。"
115
+ className="resize-none"
116
+ rows={5}
117
+ {...field}
118
+ />
119
+ </FormControl>
120
+ <FormDescription>最多 4096 个字符。留空表示恢复默认抽取策略。</FormDescription>
121
+ <FormMessage />
122
+ </FormItem>
123
+ )}
124
+ />
125
+ </section>
126
+
127
+ <div className="flex justify-end border-t border-[hsl(var(--border-light))] pt-4">
128
+ <Button type="submit" disabled={updateStore.isPending}>
129
+ {updateStore.isPending ? "保存中..." : "保存更改"}
130
+ </Button>
131
+ </div>
87
132
  </form>
88
133
  </Form>
89
134
  );
@@ -20,7 +20,7 @@ import {
20
20
  import { Skeleton } from "@/components/ui/skeleton";
21
21
  import { RelativeTime } from "@/components/shared/relative-time";
22
22
  import { useMemoryUnit } from "@/hooks/use-memory-unit";
23
- import { useMemoryMessages } from "@/hooks/use-memory-messages";
23
+ import { useTaskSourceMessages } from "@/hooks/use-task-source-messages";
24
24
  import { cn } from "@/lib/utils";
25
25
  import type { MemoryScope, MemoryTask, MemoryTaskStatus } from "@/types/memory";
26
26
 
@@ -81,26 +81,6 @@ function formatTime(value: string | undefined): string {
81
81
  return new Date(ms).toLocaleString("zh-CN");
82
82
  }
83
83
 
84
- /**
85
- * Compute a tight time window around the task's lifetime so the original-
86
- * conversation panel only loads messages that plausibly fed this task.
87
- *
88
- * The buffers are wide enough to absorb engine-side timestamp skew while
89
- * still keeping the panel focused on "the messages that this AddMemories
90
- * call ingested" rather than the entire session history.
91
- */
92
- function taskMessageWindow(task: MemoryTask): {
93
- minTimestamp?: string;
94
- maxTimestamp?: string;
95
- } {
96
- const created = toEpochMs(task.createdAt);
97
- const finished = toEpochMs(task.finishedAt) ?? toEpochMs(task.updatedAt);
98
- if (created === undefined) return {};
99
- const min = new Date(created - 60_000).toISOString();
100
- const max = new Date((finished ?? created) + 60_000).toISOString();
101
- return { minTimestamp: min, maxTimestamp: max };
102
- }
103
-
104
84
  export function MemoryTasksTable({
105
85
  tasks,
106
86
  memoryStoreName,
@@ -286,21 +266,10 @@ function OriginalMessagesPanel({
286
266
  task: MemoryTask;
287
267
  memoryStoreName: string;
288
268
  }) {
289
- const { minTimestamp, maxTimestamp } = taskMessageWindow(task);
290
- const query = useMemoryMessages(
269
+ const { messages, isLoading, precise } = useTaskSourceMessages(
291
270
  memoryStoreName,
292
- task.scope,
293
- undefined,
294
- 50,
295
- Boolean(memoryStoreName && task.scope?.appId),
296
- { minTimestamp, maxTimestamp },
271
+ task,
297
272
  );
298
-
299
- const messages = query.data?.items ?? [];
300
- // Engine writes both the original turn and any system events in the same
301
- // table, so on noisy stores this list can have non-conversational rows;
302
- // we render whatever has a `content` string and let the styling do the
303
- // rest. The window is already narrowed by createdAt±60s so it's small.
304
273
  const renderable = messages.filter(
305
274
  (m) => typeof m.content === "string" && m.content.length > 0,
306
275
  );
@@ -310,17 +279,19 @@ function OriginalMessagesPanel({
310
279
  <header className="mb-2 flex items-center justify-between">
311
280
  <h4 className="text-sm font-semibold">原始会话</h4>
312
281
  <span className="text-[10px] text-muted-foreground">
313
- 任务时间窗口内的消息
282
+ {precise ? "该任务提取记忆所依据的消息" : "任务时间窗口内的消息"}
314
283
  </span>
315
284
  </header>
316
- {query.isLoading ? (
285
+ {isLoading ? (
317
286
  <div className="space-y-2">
318
287
  <Skeleton className="h-12 w-full" />
319
288
  <Skeleton className="h-12 w-full" />
320
289
  </div>
321
290
  ) : renderable.length === 0 ? (
322
291
  <p className="rounded border border-dashed border-[hsl(var(--border))] py-4 text-center text-xs italic text-muted-foreground">
323
- 未在该时间窗口内找到原始会话消息
292
+ {precise
293
+ ? "未找到该任务对应的原始消息(可能已被清理)"
294
+ : "未在该任务范围内找到原始会话消息"}
324
295
  </p>
325
296
  ) : (
326
297
  <ul className="max-h-[420px] space-y-2 overflow-auto pr-1">
@@ -30,7 +30,7 @@ import {
30
30
  DialogTitle,
31
31
  } from "@/components/ui/dialog";
32
32
  import { ConfirmDialog } from "@/components/shared/confirm-dialog";
33
- import { cn } from "@/lib/utils";
33
+ import { cn, extractFileName } from "@/lib/utils";
34
34
  import { IMAGE_FALLBACK_DATA_PREFIX } from "@/lib/constants";
35
35
  import type {
36
36
  ChatMessage,
@@ -927,8 +927,7 @@ function GroupedChunkList({
927
927
  function ChunkCard({ chunk, index }: { chunk: RetrievedChunk; index: number }) {
928
928
  const [zoomedImage, setZoomedImage] = useState<string | null>(null);
929
929
  const [expanded, setExpanded] = useState(false);
930
- const fileName =
931
- chunk.ossKey?.split("/").pop() || chunk.ossKey || "未知文件";
930
+ const fileName = chunk.ossKey ? extractFileName(chunk.ossKey) : "未知文件";
932
931
 
933
932
  const isImageChunk = chunk.chunkType?.toLowerCase() === "image";
934
933
  const imageSrc = chunk.imageBase64
@@ -4,6 +4,7 @@ import { Badge } from "@/components/ui/badge";
4
4
  import { Dialog, DialogContent, DialogTitle } from "@/components/ui/dialog";
5
5
  import type { RetrievalResult } from "@/types/retrieval";
6
6
  import { IMAGE_FALLBACK_DATA_PREFIX } from "@/lib/constants";
7
+ import { extractFileName } from "@/lib/utils";
7
8
 
8
9
  interface RetrievalResultCardProps {
9
10
  result: RetrievalResult;
@@ -12,7 +13,7 @@ interface RetrievalResultCardProps {
12
13
 
13
14
  export function RetrievalResultCard({ result, rank }: RetrievalResultCardProps) {
14
15
  const [zoomedImage, setZoomedImage] = useState<string | null>(null);
15
- const fileName = result.ossKey?.split("/").pop() || result.ossKey || "未知文件";
16
+ const fileName = result.ossKey ? extractFileName(result.ossKey) : "未知文件";
16
17
 
17
18
  const isImageChunk = result.chunkType?.toLowerCase() === "image";
18
19
  const chunkBadgeVariant = isImageChunk ? "default" : "secondary";