@mndrk/agx 2.0.25 → 2.0.32

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 (844) hide show
  1. package/README.md +4 -6
  2. package/cloud-runtime/standalone/.next/BUILD_ID +1 -1
  3. package/cloud-runtime/standalone/.next/app-path-routes-manifest.json +6 -0
  4. package/cloud-runtime/standalone/.next/build-manifest.json +4 -4
  5. package/cloud-runtime/standalone/.next/prerender-manifest.json +3 -3
  6. package/cloud-runtime/standalone/.next/required-server-files.json +4 -4
  7. package/cloud-runtime/standalone/.next/routes-manifest.json +45 -0
  8. package/cloud-runtime/standalone/.next/server/app/_global-error/page/build-manifest.json +2 -2
  9. package/cloud-runtime/standalone/.next/server/app/_global-error.html +2 -2
  10. package/cloud-runtime/standalone/.next/server/app/_global-error.rsc +1 -1
  11. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  12. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  13. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  14. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  15. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  16. package/cloud-runtime/standalone/.next/server/app/_not-found/page/build-manifest.json +2 -2
  17. package/cloud-runtime/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  18. package/cloud-runtime/standalone/.next/server/app/_not-found.html +2 -2
  19. package/cloud-runtime/standalone/.next/server/app/_not-found.rsc +2 -2
  20. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  21. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  22. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  23. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  24. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  25. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  26. package/cloud-runtime/standalone/.next/server/app/agents/[id]/page/build-manifest.json +2 -2
  27. package/cloud-runtime/standalone/.next/server/app/agents/[id]/page.js.nft.json +1 -1
  28. package/cloud-runtime/standalone/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
  29. package/cloud-runtime/standalone/.next/server/app/agents/page/build-manifest.json +2 -2
  30. package/cloud-runtime/standalone/.next/server/app/agents/page.js.nft.json +1 -1
  31. package/cloud-runtime/standalone/.next/server/app/agents/page_client-reference-manifest.js +1 -1
  32. package/cloud-runtime/standalone/.next/server/app/agents.html +2 -2
  33. package/cloud-runtime/standalone/.next/server/app/agents.rsc +3 -3
  34. package/cloud-runtime/standalone/.next/server/app/agents.segments/_full.segment.rsc +3 -3
  35. package/cloud-runtime/standalone/.next/server/app/agents.segments/_head.segment.rsc +1 -1
  36. package/cloud-runtime/standalone/.next/server/app/agents.segments/_index.segment.rsc +2 -2
  37. package/cloud-runtime/standalone/.next/server/app/agents.segments/_tree.segment.rsc +2 -2
  38. package/cloud-runtime/standalone/.next/server/app/agents.segments/agents/__PAGE__.segment.rsc +2 -2
  39. package/cloud-runtime/standalone/.next/server/app/agents.segments/agents.segment.rsc +1 -1
  40. package/cloud-runtime/standalone/.next/server/app/api/agent-specs/route.js +2 -2
  41. package/cloud-runtime/standalone/.next/server/app/api/agent-specs/route.js.nft.json +1 -1
  42. package/cloud-runtime/standalone/.next/server/app/api/agents/[id]/profile/route.js +2 -2
  43. package/cloud-runtime/standalone/.next/server/app/api/agents/[id]/profile/route.js.nft.json +1 -1
  44. package/cloud-runtime/standalone/.next/server/app/api/agents/export/route.js +2 -2
  45. package/cloud-runtime/standalone/.next/server/app/api/agents/export/route.js.nft.json +1 -1
  46. package/cloud-runtime/standalone/.next/server/app/api/automations/create/route.js +4 -3
  47. package/cloud-runtime/standalone/.next/server/app/api/automations/create/route.js.nft.json +1 -1
  48. package/cloud-runtime/standalone/.next/server/app/api/automations/route.js +3 -3
  49. package/cloud-runtime/standalone/.next/server/app/api/automations/route.js.nft.json +1 -1
  50. package/cloud-runtime/standalone/.next/server/app/api/chat/route.js +7 -4
  51. package/cloud-runtime/standalone/.next/server/app/api/chat/route.js.nft.json +1 -1
  52. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/route/app-paths-manifest.json +3 -0
  53. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/route/build-manifest.json +11 -0
  54. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/route/server-reference-manifest.json +4 -0
  55. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/route.js +8 -0
  56. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/route.js.map +5 -0
  57. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/route.js.nft.json +1 -0
  58. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/route_client-reference-manifest.js +2 -0
  59. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/signal/route/app-paths-manifest.json +3 -0
  60. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/signal/route/build-manifest.json +11 -0
  61. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/signal/route/server-reference-manifest.json +4 -0
  62. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/signal/route.js +7 -0
  63. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/signal/route.js.map +5 -0
  64. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/signal/route.js.nft.json +1 -0
  65. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/signal/route_client-reference-manifest.js +2 -0
  66. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/route/app-paths-manifest.json +3 -0
  67. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/route/build-manifest.json +11 -0
  68. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/route/server-reference-manifest.json +4 -0
  69. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/route.js +8 -0
  70. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/route.js.map +5 -0
  71. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/route.js.nft.json +1 -0
  72. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/route_client-reference-manifest.js +2 -0
  73. package/cloud-runtime/standalone/.next/server/app/api/file-search/route.js.nft.json +1 -1
  74. package/cloud-runtime/standalone/.next/server/app/api/graphs/[graphId]/nodes/[nodeId]/route.js +2 -2
  75. package/cloud-runtime/standalone/.next/server/app/api/graphs/[graphId]/nodes/[nodeId]/route.js.nft.json +1 -1
  76. package/cloud-runtime/standalone/.next/server/app/api/health/route.js +5 -4
  77. package/cloud-runtime/standalone/.next/server/app/api/health/route.js.nft.json +1 -1
  78. package/cloud-runtime/standalone/.next/server/app/api/history/route.js.nft.json +1 -1
  79. package/cloud-runtime/standalone/.next/server/app/api/history/status/route.js.nft.json +1 -1
  80. package/cloud-runtime/standalone/.next/server/app/api/learnings/route.js +5 -4
  81. package/cloud-runtime/standalone/.next/server/app/api/learnings/route.js.nft.json +1 -1
  82. package/cloud-runtime/standalone/.next/server/app/api/logs/route.js.nft.json +1 -1
  83. package/cloud-runtime/standalone/.next/server/app/api/logs/stream/route.js +2 -2
  84. package/cloud-runtime/standalone/.next/server/app/api/logs/stream/route.js.nft.json +1 -1
  85. package/cloud-runtime/standalone/.next/server/app/api/memories/route.js +2 -2
  86. package/cloud-runtime/standalone/.next/server/app/api/memories/route.js.nft.json +1 -1
  87. package/cloud-runtime/standalone/.next/server/app/api/messages/[id]/route.js.nft.json +1 -1
  88. package/cloud-runtime/standalone/.next/server/app/api/migrate/teams-to-projects/route.js +2 -2
  89. package/cloud-runtime/standalone/.next/server/app/api/migrate/teams-to-projects/route.js.nft.json +1 -1
  90. package/cloud-runtime/standalone/.next/server/app/api/migrate/workspaces-to-projects/route.js +2 -2
  91. package/cloud-runtime/standalone/.next/server/app/api/migrate/workspaces-to-projects/route.js.nft.json +1 -1
  92. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/cancel/route.js +3 -3
  93. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/cancel/route.js.nft.json +1 -1
  94. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/signal/route.js +3 -3
  95. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/signal/route.js.nft.json +1 -1
  96. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/start/route.js +5 -4
  97. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/start/route.js.nft.json +1 -1
  98. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/status/route.js +4 -3
  99. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/status/route.js.nft.json +1 -1
  100. package/cloud-runtime/standalone/.next/server/app/api/participants/route.js +3 -3
  101. package/cloud-runtime/standalone/.next/server/app/api/participants/route.js.nft.json +1 -1
  102. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/agents/route.js +3 -3
  103. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/agents/route.js.nft.json +1 -1
  104. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/memory/route.js +4 -4
  105. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/memory/route.js.nft.json +1 -1
  106. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v1/route.js +4 -4
  107. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v1/route.js.nft.json +1 -1
  108. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v2/route.js +4 -4
  109. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v2/route.js.nft.json +1 -1
  110. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/route.js +4 -3
  111. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
  112. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/skills/route.js +3 -3
  113. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/skills/route.js.nft.json +1 -1
  114. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/threads/route.js +3 -3
  115. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/threads/route.js.nft.json +1 -1
  116. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/variables/route.js +3 -3
  117. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/variables/route.js.nft.json +1 -1
  118. package/cloud-runtime/standalone/.next/server/app/api/projects/route.js +4 -3
  119. package/cloud-runtime/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
  120. package/cloud-runtime/standalone/.next/server/app/api/providers/route.js +1 -1
  121. package/cloud-runtime/standalone/.next/server/app/api/providers/route.js.nft.json +1 -1
  122. package/cloud-runtime/standalone/.next/server/app/api/queue/complete/route.js +3 -3
  123. package/cloud-runtime/standalone/.next/server/app/api/queue/complete/route.js.nft.json +1 -1
  124. package/cloud-runtime/standalone/.next/server/app/api/queue/route.js +5 -4
  125. package/cloud-runtime/standalone/.next/server/app/api/queue/route.js.nft.json +1 -1
  126. package/cloud-runtime/standalone/.next/server/app/api/reactions/route.js.nft.json +1 -1
  127. package/cloud-runtime/standalone/.next/server/app/api/repos/[id]/knowledge/route.js +3 -3
  128. package/cloud-runtime/standalone/.next/server/app/api/repos/[id]/knowledge/route.js.nft.json +1 -1
  129. package/cloud-runtime/standalone/.next/server/app/api/schedules/debug/route.js +5 -4
  130. package/cloud-runtime/standalone/.next/server/app/api/schedules/debug/route.js.nft.json +1 -1
  131. package/cloud-runtime/standalone/.next/server/app/api/schedules/poll/route.js +4 -3
  132. package/cloud-runtime/standalone/.next/server/app/api/schedules/poll/route.js.nft.json +1 -1
  133. package/cloud-runtime/standalone/.next/server/app/api/schedules/route.js +4 -3
  134. package/cloud-runtime/standalone/.next/server/app/api/schedules/route.js.nft.json +1 -1
  135. package/cloud-runtime/standalone/.next/server/app/api/search/route.js.nft.json +1 -1
  136. package/cloud-runtime/standalone/.next/server/app/api/status/route.js +1 -1
  137. package/cloud-runtime/standalone/.next/server/app/api/status/route.js.nft.json +1 -1
  138. package/cloud-runtime/standalone/.next/server/app/api/summarize/route.js +3 -3
  139. package/cloud-runtime/standalone/.next/server/app/api/summarize/route.js.nft.json +1 -1
  140. package/cloud-runtime/standalone/.next/server/app/api/system/db-status/route.js.nft.json +1 -1
  141. package/cloud-runtime/standalone/.next/server/app/api/task-drafts/route.js.nft.json +1 -1
  142. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js +6 -5
  143. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js.nft.json +1 -1
  144. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/route.js +6 -5
  145. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/route.js.nft.json +1 -1
  146. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/costs/route.js +5 -4
  147. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/costs/route.js.nft.json +1 -1
  148. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/dependencies/route.js +4 -3
  149. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/dependencies/route.js.nft.json +1 -1
  150. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/events/route.js +4 -4
  151. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/events/route.js.nft.json +1 -1
  152. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/history/route.js +5 -5
  153. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/history/route.js.nft.json +1 -1
  154. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/metrics/route.js +5 -5
  155. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/metrics/route.js.nft.json +1 -1
  156. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/pause/route.js +2 -2
  157. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/pause/route.js.nft.json +1 -1
  158. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/replan/route.js +5 -5
  159. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/replan/route.js.nft.json +1 -1
  160. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/restart/route.js +4 -3
  161. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/restart/route.js.nft.json +1 -1
  162. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/resume/route.js +4 -3
  163. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/resume/route.js.nft.json +1 -1
  164. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/rollback/route.js +4 -4
  165. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/rollback/route.js.nft.json +1 -1
  166. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/route.js +5 -5
  167. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/route.js.nft.json +1 -1
  168. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/schedule/route.js +6 -5
  169. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/schedule/route.js.nft.json +1 -1
  170. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/start/route.js +4 -3
  171. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/start/route.js.nft.json +1 -1
  172. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/stop/route.js +2 -2
  173. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/stop/route.js.nft.json +1 -1
  174. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/heartbeat/route.js +2 -2
  175. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/heartbeat/route.js.nft.json +1 -1
  176. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/history/route.js +5 -4
  177. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/history/route.js.nft.json +1 -1
  178. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/logs/route.js +4 -3
  179. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/logs/route.js.nft.json +1 -1
  180. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/logs/stream/route.js +2 -2
  181. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/logs/stream/route.js.nft.json +1 -1
  182. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/comments/route.js +3 -3
  183. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/comments/route.js.nft.json +1 -1
  184. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/complete/route.js +7 -6
  185. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/complete/route.js.nft.json +1 -1
  186. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/fail/route.js +7 -6
  187. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/fail/route.js.nft.json +1 -1
  188. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/resume/route.js +6 -5
  189. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/resume/route.js.nft.json +1 -1
  190. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/start/route.js +6 -5
  191. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/start/route.js.nft.json +1 -1
  192. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/stop/route.js +7 -6
  193. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/stop/route.js.nft.json +1 -1
  194. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js +8 -6
  195. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js.nft.json +1 -1
  196. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/route.js +4 -3
  197. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
  198. package/cloud-runtime/standalone/.next/server/app/api/tasks/assign-orphans/route.js +5 -4
  199. package/cloud-runtime/standalone/.next/server/app/api/tasks/assign-orphans/route.js.nft.json +1 -1
  200. package/cloud-runtime/standalone/.next/server/app/api/tasks/extract/route.js +3 -3
  201. package/cloud-runtime/standalone/.next/server/app/api/tasks/extract/route.js.nft.json +1 -1
  202. package/cloud-runtime/standalone/.next/server/app/api/tasks/route.js +5 -4
  203. package/cloud-runtime/standalone/.next/server/app/api/tasks/route.js.nft.json +1 -1
  204. package/cloud-runtime/standalone/.next/server/app/api/tasks/stream/route.js +2 -2
  205. package/cloud-runtime/standalone/.next/server/app/api/tasks/stream/route.js.nft.json +1 -1
  206. package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route/app-paths-manifest.json +3 -0
  207. package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route/build-manifest.json +11 -0
  208. package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route/server-reference-manifest.json +4 -0
  209. package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route.js +10 -0
  210. package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route.js.map +5 -0
  211. package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route.js.nft.json +1 -0
  212. package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route_client-reference-manifest.js +2 -0
  213. package/cloud-runtime/standalone/.next/server/app/api/threads/route.js +5 -2
  214. package/cloud-runtime/standalone/.next/server/app/api/threads/route.js.nft.json +1 -1
  215. package/cloud-runtime/standalone/.next/server/app/api/user-settings/route.js +5 -4
  216. package/cloud-runtime/standalone/.next/server/app/api/user-settings/route.js.nft.json +1 -1
  217. package/cloud-runtime/standalone/.next/server/app/automations/page/build-manifest.json +2 -2
  218. package/cloud-runtime/standalone/.next/server/app/automations/page.js.nft.json +1 -1
  219. package/cloud-runtime/standalone/.next/server/app/automations/page_client-reference-manifest.js +1 -1
  220. package/cloud-runtime/standalone/.next/server/app/automations.html +2 -2
  221. package/cloud-runtime/standalone/.next/server/app/automations.rsc +4 -4
  222. package/cloud-runtime/standalone/.next/server/app/automations.segments/_full.segment.rsc +4 -4
  223. package/cloud-runtime/standalone/.next/server/app/automations.segments/_head.segment.rsc +1 -1
  224. package/cloud-runtime/standalone/.next/server/app/automations.segments/_index.segment.rsc +2 -2
  225. package/cloud-runtime/standalone/.next/server/app/automations.segments/_tree.segment.rsc +3 -3
  226. package/cloud-runtime/standalone/.next/server/app/automations.segments/automations/__PAGE__.segment.rsc +3 -3
  227. package/cloud-runtime/standalone/.next/server/app/automations.segments/automations.segment.rsc +1 -1
  228. package/cloud-runtime/standalone/.next/server/app/board/page/build-manifest.json +2 -2
  229. package/cloud-runtime/standalone/.next/server/app/board/page_client-reference-manifest.js +1 -1
  230. package/cloud-runtime/standalone/.next/server/app/board.html +2 -2
  231. package/cloud-runtime/standalone/.next/server/app/board.rsc +2 -2
  232. package/cloud-runtime/standalone/.next/server/app/board.segments/_full.segment.rsc +2 -2
  233. package/cloud-runtime/standalone/.next/server/app/board.segments/_head.segment.rsc +1 -1
  234. package/cloud-runtime/standalone/.next/server/app/board.segments/_index.segment.rsc +2 -2
  235. package/cloud-runtime/standalone/.next/server/app/board.segments/_tree.segment.rsc +2 -2
  236. package/cloud-runtime/standalone/.next/server/app/board.segments/board/__PAGE__.segment.rsc +1 -1
  237. package/cloud-runtime/standalone/.next/server/app/board.segments/board.segment.rsc +1 -1
  238. package/cloud-runtime/standalone/.next/server/app/execution-graph/page/build-manifest.json +2 -2
  239. package/cloud-runtime/standalone/.next/server/app/execution-graph/page.js.nft.json +1 -1
  240. package/cloud-runtime/standalone/.next/server/app/execution-graph/page_client-reference-manifest.js +1 -1
  241. package/cloud-runtime/standalone/.next/server/app/execution-graph.html +2 -2
  242. package/cloud-runtime/standalone/.next/server/app/execution-graph.rsc +3 -3
  243. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_full.segment.rsc +3 -3
  244. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_head.segment.rsc +1 -1
  245. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_index.segment.rsc +2 -2
  246. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_tree.segment.rsc +2 -2
  247. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/execution-graph/__PAGE__.segment.rsc +2 -2
  248. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/execution-graph.segment.rsc +1 -1
  249. package/cloud-runtime/standalone/.next/server/app/index.html +2 -2
  250. package/cloud-runtime/standalone/.next/server/app/index.rsc +4 -4
  251. package/cloud-runtime/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
  252. package/cloud-runtime/standalone/.next/server/app/index.segments/_full.segment.rsc +4 -4
  253. package/cloud-runtime/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  254. package/cloud-runtime/standalone/.next/server/app/index.segments/_index.segment.rsc +2 -2
  255. package/cloud-runtime/standalone/.next/server/app/index.segments/_tree.segment.rsc +3 -3
  256. package/cloud-runtime/standalone/.next/server/app/page/build-manifest.json +2 -2
  257. package/cloud-runtime/standalone/.next/server/app/page.js.nft.json +1 -1
  258. package/cloud-runtime/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  259. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/graph/[taskId]/page/build-manifest.json +2 -2
  260. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/graph/[taskId]/page.js.nft.json +1 -1
  261. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/graph/[taskId]/page_client-reference-manifest.js +1 -1
  262. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page/app-paths-manifest.json +3 -0
  263. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page/build-manifest.json +18 -0
  264. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page/next-font-manifest.json +11 -0
  265. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page/react-loadable-manifest.json +1 -0
  266. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page/server-reference-manifest.json +4 -0
  267. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page.js +16 -0
  268. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page.js.map +5 -0
  269. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page.js.nft.json +1 -0
  270. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page_client-reference-manifest.js +2 -0
  271. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/page/build-manifest.json +2 -2
  272. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/page.js.nft.json +1 -1
  273. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
  274. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page/app-paths-manifest.json +3 -0
  275. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page/build-manifest.json +18 -0
  276. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page/next-font-manifest.json +11 -0
  277. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page/react-loadable-manifest.json +1 -0
  278. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page/server-reference-manifest.json +4 -0
  279. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page.js +16 -0
  280. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page.js.map +5 -0
  281. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page.js.nft.json +1 -0
  282. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page_client-reference-manifest.js +2 -0
  283. package/cloud-runtime/standalone/.next/server/app/projects/orphans/page/build-manifest.json +2 -2
  284. package/cloud-runtime/standalone/.next/server/app/projects/orphans/page.js.nft.json +1 -1
  285. package/cloud-runtime/standalone/.next/server/app/projects/orphans/page_client-reference-manifest.js +1 -1
  286. package/cloud-runtime/standalone/.next/server/app/projects/orphans.html +2 -2
  287. package/cloud-runtime/standalone/.next/server/app/projects/orphans.rsc +3 -3
  288. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_full.segment.rsc +3 -3
  289. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_head.segment.rsc +1 -1
  290. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_index.segment.rsc +2 -2
  291. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_tree.segment.rsc +2 -2
  292. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects/orphans/__PAGE__.segment.rsc +2 -2
  293. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects/orphans.segment.rsc +1 -1
  294. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects.segment.rsc +1 -1
  295. package/cloud-runtime/standalone/.next/server/app/projects/page/build-manifest.json +2 -2
  296. package/cloud-runtime/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  297. package/cloud-runtime/standalone/.next/server/app/projects.html +2 -2
  298. package/cloud-runtime/standalone/.next/server/app/projects.rsc +3 -3
  299. package/cloud-runtime/standalone/.next/server/app/projects.segments/_full.segment.rsc +3 -3
  300. package/cloud-runtime/standalone/.next/server/app/projects.segments/_head.segment.rsc +1 -1
  301. package/cloud-runtime/standalone/.next/server/app/projects.segments/_index.segment.rsc +2 -2
  302. package/cloud-runtime/standalone/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
  303. package/cloud-runtime/standalone/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +2 -2
  304. package/cloud-runtime/standalone/.next/server/app/projects.segments/projects.segment.rsc +1 -1
  305. package/cloud-runtime/standalone/.next/server/app/settings/page/build-manifest.json +2 -2
  306. package/cloud-runtime/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  307. package/cloud-runtime/standalone/.next/server/app/settings.html +2 -2
  308. package/cloud-runtime/standalone/.next/server/app/settings.rsc +2 -2
  309. package/cloud-runtime/standalone/.next/server/app/settings.segments/_full.segment.rsc +2 -2
  310. package/cloud-runtime/standalone/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  311. package/cloud-runtime/standalone/.next/server/app/settings.segments/_index.segment.rsc +2 -2
  312. package/cloud-runtime/standalone/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  313. package/cloud-runtime/standalone/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
  314. package/cloud-runtime/standalone/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  315. package/cloud-runtime/standalone/.next/server/app/status/page/build-manifest.json +2 -2
  316. package/cloud-runtime/standalone/.next/server/app/status/page.js.nft.json +1 -1
  317. package/cloud-runtime/standalone/.next/server/app/status/page_client-reference-manifest.js +1 -1
  318. package/cloud-runtime/standalone/.next/server/app/status.html +2 -2
  319. package/cloud-runtime/standalone/.next/server/app/status.rsc +3 -3
  320. package/cloud-runtime/standalone/.next/server/app/status.segments/_full.segment.rsc +3 -3
  321. package/cloud-runtime/standalone/.next/server/app/status.segments/_head.segment.rsc +1 -1
  322. package/cloud-runtime/standalone/.next/server/app/status.segments/_index.segment.rsc +2 -2
  323. package/cloud-runtime/standalone/.next/server/app/status.segments/_tree.segment.rsc +2 -2
  324. package/cloud-runtime/standalone/.next/server/app/status.segments/status/__PAGE__.segment.rsc +2 -2
  325. package/cloud-runtime/standalone/.next/server/app/status.segments/status.segment.rsc +1 -1
  326. package/cloud-runtime/standalone/.next/server/app/thread/[id]/page/build-manifest.json +2 -2
  327. package/cloud-runtime/standalone/.next/server/app/thread/[id]/page.js.nft.json +1 -1
  328. package/cloud-runtime/standalone/.next/server/app/thread/[id]/page_client-reference-manifest.js +1 -1
  329. package/cloud-runtime/standalone/.next/server/app/welcome/page/build-manifest.json +2 -2
  330. package/cloud-runtime/standalone/.next/server/app/welcome/page.js.nft.json +1 -1
  331. package/cloud-runtime/standalone/.next/server/app/welcome/page_client-reference-manifest.js +1 -1
  332. package/cloud-runtime/standalone/.next/server/app/welcome.html +2 -2
  333. package/cloud-runtime/standalone/.next/server/app/welcome.rsc +3 -3
  334. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_full.segment.rsc +3 -3
  335. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_head.segment.rsc +1 -1
  336. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_index.segment.rsc +2 -2
  337. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_tree.segment.rsc +2 -2
  338. package/cloud-runtime/standalone/.next/server/app/welcome.segments/welcome/__PAGE__.segment.rsc +2 -2
  339. package/cloud-runtime/standalone/.next/server/app/welcome.segments/welcome.segment.rsc +1 -1
  340. package/cloud-runtime/standalone/.next/server/app-paths-manifest.json +6 -0
  341. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__017f03c3._.js +13 -0
  342. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__0925dd01._.js +46 -0
  343. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__10940c29._.js +3 -0
  344. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__12afd8a3._.js +3 -0
  345. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__12c7e188._.js +29 -0
  346. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__16dd1fd7._.js +13 -0
  347. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__17c2d68f._.js +52 -0
  348. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__1dd062c1._.js +1 -1
  349. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__20b3baea._.js +55 -0
  350. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__2388b2b3._.js +3 -0
  351. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__241a8bcf._.js +1 -1
  352. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__254e942f._.js +20 -0
  353. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__29ce9c60._.js +3 -0
  354. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__2e596cc8._.js +4 -4
  355. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__3198c5c8._.js +2 -2
  356. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__36d9edbd._.js +14 -14
  357. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__399b2ca9._.js +3 -0
  358. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4761dc17._.js +8 -0
  359. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4b1a512c._.js +52 -0
  360. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4c50f159._.js +4 -4
  361. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4c8624cc._.js +3 -0
  362. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4d318eb0._.js +146 -0
  363. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__507a4363._.js +4 -0
  364. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__50ddd3ce._.js +3 -0
  365. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__543ba6c4._.js +5 -1
  366. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__59b5d4e5._.js +1 -1
  367. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__5ca87ba0._.js +3 -0
  368. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__5d359afa._.js +46 -0
  369. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__666f8712._.js +3 -0
  370. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__6c187704._.js +3 -0
  371. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__6c26221d._.js +7 -0
  372. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__6e59b27c._.js +3 -0
  373. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__74b97f0a._.js +1 -1
  374. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__75bff965._.js +46 -0
  375. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__7be8f159._.js +8 -8
  376. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__80655727._.js +3 -0
  377. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__86f7d27b._.js +3 -0
  378. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__94fa1edc._.js +46 -0
  379. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__98535eb3._.js +3 -0
  380. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__9dfaaf72._.js +52 -0
  381. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__a189593a._.js +3 -0
  382. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ac3c2f7f._.js +52 -0
  383. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__b40c7aab._.js +1 -1
  384. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__b4d05543._.js +1 -1
  385. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__bfcedb7c._.js +52 -0
  386. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c08bef05._.js +3 -0
  387. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c5634f17._.js +112 -0
  388. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c5b8ceb7._.js +3 -0
  389. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ccfcbcd5._.js +42 -0
  390. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ceb02db8._.js +3 -0
  391. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__da20a0aa._.js +1 -1
  392. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__dede3dcd._.js +75 -0
  393. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__e122cae2._.js +3 -0
  394. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__e1e7dd1e._.js +25 -0
  395. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__e446cb39._.js +3 -0
  396. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__e6ad07c3._.js +1 -1
  397. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f4b70b67._.js +46 -0
  398. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f5a2358a._.js +7 -0
  399. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f5b93200._.js +3 -0
  400. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__fa0ebee3._.js +13 -0
  401. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__fcd3e3b8._.js +15 -0
  402. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__fce2cdce._.js +3 -0
  403. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ff9c61da._.js +3 -0
  404. package/cloud-runtime/standalone/.next/server/chunks/_05fa3b89._.js +46 -0
  405. package/cloud-runtime/standalone/.next/server/chunks/_0a767dfe._.js +3 -0
  406. package/cloud-runtime/standalone/.next/server/chunks/_2f3e5ac1._.js +6 -0
  407. package/cloud-runtime/standalone/.next/server/chunks/_3e0d34cc._.js +97 -0
  408. package/cloud-runtime/standalone/.next/server/chunks/_4190f170._.js +46 -0
  409. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__a104cda8._.js → _42e9c8d5._.js} +7 -7
  410. package/cloud-runtime/standalone/.next/server/chunks/_5ca51127._.js +54 -0
  411. package/cloud-runtime/standalone/.next/server/chunks/_66e1ddec._.js +57 -0
  412. package/cloud-runtime/standalone/.next/server/chunks/_6bb93816._.js +6 -0
  413. package/cloud-runtime/standalone/.next/server/chunks/_7011db4f._.js +3 -0
  414. package/cloud-runtime/standalone/.next/server/chunks/_8b9fde82._.js +97 -0
  415. package/cloud-runtime/standalone/.next/server/chunks/_95ac98db._.js +49 -0
  416. package/cloud-runtime/standalone/.next/server/chunks/_994414cd._.js +54 -0
  417. package/cloud-runtime/standalone/.next/server/chunks/_99b78daf._.js +46 -0
  418. package/cloud-runtime/standalone/.next/server/chunks/_a877d34f._.js +6 -0
  419. package/cloud-runtime/standalone/.next/server/chunks/_affbdbb0._.js +46 -0
  420. package/cloud-runtime/standalone/.next/server/chunks/_c31ca6ab._.js +3 -0
  421. package/cloud-runtime/standalone/.next/server/chunks/_d225c04f._.js +1 -1
  422. package/cloud-runtime/standalone/.next/server/chunks/_ee99a36b._.js +6 -0
  423. package/cloud-runtime/standalone/.next/server/chunks/_efc73784._.js +46 -0
  424. package/cloud-runtime/standalone/.next/server/chunks/_fba13a4a._.js +6 -0
  425. package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_chat-runs_[id]_route_actions_033ac330.js +3 -0
  426. package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_chat-runs_[id]_signal_route_actions_4b56f1cd.js +3 -0
  427. package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_chat-runs_route_actions_0c8cd01c.js +3 -0
  428. package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_threads_knowledge_route_actions_c139bcf7.js +3 -0
  429. package/cloud-runtime/standalone/.next/server/chunks/lib_09aac4e7._.js +57 -0
  430. package/cloud-runtime/standalone/.next/server/chunks/lib_cli-runner_ts_dfcf3fda._.js +18 -0
  431. package/cloud-runtime/standalone/.next/server/chunks/lib_db_ts_e06c6085._.js +1 -1
  432. package/cloud-runtime/standalone/.next/server/chunks/lib_ea45fe73._.js +68 -23
  433. package/cloud-runtime/standalone/.next/server/chunks/lib_history-store_ts_2e721df2._.js +74 -30
  434. package/cloud-runtime/standalone/.next/server/chunks/lib_history-store_ts_74d1c060._.js +70 -31
  435. package/cloud-runtime/standalone/.next/server/chunks/lib_sqlite-query-adapter_ts_3ea4d849._.js +87 -17
  436. package/cloud-runtime/standalone/.next/server/chunks/lib_sqlite-query-adapter_ts_b0b1a9b2._.js +294 -0
  437. package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0f808fa3.js +3 -0
  438. package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_2bdede98.js +3 -0
  439. package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_371d0bff.js +50 -43
  440. package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_3d31fed0.js +3 -0
  441. package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_57a073eb.js +3 -0
  442. package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_69b6b2e1.js +3 -0
  443. package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_7f8022ab.js +3 -0
  444. package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_84e28f38.js +3 -0
  445. package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_8ec90680.js +3 -0
  446. package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_a590fcd6.js +3 -0
  447. package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_cc6c687d.js +3 -0
  448. package/cloud-runtime/standalone/.next/server/chunks/src_graph_14067235._.js +46 -0
  449. package/cloud-runtime/standalone/.next/server/chunks/src_graph_api-route-utils_ts_b7225a0e._.js +1 -1
  450. package/cloud-runtime/standalone/.next/server/chunks/src_graph_b63e2d39._.js +46 -0
  451. package/cloud-runtime/standalone/.next/server/chunks/src_graph_executor_ts_55c06268._.js +3 -3
  452. package/cloud-runtime/standalone/.next/server/chunks/src_graph_executor_ts_a8bc8d58._.js +1 -1
  453. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__1322ced8._.js +3 -0
  454. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__47caef59._.js +1 -1
  455. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__6e83bf83._.js +3 -0
  456. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__783669c3._.js +3 -0
  457. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__8973b16a._.js +3 -0
  458. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__9166c1d6._.js +3 -0
  459. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__a0a1cb74._.js +3 -0
  460. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__a8a8afdc._.js +3 -0
  461. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__fca7df40._.js +3 -0
  462. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__ffbc2e98._.js +2 -2
  463. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_27f9c020._.js → _0061ebd8._.js} +2 -2
  464. package/cloud-runtime/standalone/.next/server/chunks/ssr/_064370bc._.js +3 -0
  465. package/cloud-runtime/standalone/.next/server/chunks/ssr/_0f4e70b1._.js +3 -0
  466. package/cloud-runtime/standalone/.next/server/chunks/ssr/_0ff7c687._.js +2 -4
  467. package/cloud-runtime/standalone/.next/server/chunks/ssr/_16c45024._.js +3 -0
  468. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_27cb3359._.js → _5b2b8a85._.js} +2 -2
  469. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_a696e9b3._.js → _68ac991e._.js} +2 -2
  470. package/cloud-runtime/standalone/.next/server/chunks/ssr/_6de3f1de._.js +3 -0
  471. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_c838f593._.js → _6fc3736e._.js} +2 -2
  472. package/cloud-runtime/standalone/.next/server/chunks/ssr/_85ca101b._.js +8 -0
  473. package/cloud-runtime/standalone/.next/server/chunks/ssr/_a0cc0fe7._.js +3 -0
  474. package/cloud-runtime/standalone/.next/server/chunks/ssr/_a10eb951._.js +4 -0
  475. package/cloud-runtime/standalone/.next/server/chunks/ssr/_cb4d8a23._.js +4 -0
  476. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_6a367524._.js → _ccb409c5._.js} +2 -2
  477. package/cloud-runtime/standalone/.next/server/chunks/ssr/_cd5e154b._.js +1 -1
  478. package/cloud-runtime/standalone/.next/server/chunks/ssr/_e1769638._.js +2 -4
  479. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_d021529a._.js → _fb292eed._.js} +2 -2
  480. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_4b5d7c9b._.js → _ff5799d6._.js} +2 -2
  481. package/cloud-runtime/standalone/.next/server/chunks/ssr/_next-internal_server_app_projects_[slug]_knowledge_page_actions_1037c40a.js +3 -0
  482. package/cloud-runtime/standalone/.next/server/chunks/ssr/app_execution-graph_page_tsx_f854185a._.js +2 -2
  483. package/cloud-runtime/standalone/.next/server/chunks/ssr/app_projects_[slug]_graph_[taskId]_page_tsx_d8b1d582._.js +1 -1
  484. package/cloud-runtime/standalone/.next/server/chunks/ssr/app_projects_[slug]_knowledge_page_tsx_e2a55cbd._.js +3 -0
  485. package/cloud-runtime/standalone/.next/server/chunks/ssr/app_welcome_page_tsx_6c79bc59._.js +3 -0
  486. package/cloud-runtime/standalone/.next/server/chunks/ssr/ce889_server_app_projects_[slug]_thread_[threadId]_page_actions_660a8857.js +3 -0
  487. package/cloud-runtime/standalone/.next/server/chunks/ssr/components_chat-ui_bfeda794._.js +5 -5
  488. package/cloud-runtime/standalone/.next/server/chunks/ssr/components_thread_WorkspaceSidebar_tsx_e660301b._.js +1 -1
  489. package/cloud-runtime/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_e70f9321._.js +3 -0
  490. package/cloud-runtime/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_678fa868._.js +3 -0
  491. package/cloud-runtime/standalone/.next/server/functions-config-manifest.json +4 -0
  492. package/cloud-runtime/standalone/.next/server/middleware-build-manifest.js +2 -2
  493. package/cloud-runtime/standalone/.next/server/middleware-manifest.json +5 -5
  494. package/cloud-runtime/standalone/.next/server/next-font-manifest.js +1 -1
  495. package/cloud-runtime/standalone/.next/server/next-font-manifest.json +8 -0
  496. package/cloud-runtime/standalone/.next/server/pages/404.html +2 -2
  497. package/cloud-runtime/standalone/.next/server/pages/500.html +2 -2
  498. package/cloud-runtime/standalone/.next/server/server-reference-manifest.js +1 -1
  499. package/cloud-runtime/standalone/.next/server/server-reference-manifest.json +1 -1
  500. package/cloud-runtime/standalone/.next/static/chunks/010aff7b601302de.js +16 -0
  501. package/cloud-runtime/standalone/.next/static/chunks/0c467f54bc78a380.js +1 -0
  502. package/cloud-runtime/standalone/.next/static/chunks/10b0642440302e99.css +2 -0
  503. package/cloud-runtime/standalone/.next/static/chunks/1f415d0ce7ebbd08.js +8 -0
  504. package/cloud-runtime/standalone/.next/static/chunks/24a6ee21f430da93.js +1 -0
  505. package/cloud-runtime/standalone/.next/static/chunks/27129bea5b512ce8.js +1 -0
  506. package/cloud-runtime/standalone/.next/static/chunks/{e44264686aa5ecbf.js → 4200b512bdc226bc.js} +1 -1
  507. package/cloud-runtime/standalone/.next/static/chunks/463edf3533d27a56.js +1 -0
  508. package/cloud-runtime/standalone/.next/static/chunks/486bf7ff282b91a6.js +5 -0
  509. package/cloud-runtime/standalone/.next/static/chunks/{616d66dbec9e4b8b.js → 58025a80caa3629d.js} +1 -1
  510. package/cloud-runtime/standalone/.next/static/chunks/5cb0c885b085ea6c.js +1 -0
  511. package/cloud-runtime/standalone/.next/static/chunks/60c054bb8b2cffa6.css +1 -0
  512. package/cloud-runtime/standalone/.next/static/chunks/{da434b1ad885d636.js → 651c7c97d3bd77e0.js} +2 -4
  513. package/cloud-runtime/standalone/.next/static/chunks/{45b4d0ee5c92d45b.js → 6fbe08eab578c7d3.js} +1 -1
  514. package/cloud-runtime/standalone/.next/static/chunks/7e2edf97bd6c0874.js +1 -0
  515. package/cloud-runtime/standalone/.next/static/chunks/8249f202d33d0d95.js +1 -0
  516. package/cloud-runtime/standalone/.next/static/chunks/{b4e298542d366e31.js → 87f099ea02aa419d.js} +1 -1
  517. package/cloud-runtime/standalone/.next/static/chunks/8d15ced2dc70090a.js +1 -0
  518. package/cloud-runtime/standalone/.next/static/chunks/{2acd153dc5252e88.js → 99174504a201d23e.js} +2 -4
  519. package/cloud-runtime/standalone/.next/static/chunks/9f8f719c4aa25e3d.js +1 -0
  520. package/cloud-runtime/standalone/.next/static/chunks/a66e1891e808a664.js +1 -0
  521. package/cloud-runtime/standalone/.next/static/chunks/{3344004561eabdf8.js → bc3cad3c821b169b.js} +1 -1
  522. package/cloud-runtime/standalone/.next/static/chunks/bc727d3d9993e9be.js +1 -0
  523. package/cloud-runtime/standalone/.next/static/chunks/cd308f61797939cd.js +6 -0
  524. package/cloud-runtime/standalone/.next/static/chunks/d5d6be8239e57c56.js +1 -0
  525. package/cloud-runtime/standalone/.next/static/chunks/{ee5f1457fbc593e1.js → dfff51033c303fc7.js} +1 -1
  526. package/cloud-runtime/standalone/.next/static/chunks/e62d5fa120fdf21f.js +1 -0
  527. package/cloud-runtime/standalone/.next/static/chunks/{turbopack-5b5918f610666d2d.js → turbopack-97e846241a3a64af.js} +1 -1
  528. package/cloud-runtime/standalone/README.md +3 -3
  529. package/cloud-runtime/standalone/app/api/chat/route.ts +38 -28
  530. package/cloud-runtime/standalone/app/api/chat-runs/[id]/route.ts +19 -0
  531. package/cloud-runtime/standalone/app/api/chat-runs/[id]/signal/route.ts +32 -0
  532. package/cloud-runtime/standalone/app/api/chat-runs/route.ts +37 -0
  533. package/cloud-runtime/standalone/app/api/history/route.ts +6 -0
  534. package/cloud-runtime/standalone/app/api/projects/[id]/memory/route.ts +17 -0
  535. package/cloud-runtime/standalone/app/api/providers/route.ts +9 -13
  536. package/cloud-runtime/standalone/app/api/schedules/debug/route.ts +23 -3
  537. package/cloud-runtime/standalone/app/api/schedules/poll/route.ts +5 -3
  538. package/cloud-runtime/standalone/app/api/schedules/route.ts +12 -17
  539. package/cloud-runtime/standalone/app/api/status/route.ts +6 -5
  540. package/cloud-runtime/standalone/app/api/threads/knowledge/route.ts +91 -0
  541. package/cloud-runtime/standalone/app/api/threads/route.ts +18 -1
  542. package/cloud-runtime/standalone/app/globals.css +22 -22
  543. package/cloud-runtime/standalone/app/projects/[slug]/graph/[taskId]/page.tsx +0 -21
  544. package/cloud-runtime/standalone/app/projects/[slug]/knowledge/page.tsx +608 -0
  545. package/cloud-runtime/standalone/app/projects/[slug]/layout.tsx +18 -2
  546. package/cloud-runtime/standalone/app/projects/[slug]/page.tsx +1 -455
  547. package/cloud-runtime/standalone/app/projects/[slug]/thread/[threadId]/page.tsx +14 -0
  548. package/cloud-runtime/standalone/app/welcome/page.tsx +329 -107
  549. package/cloud-runtime/standalone/components/ActionToolbar.tsx +25 -0
  550. package/cloud-runtime/standalone/components/ConfirmDialog.tsx +133 -0
  551. package/cloud-runtime/standalone/components/IconButton.tsx +35 -0
  552. package/cloud-runtime/standalone/components/ProjectCard.tsx +2 -2
  553. package/cloud-runtime/standalone/components/ProjectModal.tsx +2 -2
  554. package/cloud-runtime/standalone/components/TaskCard.tsx +2 -4
  555. package/cloud-runtime/standalone/components/chat-ui/ChatContainer.tsx +415 -76
  556. package/cloud-runtime/standalone/components/chat-ui/Composer.tsx +152 -101
  557. package/cloud-runtime/standalone/components/chat-ui/FileMentionPopoverItem.tsx +2 -2
  558. package/cloud-runtime/standalone/components/chat-ui/MessageList.tsx +46 -43
  559. package/cloud-runtime/standalone/components/chat-ui/ThreadView.tsx +73 -34
  560. package/cloud-runtime/standalone/components/thread/WorkspaceSidebar.tsx +51 -23
  561. package/cloud-runtime/standalone/hooks/useComposerHistory.ts +130 -0
  562. package/cloud-runtime/standalone/hooks/useGroupChat.ts +24 -1
  563. package/cloud-runtime/standalone/hooks/useProcessPolling.ts +69 -6
  564. package/cloud-runtime/standalone/lib/history-store.ts +532 -38
  565. package/cloud-runtime/standalone/lib/knowledge-notes.ts +251 -0
  566. package/cloud-runtime/standalone/lib/knowledge-store.ts +233 -0
  567. package/cloud-runtime/standalone/lib/memory-extractor.ts +76 -60
  568. package/cloud-runtime/standalone/lib/mesh-core/journal.ts +30 -0
  569. package/cloud-runtime/standalone/lib/mesh-core/self.ts +94 -0
  570. package/cloud-runtime/standalone/lib/orchestrator/chat-activities.ts +60 -0
  571. package/cloud-runtime/standalone/lib/orchestrator/chat-processor.ts +168 -0
  572. package/cloud-runtime/standalone/lib/orchestrator/chat-types.ts +29 -0
  573. package/cloud-runtime/standalone/lib/orchestrator/runtime.ts +20 -0
  574. package/cloud-runtime/standalone/lib/provider-clis.ts +63 -0
  575. package/cloud-runtime/standalone/lib/queue/boss.ts +2 -1
  576. package/cloud-runtime/standalone/lib/repo-knowledge.ts +19 -2
  577. package/cloud-runtime/standalone/lib/sqlite-query-adapter.ts +78 -0
  578. package/cloud-runtime/standalone/lib/stream-multiplexer.ts +101 -14
  579. package/cloud-runtime/standalone/lib/task-context.ts +7 -4
  580. package/cloud-runtime/standalone/lib/thread-knowledge-runs.ts +227 -0
  581. package/cloud-runtime/standalone/lib/thread-knowledge.ts +419 -0
  582. package/cloud-runtime/standalone/node_modules/@img/{sharp-libvips-darwin-arm64 → sharp-libvips-linux-x64}/README.md +2 -2
  583. package/cloud-runtime/standalone/node_modules/@img/{sharp-libvips-darwin-arm64 → sharp-libvips-linux-x64}/lib/glib-2.0/include/glibconfig.h +9 -8
  584. package/cloud-runtime/standalone/node_modules/@img/{sharp-libvips-darwin-arm64/lib/libvips-cpp.8.17.3.dylib → sharp-libvips-linux-x64/lib/libvips-cpp.so.8.17.3} +0 -0
  585. package/cloud-runtime/standalone/node_modules/@img/{sharp-libvips-darwin-arm64 → sharp-libvips-linux-x64}/package.json +11 -5
  586. package/cloud-runtime/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/README.md +46 -0
  587. package/cloud-runtime/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/glib-2.0/include/glibconfig.h +221 -0
  588. package/cloud-runtime/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/index.js +1 -0
  589. package/cloud-runtime/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/libvips-cpp.so.8.17.3 +0 -0
  590. package/cloud-runtime/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/package.json +42 -0
  591. package/cloud-runtime/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/versions.json +30 -0
  592. package/cloud-runtime/standalone/node_modules/@img/sharp-linux-x64/lib/sharp-linux-x64.node +0 -0
  593. package/cloud-runtime/standalone/node_modules/@img/{sharp-darwin-arm64 → sharp-linux-x64}/package.json +13 -7
  594. package/cloud-runtime/standalone/node_modules/@img/sharp-linuxmusl-x64/lib/sharp-linuxmusl-x64.node +0 -0
  595. package/cloud-runtime/standalone/node_modules/@img/sharp-linuxmusl-x64/package.json +46 -0
  596. package/cloud-runtime/standalone/node_modules/better-sqlite3/build/Release/better_sqlite3.node +0 -0
  597. package/cloud-runtime/standalone/node_modules/better-sqlite3-90e2652d1716b047/build/Release/better_sqlite3.node +0 -0
  598. package/cloud-runtime/standalone/package-lock.json +13 -0
  599. package/cloud-runtime/standalone/package.json +1 -0
  600. package/cloud-runtime/standalone/server.js +1 -1
  601. package/cloud-runtime/standalone/src/graph/api-schemas.ts +2 -2
  602. package/cloud-runtime/standalone/src/graph/executor.ts +9 -7
  603. package/cloud-runtime/standalone/src/graph/function-executor.ts +4 -1
  604. package/cloud-runtime/standalone/src/graph/internal-function-dispatcher.ts +174 -0
  605. package/cloud-runtime/standalone/src/graph/types.ts +3 -3
  606. package/cloud-runtime/standalone/src/graph/work-dispatcher.ts +5 -1
  607. package/cloud-runtime/standalone/styles/workspaceSidebar.css +2 -0
  608. package/cloud-runtime/standalone/tsconfig.json +3 -1
  609. package/cloud-runtime/standalone/worker/index.js +2930 -137
  610. package/cloud-runtime/standalone/worker/index.ts +8 -1
  611. package/package.json +1 -1
  612. package/cloud-runtime/standalone/.next/server/chunks/[externals]_child_process_964038fc._.js +0 -3
  613. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__03a1bf91._.js +0 -6
  614. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__065c5114._.js +0 -3
  615. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__07dce481._.js +0 -3
  616. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__09f46c85._.js +0 -46
  617. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__149bcf6d._.js +0 -115
  618. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__14bad16e._.js +0 -3
  619. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__14e3bf74._.js +0 -3
  620. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__1632828c._.js +0 -46
  621. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__24b8ccd3._.js +0 -52
  622. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__284e1cbe._.js +0 -3
  623. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__28d6e806._.js +0 -3
  624. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__2bcb75a7._.js +0 -3
  625. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__32e5f341._.js +0 -4
  626. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__3b4a126a._.js +0 -46
  627. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__3c7464e8._.js +0 -46
  628. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__3d82dc78._.js +0 -46
  629. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__406bdd54._.js +0 -46
  630. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__40d6458a._.js +0 -3
  631. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__47ca4946._.js +0 -3
  632. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__49fb4a12._.js +0 -3
  633. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__5327e395._.js +0 -46
  634. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__55d75c3a._.js +0 -7
  635. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__592e81f9._.js +0 -13
  636. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__5a6a194c._.js +0 -52
  637. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__5af16b4f._.js +0 -3
  638. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__60ba5058._.js +0 -3
  639. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__6716441c._.js +0 -3
  640. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__673aedc6._.js +0 -3
  641. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__6a44c891._.js +0 -3
  642. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__6b680112._.js +0 -55
  643. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__7312fad4._.js +0 -46
  644. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__7456196c._.js +0 -52
  645. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__74d26856._.js +0 -3
  646. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__772c6fae._.js +0 -3
  647. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__787ba54b._.js +0 -3
  648. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__79157eef._.js +0 -3
  649. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__82d76712._.js +0 -3
  650. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__8311f060._.js +0 -6
  651. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__84e90655._.js +0 -46
  652. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__90a887dc._.js +0 -3
  653. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__9345d703._.js +0 -3
  654. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__98294450._.js +0 -3
  655. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__985f0d9f._.js +0 -51
  656. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__9b32295e._.js +0 -3
  657. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__a64d978e._.js +0 -6
  658. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__babcd1af._.js +0 -13
  659. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c16f03fb._.js +0 -13
  660. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c2767ca5._.js +0 -3
  661. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c72c6d4a._.js +0 -25
  662. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ca851b15._.js +0 -3
  663. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__d25227df._.js +0 -29
  664. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__e06820c3._.js +0 -6
  665. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__e429a0bc._.js +0 -3
  666. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__e4397d43._.js +0 -7
  667. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ec8735f4._.js +0 -3
  668. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ef09ab99._.js +0 -13
  669. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f366a937._.js +0 -46
  670. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__fdaa8a27._.js +0 -3
  671. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__fddde532._.js +0 -3
  672. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ff53f445._.js +0 -3
  673. package/cloud-runtime/standalone/.next/server/chunks/_1111d342._.js +0 -101
  674. package/cloud-runtime/standalone/.next/server/chunks/_4b60ba15._.js +0 -49
  675. package/cloud-runtime/standalone/.next/server/chunks/_54252651._.js +0 -49
  676. package/cloud-runtime/standalone/.next/server/chunks/_818a89c4._.js +0 -46
  677. package/cloud-runtime/standalone/.next/server/chunks/_a4a21d4f._.js +0 -3
  678. package/cloud-runtime/standalone/.next/server/chunks/_a759d52b._.js +0 -3
  679. package/cloud-runtime/standalone/.next/server/chunks/_e6b28eae._.js +0 -46
  680. package/cloud-runtime/standalone/.next/server/chunks/_e868e7c1._.js +0 -46
  681. package/cloud-runtime/standalone/.next/server/chunks/lib_23509137._.js +0 -196
  682. package/cloud-runtime/standalone/.next/server/chunks/lib_3273d5f9._.js +0 -196
  683. package/cloud-runtime/standalone/.next/server/chunks/lib_50ba0b4c._.js +0 -63
  684. package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_33963d95.js +0 -3
  685. package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_56c5acb3.js +0 -3
  686. package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_888b3578.js +0 -3
  687. package/cloud-runtime/standalone/.next/server/chunks/src_graph_e3bb4da8._.js +0 -46
  688. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__113d6767._.js +0 -3
  689. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__6a9d3855._.js +0 -3
  690. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__942ca438._.js +0 -3
  691. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__ce3b51aa._.js +0 -3
  692. package/cloud-runtime/standalone/.next/server/chunks/ssr/_1ec61dee._.js +0 -3
  693. package/cloud-runtime/standalone/.next/server/chunks/ssr/_27904584._.js +0 -3
  694. package/cloud-runtime/standalone/.next/server/chunks/ssr/_43472af3._.js +0 -3
  695. package/cloud-runtime/standalone/.next/server/chunks/ssr/_94effa0f._.js +0 -3
  696. package/cloud-runtime/standalone/.next/server/chunks/ssr/_d458d1eb._.js +0 -3
  697. package/cloud-runtime/standalone/.next/server/chunks/ssr/_fbced30b._.js +0 -3
  698. package/cloud-runtime/standalone/.next/server/chunks/ssr/app_projects_[slug]_page_tsx_e0fabf6e._.js +0 -8
  699. package/cloud-runtime/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_a8f86889._.js +0 -3
  700. package/cloud-runtime/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_play_6595a532.js +0 -3
  701. package/cloud-runtime/standalone/.next/static/chunks/1184bf1bfdf97666.js +0 -1
  702. package/cloud-runtime/standalone/.next/static/chunks/5ace4b4f4475962a.js +0 -1
  703. package/cloud-runtime/standalone/.next/static/chunks/64f812259cf8c243.js +0 -18
  704. package/cloud-runtime/standalone/.next/static/chunks/6509f7fecbf44493.js +0 -1
  705. package/cloud-runtime/standalone/.next/static/chunks/6dbf5940e30fa9c7.js +0 -1
  706. package/cloud-runtime/standalone/.next/static/chunks/7e91f395ace1dd2c.js +0 -1
  707. package/cloud-runtime/standalone/.next/static/chunks/7f13efe9329d3f97.js +0 -1
  708. package/cloud-runtime/standalone/.next/static/chunks/80219bbddcf65109.js +0 -1
  709. package/cloud-runtime/standalone/.next/static/chunks/86ace6febb11ad71.js +0 -1
  710. package/cloud-runtime/standalone/.next/static/chunks/9d50c2514f72d926.css +0 -1
  711. package/cloud-runtime/standalone/.next/static/chunks/b079c677d9b39f98.js +0 -5
  712. package/cloud-runtime/standalone/.next/static/chunks/b88352740262931f.js +0 -6
  713. package/cloud-runtime/standalone/.next/static/chunks/bd6c5b5b4fbd6413.css +0 -2
  714. package/cloud-runtime/standalone/.next/static/chunks/c5609fd2abb65850.js +0 -1
  715. package/cloud-runtime/standalone/.next/static/chunks/d95cd010361834be.js +0 -1
  716. package/cloud-runtime/standalone/.next/static/chunks/eab1c7d0246592f8.js +0 -8
  717. package/cloud-runtime/standalone/.next/static/chunks/f7bbf5cfcfed8ba9.js +0 -1
  718. package/cloud-runtime/standalone/coverage/clover.xml +0 -1208
  719. package/cloud-runtime/standalone/coverage/coverage-final.json +0 -29
  720. package/cloud-runtime/standalone/coverage/lcov-report/app/api/audit/index.html +0 -116
  721. package/cloud-runtime/standalone/coverage/lcov-report/app/api/audit/route.ts.html +0 -208
  722. package/cloud-runtime/standalone/coverage/lcov-report/app/api/auth/[...nextauth]/index.html +0 -116
  723. package/cloud-runtime/standalone/coverage/lcov-report/app/api/auth/[...nextauth]/route.ts.html +0 -166
  724. package/cloud-runtime/standalone/coverage/lcov-report/app/api/auth/daemon-secret/index.html +0 -116
  725. package/cloud-runtime/standalone/coverage/lcov-report/app/api/auth/daemon-secret/route.ts.html +0 -532
  726. package/cloud-runtime/standalone/coverage/lcov-report/app/api/auth/status/index.html +0 -116
  727. package/cloud-runtime/standalone/coverage/lcov-report/app/api/auth/status/route.ts.html +0 -178
  728. package/cloud-runtime/standalone/coverage/lcov-report/app/api/learnings/index.html +0 -116
  729. package/cloud-runtime/standalone/coverage/lcov-report/app/api/learnings/route.ts.html +0 -262
  730. package/cloud-runtime/standalone/coverage/lcov-report/app/api/logs/stream/index.html +0 -116
  731. package/cloud-runtime/standalone/coverage/lcov-report/app/api/logs/stream/route.ts.html +0 -448
  732. package/cloud-runtime/standalone/coverage/lcov-report/app/api/queue/complete/index.html +0 -116
  733. package/cloud-runtime/standalone/coverage/lcov-report/app/api/queue/complete/route.ts.html +0 -331
  734. package/cloud-runtime/standalone/coverage/lcov-report/app/api/queue/index.html +0 -116
  735. package/cloud-runtime/standalone/coverage/lcov-report/app/api/queue/route.ts.html +0 -505
  736. package/cloud-runtime/standalone/coverage/lcov-report/app/api/stage-prompts/index.html +0 -116
  737. package/cloud-runtime/standalone/coverage/lcov-report/app/api/stage-prompts/route.ts.html +0 -412
  738. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/[id]/advance/index.html +0 -116
  739. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/[id]/advance/route.ts.html +0 -304
  740. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/[id]/index.html +0 -116
  741. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/[id]/logs/index.html +0 -116
  742. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/[id]/logs/route.ts.html +0 -202
  743. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/[id]/route.ts.html +0 -373
  744. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/index.html +0 -116
  745. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/route.ts.html +0 -499
  746. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/stream/index.html +0 -116
  747. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/stream/route.ts.html +0 -349
  748. package/cloud-runtime/standalone/coverage/lcov-report/base.css +0 -224
  749. package/cloud-runtime/standalone/coverage/lcov-report/block-navigation.js +0 -87
  750. package/cloud-runtime/standalone/coverage/lcov-report/components/AuthProvider.tsx.html +0 -259
  751. package/cloud-runtime/standalone/coverage/lcov-report/components/ChatInterface.tsx.html +0 -1228
  752. package/cloud-runtime/standalone/coverage/lcov-report/components/KanbanBoard.tsx.html +0 -1024
  753. package/cloud-runtime/standalone/coverage/lcov-report/components/Layout.tsx.html +0 -211
  754. package/cloud-runtime/standalone/coverage/lcov-report/components/LearningsPanel.tsx.html +0 -535
  755. package/cloud-runtime/standalone/coverage/lcov-report/components/LogTimeline.tsx.html +0 -415
  756. package/cloud-runtime/standalone/coverage/lcov-report/components/SortableTaskCard.tsx.html +0 -358
  757. package/cloud-runtime/standalone/coverage/lcov-report/components/StagePills.tsx.html +0 -439
  758. package/cloud-runtime/standalone/coverage/lcov-report/components/TaskCard.tsx.html +0 -514
  759. package/cloud-runtime/standalone/coverage/lcov-report/components/TaskCardOverlay.tsx.html +0 -256
  760. package/cloud-runtime/standalone/coverage/lcov-report/components/TaskDetail.tsx.html +0 -622
  761. package/cloud-runtime/standalone/coverage/lcov-report/components/TaskList.tsx.html +0 -253
  762. package/cloud-runtime/standalone/coverage/lcov-report/components/index.html +0 -281
  763. package/cloud-runtime/standalone/coverage/lcov-report/favicon.png +0 -0
  764. package/cloud-runtime/standalone/coverage/lcov-report/hooks/index.html +0 -116
  765. package/cloud-runtime/standalone/coverage/lcov-report/hooks/useTasks.ts.html +0 -1042
  766. package/cloud-runtime/standalone/coverage/lcov-report/index.html +0 -341
  767. package/cloud-runtime/standalone/coverage/lcov-report/lib/auth-client.ts.html +0 -202
  768. package/cloud-runtime/standalone/coverage/lcov-report/lib/auth-server.ts.html +0 -172
  769. package/cloud-runtime/standalone/coverage/lcov-report/lib/auth.ts.html +0 -265
  770. package/cloud-runtime/standalone/coverage/lcov-report/lib/db.ts.html +0 -1252
  771. package/cloud-runtime/standalone/coverage/lcov-report/lib/index.html +0 -131
  772. package/cloud-runtime/standalone/coverage/lcov-report/lib/orchestrator.ts.html +0 -409
  773. package/cloud-runtime/standalone/coverage/lcov-report/lib/security.ts.html +0 -1165
  774. package/cloud-runtime/standalone/coverage/lcov-report/lib/supabase-server.ts.html +0 -175
  775. package/cloud-runtime/standalone/coverage/lcov-report/lib/supabase.ts.html +0 -157
  776. package/cloud-runtime/standalone/coverage/lcov-report/prettify.css +0 -1
  777. package/cloud-runtime/standalone/coverage/lcov-report/prettify.js +0 -2
  778. package/cloud-runtime/standalone/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  779. package/cloud-runtime/standalone/coverage/lcov-report/sorter.js +0 -210
  780. package/cloud-runtime/standalone/coverage/lcov.info +0 -2386
  781. package/cloud-runtime/standalone/docs/LIMITS.md +0 -63
  782. package/cloud-runtime/standalone/docs/architecture/ADR-001-hybrid-to-full-sqlite.md +0 -345
  783. package/cloud-runtime/standalone/docs/baseline/baseline-report.json +0 -1009
  784. package/cloud-runtime/standalone/docs/baseline/critical-queries.md +0 -105
  785. package/cloud-runtime/standalone/docs/baseline/lock-metrics.json +0 -21
  786. package/cloud-runtime/standalone/docs/baseline/read-latency.json +0 -146
  787. package/cloud-runtime/standalone/docs/baseline/restore-time.json +0 -10
  788. package/cloud-runtime/standalone/docs/baseline/write-metrics.json +0 -803
  789. package/cloud-runtime/standalone/docs/decisions/sqlite-migration-adr.md +0 -327
  790. package/cloud-runtime/standalone/docs/error-code-mapping.md +0 -74
  791. package/cloud-runtime/standalone/docs/migration-plan.md +0 -120
  792. package/cloud-runtime/standalone/docs/migration-spec.md +0 -345
  793. package/cloud-runtime/standalone/docs/pg-sqlite-compatibility-matrix.md +0 -554
  794. package/cloud-runtime/standalone/docs/project-agent-migration-status.md +0 -229
  795. package/cloud-runtime/standalone/docs/runbook-shadow-read.md +0 -66
  796. package/cloud-runtime/standalone/docs/runbook.md +0 -155
  797. package/cloud-runtime/standalone/docs/specs/cli-postgres-removal.md +0 -69
  798. package/cloud-runtime/standalone/docs/specs/thread-mentions.md +0 -53
  799. package/cloud-runtime/standalone/docs/ux/GlobalChatFlow.storyboard +0 -23
  800. package/cloud-runtime/standalone/docs/ux/assistant-chat-cli.md +0 -32
  801. package/cloud-runtime/standalone/mcp/dist/constants.js +0 -66
  802. package/cloud-runtime/standalone/mcp/dist/db.js +0 -220
  803. package/cloud-runtime/standalone/mcp/dist/index.js +0 -7
  804. package/cloud-runtime/standalone/mcp/dist/security.js +0 -18
  805. package/cloud-runtime/standalone/mcp/dist/server.js +0 -240
  806. package/cloud-runtime/standalone/mcp/dist/task-context.js +0 -287
  807. package/cloud-runtime/standalone/mcp/dist/test-client.js +0 -82
  808. package/cloud-runtime/standalone/mcp/dist/tools/audit.js +0 -69
  809. package/cloud-runtime/standalone/mcp/dist/tools/learnings.js +0 -88
  810. package/cloud-runtime/standalone/mcp/dist/tools/queue.js +0 -312
  811. package/cloud-runtime/standalone/mcp/dist/tools/tasks.js +0 -244
  812. package/cloud-runtime/standalone/mcp/dist/types.js +0 -74
  813. package/cloud-runtime/standalone/node_modules/@img/sharp-darwin-arm64/lib/sharp-darwin-arm64.node +0 -0
  814. package/cloud-runtime/standalone/notes/comments-context-demo.md +0 -141
  815. package/cloud-runtime/standalone/notes/comments-context-plan.md +0 -119
  816. package/cloud-runtime/standalone/notes/context-audit.md +0 -21
  817. package/cloud-runtime/standalone/notes/project-layer-plan.md +0 -30
  818. package/cloud-runtime/standalone/notes/project-layer.md +0 -123
  819. package/cloud-runtime/standalone/notes/temporal-migration-design.md +0 -199
  820. package/cloud-runtime/standalone/playwright-report/data/00d55996f37c1506b90144c85493dd85032c13e5.png +0 -0
  821. package/cloud-runtime/standalone/playwright-report/data/0b9d409e57237ae111d7ba258d3dfe64dc368456.png +0 -0
  822. package/cloud-runtime/standalone/playwright-report/data/b33d5e80a15bd1deda4415b9d318ef73f581c950.png +0 -0
  823. package/cloud-runtime/standalone/playwright-report/data/b55684161aa440d0614595e13c91338f0420abbb.md +0 -131
  824. package/cloud-runtime/standalone/playwright-report/data/b9913957ae07e7565c38ddd71215be79b1ceb017.png +0 -0
  825. package/cloud-runtime/standalone/playwright-report/data/c3538be8ebbebc9fe4a7df8f12f04483af4a0d91.png +0 -0
  826. package/cloud-runtime/standalone/playwright-report/data/fe638f64ff5e36f1c30325564565662d3f57da87.md +0 -180
  827. package/cloud-runtime/standalone/playwright-report/index.html +0 -85
  828. package/cloud-runtime/standalone/test-results/auth-Authentication-Flow-S-aff25-sion-across-page-navigation-chromium/test-failed-1.png +0 -0
  829. package/cloud-runtime/standalone/test-results/comments-Task-comments-add-4dc59-nd-persists-it-for-the-task-chromium/error-context.md +0 -131
  830. package/cloud-runtime/standalone/test-results/comments-Task-comments-add-4dc59-nd-persists-it-for-the-task-chromium/test-failed-1.png +0 -0
  831. package/cloud-runtime/standalone/test-results/kanban-Kanban-Board-Stage--4082a-er-planning-after-ideation--chromium/error-context.md +0 -180
  832. package/cloud-runtime/standalone/test-results/kanban-Kanban-Board-Stage--4082a-er-planning-after-ideation--chromium/test-failed-1.png +0 -0
  833. package/cloud-runtime/standalone/test-results/kanban-Kanban-Board-Stage-Columns-displays-all-9-SDLC-stages-chromium/error-context.md +0 -180
  834. package/cloud-runtime/standalone/test-results/kanban-Kanban-Board-Stage-Columns-displays-all-9-SDLC-stages-chromium/test-failed-1.png +0 -0
  835. package/cloud-runtime/standalone/test-results/kanban-Kanban-Board-Task-D-b6d98-ys-tasks-in-correct-columns-chromium/error-context.md +0 -180
  836. package/cloud-runtime/standalone/test-results/kanban-Kanban-Board-Task-D-b6d98-ys-tasks-in-correct-columns-chromium/test-failed-1.png +0 -0
  837. package/cloud-runtime/standalone/test-results/kanban-Kanban-Board-Task-Display-shows-task-count-per-column-chromium/test-failed-1.png +0 -0
  838. package/cloud-runtime/standalone/test-results/kanban-Task-Lifecycle-can-advance-task-through-all-stages-chromium/test-failed-1.png +0 -0
  839. package/cloud-runtime/standalone/tsconfig.tsbuildinfo +0 -1
  840. /package/cloud-runtime/standalone/.next/static/{HOfhTqGoYN6GjsW9CCf3t → i_9nSHyb52FGkCbRgv7EJ}/_buildManifest.js +0 -0
  841. /package/cloud-runtime/standalone/.next/static/{HOfhTqGoYN6GjsW9CCf3t → i_9nSHyb52FGkCbRgv7EJ}/_clientMiddlewareManifest.json +0 -0
  842. /package/cloud-runtime/standalone/.next/static/{HOfhTqGoYN6GjsW9CCf3t → i_9nSHyb52FGkCbRgv7EJ}/_ssgManifest.js +0 -0
  843. /package/cloud-runtime/standalone/node_modules/@img/{sharp-libvips-darwin-arm64 → sharp-libvips-linux-x64}/lib/index.js +0 -0
  844. /package/cloud-runtime/standalone/node_modules/@img/{sharp-libvips-darwin-arm64 → sharp-libvips-linux-x64}/versions.json +0 -0
