@tablestore/tablestore-agent-cli 0.2.6 → 0.2.8

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 (281) hide show
  1. package/dist/commands/configure.d.ts.map +1 -1
  2. package/dist/commands/configure.js +10 -5
  3. package/dist/commands/configure.js.map +1 -1
  4. package/dist/commands/dashboard.d.ts.map +1 -1
  5. package/dist/commands/dashboard.js +7 -1
  6. package/dist/commands/dashboard.js.map +1 -1
  7. package/dist/commands/doctor.d.ts.map +1 -1
  8. package/dist/commands/doctor.js +46 -11
  9. package/dist/commands/doctor.js.map +1 -1
  10. package/dist/dashboard-runtime/dashboard/.next/BUILD_ID +1 -1
  11. package/dist/dashboard-runtime/dashboard/.next/build-manifest.json +3 -3
  12. package/dist/dashboard-runtime/dashboard/.next/prerender-manifest.json +3 -3
  13. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/api-keys/page.js.nft.json +1 -1
  14. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/api-keys/page_client-reference-manifest.js +1 -1
  15. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
  16. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
  17. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/documents/page.js.nft.json +1 -1
  18. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/documents/page_client-reference-manifest.js +1 -1
  19. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/page.js.nft.json +1 -1
  20. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/page_client-reference-manifest.js +1 -1
  21. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/qa/page.js.nft.json +1 -1
  22. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/qa/page_client-reference-manifest.js +1 -1
  23. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/retrieval/page.js.nft.json +1 -1
  24. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/retrieval/page_client-reference-manifest.js +1 -1
  25. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/settings/page.js.nft.json +1 -1
  26. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/settings/page_client-reference-manifest.js +1 -1
  27. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/create/page.js.nft.json +1 -1
  28. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/create/page_client-reference-manifest.js +1 -1
  29. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/page.js.nft.json +1 -1
  30. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/page_client-reference-manifest.js +1 -1
  31. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/[id]/page.js.nft.json +1 -1
  32. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/[id]/page_client-reference-manifest.js +1 -1
  33. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/new/page.js.nft.json +1 -1
  34. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/new/page_client-reference-manifest.js +1 -1
  35. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/page.js.nft.json +1 -1
  36. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/page_client-reference-manifest.js +1 -1
  37. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/dream/[dreamId]/page.js.nft.json +1 -1
  38. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/dream/[dreamId]/page_client-reference-manifest.js +1 -1
  39. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/dream/page.js.nft.json +1 -1
  40. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/dream/page_client-reference-manifest.js +1 -1
  41. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/messages/page.js.nft.json +1 -1
  42. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/messages/page_client-reference-manifest.js +1 -1
  43. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/page.js.nft.json +1 -1
  44. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/page_client-reference-manifest.js +1 -1
  45. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/requests/page.js.nft.json +1 -1
  46. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/requests/page_client-reference-manifest.js +1 -1
  47. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/search/page.js.nft.json +1 -1
  48. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/search/page_client-reference-manifest.js +1 -1
  49. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/settings/page.js.nft.json +1 -1
  50. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/settings/page_client-reference-manifest.js +1 -1
  51. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/tasks/page.js.nft.json +1 -1
  52. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/tasks/page_client-reference-manifest.js +1 -1
  53. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/units/page.js.nft.json +1 -1
  54. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/units/page_client-reference-manifest.js +1 -1
  55. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/create/page.js.nft.json +1 -1
  56. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/create/page_client-reference-manifest.js +1 -1
  57. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/page.js.nft.json +1 -1
  58. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/page_client-reference-manifest.js +1 -1
  59. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/projects/page.js.nft.json +1 -1
  60. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/projects/page_client-reference-manifest.js +1 -1
  61. package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.html +1 -1
  62. package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.rsc +1 -1
  63. package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  64. package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  65. package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  66. package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  67. package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  68. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  69. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.html +1 -1
  70. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.rsc +14 -14
  71. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_full.segment.rsc +14 -14
  72. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_head.segment.rsc +3 -3
  73. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_index.segment.rsc +10 -10
  74. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
  75. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  76. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  77. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/api-keys/[id]/custom-policy/route.js.nft.json +1 -1
  78. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/api-keys/[id]/effective-permissions/route.js.nft.json +1 -1
  79. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/api-keys/[id]/policies/route.js.nft.json +1 -1
  80. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/api-keys/[id]/route.js.nft.json +1 -1
  81. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/api-keys/filter-by-permission/route.js.nft.json +1 -1
  82. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/api-keys/route.js.nft.json +1 -1
  83. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/auth/status/route.js.nft.json +1 -1
  84. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/auth/token/route.js.nft.json +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.nft.json +1 -1
  87. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/[name]/use/route.js.nft.json +1 -1
  88. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/route.js.nft.json +1 -1
  89. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/chunks/route.js.nft.json +1 -1
  90. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/[docId]/chunks/route.js.nft.json +1 -1
  91. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/[docId]/route.js.nft.json +1 -1
  92. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/route.js.nft.json +1 -1
  93. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/upload/route.js.nft.json +1 -1
  94. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/retrieve/route.js.nft.json +1 -1
  95. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/route.js.nft.json +1 -1
  96. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/route.js.nft.json +1 -1
  97. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/chat/route.js.nft.json +1 -1
  98. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/[id]/models/route.js.nft.json +1 -1
  99. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/[id]/route.js.nft.json +1 -1
  100. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/[id]/test/route.js.nft.json +1 -1
  101. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/route.js.nft.json +1 -1
  102. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/logs/client/route.js.nft.json +1 -1
  103. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/dream-tasks/[dreamId]/actions/apply/route.js.nft.json +1 -1
  104. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/dream-tasks/[dreamId]/actions/route.js.nft.json +1 -1
  105. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/dream-tasks/[dreamId]/cancel/route.js.nft.json +1 -1
  106. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/dream-tasks/[dreamId]/route.js.nft.json +1 -1
  107. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/dream-tasks/route.js.nft.json +1 -1
  108. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/messages/route.js.nft.json +1 -1
  109. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/requests/route.js.nft.json +1 -1
  110. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/route.js.nft.json +1 -1
  111. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/scopes/route.js.nft.json +1 -1
  112. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/search/route.js.nft.json +1 -1
  113. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/tasks/[requestId]/route.js.nft.json +1 -1
  114. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/tasks/route.js.nft.json +1 -1
  115. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/units/[memoryId]/route.js.nft.json +1 -1
  116. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/units/route.js.nft.json +1 -1
  117. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/route.js.nft.json +1 -1
  118. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/oss/list/route.js.nft.json +1 -1
  119. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/runtime/context/route.js.nft.json +1 -1
  120. package/dist/dashboard-runtime/dashboard/.next/server/app/index.html +1 -1
  121. package/dist/dashboard-runtime/dashboard/.next/server/app/index.rsc +14 -14
  122. package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  123. package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/_full.segment.rsc +14 -14
  124. package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/_head.segment.rsc +3 -3
  125. package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/_index.segment.rsc +10 -10
  126. package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  127. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  128. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.html +1 -1
  129. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.rsc +17 -17
  130. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/_full.segment.rsc +17 -17
  131. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/_head.segment.rsc +3 -3
  132. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/_index.segment.rsc +10 -10
  133. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/_tree.segment.rsc +2 -2
  134. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/onboarding/__PAGE__.segment.rsc +4 -4
  135. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/onboarding.segment.rsc +4 -4
  136. package/dist/dashboard-runtime/dashboard/.next/server/app/page_client-reference-manifest.js +1 -1
  137. package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0.y01v.._.js +8 -8
  138. package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__04zbudf._.js +1 -1
  139. package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__05eryp~._.js +1 -1
  140. package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__06fva9g._.js +1 -1
  141. package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0cyd2qb._.js +1 -1
  142. package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0wa~r66._.js +8 -8
  143. package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__10k~3sa._.js +8 -8
  144. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/0b1r_app_(dashboard)_knowledge-base_[name]_documents_documents-client_tsx_0g2uxmt._.js +1 -1
  145. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0brqbty._.js +1 -1
  146. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/{_0nmv74v._.js → _0l-4ms-._.js} +2 -2
  147. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/{_0lf_p5l._.js → _0pe9ntc._.js} +2 -2
  148. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0tej2s.._.js +3 -0
  149. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/{_0jl78rk._.js → _0x05u0y._.js} +2 -2
  150. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0~5g0_a._.js +1 -1
  151. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_00ofp7q._.js +1 -1
  152. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_0l1.0wg._.js +1 -1
  153. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_0o9jhcn._.js +2 -2
  154. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_0y49vhd._.js +1 -1
  155. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_10dsqx~._.js +1 -1
  156. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_app_(dashboard)_memory_[store]_dream_[dreamId]_page_tsx_0wy3tv6._.js +1 -1
  157. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_app_(dashboard)_memory_[store]_dream_page_tsx_0uzzpvs._.js +1 -1
  158. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_app_(dashboard)_memory_[store]_layout_tsx_0rbi41w._.js +1 -1
  159. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_app_(dashboard)_memory_[store]_settings_page_tsx_0y26.xu._.js +1 -1
  160. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_app_(dashboard)_memory_[store]_tasks_page_tsx_0a_bgx4._.js +1 -1
  161. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_app_(dashboard)_memory_[store]_units_page_tsx_0.6xnei._.js +1 -1
  162. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_providers_runtime-context-provider_tsx_0wmj66z._.js +1 -1
  163. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/node_modules__pnpm_00arje5._.js +1 -1
  164. package/dist/dashboard-runtime/dashboard/.next/server/middleware-build-manifest.js +3 -3
  165. package/dist/dashboard-runtime/dashboard/.next/server/pages/404.html +1 -1
  166. package/dist/dashboard-runtime/dashboard/.next/server/pages/500.html +1 -1
  167. package/dist/dashboard-runtime/dashboard/.next/server/server-reference-manifest.js +1 -1
  168. package/dist/dashboard-runtime/dashboard/.next/server/server-reference-manifest.json +1 -1
  169. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0-ldkvvj51n5..js +5 -0
  170. package/dist/dashboard-runtime/dashboard/.next/static/chunks/01ccz9pw1s5-1.js +1 -0
  171. package/dist/dashboard-runtime/dashboard/.next/static/chunks/05d8-45s941bx.js +1 -0
  172. package/dist/dashboard-runtime/dashboard/.next/static/chunks/{154l918khtf32.js → 076wjt8-f7ws0.js} +1 -1
  173. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0axe89r5c7p_b.js +1 -0
  174. package/dist/dashboard-runtime/dashboard/.next/static/chunks/{0ro5-~k1_6.ji.js → 0b2g7gajnlz-x.js} +2 -2
  175. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0czi-68m5cma3.js +1 -0
  176. package/dist/dashboard-runtime/dashboard/.next/static/chunks/{0u6g.bq1prqh8.js → 0eg702en0ykod.js} +1 -1
  177. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0gqhfku~on4t1.js +1 -0
  178. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0i_66eb3teu-..js +1 -0
  179. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0jwl.kgoaubdz.js +1 -0
  180. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0o3sqa_d7_k15.js +1 -0
  181. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0oatn7x1t1x~~.js +1 -0
  182. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0p7-v~ggg-k3s.js +1 -0
  183. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0xnm11dm1-qw2.js +1 -0
  184. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0zp_ao86_7617.js +1 -0
  185. package/dist/dashboard-runtime/dashboard/.next/static/chunks/11daw7hfc5lbv.js +1 -0
  186. package/dist/dashboard-runtime/dashboard/.next/static/chunks/140~~66uc8843.css +1 -0
  187. package/dist/dashboard-runtime/dashboard/.next/static/chunks/1692-f0t3ef~c.js +1 -0
  188. package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/layout.tsx +7 -2
  189. package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/memory/[store]/dream/[dreamId]/page.tsx +79 -19
  190. package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/memory/[store]/dream/page.tsx +157 -66
  191. package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/memory/[store]/layout.tsx +1 -1
  192. package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/memory/[store]/search/page.tsx +4 -0
  193. package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/memory/[store]/units/page.tsx +1 -2
  194. package/dist/dashboard-runtime/dashboard/src/app/api/v1/instances/[name]/route.ts +3 -0
  195. package/dist/dashboard-runtime/dashboard/src/app/api/v1/instances/[name]/token/route.ts +1 -0
  196. package/dist/dashboard-runtime/dashboard/src/app/api/v1/instances/[name]/use/route.ts +1 -0
  197. package/dist/dashboard-runtime/dashboard/src/app/api/v1/instances/route.ts +2 -0
  198. package/dist/dashboard-runtime/dashboard/src/components/instance/connect-instance-form.tsx +49 -10
  199. package/dist/dashboard-runtime/dashboard/src/components/instance/edit-instance-dialog.tsx +8 -0
  200. package/dist/dashboard-runtime/dashboard/src/components/memory/memory-create-form.tsx +35 -1
  201. package/dist/dashboard-runtime/dashboard/src/components/memory/memory-dream-actions-table.tsx +176 -82
  202. package/dist/dashboard-runtime/dashboard/src/components/memory/memory-dream-apply-confirm-dialog.tsx +2 -0
  203. package/dist/dashboard-runtime/dashboard/src/components/memory/memory-dream-create-dialog.tsx +130 -83
  204. package/dist/dashboard-runtime/dashboard/src/components/memory/memory-search-form.tsx +22 -0
  205. package/dist/dashboard-runtime/dashboard/src/components/memory/memory-search-results.tsx +4 -1
  206. package/dist/dashboard-runtime/dashboard/src/components/memory/memory-settings-form.tsx +52 -7
  207. package/dist/dashboard-runtime/dashboard/src/components/memory/memory-tasks-table.tsx +8 -37
  208. package/dist/dashboard-runtime/dashboard/src/hooks/use-dream-tasks.ts +96 -13
  209. package/dist/dashboard-runtime/dashboard/src/hooks/use-task-source-messages.ts +179 -0
  210. package/dist/dashboard-runtime/dashboard/src/lib/memory.ts +75 -1
  211. package/dist/dashboard-runtime/dashboard/src/lib/server/sdk-client.ts +17 -3
  212. package/dist/dashboard-runtime/dashboard/src/schemas/instance.ts +56 -4
  213. package/dist/dashboard-runtime/dashboard/src/types/instance.ts +10 -2
  214. package/dist/dashboard-runtime/dashboard/src/types/memory.ts +32 -2
  215. package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/internal/auth-options.d.ts +25 -0
  216. package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/internal/auth-options.d.ts.map +1 -0
  217. package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/internal/auth-options.js +29 -0
  218. package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/internal/auth-options.js.map +1 -0
  219. package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/kb-client.d.ts.map +1 -1
  220. package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/kb-client.js +4 -5
  221. package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/kb-client.js.map +1 -1
  222. package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/managed-ots.d.ts.map +1 -1
  223. package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/managed-ots.js +11 -2
  224. package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/managed-ots.js.map +1 -1
  225. package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/memory-client.d.ts.map +1 -1
  226. package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/memory-client.js +2 -3
  227. package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/memory-client.js.map +1 -1
  228. package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/tsconfig.tsbuildinfo +1 -1
  229. package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-shared/dist/config.d.ts.map +1 -1
  230. package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-shared/dist/config.js +9 -1
  231. package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-shared/dist/config.js.map +1 -1
  232. package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-shared/dist/constants.d.ts +9 -1
  233. package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-shared/dist/constants.d.ts.map +1 -1
  234. package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-shared/dist/constants.js +18 -0
  235. package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-shared/dist/constants.js.map +1 -1
  236. package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-shared/dist/tsconfig.tsbuildinfo +1 -1
  237. package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-shared/dist/types.d.ts +9 -0
  238. package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-shared/dist/types.d.ts.map +1 -1
  239. package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/internal/auth-options.d.ts +25 -0
  240. package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/internal/auth-options.d.ts.map +1 -0
  241. package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/internal/auth-options.js +29 -0
  242. package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/internal/auth-options.js.map +1 -0
  243. package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/kb-client.d.ts.map +1 -1
  244. package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/kb-client.js +4 -5
  245. package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/kb-client.js.map +1 -1
  246. package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/managed-ots.d.ts.map +1 -1
  247. package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/managed-ots.js +11 -2
  248. package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/managed-ots.js.map +1 -1
  249. package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/memory-client.d.ts.map +1 -1
  250. package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/memory-client.js +2 -3
  251. package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/memory-client.js.map +1 -1
  252. package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/tsconfig.tsbuildinfo +1 -1
  253. package/dist/node_modules/@tablestore/tablestore-agent-shared/dist/config.d.ts.map +1 -1
  254. package/dist/node_modules/@tablestore/tablestore-agent-shared/dist/config.js +9 -1
  255. package/dist/node_modules/@tablestore/tablestore-agent-shared/dist/config.js.map +1 -1
  256. package/dist/node_modules/@tablestore/tablestore-agent-shared/dist/constants.d.ts +9 -1
  257. package/dist/node_modules/@tablestore/tablestore-agent-shared/dist/constants.d.ts.map +1 -1
  258. package/dist/node_modules/@tablestore/tablestore-agent-shared/dist/constants.js +18 -0
  259. package/dist/node_modules/@tablestore/tablestore-agent-shared/dist/constants.js.map +1 -1
  260. package/dist/node_modules/@tablestore/tablestore-agent-shared/dist/tsconfig.tsbuildinfo +1 -1
  261. package/dist/node_modules/@tablestore/tablestore-agent-shared/dist/types.d.ts +9 -0
  262. package/dist/node_modules/@tablestore/tablestore-agent-shared/dist/types.d.ts.map +1 -1
  263. package/package.json +2 -2
  264. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0gep_x_._.js +0 -3
  265. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0.b6bx-29l5e2.js +0 -1
  266. package/dist/dashboard-runtime/dashboard/.next/static/chunks/05ny4_cp6fkfu.js +0 -1
  267. package/dist/dashboard-runtime/dashboard/.next/static/chunks/097px3urt-4kr.js +0 -1
  268. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0c08tbxyly68e.js +0 -1
  269. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0draec5luxua1.js +0 -1
  270. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0f60fxsrh4wbq.js +0 -5
  271. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0frefg2bkdon0.css +0 -1
  272. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0oh~.z3b9_qzy.js +0 -1
  273. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0w6-j4p-7fybc.js +0 -1
  274. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0za3q13g~ihb2.js +0 -1
  275. package/dist/dashboard-runtime/dashboard/.next/static/chunks/11fppb7wskgrx.js +0 -1
  276. package/dist/dashboard-runtime/dashboard/.next/static/chunks/126jyzsu33t60.js +0 -1
  277. package/dist/dashboard-runtime/dashboard/.next/static/chunks/12~tfkzir29.4.js +0 -1
  278. package/dist/dashboard-runtime/dashboard/.next/static/chunks/14teeoxc_1i46.js +0 -1
  279. /package/dist/dashboard-runtime/dashboard/.next/static/{pE-cQCmJ7b5_xgwqBJ7J3 → sk6oO3r92_OgCvicmyYrR}/_buildManifest.js +0 -0
  280. /package/dist/dashboard-runtime/dashboard/.next/static/{pE-cQCmJ7b5_xgwqBJ7J3 → sk6oO3r92_OgCvicmyYrR}/_clientMiddlewareManifest.js +0 -0
  281. /package/dist/dashboard-runtime/dashboard/.next/static/{pE-cQCmJ7b5_xgwqBJ7J3 → sk6oO3r92_OgCvicmyYrR}/_ssgManifest.js +0 -0
