@tablestore/tablestore-agent-cli 0.2.11 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (398) hide show
  1. package/dist/commands/dashboard.d.ts.map +1 -1
  2. package/dist/commands/dashboard.js +3 -0
  3. package/dist/commands/dashboard.js.map +1 -1
  4. package/dist/commands/doctor.d.ts.map +1 -1
  5. package/dist/commands/doctor.js +10 -11
  6. package/dist/commands/doctor.js.map +1 -1
  7. package/dist/commands/memory-items.d.ts +3 -0
  8. package/dist/commands/memory-items.d.ts.map +1 -0
  9. package/dist/commands/memory-items.js +375 -0
  10. package/dist/commands/memory-items.js.map +1 -0
  11. package/dist/commands/memory.d.ts.map +1 -1
  12. package/dist/commands/memory.js +131 -196
  13. package/dist/commands/memory.js.map +1 -1
  14. package/dist/dashboard-runtime/dashboard/.next/BUILD_ID +1 -1
  15. package/dist/dashboard-runtime/dashboard/.next/app-path-routes-manifest.json +1 -0
  16. package/dist/dashboard-runtime/dashboard/.next/build-manifest.json +3 -3
  17. package/dist/dashboard-runtime/dashboard/.next/prerender-manifest.json +3 -3
  18. package/dist/dashboard-runtime/dashboard/.next/required-server-files.json +4 -4
  19. package/dist/dashboard-runtime/dashboard/.next/routes-manifest.json +6 -0
  20. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/api-keys/page.js.nft.json +1 -1
  21. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/api-keys/page_client-reference-manifest.js +1 -1
  22. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
  23. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
  24. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/documents/page.js.nft.json +1 -1
  25. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/documents/page_client-reference-manifest.js +1 -1
  26. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/page.js.nft.json +1 -1
  27. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/page_client-reference-manifest.js +1 -1
  28. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/qa/page.js.nft.json +1 -1
  29. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/qa/page_client-reference-manifest.js +1 -1
  30. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/retrieval/page.js.nft.json +1 -1
  31. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/retrieval/page_client-reference-manifest.js +1 -1
  32. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/settings/page.js.nft.json +1 -1
  33. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/settings/page_client-reference-manifest.js +1 -1
  34. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/create/page.js.nft.json +1 -1
  35. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/create/page_client-reference-manifest.js +1 -1
  36. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/page.js.nft.json +1 -1
  37. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/page_client-reference-manifest.js +1 -1
  38. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/[id]/page.js.nft.json +1 -1
  39. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/[id]/page_client-reference-manifest.js +1 -1
  40. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/new/page.js.nft.json +1 -1
  41. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/new/page_client-reference-manifest.js +1 -1
  42. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/page.js.nft.json +1 -1
  43. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/llm-providers/page_client-reference-manifest.js +1 -1
  44. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/dream/[dreamId]/page.js.nft.json +1 -1
  45. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/dream/[dreamId]/page_client-reference-manifest.js +1 -1
  46. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/dream/page.js.nft.json +1 -1
  47. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/dream/page_client-reference-manifest.js +1 -1
  48. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/messages/page.js.nft.json +1 -1
  49. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/messages/page_client-reference-manifest.js +1 -1
  50. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/page.js.nft.json +1 -1
  51. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/page_client-reference-manifest.js +1 -1
  52. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/requests/page.js.nft.json +1 -1
  53. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/requests/page_client-reference-manifest.js +1 -1
  54. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/search/page.js.nft.json +1 -1
  55. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/search/page_client-reference-manifest.js +1 -1
  56. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/settings/page.js.nft.json +1 -1
  57. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/settings/page_client-reference-manifest.js +1 -1
  58. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/tasks/page.js.nft.json +1 -1
  59. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/tasks/page_client-reference-manifest.js +1 -1
  60. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/units/page.js.nft.json +1 -1
  61. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/[store]/units/page_client-reference-manifest.js +1 -1
  62. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/create/page.js.nft.json +1 -1
  63. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/create/page_client-reference-manifest.js +1 -1
  64. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/page.js.nft.json +1 -1
  65. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/memory/page_client-reference-manifest.js +1 -1
  66. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/projects/page.js.nft.json +1 -1
  67. package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/projects/page_client-reference-manifest.js +1 -1
  68. package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.html +1 -1
  69. package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.rsc +1 -1
  70. package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  71. package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  72. package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  73. package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  74. package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  75. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  76. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.html +1 -1
  77. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.rsc +16 -16
  78. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_full.segment.rsc +16 -16
  79. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_head.segment.rsc +3 -3
  80. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_index.segment.rsc +11 -11
  81. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +4 -4
  82. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  83. package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  84. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/api-keys/[id]/custom-policy/route.js +1 -1
  85. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/api-keys/[id]/custom-policy/route.js.nft.json +1 -1
  86. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/api-keys/[id]/effective-permissions/route.js +1 -1
  87. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/api-keys/[id]/effective-permissions/route.js.nft.json +1 -1
  88. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/api-keys/[id]/policies/route.js +1 -1
  89. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/api-keys/[id]/policies/route.js.nft.json +1 -1
  90. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/api-keys/[id]/route.js +1 -1
  91. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/api-keys/[id]/route.js.nft.json +1 -1
  92. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/api-keys/filter-by-permission/route.js +1 -1
  93. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/api-keys/filter-by-permission/route.js.nft.json +1 -1
  94. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/api-keys/route.js +1 -1
  95. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/api-keys/route.js.nft.json +1 -1
  96. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/auth/status/route.js +1 -1
  97. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/auth/status/route.js.nft.json +1 -1
  98. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/auth/token/route.js +1 -1
  99. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/auth/token/route.js.nft.json +1 -1
  100. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/[name]/route.js +1 -1
  101. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/[name]/route.js.nft.json +1 -1
  102. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/[name]/token/route.js +1 -1
  103. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/[name]/token/route.js.nft.json +1 -1
  104. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/[name]/use/route.js +1 -1
  105. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/[name]/use/route.js.nft.json +1 -1
  106. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/connectivity/route/app-paths-manifest.json +3 -0
  107. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/connectivity/route/build-manifest.json +9 -0
  108. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/connectivity/route/server-reference-manifest.json +4 -0
  109. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/connectivity/route.js +6 -0
  110. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/connectivity/route.js.map +5 -0
  111. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/connectivity/route.js.nft.json +1 -0
  112. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/connectivity/route_client-reference-manifest.js +3 -0
  113. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/route.js +1 -1
  114. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/route.js.nft.json +1 -1
  115. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/chunks/route.js +1 -1
  116. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/chunks/route.js.nft.json +1 -1
  117. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/[docId]/chunks/route.js +1 -1
  118. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/[docId]/chunks/route.js.nft.json +1 -1
  119. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/[docId]/route.js +1 -1
  120. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/[docId]/route.js.nft.json +1 -1
  121. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/route.js +1 -1
  122. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/route.js.nft.json +1 -1
  123. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/upload/route.js +1 -1
  124. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/upload/route.js.nft.json +1 -1
  125. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/retrieve/route.js +1 -1
  126. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/retrieve/route.js.nft.json +1 -1
  127. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/route.js +1 -1
  128. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/route.js.nft.json +1 -1
  129. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/route.js +1 -1
  130. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/route.js.nft.json +1 -1
  131. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/chat/route.js +1 -1
  132. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/chat/route.js.nft.json +1 -1
  133. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/[id]/models/route.js +1 -1
  134. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/[id]/models/route.js.nft.json +1 -1
  135. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/[id]/route.js +1 -1
  136. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/[id]/route.js.nft.json +1 -1
  137. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/[id]/test/route.js +1 -1
  138. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/[id]/test/route.js.nft.json +1 -1
  139. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/route.js +1 -1
  140. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/route.js.nft.json +1 -1
  141. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/logs/client/route.js +1 -1
  142. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/logs/client/route.js.nft.json +1 -1
  143. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/dream-kb-sync/route.js +1 -1
  144. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/dream-kb-sync/route.js.nft.json +1 -1
  145. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/dream-tasks/[dreamId]/actions/apply/route.js +1 -1
  146. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/dream-tasks/[dreamId]/actions/apply/route.js.nft.json +1 -1
  147. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/dream-tasks/[dreamId]/actions/route.js +1 -1
  148. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/dream-tasks/[dreamId]/actions/route.js.nft.json +1 -1
  149. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/dream-tasks/[dreamId]/cancel/route.js +1 -1
  150. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/dream-tasks/[dreamId]/cancel/route.js.nft.json +1 -1
  151. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/dream-tasks/[dreamId]/route.js +1 -1
  152. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/dream-tasks/[dreamId]/route.js.nft.json +1 -1
  153. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/dream-tasks/route.js +1 -1
  154. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/dream-tasks/route.js.nft.json +1 -1
  155. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/file-memory/[action]/route.js +1 -1
  156. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/file-memory/[action]/route.js.nft.json +1 -1
  157. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/messages/route.js +1 -1
  158. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/messages/route.js.nft.json +1 -1
  159. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/requests/route.js +1 -1
  160. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/requests/route.js.nft.json +1 -1
  161. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/route.js +1 -1
  162. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/route.js.nft.json +1 -1
  163. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/scopes/route.js +1 -1
  164. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/scopes/route.js.nft.json +1 -1
  165. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/search/route.js +1 -1
  166. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/search/route.js.nft.json +1 -1
  167. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/tasks/[requestId]/route.js +1 -1
  168. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/tasks/[requestId]/route.js.nft.json +1 -1
  169. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/tasks/route.js +1 -1
  170. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/tasks/route.js.nft.json +1 -1
  171. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/units/[memoryId]/route.js +1 -1
  172. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/units/[memoryId]/route.js.nft.json +1 -1
  173. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/units/route.js +1 -1
  174. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/units/route.js.nft.json +1 -1
  175. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/route.js +1 -1
  176. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/route.js.nft.json +1 -1
  177. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/oss/list/route.js +1 -1
  178. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/oss/list/route.js.nft.json +1 -1
  179. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/runtime/context/route.js +1 -1
  180. package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/runtime/context/route.js.nft.json +1 -1
  181. package/dist/dashboard-runtime/dashboard/.next/server/app/index.html +1 -1
  182. package/dist/dashboard-runtime/dashboard/.next/server/app/index.rsc +15 -15
  183. package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  184. package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/_full.segment.rsc +15 -15
  185. package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/_head.segment.rsc +3 -3
  186. package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/_index.segment.rsc +11 -11
  187. package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  188. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding/page.js.nft.json +1 -1
  189. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  190. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.html +1 -1
  191. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.rsc +18 -18
  192. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/_full.segment.rsc +18 -18
  193. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/_head.segment.rsc +3 -3
  194. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/_index.segment.rsc +11 -11
  195. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/_tree.segment.rsc +2 -2
  196. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/onboarding/__PAGE__.segment.rsc +4 -4
  197. package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/onboarding.segment.rsc +4 -4
  198. package/dist/dashboard-runtime/dashboard/.next/server/app/page_client-reference-manifest.js +1 -1
  199. package/dist/dashboard-runtime/dashboard/.next/server/app-paths-manifest.json +1 -0
  200. package/dist/dashboard-runtime/dashboard/.next/server/chunks/0e95__next-internal_server_app_api_v1_instances_connectivity_route_actions_0hc.k~w.js +3 -0
  201. package/dist/dashboard-runtime/dashboard/.next/server/chunks/0p91_next_dist_esm_build_templates_app-route_0n~ec7s.js +8 -8
  202. package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0-pbmiq._.js +3 -0
  203. package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0-wmyic._.js +40 -0
  204. package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0.li3cj._.js +40 -0
  205. package/dist/dashboard-runtime/dashboard/.next/server/chunks/{[root-of-the-server]__0w56nne._.js → [root-of-the-server]__0sa.9zr._.js} +6 -6
  206. package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0tc-.6s._.js +1 -1
  207. package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0y0w3mg._.js +1 -1
  208. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/0b1r_app_(dashboard)_knowledge-base_[name]_documents_documents-client_tsx_0g2uxmt._.js +1 -1
  209. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0.ooo1s._.js +1 -1
  210. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__07fsbff._.js +1 -1
  211. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0b5cw4e._.js +1 -1
  212. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0p1cst6._.js +3 -0
  213. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0xza7lz._.js +3 -0
  214. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0.6x0yu._.js +3 -0
  215. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0.pa1e6._.js +1 -1
  216. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_01snuz~._.js +1 -1
  217. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0251rsp._.js +1 -1
  218. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_02waf76._.js +1 -1
  219. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_06_hoj_._.js +3 -0
  220. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0brqbty._.js +1 -1
  221. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0csuit-._.js +3 -0
  222. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0eps5jg._.js +3 -0
  223. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0ez3yia._.js +1 -1
  224. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0k7q0ug._.js +3 -0
  225. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0pwlb77._.js +3 -0
  226. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0t.h859._.js +3 -0
  227. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0thp9l5._.js +3 -0
  228. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_0_z9696._.js +1 -1
  229. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_0grv2wq._.js +1 -1
  230. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/{dashboard_src_0bhjp9s._.js → dashboard_src_0jrh7xy._.js} +2 -2
  231. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_0x60pxf._.js +1 -1
  232. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_0y49vhd._.js +1 -1
  233. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_10dsqx~._.js +1 -1
  234. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_app_(dashboard)_memory_[store]_dream_[dreamId]_page_tsx_0wy3tv6._.js +1 -1
  235. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_app_(dashboard)_memory_[store]_dream_page_tsx_0uzzpvs._.js +1 -1
  236. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_app_(dashboard)_memory_[store]_layout_tsx_0rbi41w._.js +1 -1
  237. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_components_memory_memory-files-browser_tsx_0o2~94-._.js +1 -1
  238. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/dashboard_src_i18n_i18n-context_tsx_0c39ewr._.js +1 -1
  239. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/node_modules__pnpm_0ymj2~2._.js +3 -0
  240. package/dist/dashboard-runtime/dashboard/.next/server/functions-config-manifest.json +1 -0
  241. package/dist/dashboard-runtime/dashboard/.next/server/middleware-build-manifest.js +3 -3
  242. package/dist/dashboard-runtime/dashboard/.next/server/pages/404.html +1 -1
  243. package/dist/dashboard-runtime/dashboard/.next/server/pages/500.html +1 -1
  244. package/dist/dashboard-runtime/dashboard/.next/server/server-reference-manifest.js +1 -1
  245. package/dist/dashboard-runtime/dashboard/.next/server/server-reference-manifest.json +1 -1
  246. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0-xwobg-a6si1.js +1 -0
  247. package/dist/dashboard-runtime/dashboard/.next/static/chunks/01bokygf48bnj.js +1 -0
  248. package/dist/dashboard-runtime/dashboard/.next/static/chunks/04a.1c2rygy08.js +1 -0
  249. package/dist/dashboard-runtime/dashboard/.next/static/chunks/05.2q9f0yx4e_.js +1 -0
  250. package/dist/dashboard-runtime/dashboard/.next/static/chunks/09v-qczj__g1x.js +1 -0
  251. package/dist/dashboard-runtime/dashboard/.next/static/chunks/{08nzc9sye_0~h.js → 0_8~9zgfm5f.8.js} +1 -1
  252. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0_zw2y~vb_52n.js +1 -0
  253. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0a2f-mxepv-y7.js +1 -0
  254. package/dist/dashboard-runtime/dashboard/.next/static/chunks/{0jjiw-agnutux.js → 0amex7bwxnme9.js} +1 -1
  255. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0apfhv-v7oy7u.js +1 -0
  256. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0bxt5icwb83xt.js +1 -0
  257. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0dpi1comd-thc.js +1 -0
  258. package/dist/dashboard-runtime/dashboard/.next/static/chunks/{08h7wustf~cl4.js → 0eerrv808~6bh.js} +1 -1
  259. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0j6agpotrd_n4.js +1 -0
  260. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0jbcdgtcgqemd.js +1 -0
  261. package/dist/dashboard-runtime/dashboard/.next/static/chunks/{01xcynczarvq~.js → 0jp7zmwvyv0bn.js} +1 -1
  262. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0k8mhea24d_kj.js +1 -0
  263. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0krt75we1wtcy.js +1 -0
  264. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0prl9yrb8ksp8.js +1 -0
  265. package/dist/dashboard-runtime/dashboard/.next/static/chunks/{01xuyqw7ivp3n.js → 0r4azm.3hswcs.js} +3 -3
  266. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0uj7ezedkm6ou.css +1 -0
  267. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0x5qtkdg2trq9.js +5 -0
  268. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0zhfdjby7cj-q.js +1 -0
  269. package/dist/dashboard-runtime/dashboard/.next/static/chunks/{0~a4ig2x9z8uq.js → 13__t3s3ipfzl.js} +1 -1
  270. package/dist/dashboard-runtime/dashboard/.next/static/chunks/16uky1ro-t_~9.js +1 -0
  271. package/dist/dashboard-runtime/dashboard/.next/static/chunks/{0hnqmb1a7y7x1.js → 18absak_u0d85.js} +3 -3
  272. package/dist/dashboard-runtime/dashboard/server.js +1 -1
  273. package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/memory/[store]/dream/[dreamId]/page.tsx +187 -2
  274. package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/memory/[store]/dream/page.tsx +14 -1
  275. package/dist/dashboard-runtime/dashboard/src/app/(dashboard)/projects/page.tsx +3 -0
  276. package/dist/dashboard-runtime/dashboard/src/app/api/v1/instances/connectivity/route.ts +66 -0
  277. package/dist/dashboard-runtime/dashboard/src/app/api/v1/llm/chat/file-memory-curator.ts +57 -52
  278. package/dist/dashboard-runtime/dashboard/src/app/api/v1/memory/stores/[store]/dream-tasks/[dreamId]/actions/apply/route.ts +39 -6
  279. package/dist/dashboard-runtime/dashboard/src/app/api/v1/memory/stores/[store]/file-memory/[action]/route.ts +22 -28
  280. package/dist/dashboard-runtime/dashboard/src/app/onboarding/page.tsx +1 -3
  281. package/dist/dashboard-runtime/dashboard/src/components/chat/mount-picker.tsx +5 -1
  282. package/dist/dashboard-runtime/dashboard/src/components/instance/instance-connectivity-dot.tsx +96 -0
  283. package/dist/dashboard-runtime/dashboard/src/components/instance/project-card.tsx +5 -1
  284. package/dist/dashboard-runtime/dashboard/src/components/knowledge-base/subspace-gate.tsx +23 -5
  285. package/dist/dashboard-runtime/dashboard/src/components/knowledge-base/subspace-switcher.tsx +23 -5
  286. package/dist/dashboard-runtime/dashboard/src/components/layout/instance-switcher.tsx +13 -1
  287. package/dist/dashboard-runtime/dashboard/src/components/layout/sidebar-instance-card.tsx +29 -4
  288. package/dist/dashboard-runtime/dashboard/src/components/memory/file-details-panel.tsx +4 -4
  289. package/dist/dashboard-runtime/dashboard/src/components/memory/file-editor.tsx +9 -4
  290. package/dist/dashboard-runtime/dashboard/src/components/memory/file-version-history.tsx +107 -57
  291. package/dist/dashboard-runtime/dashboard/src/components/memory/memory-dream-create-dialog.tsx +253 -68
  292. package/dist/dashboard-runtime/dashboard/src/components/memory/memory-dream-plan-approval-dialog.tsx +172 -0
  293. package/dist/dashboard-runtime/dashboard/src/components/memory/memory-files-browser.tsx +104 -56
  294. package/dist/dashboard-runtime/dashboard/src/components/memory/memory-scope-bar.tsx +204 -52
  295. package/dist/dashboard-runtime/dashboard/src/components/memory/scope-combobox.tsx +169 -42
  296. package/dist/dashboard-runtime/dashboard/src/components/qa/qa-message.tsx +4 -3
  297. package/dist/dashboard-runtime/dashboard/src/components/shared/llm-model-selector.tsx +5 -1
  298. package/dist/dashboard-runtime/dashboard/src/components/ui/dialog.tsx +1 -1
  299. package/dist/dashboard-runtime/dashboard/src/contexts/subspace-context.tsx +144 -30
  300. package/dist/dashboard-runtime/dashboard/src/hooks/use-approve-dream-plan.ts +25 -0
  301. package/dist/dashboard-runtime/dashboard/src/hooks/use-file-memory.ts +73 -72
  302. package/dist/dashboard-runtime/dashboard/src/hooks/use-instances.ts +40 -0
  303. package/dist/dashboard-runtime/dashboard/src/hooks/use-subspace-history.ts +64 -75
  304. package/dist/dashboard-runtime/dashboard/src/i18n/locales/en.ts +82 -7
  305. package/dist/dashboard-runtime/dashboard/src/i18n/locales/zh.ts +80 -7
  306. package/dist/dashboard-runtime/dashboard/src/lib/browser-file-memory.ts +31 -25
  307. package/dist/dashboard-runtime/dashboard/src/lib/memory-scope-history.ts +165 -0
  308. package/dist/dashboard-runtime/dashboard/src/lib/memory.ts +13 -0
  309. package/dist/dashboard-runtime/dashboard/src/lib/query-keys.ts +10 -14
  310. package/dist/dashboard-runtime/dashboard/src/lib/server/api-helpers.ts +5 -0
  311. package/dist/dashboard-runtime/dashboard/src/lib/server/instance-connectivity.ts +136 -0
  312. package/dist/dashboard-runtime/dashboard/src/lib/server/sdk-client.ts +25 -3
  313. package/dist/dashboard-runtime/dashboard/src/lib/subspace-history.ts +151 -0
  314. package/dist/dashboard-runtime/dashboard/src/services/file-memory.ts +48 -56
  315. package/dist/dashboard-runtime/dashboard/src/services/instances.ts +5 -0
  316. package/dist/dashboard-runtime/dashboard/src/services/memory.ts +45 -5
  317. package/dist/dashboard-runtime/dashboard/src/types/file-memory.ts +96 -43
  318. package/dist/dashboard-runtime/dashboard/src/types/instance.ts +17 -0
  319. package/dist/dashboard-runtime/dashboard/src/types/memory.ts +50 -3
  320. package/dist/dashboard-runtime/dashboard/tsconfig.tsbuildinfo +1 -1
  321. package/dist/dashboard-runtime/node_modules/@img/sharp-darwin-arm64/lib/sharp-darwin-arm64.node +0 -0
  322. package/dist/dashboard-runtime/node_modules/@img/{sharp-linux-x64 → sharp-darwin-arm64}/package.json +7 -13
  323. package/dist/dashboard-runtime/node_modules/@img/{sharp-libvips-linux-x64 → sharp-libvips-darwin-arm64}/README.md +2 -2
  324. package/dist/dashboard-runtime/node_modules/@img/{sharp-libvips-linux-x64 → sharp-libvips-darwin-arm64}/lib/glib-2.0/include/glibconfig.h +8 -9
  325. package/dist/dashboard-runtime/node_modules/@img/{sharp-libvips-linux-x64/lib/libvips-cpp.so.8.17.3 → sharp-libvips-darwin-arm64/lib/libvips-cpp.8.17.3.dylib} +0 -0
  326. package/dist/dashboard-runtime/node_modules/@img/{sharp-libvips-linux-x64 → sharp-libvips-darwin-arm64}/package.json +5 -11
  327. package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/memory-client.d.ts +9 -55
  328. package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/memory-client.d.ts.map +1 -1
  329. package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/memory-client.js +25 -93
  330. package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/memory-client.js.map +1 -1
  331. package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/response.d.ts.map +1 -1
  332. package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/response.js +4 -1
  333. package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/response.js.map +1 -1
  334. package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/tsconfig.tsbuildinfo +1 -1
  335. package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/package.json +1 -1
  336. package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-shared/dist/tsconfig.tsbuildinfo +1 -1
  337. package/dist/main.js +0 -0
  338. package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/memory-client.d.ts +9 -55
  339. package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/memory-client.d.ts.map +1 -1
  340. package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/memory-client.js +25 -93
  341. package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/memory-client.js.map +1 -1
  342. package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/response.d.ts.map +1 -1
  343. package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/response.js +4 -1
  344. package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/response.js.map +1 -1
  345. package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/tsconfig.tsbuildinfo +1 -1
  346. package/dist/node_modules/@tablestore/tablestore-agent-sdk/package.json +1 -1
  347. package/dist/node_modules/@tablestore/tablestore-agent-shared/dist/tsconfig.tsbuildinfo +1 -1
  348. package/package.json +3 -3
  349. package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0dzh4cj._.js +0 -40
  350. package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0k7ex0r._.js +0 -40
  351. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__01f7est._.js +0 -3
  352. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0cj2gsm._.js +0 -3
  353. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_05bw0~2._.js +0 -3
  354. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_071hi50._.js +0 -3
  355. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0hy21o9._.js +0 -3
  356. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0xrd8-1._.js +0 -3
  357. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0y7vx.d._.js +0 -3
  358. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_13ctfae._.js +0 -3
  359. package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/node_modules__pnpm_0sr_ner._.js +0 -3
  360. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0-~e5~2eoun8n.js +0 -1
  361. package/dist/dashboard-runtime/dashboard/.next/static/chunks/029zyc1pxa~4m.js +0 -1
  362. package/dist/dashboard-runtime/dashboard/.next/static/chunks/05vzt~ml0z7~9.js +0 -1
  363. package/dist/dashboard-runtime/dashboard/.next/static/chunks/08o2~c-80nbla.js +0 -1
  364. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0_osn.dm_85jw.js +0 -1
  365. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0aj~rx1m.91ur.js +0 -5
  366. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0dx_8pb_z_xy6.css +0 -1
  367. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0k9guaejnlc0r.js +0 -1
  368. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0ll488v66ycn1.js +0 -1
  369. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0pxisu-1mnehf.js +0 -1
  370. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0vn5pp.3keyh5.js +0 -1
  371. package/dist/dashboard-runtime/dashboard/.next/static/chunks/0wbozn0wq-4ls.js +0 -1
  372. package/dist/dashboard-runtime/dashboard/.next/static/chunks/12iur8ibdfi5_.js +0 -1
  373. package/dist/dashboard-runtime/dashboard/.next/static/chunks/13kxz9vygidrz.js +0 -1
  374. package/dist/dashboard-runtime/dashboard/.next/static/chunks/165fwg-5at5cq.js +0 -1
  375. package/dist/dashboard-runtime/dashboard/.next/static/chunks/17b4md7atp39z.js +0 -1
  376. package/dist/dashboard-runtime/node_modules/@img/sharp-linux-x64/lib/sharp-linux-x64.node +0 -0
  377. package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/file-memory.d.ts +0 -153
  378. package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/file-memory.d.ts.map +0 -1
  379. package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/file-memory.js +0 -451
  380. package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/file-memory.js.map +0 -1
  381. package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/oss-uploader.d.ts +0 -56
  382. package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/oss-uploader.d.ts.map +0 -1
  383. package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/oss-uploader.js +0 -120
  384. package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/oss-uploader.js.map +0 -1
  385. package/dist/dashboard-runtime/node_modules/semver/node_modules/.bin/semver +0 -21
  386. package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/file-memory.d.ts +0 -153
  387. package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/file-memory.d.ts.map +0 -1
  388. package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/file-memory.js +0 -451
  389. package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/file-memory.js.map +0 -1
  390. package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/oss-uploader.d.ts +0 -56
  391. package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/oss-uploader.d.ts.map +0 -1
  392. package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/oss-uploader.js +0 -120
  393. package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/oss-uploader.js.map +0 -1
  394. /package/dist/dashboard-runtime/dashboard/.next/static/{AgybWIwFBY3-L1V2Copiq → 8G6beqTEKH_-N0JljpgWT}/_buildManifest.js +0 -0
  395. /package/dist/dashboard-runtime/dashboard/.next/static/{AgybWIwFBY3-L1V2Copiq → 8G6beqTEKH_-N0JljpgWT}/_clientMiddlewareManifest.js +0 -0
  396. /package/dist/dashboard-runtime/dashboard/.next/static/{AgybWIwFBY3-L1V2Copiq → 8G6beqTEKH_-N0JljpgWT}/_ssgManifest.js +0 -0
  397. /package/dist/dashboard-runtime/node_modules/@img/{sharp-libvips-linux-x64 → sharp-libvips-darwin-arm64}/lib/index.js +0 -0
  398. /package/dist/dashboard-runtime/node_modules/@img/{sharp-libvips-linux-x64 → sharp-libvips-darwin-arm64}/versions.json +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-memory.d.ts","sourceRoot":"","sources":["../src/file-memory.ts"],"names":[],"mappings":"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"}