@@ -1,6 +1,7 @@
1
1
  "use client";
2
2
 
3
3
  import { useEffect, useRef, useState, useCallback, useMemo } from "react";
4
+ import { useSearchParams } from "next/navigation";
4
5
  import { useGroupChat } from "@/hooks/useGroupChat";
5
6
  import { useProcessPolling } from "@/hooks/useProcessPolling";
6
7
  import { useThreadState } from "@/hooks/useThreadState";
@@ -24,10 +25,12 @@ import {
24
25
  } from "@/services/userPreferences";
25
26
  import type { SlashCommand } from "@/hooks/useCommandAutocomplete";
26
27
  import type { Participant, GroupMessage, MessageSearchResponse, MessageSearchResult } from "@/lib/types";
28
+ import type { ThreadStatus } from "@/lib/storage/thread-adapter";
27
29
  import type { TaskDraftMessage } from "@/types/tasks";
28
30
  import { buildTasks } from "@/services/agxService";
31
+ import ConfirmDialog from "@/components/ConfirmDialog";
29
32
  import { useProjectsWithAgents, useProjects } from "@/hooks/useProjects";
30
- import { Search, ChevronLeft, SquareTerminal, PanelLeftOpen, Moon, Sun } from "lucide-react";
33
+ import { Search, ChevronLeft, SquareTerminal, PanelLeftOpen, Moon, Sun, BookOpen, LoaderCircle } from "lucide-react";
31
34
  import { LogPanel } from "./LogPanel";