@@ -23,6 +23,7 @@ import { MemoryDreamDisabled } from "@/components/memory/memory-dream-disabled";
23
23
  import {
24
24
  DREAM_TERMINAL_STATUSES,
25
25
  type DreamTaskStatus,
26
+ type DreamTaskType,
26
27
  type MemoryScope,
27
28
  } from "@/types/memory";
28
29
  import { cn } from "@/lib/utils";
@@ -72,6 +73,18 @@ function StatusPill({ status }: { status: DreamTaskStatus }) {
72
73
  );
73
74
  }
74
75
 
76
+ const TASK_TYPE_LABEL: Record<DreamTaskType, string> = {
77
+ memory: "记忆整理",
78
+ skill: "技能抽取",
79
+ profile: "用户画像",
80
+ };
81
+
82
+ const TASK_TYPE_CLASS: Record<DreamTaskType, string> = {
83
+ memory: "bg-info-soft text-info",
84
+ skill: "bg-success-soft text-success",
85
+ profile: "bg-[hsl(var(--primary-soft,_220_90%_96%))] text-[hsl(var(--primary))]",
86
+ };
87
+
75
88
  function scopeLabel(scope: MemoryScope): string {
76
89
  return (
77
90
  [scope.appId, scope.tenantId, scope.agentId, scope.runId]
@@ -112,6 +125,7 @@ export default function DreamTaskDetailPage() {
112
125
 
113
126
  const task = taskQuery.data;
114
127
  const isTerminal = task && DREAM_TERMINAL_STATUSES.has(task.status);
128
+ const isExtractTask = task?.taskType === "skill" || task?.taskType === "profile";
115
129
 
116
130
  const onCancel = async () => {
117
131
  try {
@@ -135,7 +149,7 @@ export default function DreamTaskDetailPage() {
135
149
  }
136
150
  >
137
151
  <ArrowLeft className="mr-1 h-3.5 w-3.5" />
138
- 返回记忆整理列表
152
+ 返回任务列表
139
153
  </Button>
140
154
  </div>
141
155
 
@@ -150,18 +164,37 @@ export default function DreamTaskDetailPage() {
150
164
  <div className="rounded-lg border border-[hsl(var(--border))] p-5">
151
165
  <div className="flex items-start justify-between gap-3">
152
166
  <div className="space-y-1">
153
- <h2 className="font-mono text-base">{task.dreamId}</h2>
167
+ <div className="flex items-center gap-2">
168
+ <h2 className="font-mono text-base">{task.dreamId}</h2>
169
+ {(() => {
170
+ const tt = (task.taskType || "memory") as DreamTaskType;
171
+ return (
172
+ <span
173
+ className={cn(
174
+ "inline-flex rounded-full px-2 py-0.5 text-xs font-medium whitespace-nowrap",
175
+ TASK_TYPE_CLASS[tt] ?? "bg-muted text-muted-foreground",
176
+ )}
177
+ >
178
+ {TASK_TYPE_LABEL[tt] ?? tt}
179
+ </span>
180
+ );
181
+ })()}
182
+ </div>
154
183
  <div className="flex flex-wrap items-center gap-2 text-xs text-muted-foreground">
155
184
  <StatusPill status={task.status} />
156
- <span>
157
- {task.applyMode === "safe_auto"
158
- ? "应用模式:安全变更自动应用"
159
- : "应用模式:建议(手动 apply)"}
160
- </span>
161
- <span>·</span>
162
- <span>
163
- Scope 输出:{task.scopeOutputMode === "promote_scope" ? "提升" : "保留"}
164
- </span>
185
+ {(!task.taskType || task.taskType === "memory") && (
186
+ <>
187
+ <span>
188
+ {task.applyMode === "safe_auto"
189
+ ? "应用模式:安全变更自动应用"
190
+ : "应用模式:建议(手动 apply)"}
191
+ </span>
192
+ <span>·</span>
193
+ <span>
194
+ Scope 输出:{task.scopeOutputMode === "promote_scope" ? "提升" : "保留"}
195
+ </span>
196
+ </>
197
+ )}
165
198
  {!isTerminal && (
166
199
  <span className="ml-1 italic">· 每 5 秒自动刷新</span>
167
200
  )}
@@ -199,12 +232,25 @@ export default function DreamTaskDetailPage() {
199
232
  <div className="mt-5 grid grid-cols-2 gap-4 sm:grid-cols-4">
200
233
  <StatBlock label="会话数" value={task.input.sessionCount} />
201
234
  <StatBlock label="消息数" value={task.input.messageCount} />
202
- <StatBlock label="记忆数" value={task.input.memoryCount} />
203
- <StatBlock label="动作总数" value={task.actions.total} />
204
- <StatBlock label="待应用" value={task.actions.proposed} />
205
- <StatBlock label="已应用" value={task.actions.applied} />
206
- <StatBlock label="跳过" value={task.actions.skipped} />
207
- <StatBlock label="失败" value={task.actions.failed} />
235
+ {(!task.taskType || task.taskType === "memory") && (
236
+ <StatBlock label="记忆数" value={task.input.memoryCount} />
237
+ )}
238
+ <StatBlock
239
+ label={isExtractTask ? "产出数" : "动作总数"}
240
+ value={task.actions.total}
241
+ />
242
+ {isExtractTask ? (
243
+ <StatBlock label="已生效" value={task.actions.applied} />
244
+ ) : (
245
+ <>
246
+ <StatBlock label="待应用" value={task.actions.proposed} />
247
+ <StatBlock label="已应用" value={task.actions.applied} />
248
+ <StatBlock label="跳过" value={task.actions.skipped} />
249
+ </>
250
+ )}
251
+ {task.actions.failed > 0 && (
252
+ <StatBlock label="失败" value={task.actions.failed} />
253
+ )}
208
254
  </div>
209
255
 
210
256
  <div className="mt-5 flex flex-wrap gap-x-6 gap-y-1 text-xs text-muted-foreground">
@@ -238,18 +284,32 @@ export default function DreamTaskDetailPage() {
238
284
  </div>
239
285
  </div>
240
286
 
287
+ {task.instructions && (
288
+ <div className="rounded-lg border border-[hsl(var(--border))] p-4">
289
+ <h3 className="mb-2 text-sm font-semibold">
290
+ {task.taskType === "profile" ? "画像模板" : task.taskType === "skill" ? "抽取指引" : "额外指引"}
291
+ </h3>
292
+ <pre className="max-h-48 overflow-auto whitespace-pre-wrap rounded bg-[hsl(var(--muted)/0.4)] p-3 text-xs">
293
+ {task.instructions}
294
+ </pre>
295
+ </div>
296
+ )}
297
+
241
298
  <div>
242
- <h3 className="mb-3 text-sm font-semibold">动作</h3>
299
+ <h3 className="mb-3 text-sm font-semibold">
300
+ {isExtractTask ? "产出结果" : "动作"}
301
+ </h3>
243
302
  <MemoryDreamActionsTable
244
303
  memoryStoreName={memoryStoreName}
245
304
  dreamId={dreamId}
305
+ taskType={task.taskType}
246
306
  />
247
307
  </div>
248
308
 
249
309
  <ConfirmDialog
250
310
  open={cancelOpen}
251
311
  onOpenChange={setCancelOpen}
252
- title="确认取消记忆整理任务"
312
+ title="确认取消 Dream 任务"
253
313
  description="任务将停止后续动作生成,已应用的动作不会回滚。"
254
314
  variant="danger"
255
315
  onConfirm={onCancel}
@@ -1,8 +1,8 @@
1
1
  "use client";
2
2
 
3
- import { useMemo, useState } from "react";
3
+ import { Fragment, useMemo, useState } from "react";
4
4
  import { useParams, useRouter, useSearchParams } from "next/navigation";
5
- import { Plus, Sparkles } from "lucide-react";
5
+ import { ChevronDown, ChevronRight, Plus, Sparkles } from "lucide-react";
6
6
 
7
7
  import { Button } from "@/components/ui/button";
8
8
  import { Skeleton } from "@/components/ui/skeleton";
@@ -25,8 +25,8 @@ import { RefreshButton } from "@/components/shared/refresh-button";
25
25
  import { EmptyState } from "@/components/shared/empty-state";
26
26
  import { RelativeTime } from "@/components/shared/relative-time";
27
27
  import { useDreamTasks } from "@/hooks/use-dream-tasks";
28
- import { buildMemoryScope } from "@/lib/memory";
29
- import type { DreamTask, DreamTaskStatus, MemoryScope } from "@/types/memory";
28
+ import { buildMemoryScope, groupDreamTasksByScope } from "@/lib/memory";
29
+ import type { DreamTask, DreamTaskStatus, DreamTaskType, MemoryScope } from "@/types/memory";
30
30
  import { MemoryDreamDisabled } from "@/components/memory/memory-dream-disabled";
31
31
  import { MemoryDreamCreateDialog } from "@/components/memory/memory-dream-create-dialog";
32
32
  import { cn } from "@/lib/utils";
@@ -65,6 +65,18 @@ const STATUS_LABEL: Record<DreamTaskStatus, string> = {
65
65
  cancelled: "已取消",
66
66
  };
67
67
 
68
+ const TASK_TYPE_LABEL: Record<DreamTaskType, string> = {
69
+ memory: "记忆整理",
70
+ skill: "技能抽取",
71
+ profile: "用户画像",
72
+ };
73
+
74
+ const TASK_TYPE_CLASS: Record<DreamTaskType, string> = {
75
+ memory: "bg-info-soft text-info",
76
+ skill: "bg-success-soft text-success",
77
+ profile: "bg-[hsl(var(--primary-soft,_220_90%_96%))] text-[hsl(var(--primary))]",
78
+ };
79
+
68
80
  const TERMINAL_STATUSES: ReadonlySet<DreamTaskStatus> = new Set([
69
81
  "completed",
70
82
  "completed_with_failures",
@@ -113,32 +125,116 @@ export default function DreamTasksPage() {
113
125
  );
114
126
  const [status, setStatus] = useState<string>("all");
115
127
  const [createOpen, setCreateOpen] = useState(false);
116
- const [nextToken, setNextToken] = useState<string | undefined>(undefined);
128
+ const [collapsed, setCollapsed] = useState<ReadonlySet<string>>(new Set());
117
129
 
118
130
  const query = useDreamTasks(memoryStoreName, scope, {
119
131
  limit: 50,
120
- nextToken,
121
132
  status: status === "all" ? undefined : status,
122
133
  });
123
134
 
124
- const isDreamingDisabled =
125
- query.error instanceof Error &&
126
- "code" in query.error &&
127
- (query.error as { code?: string }).code === "DREAMING_DISABLED";
128
-
129
- if (isDreamingDisabled) {
135
+ if (query.errorCode === "DREAMING_DISABLED") {
130
136
  return <MemoryDreamDisabled />;
131
137
  }
132
138
 
133
- const tasks = (query.data?.items ?? []) as DreamTask[];
139
+ const tasks = query.tasks;
140
+ // The Dream list API returns tasks scope-major (createdAt desc within a
141
+ // scope, but not globally). The hook eagerly loads every page; group the
142
+ // full set by scope so each block reads cleanly newest-first, and fall back
143
+ // to a flat list when there is only one scope.
144
+ const groups = groupDreamTasksByScope(tasks);
145
+ const showGroups = groups.length > 1;
146
+
147
+ const toggleGroup = (key: string) => {
148
+ setCollapsed((prev) => {
149
+ const next = new Set(prev);
150
+ if (next.has(key)) next.delete(key);
151
+ else next.add(key);
152
+ return next;
153
+ });
154
+ };
155
+
156
+ const renderTaskRow = (task: DreamTask) => {
157
+ const createdMs = new Date(task.createdAt).getTime();
158
+ return (
159
+ <TableRow
160
+ key={task.dreamId}
161
+ className="cursor-pointer hover:bg-[hsl(var(--accent))]"
162
+ onClick={() =>
163
+ router.push(
164
+ `/memory/${encodeURIComponent(memoryStoreName)}/dream/${encodeURIComponent(task.dreamId)}`,
165
+ )
166
+ }
167
+ >
168
+ <TableCell className="max-w-[220px] truncate font-mono text-xs">
169
+ {task.dreamId}
170
+ </TableCell>
171
+ <TableCell>
172
+ {(() => {
173
+ const tt = (task.taskType || "memory") as DreamTaskType;
174
+ return (
175
+ <span
176
+ className={cn(
177
+ "inline-flex rounded-full px-2 py-0.5 text-xs font-medium whitespace-nowrap",
178
+ TASK_TYPE_CLASS[tt] ?? "bg-muted text-muted-foreground",
179
+ )}
180
+ >
181
+ {TASK_TYPE_LABEL[tt] ?? tt}
182
+ </span>
183
+ );
184
+ })()}
185
+ </TableCell>
186
+ <TableCell>
187
+ <StatusPill status={task.status} />
188
+ </TableCell>
189
+ <TableCell className="text-xs">
190
+ {(task.taskType && task.taskType !== "memory") ? (
191
+ <span className="text-muted-foreground">—</span>
192
+ ) : (
193
+ <>
194
+ {task.applyMode === "safe_auto" ? "自动" : "建议"}
195
+ {task.scopeOutputMode === "promote_scope" && (
196
+ <span className="ml-1 text-muted-foreground">· 提升</span>
197
+ )}
198
+ </>
199
+ )}
200
+ </TableCell>
201
+ <TableCell className="text-right text-xs text-muted-foreground">
202
+ <span className="font-medium text-foreground">
203
+ {task.actionCount ?? 0}
204
+ </span>
205
+ {(task.taskType && task.taskType !== "memory") ? (
206
+ <span className="ml-1">
207
+ 条产出
208
+ {(task.failedCount ?? 0) > 0 && (
209
+ <span className="text-danger"> / {task.failedCount} 败</span>
210
+ )}
211
+ </span>
212
+ ) : (
213
+ <span className="ml-1">
214
+ ({task.proposedCount ?? 0} 待 / {task.appliedCount ?? 0} 应用 /
215
+ {" "}
216
+ {task.skippedCount ?? 0} 跳 / {task.failedCount ?? 0} 败)
217
+ </span>
218
+ )}
219
+ </TableCell>
220
+ <TableCell className="text-xs text-muted-foreground">
221
+ {Number.isFinite(createdMs) ? (
222
+ <RelativeTime timestamp={createdMs} />
223
+ ) : (
224
+ task.createdAt
225
+ )}
226
+ </TableCell>
227
+ </TableRow>
228
+ );
229
+ };
134
230
 
135
231
  return (
136
232
  <div className="space-y-4">
137
233
  <div className="flex items-center justify-between gap-3">
138
234
  <div>
139
- <h2 className="text-lg font-semibold">记忆整理</h2>
235
+ <h2 className="text-lg font-semibold">Dream 任务管理</h2>
140
236
  <p className="text-xs text-muted-foreground">
141
- 跨会话的记忆整理任务,识别模式后产出动作建议或自动应用
237
+ 管理记忆整理、技能抽取、用户画像等离线任务
142
238
  </p>
143
239
  </div>
144
240
  <div className="flex items-center gap-2">
@@ -174,10 +270,10 @@ export default function DreamTasksPage() {
174
270
  ) : tasks.length === 0 ? (
175
271
  <EmptyState
176
272
  icon={Sparkles}
177
- title="暂无记忆整理任务"
273
+ title="暂无 Dream 任务"
178
274
  description={
179
275
  status === "all"
180
- ? "记忆整理任务跨多个会话整合记忆。第一次使用时,先确保该 scope 下已经写入过几轮对话,再点右上角创建任务。"
276
+ ? "Dream 任务支持记忆整理、技能抽取、用户画像等功能。第一次使用时,先确保该 scope 下已经写入过几轮对话,再点右上角创建任务。"
181
277
  : `当前过滤为「${STATUS_OPTIONS.find((o) => o.value === status)?.label ?? status}」状态,可切到「全部状态」看看`
182
278
  }
183
279
  action={
@@ -193,76 +289,71 @@ export default function DreamTasksPage() {
193
289
  <TableHeader>
194
290
  <TableRow>
195
291
  <TableHead>Dream ID</TableHead>
292
+ <TableHead>类型</TableHead>
196
293
  <TableHead>状态</TableHead>
197
294
  <TableHead>应用模式</TableHead>
198
- <TableHead className="text-right">动作</TableHead>
295
+ <TableHead className="text-right">产出</TableHead>
199
296
  <TableHead>创建时间</TableHead>
200
297
  </TableRow>
201
298
  </TableHeader>
202
299
  <TableBody>
203
- {tasks.map((task) => {
204
- const createdMs = new Date(task.createdAt).getTime();
205
- return (
206
- <TableRow
207
- key={task.dreamId}
208
- className="cursor-pointer hover:bg-[hsl(var(--accent))]"
209
- onClick={() =>
210
- router.push(
211
- `/memory/${encodeURIComponent(memoryStoreName)}/dream/${encodeURIComponent(task.dreamId)}`,
212
- )
213
- }
214
- >
215
- <TableCell className="max-w-[220px] truncate font-mono text-xs">
216
- {task.dreamId}
217
- </TableCell>
218
- <TableCell>
219
- <StatusPill status={task.status} />
220
- </TableCell>
221
- <TableCell className="text-xs">
222
- {task.applyMode === "safe_auto" ? "自动" : "建议"}
223
- {task.scopeOutputMode === "promote_scope" && (
224
- <span className="ml-1 text-muted-foreground">· 提升</span>
225
- )}
226
- </TableCell>
227
- <TableCell className="text-right text-xs text-muted-foreground">
228
- <span className="font-medium text-foreground">
229
- {task.actionCount ?? 0}
230
- </span>
231
- <span className="ml-1">
232
- ({task.proposedCount ?? 0} 待 / {task.appliedCount ?? 0} 应用 /
233
- {" "}
234
- {task.skippedCount ?? 0} 跳 / {task.failedCount ?? 0} 败)
235
- </span>
236
- </TableCell>
237
- <TableCell className="text-xs text-muted-foreground">
238
- {Number.isFinite(createdMs) ? (
239
- <RelativeTime timestamp={createdMs} />
240
- ) : (
241
- task.createdAt
242
- )}
243
- </TableCell>
244
- </TableRow>
245
- );
246
- })}
300
+ {showGroups
301
+ ? groups.map((group) => {
302
+ const isCollapsed = collapsed.has(group.key);
303
+ return (
304
+ <Fragment key={group.key}>
305
+ <TableRow
306
+ className="cursor-pointer select-none bg-muted/40 hover:bg-muted/60"
307
+ onClick={() => toggleGroup(group.key)}
308
+ >
309
+ <TableCell colSpan={6} className="py-2">
310
+ <div className="flex items-center gap-2">
311
+ {isCollapsed ? (
312
+ <ChevronRight className="h-3.5 w-3.5 shrink-0 text-muted-foreground" />
313
+ ) : (
314
+ <ChevronDown className="h-3.5 w-3.5 shrink-0 text-muted-foreground" />
315
+ )}
316
+ <span className="break-all font-mono text-xs font-medium text-foreground">
317
+ {group.label}
318
+ </span>
319
+ <span className="shrink-0 rounded-full bg-muted px-2 py-0.5 text-[11px] text-muted-foreground">
320
+ {group.tasks.length} 个任务
321
+ </span>
322
+ </div>
323
+ </TableCell>
324
+ </TableRow>
325
+ {!isCollapsed && group.tasks.map(renderTaskRow)}
326
+ </Fragment>
327
+ );
328
+ })
329
+ : tasks.map(renderTaskRow)}
247
330
  </TableBody>
248
331
  </Table>
249
332
  </div>
250
333
  )}
251
334
 
252
- {query.data?.nextToken && (
253
- <div className="flex justify-end">
335
+ {query.isFetchingNextPage && (
336
+ <p className="text-center text-xs text-muted-foreground">
337
+ 正在加载更多任务…
338
+ </p>
339
+ )}
340
+
341
+ {query.truncated && !query.isFetchingNextPage && (
342
+ <div className="flex items-center justify-center gap-2 text-xs text-muted-foreground">
343
+ <span>任务较多,已先加载一部分</span>
254
344
  <Button
255
345
  variant="outline"
256
346
  size="sm"
257
- onClick={() => setNextToken(query.data?.nextToken)}
347
+ onClick={() => query.fetchNextPage()}
258
348
  >
259
- 加载下一页
349
+ 继续加载
260
350
  </Button>
261
351
  </div>
262
352
  )}
263
353
 
264
354
  <p className="text-xs text-muted-foreground">
265
355
  当前过滤 scope:{scopeLabel(scope)}
356
+ {showGroups && " · 已按 scope 分组,组内按创建时间倒序(新→旧)"}
266
357
  </p>
267
358
 
268
359
  <MemoryDreamCreateDialog
@@ -52,7 +52,7 @@ const TABS = [
52
52
  icon: <FileClock className="h-4 w-4" />,
53
53
  },
54
54
  {
55
- label: "记忆整理",
55
+ label: "Dream 任务",
56
56
  segment: "dream",
57
57
  icon: <Sparkles className="h-4 w-4" />,
58
58
  },
@@ -32,6 +32,10 @@ export default function MemorySearchPage() {
32
32
  scope: values.scope,
33
33
  topK: values.topK,
34
34
  enableRerank: values.enableRerank,
35
+ // Only forward the threshold when the user opts in (> 0); the server
36
+ // treats 0 as "no filter", and omitting it keeps the request
37
+ // byte-compatible with servers that predate the minSimilarity field.
38
+ ...(values.minSimilarity > 0 ? { minSimilarity: values.minSimilarity } : {}),
35
39
  metadata: values.metadata,
36
40
  });
37
41
  setResults(response.results ?? []);
@@ -140,7 +140,6 @@ export default function MemoryUnitsPage() {
140
140
 
141
141
  // Display data: searched unit or paginated list
142
142
  const displayUnits = searchedUnit ? [searchedUnit] : units;
143
- const displayTotal = searchedUnit ? 1 : (unitsQuery.data?.totalCount ?? 0);
144
143
 
145
144
  if (unitsQuery.isLoading && !searchedUnit) {
146
145
  return (
@@ -154,7 +153,7 @@ export default function MemoryUnitsPage() {
154
153
 
155
154
  return (
156
155
  <div className="space-y-4">
157
- <PageHeader title={`长期记忆 (${displayTotal})`}>
156
+ <PageHeader title="长期记忆">
158
157
  <div className="flex items-center gap-2">
159
158
  <RefreshButton
160
159
  loading={unitsQuery.isRefetching}
@@ -67,6 +67,7 @@ export async function GET(_request: NextRequest, context: RouteContext) {
67
67
  accessKeySecretMasked: detail.access_key_secret
68
68
  ? maskSecret(detail.access_key_secret)
69
69
  : undefined,
70
+ apiKeyMasked: detail.api_key ? maskSecret(detail.api_key) : undefined,
70
71
  memoryDefaults: {
71
72
  storeName: detail.memory_store_name || undefined,
72
73
  appId: detail.memory_app_id || undefined,
@@ -111,6 +112,7 @@ export async function PUT(request: NextRequest, context: RouteContext) {
111
112
  const d = parsed.data;
112
113
  if (d.accessKeyId) patch.access_key_id = d.accessKeyId;
113
114
  if (d.accessKeySecret) patch.access_key_secret = d.accessKeySecret;
115
+ if (d.apiKey) patch.api_key = d.apiKey;
114
116
  if (d.otsEndpoint) patch.ots_endpoint = d.otsEndpoint;
115
117
  if (d.otsInstanceName) patch.ots_instance_name = d.otsInstanceName;
116
118
  if (d.ossEndpoint !== undefined) patch.oss_endpoint = d.ossEndpoint;
@@ -128,6 +130,7 @@ export async function PUT(request: NextRequest, context: RouteContext) {
128
130
  const token = encodeTokenV2({
129
131
  access_key_id: updated.access_key_id,
130
132
  access_key_secret: updated.access_key_secret,
133
+ api_key: updated.api_key,
131
134
  ots_endpoint: updated.ots_endpoint || ots.ots_endpoint,
132
135
  ots_instance_name:
133
136
  updated.ots_instance_name || ots.ots_instance_name,
@@ -67,6 +67,7 @@ export async function GET(_request: NextRequest, context: RouteContext) {
67
67
  const token = encodeTokenV2({
68
68
  access_key_id: detail.access_key_id,
69
69
  access_key_secret: detail.access_key_secret,
70
+ api_key: detail.api_key,
70
71
  ots_endpoint: detail.ots_endpoint,
71
72
  ots_instance_name: detail.ots_instance_name,
72
73
  oss_endpoint: effectiveOssEndpoint,
@@ -65,6 +65,7 @@ export async function POST(_request: NextRequest, context: RouteContext) {
65
65
  const token = encodeTokenV2({
66
66
  access_key_id: detail.access_key_id,
67
67
  access_key_secret: detail.access_key_secret,
68
+ api_key: detail.api_key,
68
69
  ots_endpoint: detail.ots_endpoint || ots.ots_endpoint,
69
70
  ots_instance_name: detail.ots_instance_name || ots.ots_instance_name,
70
71
  oss_endpoint: detail.oss_endpoint || oss.oss_endpoint,
@@ -131,6 +131,7 @@ export async function POST(request: NextRequest) {
131
131
  const effective = loadConfig();
132
132
  const tokenFields = {
133
133
  ...fields,
134
+ api_key: fields.api_key || "",
134
135
  oss_endpoint: effective.oss_endpoint || fields.oss_endpoint || "",
135
136
  oss_bucket_name:
136
137
  effective.oss_bucket_name || fields.oss_bucket_name || "",
@@ -184,6 +185,7 @@ function createFromFields(raw: unknown): CreationPlan | NextResponse {
184
185
  fields: stripEmpty({
185
186
  access_key_id: data.accessKeyId,
186
187
  access_key_secret: data.accessKeySecret,
188
+ api_key: data.apiKey,
187
189
  ots_endpoint: data.otsEndpoint,
188
190
  ots_instance_name: data.otsInstanceName,
189
191
  oss_endpoint: data.ossEndpoint,
@@ -7,9 +7,10 @@ import { Info } from "lucide-react";
7
7
  import { z } from "zod";
8
8
 
9
9
  import {
10
- connectInstanceSchema,
10
+ connectInstanceBaseSchema,
11
11
  editInstanceFormSchema,
12
12
  importInstanceSchema,
13
+ withCredentialModeRules,
13
14
  } from "@/schemas/instance";
14
15
  import { Button } from "@/components/ui/button";
15
16
  import {
@@ -44,15 +45,17 @@ import { stripBucketPrefix } from "@/lib/normalize-oss-endpoint";
44
45
  * which the server-side schema cannot assert because tokens may ship bare
45
46
  * endpoints — is layered on via `.extend(...)` instead of a parallel copy.
46
47
  */
47
- const connectFormSchema = connectInstanceSchema.extend({
48
- otsEndpoint: z.string().trim().url("请输入合法的 OTS Endpoint URL"),
49
- ossEndpoint: z
50
- .string()
51
- .trim()
52
- .url("请输入合法的 OSS Endpoint URL")
53
- .optional()
54
- .or(z.literal("")),
55
- });
48
+ const connectFormSchema = withCredentialModeRules(
49
+ connectInstanceBaseSchema.extend({
50
+ otsEndpoint: z.string().trim().url("请输入合法的 OTS Endpoint URL"),
51
+ ossEndpoint: z
52
+ .string()
53
+ .trim()
54
+ .url("请输入合法的 OSS Endpoint URL")
55
+ .optional()
56
+ .or(z.literal("")),
57
+ }),
58
+ );
56
59
 
57
60
  // Token tab only needs the `token` field; omit everything else so the
58
61
  // submit handler receives a clean `{ token }` shape.
@@ -81,6 +84,10 @@ export interface ConnectInstanceFormProps {
81
84
  * placeholder so users can see "something is set" without exposing it.
82
85
  */
83
86
  accessKeySecretPlaceholder?: string;
87
+ /**
88
+ * Edit-mode hint: masked API Key surfaced as the input placeholder.
89
+ */
90
+ apiKeyPlaceholder?: string;
84
91
  onSubmit: (
85
92
  values: ConnectInstancePayload | ImportInstancePayload,
86
93
  ) => Promise<void>;
@@ -96,6 +103,7 @@ export function ConnectInstanceForm({
96
103
  defaultValues,
97
104
  accessKeyIdPlaceholder,
98
105
  accessKeySecretPlaceholder,
106
+ apiKeyPlaceholder,
99
107
  onSubmit,
100
108
  busy,
101
109
  lockName,
@@ -142,6 +150,8 @@ export function ConnectInstanceForm({
142
150
  // users still get the "something is set" affordance.
143
151
  accessKeyId: isEdit ? "" : (defaultValues?.accessKeyId ?? ""),
144
152
  accessKeySecret: isEdit ? "" : (defaultValues?.accessKeySecret ?? ""),
153
+ // Same masked-placeholder treatment as AK/SK in edit mode.
154
+ apiKey: isEdit ? "" : (defaultValues?.apiKey ?? ""),
145
155
  otsEndpoint: defaultValues?.otsEndpoint ?? "",
146
156
  otsInstanceName: defaultValues?.otsInstanceName ?? "",
147
157
  ossEndpoint: defaultValues?.ossEndpoint ?? "",
@@ -332,6 +342,35 @@ export function ConnectInstanceForm({
332
342
  />
333
343
  </div>
334
344
 
345
+ <FormField
346
+ control={manualForm.control}
347
+ name="apiKey"
348
+ render={({ field }) => (
349
+ <FormItem>
350
+ <FormLabel>API Key(可选)</FormLabel>
351
+ <FormControl>
352
+ <Input
353
+ {...field}
354
+ type="password"
355
+ autoComplete="new-password"
356
+ disabled={busy}
357
+ placeholder={
358
+ isEdit && apiKeyPlaceholder
359
+ ? `${apiKeyPlaceholder} · 留空表示保留`
360
+ : "sk-..."
361
+ }
362
+ />
363
+ </FormControl>
364
+ <FormDescription>
365
+ 可替代 AccessKey 作为数据面访问凭证;同时填写时 API Key 优先。
366
+ 需 HTTPS 端点,且无法自动创建实例 / 使用 OSS 上传(那些仍需
367
+ AK/SK)。
368
+ </FormDescription>
369
+ <FormMessage />
370
+ </FormItem>
371
+ )}
372
+ />
373
+
335
374
  <div className="grid gap-4 sm:grid-cols-2">
336
375
  <FormField
337
376
  control={manualForm.control}