@@ -1,451 +0,0 @@
1
- import crypto from "node:crypto";
2
- import fs from "node:fs";
3
- import path from "node:path";
4
- import { CONFIG_DIR } from "@tablestore/tablestore-agent-shared";
5
- const DEFAULT_SCOPE_VALUE = "__default__";
6
- const LOCAL_MEMORY_MAX_FILES = 300;
7
- const LOCAL_MEMORY_MAX_BYTES = 3 * 1024 * 1024; // 3 MB total
8
- const LOCAL_MEMORY_SNIPPET_LINES = 10; // lines per snippet block
9
- // 列举文件树(仅 stat,不读内容)用更宽的上限,避免像检索路径那样因 300 文件 /
10
- // 3MB 上限静默截断展示列表。
11
- const LIST_MAX_FILES = 10000;
12
- // 单次同步的下载并发上限。
13
- const MOUNT_DOWNLOAD_CONCURRENCY = 8;
14
- // ---------------------------------------------------------------------------
15
- // Scope → 本地目录
16
- // ---------------------------------------------------------------------------
17
- export function sanitizeScopeSegment(seg) {
18
- const s = String(seg ?? "").trim() || DEFAULT_SCOPE_VALUE;
19
- let out = "";
20
- for (const ch of s)
21
- out += /[A-Za-z0-9._-]/.test(ch) ? ch : "_";
22
- return out;
23
- }
24
- /**
25
- * 单个 scope 的本地镜像子目录:`<root>/<app>__<tenant>__<agent>__<run>`。
26
- * 段内 sanitize 可能折叠不同原值(如 `a@b` 与 `a_b`);真实冲突由服务端
27
- * OSS prefix 里的 scopehash 兜底,本地目录只求隔离与可读。
28
- */
29
- export function mountScopeDir(localRoot, scope) {
30
- return path.join(localRoot, [scope.appId, scope.tenantId, scope.agentId, scope.runId]
31
- .map(sanitizeScopeSegment)
32
- .join("__"));
33
- }
34
- /**
35
- * 文件记忆本地镜像目录(sync 写入、tree/cat 读取共用同一规则):
36
- * `<localRoot>/<app>/<tenant>` 两层路径。
37
- *
38
- * 服务端按 **user** 粒度投影,OSS 前缀在聚合维度上直接省略 agent/run
39
- * (`mem/{inst}/{store}/{app}/{tenant}/{hash}/memory/`),因此本地镜像也只按
40
- * app/tenant 两层组织——同一用户的不同智能体/会话共享同一份本地副本,租户之间
41
- * 相互隔离。段内非 `[A-Za-z0-9._-]` 字符 sanitize,空字段回落 `__default__`。
42
- *
43
- * 注:假定服务端 projection_group_level=user(本部署实际值)。
44
- */
45
- export function fileMemoryScopeDir(localRoot, scope) {
46
- const s = normalizeMountScope(scope);
47
- return path.join(localRoot, sanitizeScopeSegment(s.appId), sanitizeScopeSegment(s.tenantId));
48
- }
49
- /** 通配符/空字段 → `__default__`;显式值原样保留。挂载 scope 禁止通配。 */
50
- export function normalizeMountScope(scope) {
51
- const norm = (v) => {
52
- const s = typeof v === "string" ? v.trim() : "";
53
- return s && s !== "*" ? s : DEFAULT_SCOPE_VALUE;
54
- };
55
- return {
56
- appId: norm(scope.appId),
57
- tenantId: norm(scope.tenantId),
58
- agentId: norm(scope.agentId),
59
- runId: norm(scope.runId),
60
- };
61
- }
62
- /**
63
- * dashboard 与 CLI 共享的默认本地根:
64
- * `<CONFIG_DIR>/file-memory/<otsInstanceName>/<memoryStoreName>`。
65
- * 两端使用同一约定,dashboard 聊天同步下来的文件 CLI 直接可见。
66
- */
67
- export function defaultFileMemoryRoot(otsInstanceName, memoryStoreName) {
68
- return path.join(CONFIG_DIR, "file-memory", sanitizeScopeSegment(otsInstanceName), sanitizeScopeSegment(memoryStoreName));
69
- }
70
- // ---------------------------------------------------------------------------
71
- // 本地检索(词法匹配,openclaw 同版)
72
- // ---------------------------------------------------------------------------
73
- /**
74
- * CJK 感知分词:ASCII 词元(≥2 字符,小写)+ CJK 单字 + 连续 bigram,
75
- * 让短中文查询也能命中。
76
- */
77
- export function tokenizeQuery(query) {
78
- const terms = new Set();
79
- const asciiTokens = query.toLowerCase().match(/[a-z0-9]+/g) ?? [];
80
- for (const t of asciiTokens) {
81
- if (t.length >= 2)
82
- terms.add(t);
83
- }
84
- const cjkRuns = query.match(/[一-鿿㐀-䶿]+/g) ?? [];
85
- for (const run of cjkRuns) {
86
- for (const ch of run)
87
- terms.add(ch);
88
- for (let i = 0; i + 1 < run.length; i += 1)
89
- terms.add(run[i] + run[i + 1]);
90
- }
91
- return [...terms];
92
- }
93
- /** 按匹配词元比例打分(0~1),整句命中 +0.1 bonus。 */
94
- export function scoreSnippet(snippetText, queryTerms, fullQuery) {
95
- if (!snippetText)
96
- return 0;
97
- const lower = snippetText.toLowerCase();
98
- let matched = 0;
99
- for (const term of queryTerms) {
100
- if (lower.includes(term))
101
- matched += 1;
102
- }
103
- if (matched === 0)
104
- return 0;
105
- const bonus = fullQuery.length > 4 && lower.includes(fullQuery.toLowerCase()) ? 0.1 : 0;
106
- return Math.min(1, matched / Math.max(1, queryTerms.length) + bonus);
107
- }
108
- // 递归收集常规文件,跳过点文件与写入中的 .tmp-*,受文件数/字节数上限约束。
109
- // caps 可定制:检索路径用默认(读内容,需控内存);列举路径用更宽上限(仅 stat)。
110
- function collectLocalFiles(dir, state, caps = {
111
- maxFiles: LOCAL_MEMORY_MAX_FILES,
112
- maxBytes: LOCAL_MEMORY_MAX_BYTES,
113
- }) {
114
- if (state.fileCount >= caps.maxFiles || state.byteCount >= caps.maxBytes) {
115
- return;
116
- }
117
- let entries;
118
- try {
119
- entries = fs.readdirSync(dir, { withFileTypes: true });
120
- }
121
- catch {
122
- return;
123
- }
124
- for (const entry of entries) {
125
- if (state.fileCount >= caps.maxFiles || state.byteCount >= caps.maxBytes) {
126
- break;
127
- }
128
- if (entry.name.startsWith(".") || entry.name.includes(".tmp-"))
129
- continue;
130
- const fullPath = path.join(dir, entry.name);
131
- if (entry.isDirectory()) {
132
- collectLocalFiles(fullPath, state, caps);
133
- }
134
- else if (entry.isFile()) {
135
- let stat;
136
- try {
137
- stat = fs.statSync(fullPath);
138
- }
139
- catch {
140
- continue;
141
- }
142
- if (state.byteCount + stat.size > caps.maxBytes)
143
- continue;
144
- state.files.push(fullPath);
145
- state.fileCount += 1;
146
- state.byteCount += stat.size;
147
- }
148
- }
149
- }
150
- /**
151
- * 只在给定 scope 目录子树内做词法检索:每个文件按 10 行一个 block 切分,
152
- * 按匹配词元比例打分取 top-K。绝不读取兄弟 scope 目录。
153
- */
154
- export function searchLocalMemories(opts) {
155
- const query = opts.query?.trim() ?? "";
156
- if (!query || query.length < (opts.minQueryLength ?? 0)) {
157
- return { results: [], skipped: true };
158
- }
159
- if (!fs.existsSync(opts.scopeDir)) {
160
- return { results: [], skipped: true };
161
- }
162
- const queryTerms = tokenizeQuery(query);
163
- if (queryTerms.length === 0) {
164
- return { results: [], skipped: true };
165
- }
166
- const topK = Math.max(1, Math.min(50, Math.trunc(opts.topK) || 1));
167
- const state = { files: [], fileCount: 0, byteCount: 0 };
168
- collectLocalFiles(opts.scopeDir, state);
169
- const hits = [];
170
- for (const filePath of state.files) {
171
- let content;
172
- try {
173
- content = fs.readFileSync(filePath, "utf8");
174
- }
175
- catch {
176
- continue;
177
- }
178
- const relPath = path.relative(opts.scopeDir, filePath);
179
- const lines = content.split("\n");
180
- for (let i = 0; i < lines.length; i += LOCAL_MEMORY_SNIPPET_LINES) {
181
- const block = lines
182
- .slice(i, i + LOCAL_MEMORY_SNIPPET_LINES)
183
- .join("\n")
184
- .trim();
185
- if (!block)
186
- continue;
187
- const score = scoreSnippet(block, queryTerms, query);
188
- if (score > 0) {
189
- hits.push({ unit: { text: block, source: relPath }, score });
190
- }
191
- }
192
- }
193
- hits.sort((a, b) => b.score - a.score);
194
- return { results: hits.slice(0, topK) };
195
- }
196
- /** 稳定排序(按 rel 路径)的 scope 目录文件列表;目录不存在返回空。 */
197
- export function listLocalMemoryFiles(scopeDir) {
198
- const state = { files: [], fileCount: 0, byteCount: 0 };
199
- // 展示用:仅 stat 不读内容,用更宽的文件上限、不受字节上限约束,避免静默漏文件。
200
- collectLocalFiles(scopeDir, state, {
201
- maxFiles: LIST_MAX_FILES,
202
- maxBytes: Number.POSITIVE_INFINITY,
203
- });
204
- const entries = [];
205
- for (const filePath of state.files) {
206
- let stat;
207
- try {
208
- stat = fs.statSync(filePath);
209
- }
210
- catch {
211
- continue;
212
- }
213
- entries.push({
214
- rel: path.relative(scopeDir, filePath).split(path.sep).join("/"),
215
- size: stat.size,
216
- mtimeMs: stat.mtimeMs,
217
- });
218
- }
219
- entries.sort((a, b) => a.rel.localeCompare(b.rel));
220
- return entries;
221
- }
222
- /**
223
- * 把 `rel` 归一化到 `baseDir` 内的绝对路径,并拒绝越界(`..` / 绝对路径)。
224
- * 读、写共用同一防穿越逻辑(避免异常对象名把文件写/读到 scope 目录之外)。
225
- */
226
- export function resolveWithinDir(baseDir, rel) {
227
- const base = path.resolve(baseDir);
228
- const target = path.resolve(base, rel);
229
- if (target !== base && !target.startsWith(base + path.sep)) {
230
- throw new Error(`path escapes the scope directory: ${rel}`);
231
- }
232
- return target;
233
- }
234
- /** 读取 scope 目录内单个文件;`rel` 归一化后必须仍在 scopeDir 内(防穿越)。 */
235
- export function readLocalMemoryFile(scopeDir, rel) {
236
- return fs.readFileSync(resolveWithinDir(scopeDir, rel), "utf8");
237
- }
238
- function normalizeEtag(etag) {
239
- return String(etag ?? "")
240
- .replace(/"/g, "")
241
- .toLowerCase();
242
- }
243
- /**
244
- * 纯 diff:远端 `[{rel, etag}]`(etag = 单次 PutObject 投影的 md5 hex)对比
245
- * 本地 md5 Map,决定下载(新增/变更)与删除(孤儿)。
246
- */
247
- export function planSync(remote, localMd5, { pruneOrphans = true } = {}) {
248
- const remoteRel = new Set();
249
- const toDownload = [];
250
- for (const obj of remote) {
251
- remoteRel.add(obj.rel);
252
- const local = localMd5.get(obj.rel);
253
- if (!local || local !== normalizeEtag(obj.etag))
254
- toDownload.push(obj.rel);
255
- }
256
- const toDelete = [];
257
- if (pruneOrphans) {
258
- for (const rel of localMd5.keys()) {
259
- if (!remoteRel.has(rel))
260
- toDelete.push(rel);
261
- }
262
- }
263
- return { toDownload, toDelete };
264
- }
265
- function readLocalMd5(dir) {
266
- const map = new Map();
267
- const walk = (d, rel) => {
268
- let entries;
269
- try {
270
- entries = fs.readdirSync(d, { withFileTypes: true });
271
- }
272
- catch {
273
- return;
274
- }
275
- for (const e of entries) {
276
- if (e.name.startsWith(".") || e.name.includes(".tmp-"))
277
- continue;
278
- const full = path.join(d, e.name);
279
- const r = rel ? `${rel}/${e.name}` : e.name;
280
- if (e.isDirectory()) {
281
- walk(full, r);
282
- }
283
- else if (e.isFile()) {
284
- try {
285
- map.set(r, crypto
286
- .createHash("md5")
287
- .update(fs.readFileSync(full))
288
- .digest("hex"));
289
- }
290
- catch {
291
- // 不可读文件视作缺失,让它重新下载
292
- }
293
- }
294
- }
295
- };
296
- walk(dir, "");
297
- return map;
298
- }
299
- let mountTmpCounter = 0;
300
- // 先写 .tmp-* 再 rename 的原子写;目录 0700、文件 0600(与 openclaw 一致)。
301
- function atomicWriteFile(dest, content) {
302
- const dir = path.dirname(dest);
303
- fs.mkdirSync(dir, { recursive: true, mode: 0o700 });
304
- mountTmpCounter += 1;
305
- const tmp = path.join(dir, `.tmp-${process.pid}-${mountTmpCounter}`);
306
- fs.writeFileSync(tmp, content, { mode: 0o600 });
307
- fs.renameSync(tmp, dest);
308
- }
309
- // 默认工厂:用 STS 临时凭证构造只读 ali-oss 客户端。动态 import 保证纯本地
310
- // 操作(tree/cat)不加载 ali-oss。
311
- const defaultOssClientFactory = async (target, cred) => {
312
- const mod = (await import("ali-oss"));
313
- const OSS = (mod.default ?? mod);
314
- const opts = {
315
- accessKeyId: cred.accessKeyId,
316
- accessKeySecret: cred.accessKeySecret,
317
- stsToken: cred.securityToken,
318
- bucket: target.bucket,
319
- secure: true,
320
- };
321
- if (target.ossEndpoint?.trim()) {
322
- opts.endpoint = target.ossEndpoint;
323
- }
324
- else if (target.region?.trim()) {
325
- opts.region = target.region.startsWith("oss-")
326
- ? target.region
327
- : `oss-${target.region}`;
328
- }
329
- return new OSS(opts);
330
- };
331
- async function ossListAll(ossClient, prefix) {
332
- const out = [];
333
- let marker;
334
- for (let guard = 0; guard < 1000; guard += 1) {
335
- const res = await ossClient.list({ prefix, "max-keys": 1000, marker }, {});
336
- for (const o of res?.objects ?? []) {
337
- if (typeof o.name !== "string" || o.name.endsWith("/"))
338
- continue;
339
- out.push({ rel: o.name.slice(prefix.length), etag: o.etag ?? "" });
340
- }
341
- if (!res?.isTruncated)
342
- break;
343
- marker = res.nextMarker;
344
- if (!marker)
345
- break;
346
- }
347
- return out;
348
- }
349
- // 单飞键按 (store, app, tenant) —— 与本地镜像目录同粒度(user 级),使同一用户
350
- // 不同会话的并发同步共享一次。
351
- function mountScopeKey(storeName, scope) {
352
- return [storeName, scope.appId, scope.tenantId].join(" ");
353
- }
354
- // per-(store,scope) 单飞:并发调用共享同一次同步,避免互相覆盖临时文件。
355
- const mountInflight = new Map();
356
- /**
357
- * 同步一个 scope 的 OSS 投影到本地镜像目录(openclaw syncScopeOnce 同款):
358
- * AuthorizeMemoryMount(每次重新签发 STS,不落盘)→ 分页列举 → ETag diff →
359
- * 原子写下载 + 删孤儿。
360
- *
361
- * 失败语义:授权/列举阶段失败时本地副本完全不动(返回 `{ok:false, error}`);
362
- * 下载阶段逐文件原子写,若中途某文件失败则中止并返回 `{ok:false}`,此时本地为
363
- * **部分更新**(已写入的新文件保留、未处理的孤儿未删)——下次同步会按 ETag diff
364
- * 自愈。
365
- */
366
- export async function syncMemoryMount(opts) {
367
- // authorizeMount 收到真实(未聚合)scope——服务端自行聚合到投影粒度并返回对应
368
- // OSS 前缀。本地镜像目录/单飞键按 app/tenant(user 粒度),使同一用户不同
369
- // 会话共享同一份本地副本。
370
- const scope = normalizeMountScope(opts.scope);
371
- const scopeDir = fileMemoryScopeDir(opts.localRoot, scope);
372
- const key = mountScopeKey(opts.memoryStoreName, scope);
373
- const inflight = mountInflight.get(key);
374
- if (inflight)
375
- return inflight;
376
- const run = (async () => {
377
- const response = await opts.authorizeMount({
378
- memoryStoreName: opts.memoryStoreName,
379
- scope,
380
- ...(opts.ttlSeconds ? { ttlSeconds: opts.ttlSeconds } : {}),
381
- });
382
- if (response.code !== "SUCCESS") {
383
- throw new Error(response.message || `AuthorizeMemoryMount failed (${response.code})`);
384
- }
385
- const target = (response.data ?? {});
386
- const cred = target.credentials ?? {};
387
- if (!target.bucket ||
388
- !target.prefix ||
389
- !cred.accessKeyId ||
390
- !cred.accessKeySecret) {
391
- throw new Error("AuthorizeMemoryMount returned an incomplete mount target");
392
- }
393
- const factory = opts.ossClientFactory ?? defaultOssClientFactory;
394
- const ossClient = await factory({
395
- ossEndpoint: target.ossEndpoint,
396
- region: target.region,
397
- bucket: target.bucket,
398
- }, {
399
- accessKeyId: cred.accessKeyId,
400
- accessKeySecret: cred.accessKeySecret,
401
- securityToken: cred.securityToken,
402
- expiration: cred.expiration,
403
- });
404
- const remote = await ossListAll(ossClient, target.prefix);
405
- fs.mkdirSync(scopeDir, { recursive: true, mode: 0o700 });
406
- const localMd5 = readLocalMd5(scopeDir);
407
- const plan = planSync(remote, localMd5, {
408
- pruneOrphans: opts.pruneOrphans ?? true,
409
- });
410
- // 有并发上限的批量下载:文件相互独立,串行会随文件数线性变慢,且大 scope 有
411
- // 在 STS 临时凭证过期前下不完的风险。每个 rel 写入前用 resolveWithinDir 校验,
412
- // 防止异常对象名(含 `..`)写到 scope 目录之外。
413
- for (let i = 0; i < plan.toDownload.length; i += MOUNT_DOWNLOAD_CONCURRENCY) {
414
- const batch = plan.toDownload.slice(i, i + MOUNT_DOWNLOAD_CONCURRENCY);
415
- await Promise.all(batch.map(async (rel) => {
416
- const dest = resolveWithinDir(scopeDir, rel);
417
- const res = await ossClient.get(target.prefix + rel);
418
- atomicWriteFile(dest, res.content);
419
- }));
420
- }
421
- for (const rel of plan.toDelete) {
422
- try {
423
- fs.unlinkSync(resolveWithinDir(scopeDir, rel));
424
- }
425
- catch {
426
- // 已不存在或越界(越界的孤儿不删,交由上层排查)
427
- }
428
- }
429
- return {
430
- ok: true,
431
- scopeDir,
432
- downloaded: plan.toDownload.length,
433
- deleted: plan.toDelete.length,
434
- total: remote.length,
435
- };
436
- })()
437
- .catch((error) => ({
438
- ok: false,
439
- scopeDir,
440
- downloaded: 0,
441
- deleted: 0,
442
- total: 0,
443
- error: error instanceof Error ? error.message : String(error),
444
- }))
445
- .finally(() => {
446
- mountInflight.delete(key);
447
- });
448
- mountInflight.set(key, run);
449
- return run;
450
- }
451
- //# sourceMappingURL=file-memory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-memory.js","sourceRoot":"","sources":["../src/file-memory.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AAmBjE,MAAM,mBAAmB,GAAG,aAAa,CAAC;AAC1C,MAAM,sBAAsB,GAAG,GAAG,CAAC;AACnC,MAAM,sBAAsB,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,aAAa;AAC7D,MAAM,0BAA0B,GAAG,EAAE,CAAC,CAAC,0BAA0B;AACjE,+CAA+C;AAC/C,kBAAkB;AAClB,MAAM,cAAc,GAAG,KAAK,CAAC;AAC7B,eAAe;AACf,MAAM,0BAA0B,GAAG,CAAC,CAAC;AAErC,8EAA8E;AAC9E,eAAe;AACf,8EAA8E;AAE9E,MAAM,UAAU,oBAAoB,CAAC,GAA8B;IACjE,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,mBAAmB,CAAC;IAC1D,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,MAAM,EAAE,IAAI,CAAC;QAAE,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IAChE,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,SAAiB,EAAE,KAAiB;IAChE,OAAO,IAAI,CAAC,IAAI,CACd,SAAS,EACT,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC;SACtD,GAAG,CAAC,oBAAoB,CAAC;SACzB,IAAI,CAAC,IAAI,CAAC,CACd,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,kBAAkB,CAChC,SAAiB,EACjB,KAA0B;IAE1B,MAAM,CAAC,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACrC,OAAO,IAAI,CAAC,IAAI,CACd,SAAS,EACT,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC,EAC7B,oBAAoB,CAAC,CAAC,CAAC,QAAQ,CAAC,CACjC,CAAC;AACJ,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,mBAAmB,CAAC,KAA0B;IAC5D,MAAM,IAAI,GAAG,CAAC,CAAqB,EAAE,EAAE;QACrC,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChD,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC;IAClD,CAAC,CAAC;IACF,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QACxB,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC9B,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;QAC5B,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;KACzB,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CACnC,eAAuB,EACvB,eAAuB;IAEvB,OAAO,IAAI,CAAC,IAAI,CACd,UAAU,EACV,aAAa,EACb,oBAAoB,CAAC,eAAe,CAAC,EACrC,oBAAoB,CAAC,eAAe,CAAC,CACtC,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,yBAAyB;AACzB,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IAClE,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;QAC5B,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC;YAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IAChD,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,KAAK,MAAM,EAAE,IAAI,GAAG;YAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC;YAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;AACpB,CAAC;AAED,sCAAsC;AACtC,MAAM,UAAU,YAAY,CAC1B,WAAmB,EACnB,UAAoB,EACpB,SAAiB;IAEjB,IAAI,CAAC,WAAW;QAAE,OAAO,CAAC,CAAC;IAC3B,MAAM,KAAK,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;IACxC,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC,CAAC;IACzC,CAAC;IACD,IAAI,OAAO,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAC5B,MAAM,KAAK,GACT,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC;AACvE,CAAC;AAaD,2CAA2C;AAC3C,gDAAgD;AAChD,SAAS,iBAAiB,CACxB,GAAW,EACX,KAAmB,EACnB,OAAoB;IAClB,QAAQ,EAAE,sBAAsB;IAChC,QAAQ,EAAE,sBAAsB;CACjC;IAED,IAAI,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QACzE,OAAO;IACT,CAAC;IACD,IAAI,OAAoB,CAAC;IACzB,IAAI,CAAC;QACH,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACzD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;IACT,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACzE,MAAM;QACR,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,SAAS;QACzE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,iBAAiB,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAC3C,CAAC;aAAM,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1B,IAAI,IAAc,CAAC;YACnB,IAAI,CAAC;gBACH,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC/B,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;YACD,IAAI,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ;gBAAE,SAAS;YAC1D,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3B,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC;YACrB,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC;QAC/B,CAAC;IACH,CAAC;AACH,CAAC;AAYD;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAKnC;IACC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACvC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC,EAAE,CAAC;QACxD,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACxC,CAAC;IACD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClC,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACxC,CAAC;IACD,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACxC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACxC,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnE,MAAM,KAAK,GAAiB,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;IACtE,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACxC,MAAM,IAAI,GAAqB,EAAE,CAAC;IAClC,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QACnC,IAAI,OAAe,CAAC;QACpB,IAAI,CAAC;YACH,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC9C,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACvD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,0BAA0B,EAAE,CAAC;YAClE,MAAM,KAAK,GAAG,KAAK;iBAChB,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,0BAA0B,CAAC;iBACxC,IAAI,CAAC,IAAI,CAAC;iBACV,IAAI,EAAE,CAAC;YACV,IAAI,CAAC,KAAK;gBAAE,SAAS;YACrB,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;YACrD,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBACd,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACvC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC;AAC1C,CAAC;AAYD,6CAA6C;AAC7C,MAAM,UAAU,oBAAoB,CAAC,QAAgB;IACnD,MAAM,KAAK,GAAiB,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;IACtE,6CAA6C;IAC7C,iBAAiB,CAAC,QAAQ,EAAE,KAAK,EAAE;QACjC,QAAQ,EAAE,cAAc;QACxB,QAAQ,EAAE,MAAM,CAAC,iBAAiB;KACnC,CAAC,CAAC;IACH,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QACnC,IAAI,IAAc,CAAC;QACnB,IAAI,CAAC;YACH,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,OAAO,CAAC,IAAI,CAAC;YACX,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;YAChE,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACnD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAe,EAAE,GAAW;IAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACvC,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,qCAAqC,GAAG,EAAE,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,mBAAmB,CAAC,QAAgB,EAAE,GAAW;IAC/D,OAAO,EAAE,CAAC,YAAY,CAAC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;AAClE,CAAC;AAgBD,SAAS,aAAa,CAAC,IAA+B;IACpD,OAAO,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;SACjB,WAAW,EAAE,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,QAAQ,CACtB,MAA2B,EAC3B,QAA6B,EAC7B,EAAE,YAAY,GAAG,IAAI,KAAiC,EAAE;IAExD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACvB,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5E,CAAC;IACD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,YAAY,EAAE,CAAC;QACjB,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;YAClC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IACD,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;AAClC,CAAC;AAED,SAAS,YAAY,CAAC,GAAW;IAC/B,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;IACtC,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,GAAW,EAAE,EAAE;QACtC,IAAI,OAAoB,CAAC;QACzB,IAAI,CAAC;YACH,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACvD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;QACT,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAAE,SAAS;YACjE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC5C,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;gBACpB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAChB,CAAC;iBAAM,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;gBACtB,IAAI,CAAC;oBACH,GAAG,CAAC,GAAG,CACL,CAAC,EACD,MAAM;yBACH,UAAU,CAAC,KAAK,CAAC;yBACjB,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;yBAC7B,MAAM,CAAC,KAAK,CAAC,CACjB,CAAC;gBACJ,CAAC;gBAAC,MAAM,CAAC;oBACP,mBAAmB;gBACrB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IACF,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACd,OAAO,GAAG,CAAC;AACb,CAAC;AAED,IAAI,eAAe,GAAG,CAAC,CAAC;AAExB,0DAA0D;AAC1D,SAAS,eAAe,CAAC,IAAY,EAAE,OAAwB;IAC7D,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACpD,eAAe,IAAI,CAAC,CAAC;IACrB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,OAAO,CAAC,GAAG,IAAI,eAAe,EAAE,CAAC,CAAC;IACrE,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAChD,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAC3B,CAAC;AAsCD,kDAAkD;AAClD,2BAA2B;AAC3B,MAAM,uBAAuB,GAAyB,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;IAC3E,MAAM,GAAG,GAAG,CAAC,MAAM,MAAM,CAAC,SAAS,CAAC,CAEnC,CAAC;IACF,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAEb,CAAC;IACnB,MAAM,IAAI,GAA4B;QACpC,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,QAAQ,EAAE,IAAI,CAAC,aAAa;QAC5B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,IAAI;KACb,CAAC;IACF,IAAI,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC;IACrC,CAAC;SAAM,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;QACjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;YAC5C,CAAC,CAAC,MAAM,CAAC,MAAM;YACf,CAAC,CAAC,OAAO,MAAM,CAAC,MAAM,EAAE,CAAC;IAC7B,CAAC;IACD,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC,CAAC;AAEF,KAAK,UAAU,UAAU,CACvB,SAAwB,EACxB,MAAc;IAEd,MAAM,GAAG,GAAwB,EAAE,CAAC;IACpC,IAAI,MAA0B,CAAC;IAC/B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC7C,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QAC3E,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,OAAO,IAAI,EAAE,EAAE,CAAC;YACnC,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAAE,SAAS;YACjE,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;QACrE,CAAC;QACD,IAAI,CAAC,GAAG,EAAE,WAAW;YAAE,MAAM;QAC7B,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC;QACxB,IAAI,CAAC,MAAM;YAAE,MAAM;IACrB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AA0BD,wDAAwD;AACxD,iBAAiB;AACjB,SAAS,aAAa,CAAC,SAAiB,EAAE,KAAiB;IACzD,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5D,CAAC;AAED,+CAA+C;AAC/C,MAAM,aAAa,GAAG,IAAI,GAAG,EAA0C,CAAC;AAExE;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAA4B;IAE5B,mDAAmD;IACnD,iDAAiD;IACjD,eAAe;IACf,MAAM,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,kBAAkB,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC3D,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACxC,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAE9B,MAAM,GAAG,GAAG,CAAC,KAAK,IAAoC,EAAE;QACtD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC;YACzC,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,KAAK;YACL,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5D,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CACb,QAAQ,CAAC,OAAO,IAAI,gCAAgC,QAAQ,CAAC,IAAI,GAAG,CACrE,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAgB,CAAC;QACpD,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;QACtC,IACE,CAAC,MAAM,CAAC,MAAM;YACd,CAAC,MAAM,CAAC,MAAM;YACd,CAAC,IAAI,CAAC,WAAW;YACjB,CAAC,IAAI,CAAC,eAAe,EACrB,CAAC;YACD,MAAM,IAAI,KAAK,CACb,0DAA0D,CAC3D,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,IAAI,uBAAuB,CAAC;QACjE,MAAM,SAAS,GAAG,MAAM,OAAO,CAC7B;YACE,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,EACD;YACE,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CACF,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAC1D,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE;YACtC,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,IAAI;SACxC,CAAC,CAAC;QAEH,2CAA2C;QAC3C,uDAAuD;QACvD,gCAAgC;QAChC,KACE,IAAI,CAAC,GAAG,CAAC,EACT,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAC1B,CAAC,IAAI,0BAA0B,EAC/B,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,0BAA0B,CAAC,CAAC;YACvE,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;gBACtB,MAAM,IAAI,GAAG,gBAAgB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;gBAC7C,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;gBACrD,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;YACrC,CAAC,CAAC,CACH,CAAC;QACJ,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC;gBACH,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;YACjD,CAAC;YAAC,MAAM,CAAC;gBACP,0BAA0B;YAC5B,CAAC;QACH,CAAC;QAED,OAAO;YACL,EAAE,EAAE,IAAI;YACR,QAAQ;YACR,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM;YAClC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM;YAC7B,KAAK,EAAE,MAAM,CAAC,MAAM;SACrB,CAAC;IACJ,CAAC,CAAC,EAAE;SACD,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE,CAAC,CAAC;QAC1B,EAAE,EAAE,KAAK;QACT,QAAQ;QACR,UAAU,EAAE,CAAC;QACb,OAAO,EAAE,CAAC;QACV,KAAK,EAAE,CAAC;QACR,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;KAC9D,CAAC,CAAC;SACF,OAAO,CAAC,GAAG,EAAE;QACZ,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEL,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC5B,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1,56 +0,0 @@
1
- import OSS from "ali-oss";
2
- import type { AppConfig } from "@tablestore/tablestore-agent-shared";
3
- import type { ManagedOssTarget } from "./types.js";
4
- export interface OssUploadParams {
5
- kbName: string;
6
- subspace?: string;
7
- /**
8
- * Absolute local path. Its directory segments seed the OSS object tree
9
- * (client.py parity); its basename is used as the fallback file name when
10
- * `fileName` is omitted.
11
- */
12
- absolutePath: string;
13
- /**
14
- * Explicit file name to place at the tail of the OSS key. Useful when the
15
- * caller holds a human-readable original name that differs from the tmp
16
- * file's basename — e.g. the Dashboard route prefixes tmp files with a
17
- * random token to avoid per-request collisions, but wants the OSS key to
18
- * end in the browser-supplied name so that document listings stay readable.
19
- */
20
- fileName?: string;
21
- }
22
- /**
23
- * Build the OSS object key for an uploaded document.
24
- *
25
- * Layout: `<instance>/<kb>/source_doc/<subspace>/<absPathWithoutLeadingSlash>`.
26
- * The leading slashes on the local path are stripped so the object tree stays
27
- * rooted at the subspace, matching `client.py::_build_oss_key`. When
28
- * `fileName` is supplied the tail basename is replaced with the sanitized
29
- * name, keeping the directory prefix from `absolutePath` intact so that
30
- * same-named uploads from different local paths still diverge.
31
- */
32
- export declare function buildOssKey(instanceName: string, params: OssUploadParams): string;
33
- /** Compose the `oss://bucket/key` form consumed by `addDocuments`. */
34
- export declare function buildOssFullPath(bucket: string, key: string): string;
35
- /**
36
- * Construct an ali-oss client bound to the resolved managed bucket.
37
- *
38
- * `endpoint` is preferred over `region` so that custom / VPC endpoints are
39
- * honoured — matching the Python SDK's `oss2.Bucket(auth, endpoint, bucket)`
40
- * behaviour in `client.py`.
41
- */
42
- export declare function createOssClient(config: AppConfig, target: ManagedOssTarget): OSS;
43
- /**
44
- * Stream a local file to OSS. The underlying read stream is destroyed on
45
- * return so the file descriptor and buffers are released promptly — memory
46
- * stays bounded regardless of file size.
47
- */
48
- export declare function putFileStream(client: OSS, ossKey: string, absolutePath: string, contentLength: number): Promise<void>;
49
- /**
50
- * Best-effort rollback helper. Failures here are swallowed so they cannot
51
- * mask the original error that triggered the rollback.
52
- */
53
- export declare function deleteOssObjects(client: OSS, keys: string[]): Promise<void>;
54
- /** Resolve a possibly-relative path to an absolute one (mirrors os.path.abspath). */
55
- export declare function resolveAbsolutePath(filePath: string): string;
56
- //# sourceMappingURL=oss-uploader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"oss-uploader.d.ts","sourceRoot":"","sources":["../src/oss-uploader.ts"],"names":[],"mappings":"AAGA,OAAO,GAAG,MAAM,SAAS,CAAC;AAE1B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAGrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAUnD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAeD;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CACzB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,eAAe,GACtB,MAAM,CAiBR;AAED,sEAAsE;AACtE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAEpE;AAQD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,gBAAgB,GACvB,GAAG,CAaL;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,GAAG,EACX,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC,CAiBf;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,GAAG,EACX,IAAI,EAAE,MAAM,EAAE,GACb,OAAO,CAAC,IAAI,CAAC,CAOf;AAED,qFAAqF;AACrF,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE5D"}
@@ -1,120 +0,0 @@
1
- import { createReadStream } from "node:fs";
2
- import { basename, isAbsolute, resolve } from "node:path";
3
- import OSS from "ali-oss";
4
- import { CLIError } from "@tablestore/tablestore-agent-shared";
5
- // Constants mirror the Python reference client (client.py) so that OSS keys
6
- // stay interoperable across the CLI, Dashboard, and any external tooling that
7
- // reads objects written by either implementation.
8
- const OSS_PROTOCOL_PREFIX = "oss://";
9
- const OSS_PATH_SEPARATOR = "/";
10
- const SOURCE_DOC_FOLDER = "source_doc";
11
- const DEFAULT_SUBSPACE = "_default";
12
- /**
13
- * Sanitize the tail file name so it cannot introduce extra path segments or
14
- * control characters into the OSS key. Any `/`-separated prefix is dropped
15
- * via `basename`, and ASCII control characters (0x00-0x1F) are removed.
16
- * Falls back to the raw basename when cleaning would yield an empty string.
17
- */
18
- function sanitizeTailName(name) {
19
- const base = basename(name);
20
- // eslint-disable-next-line no-control-regex
21
- const cleaned = base.replace(/[\x00-\x1f]/g, "").trim();
22
- return cleaned.length > 0 ? cleaned : base;
23
- }
24
- /**
25
- * Build the OSS object key for an uploaded document.
26
- *
27
- * Layout: `<instance>/<kb>/source_doc/<subspace>/<absPathWithoutLeadingSlash>`.
28
- * The leading slashes on the local path are stripped so the object tree stays
29
- * rooted at the subspace, matching `client.py::_build_oss_key`. When
30
- * `fileName` is supplied the tail basename is replaced with the sanitized
31
- * name, keeping the directory prefix from `absolutePath` intact so that
32
- * same-named uploads from different local paths still diverge.
33
- */
34
- export function buildOssKey(instanceName, params) {
35
- const subspace = params.subspace && params.subspace.length > 0
36
- ? params.subspace
37
- : DEFAULT_SUBSPACE;
38
- const stripped = params.absolutePath.replace(/^\/+/, "");
39
- const finalPath = params.fileName && params.fileName.length > 0
40
- ? `${stripped.replace(/[^/]*$/, "")}${sanitizeTailName(params.fileName)}`
41
- : stripped;
42
- return [
43
- instanceName,
44
- params.kbName,
45
- SOURCE_DOC_FOLDER,
46
- subspace,
47
- finalPath,
48
- ].join(OSS_PATH_SEPARATOR);
49
- }
50
- /** Compose the `oss://bucket/key` form consumed by `addDocuments`. */
51
- export function buildOssFullPath(bucket, key) {
52
- return `${OSS_PROTOCOL_PREFIX}${bucket}${OSS_PATH_SEPARATOR}${key}`;
53
- }
54
- /** Narrow accessor for the optional STS token that may be present on the config. */
55
- function readStsToken(config) {
56
- const token = config.sts_token;
57
- return typeof token === "string" && token.length > 0 ? token : undefined;
58
- }
59
- /**
60
- * Construct an ali-oss client bound to the resolved managed bucket.
61
- *
62
- * `endpoint` is preferred over `region` so that custom / VPC endpoints are
63
- * honoured — matching the Python SDK's `oss2.Bucket(auth, endpoint, bucket)`
64
- * behaviour in `client.py`.
65
- */
66
- export function createOssClient(config, target) {
67
- return new OSS({
68
- accessKeyId: config.access_key_id,
69
- accessKeySecret: config.access_key_secret,
70
- stsToken: readStsToken(config),
71
- endpoint: target.ossEndpoint,
72
- bucket: target.ossBucketName,
73
- timeout: typeof config.timeout === "number" && config.timeout > 0
74
- ? config.timeout * 1000
75
- : undefined,
76
- secure: true,
77
- });
78
- }
79
- /**
80
- * Stream a local file to OSS. The underlying read stream is destroyed on
81
- * return so the file descriptor and buffers are released promptly — memory
82
- * stays bounded regardless of file size.
83
- */
84
- export async function putFileStream(client, ossKey, absolutePath, contentLength) {
85
- const stream = createReadStream(absolutePath);
86
- try {
87
- // `@types/ali-oss` marks every PutStreamOptions field required, but the
88
- // runtime only needs contentLength for streams whose length is known.
89
- // Cast to the option bag shape to avoid having to supply unused defaults.
90
- await client.putStream(ossKey, stream, {
91
- contentLength,
92
- });
93
- }
94
- catch (err) {
95
- throw new CLIError("INTERNAL_SERVER_ERROR", `Failed to upload ${basename(absolutePath)} to OSS: ${String(err)}`);
96
- }
97
- finally {
98
- if (!stream.destroyed)
99
- stream.destroy();
100
- }
101
- }
102
- /**
103
- * Best-effort rollback helper. Failures here are swallowed so they cannot
104
- * mask the original error that triggered the rollback.
105
- */
106
- export async function deleteOssObjects(client, keys) {
107
- if (keys.length === 0)
108
- return;
109
- try {
110
- await client.deleteMulti(keys, { quiet: true });
111
- }
112
- catch {
113
- // Intentionally ignored — cleanup failures must not shadow upstream errors.
114
- }
115
- }
116
- /** Resolve a possibly-relative path to an absolute one (mirrors os.path.abspath). */
117
- export function resolveAbsolutePath(filePath) {
118
- return isAbsolute(filePath) ? filePath : resolve(filePath);
119
- }
120
- //# sourceMappingURL=oss-uploader.js.map