32
35
  import { StatusIndicator } from "./StatusIndicator";
33
36
 
@@ -36,6 +39,17 @@ const SUMMARY_MARKER = "<!-- thread-summary -->";
36
39
  const TASK_DRAFT_MARKER = "<!-- task-draft -->";
37
40
  const THEME_STORAGE_KEY = "agx-theme";
38
41
 
42
+ interface ThreadKnowledgeRun {
43
+ id: string;
44
+ status: "running" | "completed" | "failed";
45
+ requestedScopes: Array<"repo" | "project">;
46
+ repoInsertedCount: number;
47
+ projectInsertedCount: number;
48
+ error: string | null;
49
+ updatedAt: string;
50
+ completedAt: string | null;
51
+ }
52
+
39
53
  function stripThoughts(text: string): string {
40
54
  return text.replace(/(?:^|\n)Thinking\.\.\.[\s\S]*?\.\.\.done thinking\.?\s*/g, "\n").trim();
41
55
  }
@@ -106,6 +120,17 @@ function getTimeAgo(ts: number) {
106
120
  return new Intl.DateTimeFormat("en-US", { month: "short", day: "numeric" }).format(ts);
107
121
  }
108
122
 
123
+ async function fetchLatestThreadKnowledgeRun(rootMessageId: string): Promise<ThreadKnowledgeRun | null> {
124
+ const response = await fetch(`/api/threads/knowledge?rootMessageId=${encodeURIComponent(rootMessageId)}`, {
125
+ cache: "no-store",
126
+ });
127
+ if (!response.ok) {
128
+ throw new Error("Failed to load thread knowledge run");
129
+ }
130
+ const payload = await response.json().catch(() => null);
131
+ return payload?.run ?? null;
132
+ }
133
+
109
134
  function getOrderedParticipantIds(
110
135
  participants: Participant[],
111
136
  projects: ReturnType<typeof useProjectsWithAgents>["projects"],
@@ -119,15 +144,15 @@ function getOrderedParticipantIds(
119
144
  ? threadProject.agents.map((agent) => agent.agent_id).filter((id) => participantIdSet.has(id))
120
145
  : [];
121
146
 
147
+ if (threadProject) {
148
+ return routingOrderIds;
149
+ }
150
+
122
151
  if (routingOrderIds.length === 0) {
123
152
  return participants.map((participant) => participant.id);
124
153
  }
125
154
 
126
- const routedIdSet = new Set(routingOrderIds);
127
- const fallbackIds = participants
128
- .map((participant) => participant.id)
129
- .filter((id) => !routedIdSet.has(id));
130
- return [...routingOrderIds, ...fallbackIds];
155
+ return routingOrderIds;
131
156
  }
132
157
 
133
158
  function reconcileActiveParticipantIds(
@@ -181,9 +206,16 @@ interface ChatContainerProps {
181
206
  projectSlug?: string;
182
207
  initialThreadId?: string;
183
208
  initialRootMessageId?: string;
209
+ showSidebar?: boolean;
184
210
  }
185
211
 
186
- export function ChatContainer({ projectSlug, initialThreadId, initialRootMessageId }: ChatContainerProps = {}) {
212
+ export function ChatContainer({
213
+ projectSlug,
214
+ initialThreadId,
215
+ initialRootMessageId,
216
+ showSidebar = true,
217
+ }: ChatContainerProps = {}) {
218
+ const searchParams = useSearchParams();
187
219
  const {
188
220
  threads,
189
221
  activeThreadId,
@@ -202,24 +234,72 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
202
234
  updateMessageThreadStatus,
203
235
  updateMessageOutcomeNote,
204
236
  } = useThreadState(initialThreadId);
205
- const { messages, setMessages, logs, sendMessage, loadHistory, clearLogs, stop, stopThread } =
237
+ const { messages, setMessages, logs, sendMessage, loadHistory, clearLogs, chatRuns, setChatRuns, stop, stopThread } =
206
238
  useGroupChat(activeThreadId);
207
- const { activeAgents: polledActiveAgents, processes: activeProcesses, streaming, poll } = useProcessPolling(
239
+ const { activeAgents: polledActiveAgents, processes: activeProcesses, streaming, chatRuns: polledChatRuns, poll } = useProcessPolling(
208
240
  activeThreadId ? { workspaceId: activeThreadId } : null,
209
241
  { messages, setMessages }
210
242
  );
211
- const loading = polledActiveAgents.size > 0;
243
+ const activeChatRuns = (chatRuns.length > 0 ? chatRuns : polledChatRuns).filter(
244
+ (run) => run.status === "queued" || run.status === "running"
245
+ );
246
+ const composerActivityStatus =
247
+ polledActiveAgents.size > 0 || activeChatRuns.some((run) => run.status === "running")
248
+ ? "working"
249
+ : activeChatRuns.some((run) => run.status === "queued")
250
+ ? "queued"
251
+ : "ready";
252
+ const loading = composerActivityStatus !== "ready";
253
+
254
+ useEffect(() => {
255
+ if (polledChatRuns.length === 0) return;
256
+ setChatRuns((prev) => {
257
+ const byId = new Map(
258
+ prev
259
+ .filter((run) => typeof run.chatRunId === "string" && run.chatRunId.length > 0)
260
+ .map((run) => [run.chatRunId, run])
261
+ );
262
+ for (const run of polledChatRuns) {
263
+ if (!run?.chatRunId) continue;
264
+ byId.set(run.chatRunId, run);
265
+ }
266
+ return Array.from(byId.values()).sort((a, b) =>
267
+ String(a.chatRunId || "").localeCompare(String(b.chatRunId || ""))
268
+ );
269
+ });
270
+ }, [polledChatRuns, setChatRuns]);
271
+
272
+ const cancelChatRun = useCallback(async (chatRunId: string) => {
273
+ await fetch(`/api/chat-runs/${encodeURIComponent(chatRunId)}/signal`, {
274
+ method: "POST",
275
+ headers: { "Content-Type": "application/json" },
276
+ body: JSON.stringify({ signal: "cancel", reason: "Stopped from chat UI" }),
277
+ }).catch(() => {});
278
+ }, []);
212
279
 
213
280
  // Wrap stop functions to immediately refresh polling state
214
281
  const handleStop = useCallback(async () => {
282
+ const latestRun = activeChatRuns[0];
283
+ if (latestRun?.chatRunId) {
284
+ await cancelChatRun(latestRun.chatRunId);
285
+ }
215
286
  await stop();
216
287
  await poll();
217
- }, [stop, poll]);
288
+ }, [activeChatRuns, cancelChatRun, stop, poll]);
218
289
 
219
290
  const handleStopThread = useCallback(async (rootMessageId: string) => {
291
+ const matchingRun = activeChatRuns.find((run) => run.rootMessageId === rootMessageId);
292
+ if (matchingRun?.chatRunId) {
293
+ await cancelChatRun(matchingRun.chatRunId);
294
+ }
220
295
  await stopThread(rootMessageId);
221
296
  await poll();
222
- }, [stopThread, poll]);
297
+ }, [activeChatRuns, cancelChatRun, stopThread, poll]);
298
+
299
+ const handleStopRef = useRef(handleStop);
300
+ useEffect(() => {
301
+ handleStopRef.current = handleStop;
302
+ }, [handleStop]);
223
303
  const {
224
304
  projects,
225
305
  createProject,
@@ -240,10 +320,13 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
240
320
  return document.documentElement.classList.contains("dark") ? "dark" : "light";
241
321
  });
242
322
  const [workspaceSidebarVisible, setWorkspaceSidebarVisible] = useState(false);
323
+ const workspaceSidebarHydratedRef = useRef(false);
243
324
 
244
325
  // Sync sidebar visibility from localStorage after hydration to avoid SSR mismatch
245
326
  useEffect(() => {
246
- setWorkspaceSidebarVisible(loadWorkspaceSidebarVisible());
327
+ const stored = loadWorkspaceSidebarVisible();
328
+ workspaceSidebarHydratedRef.current = true;
329
+ setWorkspaceSidebarVisible(stored);
247
330
  }, []);
248
331
  useEffect(() => {
249
332
  if (typeof window === "undefined") return;
@@ -255,7 +338,10 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
255
338
  const [logsOpen, setLogsOpen] = useState(false);
256
339
  const [autoModeThreads, setAutoModeThreads] = useState<Set<string>>(new Set());
257
340
  const [pendingAutoMode, setPendingAutoMode] = useState(false);
341
+ const [knowledgeExtractionPending, setKnowledgeExtractionPending] = useState(false);
342
+ const [threadKnowledgeRun, setThreadKnowledgeRun] = useState<ThreadKnowledgeRun | null>(null);
258
343
  const [openThreadId, setOpenThreadId] = useState<string | null>(initialRootMessageId ?? null);
344
+ const routeOpenThreadId = searchParams.get("open")?.trim() || null;
259
345
  const autoMode = openThreadId ? autoModeThreads.has(openThreadId) : pendingAutoMode;
260
346
 
261
347
  // Hydrate & poll ship mode from server when a thread is opened
@@ -313,11 +399,22 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
313
399
  // Sync URL to reflect the currently open thread
314
400
  useEffect(() => {
315
401
  if (openThreadId) {
316
- window.history.replaceState(null, "", `/thread/${openThreadId}`);
402
+ const nextPath = projectSlug
403
+ ? `/projects/${projectSlug}/thread/${encodeURIComponent(activeThreadId ?? initialThreadId ?? "")}?open=${encodeURIComponent(openThreadId)}`
404
+ : `/thread/${openThreadId}`;
405
+ window.history.replaceState(null, "", nextPath);
317
406
  } else {
318
- window.history.replaceState(null, "", "/");
407
+ window.history.replaceState(null, "", projectSlug ? `/projects/${projectSlug}/thread/${encodeURIComponent(activeThreadId ?? initialThreadId ?? "")}` : "/");
408
+ }
409
+ }, [activeThreadId, initialThreadId, openThreadId, projectSlug]);
410
+
411
+ useEffect(() => {
412
+ if (!projectSlug) {
413
+ return;
319
414
  }
320
- }, [openThreadId, activeThreadId]);
415
+
416
+ setOpenThreadId((current) => (current === routeOpenThreadId ? current : routeOpenThreadId));
417
+ }, [projectSlug, routeOpenThreadId]);
321
418
 
322
419
  // Resolve initialRootMessageId → workspace thread on mount
323
420
  useEffect(() => {
@@ -339,6 +436,7 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
339
436
  const [highlightedMessageId, setHighlightedMessageId] = useState<string | null>(null);
340
437
  const [summarizingThreads, setSummarizingThreads] = useState<Set<string>>(new Set());
341
438
  const [deletingThreadRootId, setDeletingThreadRootId] = useState<string | null>(null);
439
+ const [pendingDelete, setPendingDelete] = useState<{ type: "thread" | "message"; id: string; preview?: string } | null>(null);
342
440
  const [taskDrafts, setTaskDraftsRaw] = useState<Record<string, TaskDraftMessage>>({});
343
441
  const setTaskDrafts: typeof setTaskDraftsRaw = useCallback((update) => {
344
442
  setTaskDraftsRaw((prev) => {
@@ -453,6 +551,20 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
453
551
  return text.length > 60 ? text.slice(0, 60) + "..." : text;
454
552
  }, [openThreadId, messages]);
455
553
 
554
+ const activeThreadStatus = useMemo((): { value: ThreadStatus; label: string; color: string } | null => {
555
+ if (!openThreadId) return null;
556
+ const rootMsg = messages.find((m) => m.id === openThreadId);
557
+ const status = rootMsg?.threadStatus ?? "active";
558
+ const map: Record<ThreadStatus, { label: string; color: string }> = {
559
+ active: { label: "Active", color: "#f59e0b" },
560
+ paused: { label: "Paused", color: "#f97316" },
561
+ "in-review": { label: "In Review", color: "#6b7280" },
562
+ done: { label: "Done", color: "#3b82f6" },
563
+ archived: { label: "Archived", color: "#9ca3af" },
564
+ };
565
+ return { value: status, ...map[status] };
566
+ }, [openThreadId, messages]);
567
+
456
568
  const clearSearch = useCallback(() => {
457
569
  setSearchQuery("");
458
570
  setSearchResults([]);
@@ -494,6 +606,103 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
494
606
  navigator.clipboard.writeText(md).catch(err => console.error("Failed to copy thread", err));
495
607
  }, [messages, participants, taskDrafts]);
496
608
 
609
+ const handleLearnFromDiscussion = useCallback(async () => {
610
+ if (!openThreadId) return;
611
+
612
+ setKnowledgeExtractionPending(true);
613
+ try {
614
+ const scopes: string[] = ["repo"];
615
+ if (projectSlug) scopes.push("project");
616
+
617
+ const response = await fetch("/api/threads/knowledge", {
618
+ method: "POST",
619
+ headers: { "Content-Type": "application/json" },
620
+ body: JSON.stringify({ rootMessageId: openThreadId, scopes }),
621
+ });
622
+ const payload = await response.json().catch(() => null);
623
+ if (!response.ok) {
624
+ throw new Error(typeof payload?.error === "string" ? payload.error : "Request failed");
625
+ }
626
+ setThreadKnowledgeRun(payload?.run ?? null);
627
+ } catch (error) {
628
+ const message = error instanceof Error ? error.message : "Request failed";
629
+ window.alert(`Failed to extract knowledge: ${message}`);
630
+ } finally {
631
+ setKnowledgeExtractionPending(false);
632
+ }
633
+ }, [openThreadId, projectSlug]);
634
+
635
+ useEffect(() => {
636
+ if (!openThreadId) {
637
+ setThreadKnowledgeRun(null);
638
+ setKnowledgeExtractionPending(false);
639
+ return;
640
+ }
641
+
642
+ let cancelled = false;
643
+
644
+ const load = async () => {
645
+ try {
646
+ const run = await fetchLatestThreadKnowledgeRun(openThreadId);
647
+ if (cancelled) return;
648
+ setThreadKnowledgeRun(run);
649
+ } catch {
650
+ if (!cancelled) {
651
+ setThreadKnowledgeRun(null);
652
+ }
653
+ }
654
+ };
655
+
656
+ void load();
657
+ return () => {
658
+ cancelled = true;
659
+ };
660
+ }, [openThreadId]);
661
+
662
+ useEffect(() => {
663
+ if (!openThreadId || threadKnowledgeRun?.status !== "running") {
664
+ return;
665
+ }
666
+
667
+ let cancelled = false;
668
+ const pollRun = async () => {
669
+ try {
670
+ const run = await fetchLatestThreadKnowledgeRun(openThreadId);
671
+ if (cancelled) return;
672
+ setThreadKnowledgeRun(run);
673
+ } catch {
674
+ // Preserve the current running state on transient polling failures.
675
+ }
676
+ };
677
+
678
+ void pollRun();
679
+ const interval = window.setInterval(() => {
680
+ void pollRun();
681
+ }, 2000);
682
+ return () => {
683
+ cancelled = true;
684
+ window.clearInterval(interval);
685
+ };
686
+ }, [openThreadId, threadKnowledgeRun?.status]);
687
+
688
+ const isKnowledgeExtractionRunning = threadKnowledgeRun?.status === "running";
689
+ const knowledgeButtonDisabled = knowledgeExtractionPending || isKnowledgeExtractionRunning;
690
+ const latestKnowledgeInsertedCount = (threadKnowledgeRun?.repoInsertedCount ?? 0) + (threadKnowledgeRun?.projectInsertedCount ?? 0);
691
+ const knowledgeStatusText = useMemo(() => {
692
+ if (!threadKnowledgeRun) return null;
693
+ if (threadKnowledgeRun.status === "running") {
694
+ return "Learning in progress";
695
+ }
696
+ if (threadKnowledgeRun.status === "failed") {
697
+ return "Last learning run failed";
698
+ }
699
+ if (latestKnowledgeInsertedCount > 0) {
700
+ const noun = latestKnowledgeInsertedCount === 1 ? "insight" : "insights";
701
+ return `Learned ${latestKnowledgeInsertedCount} ${noun}`;
702
+ }
703
+ return "No new learnings";
704
+ }, [latestKnowledgeInsertedCount, threadKnowledgeRun]);
705
+
497
706
  useEffect(() => {
498
707
  void reloadParticipants(true);
499
708
  }, [reloadParticipants]);
@@ -552,10 +761,14 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
552
761
  }
553
762
 
554
763
  const reconciled = reconcileActiveParticipantIds(orderedParticipantIds, storedIds);
555
- if (reconciled.length !== storedIds.length || reconciled.some((id, index) => storedIds[index] !== id)) {
556
- persistStoredActiveParticipantIds(activeThreadId, reconciled);
764
+ const effective = reconciled.length > 0 ? reconciled : orderedParticipantIds;
765
+ if (
766
+ effective.length !== storedIds.length ||
767
+ effective.some((id, index) => storedIds[index] !== id)
768
+ ) {
769
+ persistStoredActiveParticipantIds(activeThreadId, effective);
557
770
  }
558
- setActiveParticipantIds(reconciled);
771
+ setActiveParticipantIds(effective);
559
772
  }, [activeThreadId, participants, participantsLoaded, projects]);
560
773
 
561
774
  useEffect(() => {
@@ -568,6 +781,10 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
568
781
  if (current === preferences.threadSidebarVisible) {
569
782
  return current;
570
783
  }
784
+ if (workspaceSidebarHydratedRef.current) {
785
+ void persistWorkspaceSidebarPreferenceRemotely(current);
786
+ return current;
787
+ }
571
788
  persistWorkspaceSidebarVisible(preferences.threadSidebarVisible);
572
789
  return preferences.threadSidebarVisible;
573
790
  });
@@ -578,7 +795,7 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
578
795
  return () => {
579
796
  cancelled = true;
580
797
  };
581
- }, [fetchUserPreferences, persistWorkspaceSidebarVisible]);
798
+ }, [persistWorkspaceSidebarPreferenceRemotely]);
582
799
 
583
800
  useEffect(() => {
584
801
  if (!threadsLoading && !isCreating && threads.length === 0) {
@@ -674,7 +891,7 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
674
891
  useEffect(() => {
675
892
  // Only stop active streams when actually switching threads, not on initial mount.
676
893
  if (prevActiveThreadIdRef.current !== null && prevActiveThreadIdRef.current !== activeThreadId) {
677
- handleStop();
894
+ void handleStopRef.current();
678
895
  if (pendingOpenThreadIdRef.current) {
679
896
  setOpenThreadId(pendingOpenThreadIdRef.current);
680
897
  pendingOpenThreadIdRef.current = null;
@@ -696,7 +913,7 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
696
913
  }
697
914
  })
698
915
  .catch(() => setTaskDraftsRaw({}));
699
- }, [activeThreadId, loadHistory, handleStop]);
916
+ }, [activeThreadId, loadHistory]);
700
917
 
701
918
  useEffect(() => {
702
919
  if (!activeThreadId) return;
@@ -1087,10 +1304,18 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
1087
1304
  );
1088
1305
 
1089
1306
  const handleDeleteThreadRoot = useCallback(
1090
- async (rootMessageId: string) => {
1307
+ (rootMessageId: string) => {
1091
1308
  if (!activeThreadId || !rootMessageId) return;
1092
- const confirmed = window.confirm("Delete this thread and all of its replies?");
1093
- if (!confirmed) return;
1309
+ const msg = messages.find((m) => m.id === rootMessageId);
1310
+ const preview = msg?.content?.slice(0, 120) || undefined;
1311
+ setPendingDelete({ type: "thread", id: rootMessageId, preview });
1312
+ },
1313
+ [activeThreadId, messages]
1314
+ );
1315
+
1316
+ const executeDeleteThreadRoot = useCallback(
1317
+ async (rootMessageId: string) => {
1318
+ if (!activeThreadId) return;
1094
1319
 
1095
1320
  setDeletingThreadRootId(rootMessageId);
1096
1321
  handleStopThread(rootMessageId);
@@ -1123,6 +1348,55 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
1123
1348
  [activeThreadId, loadHistory, messages, handleStopThread, updateThreadMessages]
1124
1349
  );
1125
1350
 
1351
+ const handleDeleteMessage = useCallback(
1352
+ (messageId: string) => {
1353
+ if (!activeThreadId || !messageId) return;
1354
+ const msg = messages.find((m) => m.id === messageId);
1355
+ const preview = msg?.content?.slice(0, 120) || undefined;
1356
+ setPendingDelete({ type: "message", id: messageId, preview });
1357
+ },
1358
+ [activeThreadId, messages]
1359
+ );
1360
+
1361
+ const executeDeleteMessage = useCallback(
1362
+ async (messageId: string) => {
1363
+ if (!activeThreadId) return;
1364
+
1365
+ try {
1366
+ const params = new URLSearchParams({
1367
+ threadId: activeThreadId,
1368
+ messageId,
1369
+ });
1370
+ const response = await fetch(`/api/history?${params.toString()}`, { method: "DELETE" });
1371
+ if (!response.ok) {
1372
+ console.error("Failed to delete message", await response.text());
1373
+ return;
1374
+ }
1375
+
1376
+ const nextMessages = messages.filter((m) => m.id !== messageId);
1377
+ void updateThreadMessages(activeThreadId, nextMessages);
1378
+ await loadHistory(activeThreadId);
1379
+ } catch (error) {
1380
+ console.error("Failed to delete message", error);
1381
+ }
1382
+ },
1383
+ [activeThreadId, loadHistory, messages, updateThreadMessages]
1384
+ );
1385
+
1386
+ const handleConfirmDelete = useCallback(() => {
1387
+ if (!pendingDelete) return;
1388
+ if (pendingDelete.type === "thread") {
1389
+ void executeDeleteThreadRoot(pendingDelete.id);
1390
+ } else {
1391
+ void executeDeleteMessage(pendingDelete.id);
1392
+ }
1393
+ setPendingDelete(null);
1394
+ }, [pendingDelete, executeDeleteThreadRoot, executeDeleteMessage]);
1395
+
1396
+ const handleCancelDelete = useCallback(() => {
1397
+ setPendingDelete(null);
1398
+ }, []);
1399
+
1126
1400
  const slashCommands: SlashCommand[] = useMemo(
1127
1401
  () => [
1128
1402
  {
@@ -1154,24 +1428,35 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
1154
1428
  );
1155
1429
 
1156
1430
  const renderReplyComposer = useCallback(
1157
- (rootMessageId: string) => (
1158
- <Composer
1159
- onSend={(message, maxRounds, _attachmentIds, _attachments, pinnedParticipantId) =>
1160
- handleThreadReply(rootMessageId, message, maxRounds, pinnedParticipantId)
1161
- }
1162
- onStop={() => handleStopThread(rootMessageId)}
1163
- loading={Object.values(streaming).some((s) => s.rootMessageId === rootMessageId)}
1164
- participants={activeParticipants}
1165
- projectGroups={threadProjects}
1166
- projects={projectMentions}
1167
- messages={messages}
1168
- commands={slashCommands}
1169
- placeholder="Reply — @name to mention, /search, /summarize"
1170
- autoMode={autoMode}
1171
- onAutoModeChange={handleAutoModeChange}
1172
- />
1173
- ),
1174
- [handleThreadReply, handleStopThread, streaming, activeParticipants, threadProjects, projectMentions, slashCommands, messages, autoMode, handleAutoModeChange]
1431
+ (rootMessageId: string) => {
1432
+ const threadActivityStatus =
1433
+ activeProcesses.some((process) => ["spawning", "running"].includes(process.state) && process.threadId === rootMessageId) ||
1434
+ Object.values(streaming).some((entry) => entry.rootMessageId === rootMessageId)
1435
+ ? "working"
1436
+ : activeChatRuns.some((run) => run.rootMessageId === rootMessageId && run.status === "queued")
1437
+ ? "queued"
1438
+ : "ready";
1439
+
1440
+ return (
1441
+ <Composer
1442
+ onSend={(message, maxRounds, _attachmentIds, _attachments, pinnedParticipantId) =>
1443
+ handleThreadReply(rootMessageId, message, maxRounds, pinnedParticipantId)
1444
+ }
1445
+ onStop={() => handleStopThread(rootMessageId)}
1446
+ loading={threadActivityStatus !== "ready"}
1447
+ activityStatus={threadActivityStatus}
1448
+ participants={activeParticipants}
1449
+ projectGroups={threadProjects}
1450
+ projects={projectMentions}
1451
+ messages={messages}
1452
+ commands={slashCommands}
1453
+ placeholder="Reply — @name to mention, /search, /summarize"
1454
+ autoMode={autoMode}
1455
+ onAutoModeChange={handleAutoModeChange}
1456
+ />
1457
+ );
1458
+ },
1459
+ [handleThreadReply, handleStopThread, streaming, activeParticipants, threadProjects, projectMentions, slashCommands, messages, autoMode, handleAutoModeChange, activeProcesses, activeChatRuns]
1175
1460
  );
1176
1461
 
1177
1462
  const toggleWorkspaceSidebar = useCallback(() => {
@@ -1298,7 +1583,7 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
1298
1583
  <div className="border-b border-[var(--app-shell-border)] bg-[var(--app-shell-surface)] px-4 py-2.5 backdrop-blur-xl md:px-6">
1299
1584
  <div className="mx-auto flex max-w-5xl items-center gap-3">
1300
1585
  <div className="flex min-w-0 items-center flex-shrink-0">
1301
- {!workspaceSidebarVisible && (
1586
+ {showSidebar && !workspaceSidebarVisible && (
1302
1587
  <button
1303
1588
  type="button"
1304
1589
  onClick={toggleWorkspaceSidebar}
@@ -1372,33 +1657,35 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
1372
1657
 
1373
1658
  return (
1374
1659
  <div className="flex h-screen bg-[var(--app-shell-bg)] text-[var(--foreground)]">
1375
- <WorkspaceSidebar
1376
- threads={threads}
1377
- participants={participants}
1378
- activeThreadId={activeThreadId}
1379
- isLoading={threadsLoading}
1380
- isRestoringActiveThread={isRestoringActiveThread}
1381
- isCreating={isCreating}
1382
- deletingThreadId={deletingThreadId}
1383
- renamingThreadId={renamingThreadId}
1384
- onSelectThread={selectThread}
1385
- onCreateThread={createThread}
1386
- onRenameThread={renameThread}
1387
- onDeleteThread={handleDeleteThread}
1388
- activeParticipantIds={activeParticipantIds}
1389
- onToggleParticipantActive={handleToggleParticipantActive}
1390
- visible={workspaceSidebarVisible}
1391
- onToggle={toggleWorkspaceSidebar}
1392
- projects={projects}
1393
- onCreateProject={createProject}
1394
- onUpdateProject={updateProject}
1395
- onDeleteProject={deleteProject}
1396
- onAddAgentToProject={addAgentToProject}
1397
- onRemoveAgentFromProject={removeAgentFromProject}
1398
- onReorderProjectAgents={reorderProjectAgents}
1399
- onUpdateParticipant={handleUpdate}
1400
- onSelectProject={handleSelectProject}
1401
- />
1660
+ {showSidebar ? (
1661
+ <WorkspaceSidebar
1662
+ threads={threads}
1663
+ participants={participants}
1664
+ activeThreadId={activeThreadId}
1665
+ isLoading={threadsLoading}
1666
+ isRestoringActiveThread={isRestoringActiveThread}
1667
+ isCreating={isCreating}
1668
+ deletingThreadId={deletingThreadId}
1669
+ renamingThreadId={renamingThreadId}
1670
+ onSelectThread={selectThread}
1671
+ onCreateThread={createThread}
1672
+ onRenameThread={renameThread}
1673
+ onDeleteThread={handleDeleteThread}
1674
+ activeParticipantIds={activeParticipantIds}
1675
+ onToggleParticipantActive={handleToggleParticipantActive}
1676
+ visible={workspaceSidebarVisible}
1677
+ onToggle={toggleWorkspaceSidebar}
1678
+ projects={projects}
1679
+ onCreateProject={createProject}
1680
+ onUpdateProject={updateProject}
1681
+ onDeleteProject={deleteProject}
1682
+ onAddAgentToProject={addAgentToProject}
1683
+ onRemoveAgentFromProject={removeAgentFromProject}
1684
+ onReorderProjectAgents={reorderProjectAgents}
1685
+ onUpdateParticipant={handleUpdate}
1686
+ onSelectProject={handleSelectProject}
1687
+ />
1688
+ ) : null}
1402
1689
  <div className="flex flex-col flex-1 min-w-0 relative">
1403
1690
  {
1404
1691
  isRestoringActiveThread ? (
@@ -1409,23 +1696,40 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
1409
1696
  <div className="flex flex-1 min-h-0 bg-transparent relative">
1410
1697
  <div className="flex flex-col flex-1 min-w-0">
1411
1698
  {openThreadId ? (
1412
- <div className="border-b border-[var(--app-shell-border)] bg-[var(--app-shell-surface)] px-4 py-2.5 backdrop-blur-xl md:px-6">
1699
+ <div className="border-b border-[var(--app-shell-border)] bg-[var(--app-shell-surface)] px-4 py-2.5 backdrop-blur-xl md:px-6 transition-colors duration-200 shrink-0">
1413
1700
  <div className="mx-auto flex max-w-5xl items-center gap-3 min-w-0">
1414
1701
  <button
1415
1702
  onClick={() => setOpenThreadId(null)}
1416
- className="p-1.5 text-[var(--app-shell-muted)] hover:text-indigo-500 hover:bg-[var(--app-shell-subtle)] rounded-xl transition-all active:scale-95 flex-shrink-0"
1703
+ className="p-1.5 text-[var(--app-shell-muted)] hover:text-[var(--primary)] hover:bg-[var(--app-shell-subtle)] rounded-xl transition-all active:scale-95 flex-shrink-0"
1417
1704
  title="Back to main feed"
1418
1705
  >
1419
1706
  <ChevronLeft size={20} strokeWidth={2.25} />
1420
1707
  </button>
1421
1708
  <div className="flex-1 flex flex-col min-w-0">
1422
- <h2 className="text-[15px] font-semibold text-[var(--foreground)] tracking-tight leading-tight truncate min-w-0">
1423
- {activeThreadTitle}
1424
- </h2>
1709
+ <div className="flex items-center gap-2 min-w-0">
1710
+ <h2 className="text-[15px] font-semibold text-[var(--foreground)] tracking-tight leading-tight truncate min-w-0">
1711
+ {activeThreadTitle}
1712
+ </h2>
1713
+ {activeThreadStatus && (
1714
+ <span
1715
+ className="inline-flex items-center gap-1 px-1.5 py-0.5 rounded-full text-[10px] font-semibold border shrink-0"
1716
+ style={{ borderColor: activeThreadStatus.color + "40", color: activeThreadStatus.color }}
1717
+ >
1718
+ <span className="w-1.5 h-1.5 rounded-full" style={{ backgroundColor: activeThreadStatus.color }} />
1719
+ {activeThreadStatus.label}
1720
+ </span>
1721
+ )}
1722
+ </div>
1425
1723
  <div className="flex items-center gap-1.5 text-[11px] font-medium text-[var(--app-shell-muted)]">
1426
1724
  <span className="opacity-80">{activeThreadParticipants.length} agents</span>
1427
1725
  <span className="h-0.5 w-0.5 rounded-full bg-[var(--app-shell-soft-text)]" />
1428
1726
  <span className="opacity-80">Updated {getTimeAgo(lastThreadUpdate)}</span>
1727
+ {knowledgeStatusText && (
1728
+ <>
1729
+ <span className="h-0.5 w-0.5 rounded-full bg-[var(--app-shell-soft-text)]" />
1730
+ <span className="opacity-80">{knowledgeStatusText}</span>
1731
+ </>
1732
+ )}
1429
1733
  </div>
1430
1734
  </div>
1431
1735
  <div className="flex -space-x-1.5 flex-shrink-0">
@@ -1440,6 +1744,23 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
1440
1744
  ))}
1441
1745
  </div>
1442
1746
  <div className="ml-auto flex items-center gap-2">
1747
+ <button
1748
+ type="button"
1749
+ onClick={() => void handleLearnFromDiscussion()}
1750
+ disabled={knowledgeButtonDisabled}
1751
+ title={isKnowledgeExtractionRunning ? "Learning is already running for this discussion" : "Learn from this discussion"}
1752
+ className={`inline-flex h-9 items-center gap-1.5 rounded-xl border px-3 text-xs font-medium transition-all focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--ring)] ${knowledgeButtonDisabled
1753
+ ? "cursor-wait border-[var(--app-shell-border)] bg-[var(--app-shell-subtle)] text-[var(--app-shell-muted)]"
1754
+ : "border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)] hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]"
1755
+ }`}
1756
+ >
1757
+ {knowledgeButtonDisabled ? (
1758
+ <LoaderCircle className="h-3.5 w-3.5 animate-spin" strokeWidth={1.75} />
1759
+ ) : (
1760
+ <BookOpen className="h-3.5 w-3.5" strokeWidth={1.75} />
1761
+ )}
1762
+ <span className="hidden sm:inline">{isKnowledgeExtractionRunning ? "Learning..." : "Learn from discussion"}</span>
1763
+ </button>
1443
1764
  {renderThemeToggleButton()}
1444
1765
  <StatusIndicator />
1445
1766
  <button
@@ -1477,10 +1798,12 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
1477
1798
  streaming={streaming}
1478
1799
  participants={participants}
1479
1800
  rootMessageId={openThreadId}
1801
+ queued={activeChatRuns.some((run) => run.rootMessageId === openThreadId && run.status === "queued")}
1480
1802
  onClose={() => setOpenThreadId(null)}
1481
1803
  onCopyThread={handleCopyThread}
1482
1804
  onAddToChat={handleAddToChat}
1483
1805
  onDeleteThreadRoot={handleDeleteThreadRoot}
1806
+ onDeleteMessage={handleDeleteMessage}
1484
1807
  highlightedMessageId={highlightedMessageId || undefined}
1485
1808
  renderReplyComposer={renderReplyComposer}
1486
1809
  activeProcesses={activeProcesses.filter(p => ["spawning", "running"].includes(p.state) && p.threadId === openThreadId)}
@@ -1523,6 +1846,7 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
1523
1846
  onSend={handleSend}
1524
1847
  onStop={handleStop}
1525
1848
  loading={loading}
1849
+ activityStatus={composerActivityStatus}
1526
1850
  participants={activeParticipants}
1527
1851
  projects={projectMentions}
1528
1852
  projectGroups={threadProjects}
@@ -1542,6 +1866,21 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
1542
1866
  {initialRootMessageId && (
1543
1867
  <LogPanel logs={logs} participants={participants} onClear={() => void clearLogs(activeThreadId)} open={logsOpen} onToggle={() => setLogsOpen(false)} />
1544
1868
  )}
1869
+ <ConfirmDialog
1870
+ isOpen={pendingDelete !== null}
1871
+ title={pendingDelete?.type === "thread" ? "Delete Thread" : "Delete Message"}
1872
+ message={
1873
+ pendingDelete?.type === "thread"
1874
+ ? "This will permanently delete this thread and all of its replies. This action cannot be undone."
1875
+ : "This will permanently delete this message. This action cannot be undone."
1876
+ }
1877
+ preview={pendingDelete?.preview}
1878
+ confirmLabel="Delete"
1879
+ cancelLabel="Cancel"
1880
+ variant="danger"
1881
+ onConfirm={handleConfirmDelete}
1882
+ onCancel={handleCancelDelete}
1883
+ />
1545
1884
  </div >
1546
1885
  );
1547
1886
  }