@mndrk/agx 2.0.32 → 2.0.33

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 (434) hide show
  1. package/cloud-runtime/standalone/.next/BUILD_ID +1 -1
  2. package/cloud-runtime/standalone/.next/app-path-routes-manifest.json +1 -0
  3. package/cloud-runtime/standalone/.next/build-manifest.json +2 -2
  4. package/cloud-runtime/standalone/.next/prerender-manifest.json +3 -3
  5. package/cloud-runtime/standalone/.next/routes-manifest.json +6 -0
  6. package/cloud-runtime/standalone/.next/server/app/_global-error.html +2 -2
  7. package/cloud-runtime/standalone/.next/server/app/_global-error.rsc +1 -1
  8. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  9. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  10. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  11. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  12. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  13. package/cloud-runtime/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  14. package/cloud-runtime/standalone/.next/server/app/_not-found.html +2 -2
  15. package/cloud-runtime/standalone/.next/server/app/_not-found.rsc +2 -2
  16. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  17. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  18. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  19. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  20. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  21. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  22. package/cloud-runtime/standalone/.next/server/app/agents/[id]/page.js.nft.json +1 -1
  23. package/cloud-runtime/standalone/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
  24. package/cloud-runtime/standalone/.next/server/app/agents/page.js.nft.json +1 -1
  25. package/cloud-runtime/standalone/.next/server/app/agents/page_client-reference-manifest.js +1 -1
  26. package/cloud-runtime/standalone/.next/server/app/agents.html +2 -2
  27. package/cloud-runtime/standalone/.next/server/app/agents.rsc +3 -3
  28. package/cloud-runtime/standalone/.next/server/app/agents.segments/_full.segment.rsc +3 -3
  29. package/cloud-runtime/standalone/.next/server/app/agents.segments/_head.segment.rsc +1 -1
  30. package/cloud-runtime/standalone/.next/server/app/agents.segments/_index.segment.rsc +2 -2
  31. package/cloud-runtime/standalone/.next/server/app/agents.segments/_tree.segment.rsc +2 -2
  32. package/cloud-runtime/standalone/.next/server/app/agents.segments/agents/__PAGE__.segment.rsc +2 -2
  33. package/cloud-runtime/standalone/.next/server/app/agents.segments/agents.segment.rsc +1 -1
  34. package/cloud-runtime/standalone/.next/server/app/api/automations/create/route.js +3 -4
  35. package/cloud-runtime/standalone/.next/server/app/api/automations/create/route.js.nft.json +1 -1
  36. package/cloud-runtime/standalone/.next/server/app/api/automations/route.js +1 -1
  37. package/cloud-runtime/standalone/.next/server/app/api/automations/route.js.nft.json +1 -1
  38. package/cloud-runtime/standalone/.next/server/app/api/chat/route.js +3 -3
  39. package/cloud-runtime/standalone/.next/server/app/api/chat/route.js.nft.json +1 -1
  40. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/route.js +1 -1
  41. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/route.js.nft.json +1 -1
  42. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/signal/route.js +1 -1
  43. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/signal/route.js.nft.json +1 -1
  44. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/route.js +1 -1
  45. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/route.js.nft.json +1 -1
  46. package/cloud-runtime/standalone/.next/server/app/api/daemon/route.js +1 -1
  47. package/cloud-runtime/standalone/.next/server/app/api/daemon/route.js.nft.json +1 -1
  48. package/cloud-runtime/standalone/.next/server/app/api/file-search/route.js.nft.json +1 -1
  49. package/cloud-runtime/standalone/.next/server/app/api/graphs/[graphId]/nodes/[nodeId]/route.js +1 -1
  50. package/cloud-runtime/standalone/.next/server/app/api/graphs/[graphId]/nodes/[nodeId]/route.js.nft.json +1 -1
  51. package/cloud-runtime/standalone/.next/server/app/api/health/route.js +1 -1
  52. package/cloud-runtime/standalone/.next/server/app/api/health/route.js.nft.json +1 -1
  53. package/cloud-runtime/standalone/.next/server/app/api/knowledge-notes/route/app-paths-manifest.json +3 -0
  54. package/cloud-runtime/standalone/.next/server/app/api/knowledge-notes/route/build-manifest.json +11 -0
  55. package/cloud-runtime/standalone/.next/server/app/api/knowledge-notes/route/server-reference-manifest.json +4 -0
  56. package/cloud-runtime/standalone/.next/server/app/api/knowledge-notes/route.js +8 -0
  57. package/cloud-runtime/standalone/.next/server/app/api/knowledge-notes/route.js.map +5 -0
  58. package/cloud-runtime/standalone/.next/server/app/api/knowledge-notes/route.js.nft.json +1 -0
  59. package/cloud-runtime/standalone/.next/server/app/api/knowledge-notes/route_client-reference-manifest.js +2 -0
  60. package/cloud-runtime/standalone/.next/server/app/api/learnings/route.js +1 -1
  61. package/cloud-runtime/standalone/.next/server/app/api/learnings/route.js.nft.json +1 -1
  62. package/cloud-runtime/standalone/.next/server/app/api/memories/route.js +1 -1
  63. package/cloud-runtime/standalone/.next/server/app/api/memories/route.js.nft.json +1 -1
  64. package/cloud-runtime/standalone/.next/server/app/api/messages/[id]/route.js +1 -1
  65. package/cloud-runtime/standalone/.next/server/app/api/messages/[id]/route.js.nft.json +1 -1
  66. package/cloud-runtime/standalone/.next/server/app/api/migrate/teams-to-projects/route.js +1 -1
  67. package/cloud-runtime/standalone/.next/server/app/api/migrate/teams-to-projects/route.js.nft.json +1 -1
  68. package/cloud-runtime/standalone/.next/server/app/api/migrate/workspaces-to-projects/route.js +1 -1
  69. package/cloud-runtime/standalone/.next/server/app/api/migrate/workspaces-to-projects/route.js.nft.json +1 -1
  70. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/cancel/route.js +2 -2
  71. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/cancel/route.js.nft.json +1 -1
  72. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/signal/route.js +1 -1
  73. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/signal/route.js.nft.json +1 -1
  74. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/start/route.js +3 -2
  75. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/start/route.js.nft.json +1 -1
  76. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/status/route.js +1 -1
  77. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/status/route.js.nft.json +1 -1
  78. package/cloud-runtime/standalone/.next/server/app/api/processes/route.js +1 -1
  79. package/cloud-runtime/standalone/.next/server/app/api/processes/route.js.nft.json +1 -1
  80. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/agents/route.js +1 -1
  81. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/agents/route.js.nft.json +1 -1
  82. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/memory/route.js +1 -1
  83. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/memory/route.js.nft.json +1 -1
  84. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v1/route.js +1 -1
  85. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v1/route.js.nft.json +1 -1
  86. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v2/route.js +1 -1
  87. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v2/route.js.nft.json +1 -1
  88. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/route.js +1 -1
  89. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
  90. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/skills/route.js +1 -1
  91. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/skills/route.js.nft.json +1 -1
  92. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/threads/route.js +1 -1
  93. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/threads/route.js.nft.json +1 -1
  94. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/variables/route.js +1 -1
  95. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/variables/route.js.nft.json +1 -1
  96. package/cloud-runtime/standalone/.next/server/app/api/projects/route.js +1 -1
  97. package/cloud-runtime/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
  98. package/cloud-runtime/standalone/.next/server/app/api/queue/complete/route.js +4 -3
  99. package/cloud-runtime/standalone/.next/server/app/api/queue/complete/route.js.nft.json +1 -1
  100. package/cloud-runtime/standalone/.next/server/app/api/queue/route.js +6 -6
  101. package/cloud-runtime/standalone/.next/server/app/api/queue/route.js.nft.json +1 -1
  102. package/cloud-runtime/standalone/.next/server/app/api/repos/[id]/knowledge/route.js +1 -1
  103. package/cloud-runtime/standalone/.next/server/app/api/repos/[id]/knowledge/route.js.nft.json +1 -1
  104. package/cloud-runtime/standalone/.next/server/app/api/schedules/debug/route.js +2 -3
  105. package/cloud-runtime/standalone/.next/server/app/api/schedules/debug/route.js.nft.json +1 -1
  106. package/cloud-runtime/standalone/.next/server/app/api/schedules/poll/route.js +2 -3
  107. package/cloud-runtime/standalone/.next/server/app/api/schedules/poll/route.js.nft.json +1 -1
  108. package/cloud-runtime/standalone/.next/server/app/api/schedules/route.js +3 -4
  109. package/cloud-runtime/standalone/.next/server/app/api/schedules/route.js.nft.json +1 -1
  110. package/cloud-runtime/standalone/.next/server/app/api/summarize/route.js +3 -3
  111. package/cloud-runtime/standalone/.next/server/app/api/summarize/route.js.nft.json +1 -1
  112. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js +4 -4
  113. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js.nft.json +1 -1
  114. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/route.js +2 -2
  115. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/route.js.nft.json +1 -1
  116. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/costs/route.js +1 -1
  117. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/costs/route.js.nft.json +1 -1
  118. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/dependencies/route.js +5 -5
  119. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/dependencies/route.js.nft.json +1 -1
  120. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/events/route.js +1 -1
  121. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/events/route.js.nft.json +1 -1
  122. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/history/route.js +1 -1
  123. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/history/route.js.nft.json +1 -1
  124. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/metrics/route.js +1 -1
  125. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/metrics/route.js.nft.json +1 -1
  126. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/pause/route.js +1 -1
  127. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/pause/route.js.nft.json +1 -1
  128. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/replan/route.js +1 -1
  129. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/replan/route.js.nft.json +1 -1
  130. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/restart/route.js +1 -1
  131. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/restart/route.js.nft.json +1 -1
  132. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/resume/route.js +1 -1
  133. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/resume/route.js.nft.json +1 -1
  134. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/rollback/route.js +1 -1
  135. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/rollback/route.js.nft.json +1 -1
  136. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/route.js +1 -1
  137. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/route.js.nft.json +1 -1
  138. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/schedule/route.js +1 -1
  139. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/schedule/route.js.nft.json +1 -1
  140. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/start/route.js +1 -1
  141. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/start/route.js.nft.json +1 -1
  142. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/stop/route.js +1 -1
  143. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/stop/route.js.nft.json +1 -1
  144. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/heartbeat/route.js +1 -1
  145. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/heartbeat/route.js.nft.json +1 -1
  146. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/history/route.js +1 -1
  147. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/history/route.js.nft.json +1 -1
  148. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/logs/route.js +1 -1
  149. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/logs/route.js.nft.json +1 -1
  150. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/comments/route.js +1 -1
  151. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/comments/route.js.nft.json +1 -1
  152. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/complete/route.js +1 -1
  153. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/complete/route.js.nft.json +1 -1
  154. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/fail/route.js +1 -1
  155. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/fail/route.js.nft.json +1 -1
  156. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/resume/route.js +1 -1
  157. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/resume/route.js.nft.json +1 -1
  158. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/start/route.js +1 -1
  159. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/start/route.js.nft.json +1 -1
  160. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/stop/route.js +1 -1
  161. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/stop/route.js.nft.json +1 -1
  162. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js +6 -6
  163. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js.nft.json +1 -1
  164. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/route.js +4 -4
  165. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
  166. package/cloud-runtime/standalone/.next/server/app/api/tasks/assign-orphans/route.js +1 -1
  167. package/cloud-runtime/standalone/.next/server/app/api/tasks/assign-orphans/route.js.nft.json +1 -1
  168. package/cloud-runtime/standalone/.next/server/app/api/tasks/extract/route.js +3 -3
  169. package/cloud-runtime/standalone/.next/server/app/api/tasks/extract/route.js.nft.json +1 -1
  170. package/cloud-runtime/standalone/.next/server/app/api/tasks/route.js +6 -6
  171. package/cloud-runtime/standalone/.next/server/app/api/tasks/route.js.nft.json +1 -1
  172. package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route.js +3 -3
  173. package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route.js.nft.json +1 -1
  174. package/cloud-runtime/standalone/.next/server/app/api/threads/route.js +3 -3
  175. package/cloud-runtime/standalone/.next/server/app/api/threads/route.js.nft.json +1 -1
  176. package/cloud-runtime/standalone/.next/server/app/api/user-settings/route.js +1 -1
  177. package/cloud-runtime/standalone/.next/server/app/api/user-settings/route.js.nft.json +1 -1
  178. package/cloud-runtime/standalone/.next/server/app/automations/page.js.nft.json +1 -1
  179. package/cloud-runtime/standalone/.next/server/app/automations/page_client-reference-manifest.js +1 -1
  180. package/cloud-runtime/standalone/.next/server/app/automations.html +2 -2
  181. package/cloud-runtime/standalone/.next/server/app/automations.rsc +3 -3
  182. package/cloud-runtime/standalone/.next/server/app/automations.segments/_full.segment.rsc +3 -3
  183. package/cloud-runtime/standalone/.next/server/app/automations.segments/_head.segment.rsc +1 -1
  184. package/cloud-runtime/standalone/.next/server/app/automations.segments/_index.segment.rsc +2 -2
  185. package/cloud-runtime/standalone/.next/server/app/automations.segments/_tree.segment.rsc +2 -2
  186. package/cloud-runtime/standalone/.next/server/app/automations.segments/automations/__PAGE__.segment.rsc +2 -2
  187. package/cloud-runtime/standalone/.next/server/app/automations.segments/automations.segment.rsc +1 -1
  188. package/cloud-runtime/standalone/.next/server/app/board/page_client-reference-manifest.js +1 -1
  189. package/cloud-runtime/standalone/.next/server/app/board.html +2 -2
  190. package/cloud-runtime/standalone/.next/server/app/board.rsc +2 -2
  191. package/cloud-runtime/standalone/.next/server/app/board.segments/_full.segment.rsc +2 -2
  192. package/cloud-runtime/standalone/.next/server/app/board.segments/_head.segment.rsc +1 -1
  193. package/cloud-runtime/standalone/.next/server/app/board.segments/_index.segment.rsc +2 -2
  194. package/cloud-runtime/standalone/.next/server/app/board.segments/_tree.segment.rsc +2 -2
  195. package/cloud-runtime/standalone/.next/server/app/board.segments/board/__PAGE__.segment.rsc +1 -1
  196. package/cloud-runtime/standalone/.next/server/app/board.segments/board.segment.rsc +1 -1
  197. package/cloud-runtime/standalone/.next/server/app/execution-graph/page_client-reference-manifest.js +1 -1
  198. package/cloud-runtime/standalone/.next/server/app/execution-graph.html +2 -2
  199. package/cloud-runtime/standalone/.next/server/app/execution-graph.rsc +2 -2
  200. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_full.segment.rsc +2 -2
  201. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_head.segment.rsc +1 -1
  202. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_index.segment.rsc +2 -2
  203. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_tree.segment.rsc +2 -2
  204. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/execution-graph/__PAGE__.segment.rsc +1 -1
  205. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/execution-graph.segment.rsc +1 -1
  206. package/cloud-runtime/standalone/.next/server/app/index.html +2 -2
  207. package/cloud-runtime/standalone/.next/server/app/index.rsc +3 -3
  208. package/cloud-runtime/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  209. package/cloud-runtime/standalone/.next/server/app/index.segments/_full.segment.rsc +3 -3
  210. package/cloud-runtime/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  211. package/cloud-runtime/standalone/.next/server/app/index.segments/_index.segment.rsc +2 -2
  212. package/cloud-runtime/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  213. package/cloud-runtime/standalone/.next/server/app/page.js.nft.json +1 -1
  214. package/cloud-runtime/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  215. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/graph/[taskId]/page.js.nft.json +1 -1
  216. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/graph/[taskId]/page_client-reference-manifest.js +1 -1
  217. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page.js.nft.json +1 -1
  218. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page_client-reference-manifest.js +1 -1
  219. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/page.js.nft.json +1 -1
  220. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
  221. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page.js.nft.json +1 -1
  222. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page_client-reference-manifest.js +1 -1
  223. package/cloud-runtime/standalone/.next/server/app/projects/orphans/page_client-reference-manifest.js +1 -1
  224. package/cloud-runtime/standalone/.next/server/app/projects/orphans.html +2 -2
  225. package/cloud-runtime/standalone/.next/server/app/projects/orphans.rsc +2 -2
  226. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_full.segment.rsc +2 -2
  227. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_head.segment.rsc +1 -1
  228. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_index.segment.rsc +2 -2
  229. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_tree.segment.rsc +2 -2
  230. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects/orphans/__PAGE__.segment.rsc +1 -1
  231. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects/orphans.segment.rsc +1 -1
  232. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects.segment.rsc +1 -1
  233. package/cloud-runtime/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  234. package/cloud-runtime/standalone/.next/server/app/projects.html +2 -2
  235. package/cloud-runtime/standalone/.next/server/app/projects.rsc +2 -2
  236. package/cloud-runtime/standalone/.next/server/app/projects.segments/_full.segment.rsc +2 -2
  237. package/cloud-runtime/standalone/.next/server/app/projects.segments/_head.segment.rsc +1 -1
  238. package/cloud-runtime/standalone/.next/server/app/projects.segments/_index.segment.rsc +2 -2
  239. package/cloud-runtime/standalone/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
  240. package/cloud-runtime/standalone/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +1 -1
  241. package/cloud-runtime/standalone/.next/server/app/projects.segments/projects.segment.rsc +1 -1
  242. package/cloud-runtime/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  243. package/cloud-runtime/standalone/.next/server/app/settings.html +2 -2
  244. package/cloud-runtime/standalone/.next/server/app/settings.rsc +2 -2
  245. package/cloud-runtime/standalone/.next/server/app/settings.segments/_full.segment.rsc +2 -2
  246. package/cloud-runtime/standalone/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  247. package/cloud-runtime/standalone/.next/server/app/settings.segments/_index.segment.rsc +2 -2
  248. package/cloud-runtime/standalone/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  249. package/cloud-runtime/standalone/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
  250. package/cloud-runtime/standalone/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  251. package/cloud-runtime/standalone/.next/server/app/status/page_client-reference-manifest.js +1 -1
  252. package/cloud-runtime/standalone/.next/server/app/status.html +2 -2
  253. package/cloud-runtime/standalone/.next/server/app/status.rsc +2 -2
  254. package/cloud-runtime/standalone/.next/server/app/status.segments/_full.segment.rsc +2 -2
  255. package/cloud-runtime/standalone/.next/server/app/status.segments/_head.segment.rsc +1 -1
  256. package/cloud-runtime/standalone/.next/server/app/status.segments/_index.segment.rsc +2 -2
  257. package/cloud-runtime/standalone/.next/server/app/status.segments/_tree.segment.rsc +2 -2
  258. package/cloud-runtime/standalone/.next/server/app/status.segments/status/__PAGE__.segment.rsc +1 -1
  259. package/cloud-runtime/standalone/.next/server/app/status.segments/status.segment.rsc +1 -1
  260. package/cloud-runtime/standalone/.next/server/app/thread/[id]/page.js.nft.json +1 -1
  261. package/cloud-runtime/standalone/.next/server/app/thread/[id]/page_client-reference-manifest.js +1 -1
  262. package/cloud-runtime/standalone/.next/server/app/welcome/page.js.nft.json +1 -1
  263. package/cloud-runtime/standalone/.next/server/app/welcome/page_client-reference-manifest.js +1 -1
  264. package/cloud-runtime/standalone/.next/server/app/welcome.html +2 -2
  265. package/cloud-runtime/standalone/.next/server/app/welcome.rsc +3 -3
  266. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_full.segment.rsc +3 -3
  267. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_head.segment.rsc +1 -1
  268. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_index.segment.rsc +2 -2
  269. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_tree.segment.rsc +2 -2
  270. package/cloud-runtime/standalone/.next/server/app/welcome.segments/welcome/__PAGE__.segment.rsc +2 -2
  271. package/cloud-runtime/standalone/.next/server/app/welcome.segments/welcome.segment.rsc +1 -1
  272. package/cloud-runtime/standalone/.next/server/app-paths-manifest.json +1 -0
  273. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__06634853._.js +80 -0
  274. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__0b3b6a47._.js +51 -0
  275. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__86f7d27b._.js → [root-of-the-server]__18423486._.js} +2 -2
  276. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__dede3dcd._.js → [root-of-the-server]__19520d85._.js} +1 -1
  277. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__399b2ca9._.js → [root-of-the-server]__1c18c0d1._.js} +2 -2
  278. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__1cc2fe7f._.js +3 -0
  279. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__29419d66._.js +42 -0
  280. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__6e59b27c._.js → [root-of-the-server]__32b13ba9._.js} +2 -2
  281. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__1dd062c1._.js → [root-of-the-server]__3c1567b6._.js} +2 -2
  282. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__29ce9c60._.js → [root-of-the-server]__3c37453e._.js} +2 -2
  283. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__507a4363._.js → [root-of-the-server]__3faa64cd._.js} +2 -2
  284. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__42497c7b._.js +80 -0
  285. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__e446cb39._.js → [root-of-the-server]__4837d72a._.js} +2 -2
  286. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__10940c29._.js → [root-of-the-server]__49c03d66._.js} +2 -2
  287. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__b40c7aab._.js → [root-of-the-server]__4a8d14c1._.js} +2 -2
  288. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__75bff965._.js → [root-of-the-server]__4c861686._.js} +2 -2
  289. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4d8c6e3d._.js +58 -0
  290. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__543ba6c4._.js +1 -1
  291. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__94fa1edc._.js → [root-of-the-server]__588b6ab0._.js} +2 -2
  292. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__ccfcbcd5._.js → [root-of-the-server]__5a348fba._.js} +2 -2
  293. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__9dfaaf72._.js → [root-of-the-server]__61c99680._.js} +2 -2
  294. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__c08bef05._.js → [root-of-the-server]__6acb940d._.js} +2 -2
  295. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__98535eb3._.js → [root-of-the-server]__7e79d86a._.js} +2 -2
  296. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__6c187704._.js → [root-of-the-server]__7ffcc20c._.js} +2 -2
  297. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__c5634f17._.js → [root-of-the-server]__875279cb._.js} +1 -1
  298. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__13677d96._.js → [root-of-the-server]__8b0ab82f._.js} +2 -2
  299. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__f5b93200._.js → [root-of-the-server]__8b461158._.js} +2 -2
  300. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__918f0106._.js +80 -0
  301. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__922eb7cd._.js +80 -0
  302. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__e6ad07c3._.js → [root-of-the-server]__a67cd108._.js} +2 -2
  303. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__d8cedc8a._.js → [root-of-the-server]__abb032c1._.js} +2 -2
  304. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__b3ed0a00._.js +46 -0
  305. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__b63cb741._.js +63 -0
  306. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__2388b2b3._.js → [root-of-the-server]__b9b3fde6._.js} +2 -2
  307. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__f4b70b67._.js → [root-of-the-server]__be4ad4b5._.js} +2 -2
  308. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c0a18648._.js +80 -0
  309. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__5ca87ba0._.js → [root-of-the-server]__c480c9c2._.js} +2 -2
  310. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c8b49077._.js +79 -0
  311. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c99509c2._.js +101 -0
  312. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ceb02db8._.js +1 -1
  313. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__d6e1ee6e._.js +32 -0
  314. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__80655727._.js → [root-of-the-server]__e069c0a3._.js} +2 -2
  315. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__f5a2358a._.js → [root-of-the-server]__e1e51c02._.js} +2 -2
  316. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__12afd8a3._.js → [root-of-the-server]__ef82dda1._.js} +2 -2
  317. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f168c6dc._.js +25 -0
  318. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f1b7932f._.js +36 -0
  319. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__4d318eb0._.js → [root-of-the-server]__f701b208._.js} +24 -24
  320. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__2e596cc8._.js → [root-of-the-server]__fee58db1._.js} +2 -2
  321. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ffffceac._.js +6 -0
  322. package/cloud-runtime/standalone/.next/server/chunks/_5462a047._.js +3 -0
  323. package/cloud-runtime/standalone/.next/server/chunks/_5fd6af5d._.js +57 -0
  324. package/cloud-runtime/standalone/.next/server/chunks/_c965f7b3._.js +3 -0
  325. package/cloud-runtime/standalone/.next/server/chunks/_d225c04f._.js +1 -1
  326. package/cloud-runtime/standalone/.next/server/chunks/{_3e0d34cc._.js → _d22934ab._.js} +24 -24
  327. package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_knowledge-notes_route_actions_0ddf6109.js +3 -0
  328. package/cloud-runtime/standalone/.next/server/chunks/lib_7cad5c77._.js +64 -0
  329. package/cloud-runtime/standalone/.next/server/chunks/lib_87c06aeb._.js +25 -0
  330. package/cloud-runtime/standalone/.next/server/chunks/lib_db_ts_e06c6085._.js +1 -1
  331. package/cloud-runtime/standalone/.next/server/chunks/lib_ea45fe73._.js +1 -1
  332. package/cloud-runtime/standalone/.next/server/chunks/lib_history-store_ts_2e721df2._.js +45 -37
  333. package/cloud-runtime/standalone/.next/server/chunks/lib_history-store_ts_74d1c060._.js +45 -37
  334. package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_371d0bff.js +12 -12
  335. package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__a8a8afdc._.js → [root-of-the-server]__04d1aa70._.js} +2 -2
  336. package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__9166c1d6._.js → [root-of-the-server]__2d80540b._.js} +2 -2
  337. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__5ffa2883._.js +1 -1
  338. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__8973b16a._.js +1 -1
  339. package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__1322ced8._.js → [root-of-the-server]__a416df95._.js} +2 -2
  340. package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__783669c3._.js → [root-of-the-server]__c108f06c._.js} +2 -2
  341. package/cloud-runtime/standalone/.next/server/chunks/ssr/_064370bc._.js +1 -1
  342. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_0f4e70b1._.js → _41f60c52._.js} +2 -2
  343. package/cloud-runtime/standalone/.next/server/chunks/ssr/_6b14826d._.js +3 -0
  344. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_6fc3736e._.js → _84879a01._.js} +2 -2
  345. package/cloud-runtime/standalone/.next/server/chunks/ssr/_85ca101b._.js +1 -1
  346. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_ff5799d6._.js → _9eeb2fa0._.js} +2 -2
  347. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_68ac991e._.js → _a1d30b20._.js} +2 -2
  348. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_5b2b8a85._.js → _c87c359c._.js} +2 -2
  349. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_fb292eed._.js → _dd31b6e0._.js} +2 -2
  350. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_6de3f1de._.js → _f0ce6183._.js} +2 -2
  351. package/cloud-runtime/standalone/.next/server/chunks/ssr/app_projects_[slug]_knowledge_page_tsx_e2a55cbd._.js +1 -1
  352. package/cloud-runtime/standalone/.next/server/chunks/ssr/components_chat-ui_bfeda794._.js +1 -1
  353. package/cloud-runtime/standalone/.next/server/chunks/ssr/components_thread_WorkspaceSidebar_tsx_e660301b._.js +1 -1
  354. package/cloud-runtime/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_bf855424._.js +3 -0
  355. package/cloud-runtime/standalone/.next/server/functions-config-manifest.json +1 -0
  356. package/cloud-runtime/standalone/.next/server/middleware-manifest.json +5 -5
  357. package/cloud-runtime/standalone/.next/server/pages/404.html +2 -2
  358. package/cloud-runtime/standalone/.next/server/pages/500.html +2 -2
  359. package/cloud-runtime/standalone/.next/server/server-reference-manifest.js +1 -1
  360. package/cloud-runtime/standalone/.next/server/server-reference-manifest.json +1 -1
  361. package/cloud-runtime/standalone/.next/static/chunks/{a66e1891e808a664.js → 012e3e9699415997.js} +1 -1
  362. package/cloud-runtime/standalone/.next/static/chunks/031d99fbe758545a.js +1 -0
  363. package/cloud-runtime/standalone/.next/static/chunks/{87f099ea02aa419d.js → 116985039c24f1f8.js} +9 -9
  364. package/cloud-runtime/standalone/.next/static/chunks/2ee8d24314eec47c.js +1 -0
  365. package/cloud-runtime/standalone/.next/static/chunks/3a55441b018d52e4.js +1 -0
  366. package/cloud-runtime/standalone/.next/static/chunks/{cd308f61797939cd.js → 43f6157bc3db9c52.js} +2 -2
  367. package/cloud-runtime/standalone/.next/static/chunks/{58025a80caa3629d.js → 56a01238098d495d.js} +9 -9
  368. package/cloud-runtime/standalone/.next/static/chunks/{6fbe08eab578c7d3.js → 601996727991149e.js} +9 -9
  369. package/cloud-runtime/standalone/.next/static/chunks/851b1d97179bd39b.css +1 -0
  370. package/cloud-runtime/standalone/.next/static/chunks/90b581e9631d8cea.js +1 -0
  371. package/cloud-runtime/standalone/.next/static/chunks/b22947e6df238fd5.js +1 -0
  372. package/cloud-runtime/standalone/.next/static/chunks/{4200b512bdc226bc.js → b2dcd19ebe3af3f6.js} +9 -9
  373. package/cloud-runtime/standalone/.next/static/chunks/{e62d5fa120fdf21f.js → bc06988336ffd261.js} +1 -1
  374. package/cloud-runtime/standalone/.next/static/chunks/{1f415d0ce7ebbd08.js → c93b9643c81c134e.js} +1 -1
  375. package/cloud-runtime/standalone/.next/static/chunks/{88e24940a5d5d386.js → d78cc7d749043fef.js} +1 -1
  376. package/cloud-runtime/standalone/.next/static/chunks/ebaf4e8f04bae7b6.js +1 -0
  377. package/cloud-runtime/standalone/.next/static/chunks/f4909e7ae8229b1c.js +1 -0
  378. package/cloud-runtime/standalone/.next/static/chunks/fd221a50082e5128.js +1 -0
  379. package/cloud-runtime/standalone/app/api/chat/route.ts +36 -0
  380. package/cloud-runtime/standalone/app/api/knowledge-notes/route.ts +53 -0
  381. package/cloud-runtime/standalone/app/projects/[slug]/knowledge/page.tsx +210 -26
  382. package/cloud-runtime/standalone/components/chat-ui/ChatContainer.tsx +62 -41
  383. package/cloud-runtime/standalone/components/chat-ui/Markdown.tsx +19 -9
  384. package/cloud-runtime/standalone/components/thread/WorkspaceSidebar.tsx +33 -28
  385. package/cloud-runtime/standalone/hooks/useGroupChat.ts +4 -0
  386. package/cloud-runtime/standalone/hooks/useProcessPolling.ts +4 -3
  387. package/cloud-runtime/standalone/hooks/useThreadState.ts +10 -2
  388. package/cloud-runtime/standalone/lib/cli-runner.ts +212 -14
  389. package/cloud-runtime/standalone/lib/db.ts +1 -1
  390. package/cloud-runtime/standalone/lib/debug-log.ts +48 -0
  391. package/cloud-runtime/standalone/lib/history-store.ts +78 -2
  392. package/cloud-runtime/standalone/lib/orchestrator/chat-processor.ts +51 -0
  393. package/cloud-runtime/standalone/lib/orchestrator/runtime.ts +6 -0
  394. package/cloud-runtime/standalone/lib/queue/sqlite-adapter.ts +117 -2
  395. package/cloud-runtime/standalone/transcri +0 -0
  396. package/cloud-runtime/standalone/worker/index.js +604 -165
  397. package/lib/cli/runCli.js +0 -97
  398. package/lib/commands/update.js +159 -17
  399. package/package.json +1 -1
  400. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__0925dd01._.js +0 -46
  401. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__12c7e188._.js +0 -29
  402. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__17c2d68f._.js +0 -52
  403. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__20b3baea._.js +0 -55
  404. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__254e942f._.js +0 -20
  405. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__3198c5c8._.js +0 -52
  406. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__36d9edbd._.js +0 -67
  407. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4761dc17._.js +0 -8
  408. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4b1a512c._.js +0 -52
  409. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4dc25d71._.js +0 -18
  410. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__7be8f159._.js +0 -52
  411. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ac3c2f7f._.js +0 -52
  412. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__bfcedb7c._.js +0 -52
  413. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__e1e7dd1e._.js +0 -25
  414. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__e45a2a1d._.js +0 -3
  415. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__fcd3e3b8._.js +0 -15
  416. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ff9c61da._.js +0 -3
  417. package/cloud-runtime/standalone/.next/server/chunks/_66e1ddec._.js +0 -57
  418. package/cloud-runtime/standalone/.next/server/chunks/lib_09aac4e7._.js +0 -57
  419. package/cloud-runtime/standalone/.next/server/chunks/lib_cli-runner_ts_dfcf3fda._.js +0 -18
  420. package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_69b6b2e1.js +0 -3
  421. package/cloud-runtime/standalone/.next/server/chunks/ssr/_16c45024._.js +0 -3
  422. package/cloud-runtime/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_678fa868._.js +0 -3
  423. package/cloud-runtime/standalone/.next/static/chunks/24a6ee21f430da93.js +0 -1
  424. package/cloud-runtime/standalone/.next/static/chunks/27129bea5b512ce8.js +0 -1
  425. package/cloud-runtime/standalone/.next/static/chunks/463edf3533d27a56.js +0 -1
  426. package/cloud-runtime/standalone/.next/static/chunks/5cb0c885b085ea6c.js +0 -1
  427. package/cloud-runtime/standalone/.next/static/chunks/60c054bb8b2cffa6.css +0 -1
  428. package/cloud-runtime/standalone/.next/static/chunks/7e2edf97bd6c0874.js +0 -1
  429. package/cloud-runtime/standalone/.next/static/chunks/8249f202d33d0d95.js +0 -1
  430. package/cloud-runtime/standalone/.next/static/chunks/9f8f719c4aa25e3d.js +0 -1
  431. package/cloud-runtime/standalone/.next/static/chunks/bc727d3d9993e9be.js +0 -1
  432. /package/cloud-runtime/standalone/.next/static/{i_9nSHyb52FGkCbRgv7EJ → 68nLQxEpwR_feFvB8T4tR}/_buildManifest.js +0 -0
  433. /package/cloud-runtime/standalone/.next/static/{i_9nSHyb52FGkCbRgv7EJ → 68nLQxEpwR_feFvB8T4tR}/_clientMiddlewareManifest.json +0 -0
  434. /package/cloud-runtime/standalone/.next/static/{i_9nSHyb52FGkCbRgv7EJ → 68nLQxEpwR_feFvB8T4tR}/_ssgManifest.js +0 -0
@@ -9,7 +9,9 @@ import {
9
9
  MessageSquare,
10
10
  Plus,
11
11
  Search,
12
+ SquarePen,
12
13
  Trash2,
14
+ X,
13
15
  } from "lucide-react";
14
16
  import { useProjects } from "@/hooks/useProjects";
15
17
  import { useProjectMemory, useProjectSkills } from "@/hooks/useProjectResources";
@@ -24,6 +26,23 @@ type SystemNote = {
24
26
  source?: string;
25
27
  };
26
28
 
29
+ function mapKnowledgeNoteToSystemNote(note: {
30
+ id: string;
31
+ content: string;
32
+ createdAt?: string;
33
+ updatedAt?: string;
34
+ sourceType?: string;
35
+ } | null | undefined): SystemNote | null {
36
+ if (!note) return null;
37
+ return {
38
+ id: note.id,
39
+ content: note.content,
40
+ created_at: note.createdAt,
41
+ updated_at: note.updatedAt,
42
+ source: note.sourceType,
43
+ };
44
+ }
45
+
27
46
  export default function ProjectKnowledgePage({ params }: { params: Promise<{ slug: string }> }) {
28
47
  const { slug } = use(params);
29
48
 
@@ -99,10 +118,10 @@ export default function ProjectKnowledgePage({ params }: { params: Promise<{ slu
99
118
  return;
100
119
  }
101
120
  try {
102
- const res = await fetch(`/api/projects/${projectId}/memory?producer=system`);
103
- const data = res.ok ? await res.json() : { memory: [] };
121
+ const res = await fetch(`/api/knowledge-notes?scope=project&subjectId=${encodeURIComponent(projectId)}`);
122
+ const data = res.ok ? await res.json() : { note: null };
104
123
  if (!cancelled) {
105
- setProjectSystemNote((data.memory ?? [])[0] ?? null);
124
+ setProjectSystemNote(mapKnowledgeNoteToSystemNote(data.note));
106
125
  }
107
126
  } catch {
108
127
  if (!cancelled) setProjectSystemNote(null);
@@ -125,9 +144,9 @@ export default function ProjectKnowledgePage({ params }: { params: Promise<{ slu
125
144
  try {
126
145
  const entries = await Promise.all(
127
146
  repos.map(async (repo) => {
128
- const res = await fetch(`/api/repos/${repo.id}/knowledge?producer=system`);
129
- const data = res.ok ? await res.json() : { knowledge: [] };
130
- return [repo.id, (data.knowledge ?? [])[0] ?? null] as const;
147
+ const res = await fetch(`/api/knowledge-notes?scope=repo&subjectId=${encodeURIComponent(repo.id)}`);
148
+ const data = res.ok ? await res.json() : { note: null };
149
+ return [repo.id, mapKnowledgeNoteToSystemNote(data.note)] as const;
131
150
  })
132
151
  );
133
152
  if (!cancelled) {
@@ -244,10 +263,17 @@ export default function ProjectKnowledgePage({ params }: { params: Promise<{ slu
244
263
  </p>
245
264
  </div>
246
265
  <SystemNoteCard
247
- content={projectNoteMatches ? projectSystemNote?.content ?? "" : ""}
266
+ note={
267
+ projectNoteMatches
268
+ ? projectSystemNote
269
+ : projectSystemNote?.content
270
+ ? { ...projectSystemNote, content: "" }
271
+ : null
272
+ }
248
273
  emptyLabel={searchQuery ? "No matching project note content." : "No project note yet."}
249
- updatedAt={projectSystemNote?.updated_at ?? projectSystemNote?.created_at}
250
- summary={projectSystemNote?.source}
274
+ scope="project"
275
+ subjectId={projectId ?? ""}
276
+ onSaved={setProjectSystemNote}
251
277
  />
252
278
  </section>
253
279
 
@@ -419,6 +445,7 @@ export default function ProjectKnowledgePage({ params }: { params: Promise<{ slu
419
445
  repo={repo}
420
446
  draft={repoDrafts[repo.id] ?? ""}
421
447
  systemNote={repoSystemNotes[repo.id] ?? null}
448
+ systemNoteMatches={!searchQuery || (repoSystemNotes[repo.id]?.content ?? "").toLowerCase().includes(searchQuery.toLowerCase())}
422
449
  onDraftChange={(value) => setRepoDrafts((prev) => ({ ...prev, [repo.id]: value }))}
423
450
  onSave={async () => {
424
451
  await fetch(`/api/repos/${repo.id}/knowledge`, {
@@ -435,6 +462,7 @@ export default function ProjectKnowledgePage({ params }: { params: Promise<{ slu
435
462
  }
436
463
  });
437
464
  }}
465
+ onSystemNoteSaved={(note) => setRepoSystemNotes((prev) => ({ ...prev, [repo.id]: note }))}
438
466
  />
439
467
  ))}
440
468
  </div>
@@ -485,33 +513,178 @@ function StatCard({ label, value, sub }: { label: string; value: number; sub: st
485
513
  }
486
514
 
487
515
  function SystemNoteCard({
488
- content,
516
+ note,
489
517
  emptyLabel,
490
- updatedAt,
491
- summary,
518
+ scope,
519
+ subjectId,
520
+ onSaved,
492
521
  }: {
493
- content: string;
522
+ note: SystemNote | null;
494
523
  emptyLabel: string;
495
- updatedAt?: string;
496
- summary?: string;
524
+ scope: "project" | "repo";
525
+ subjectId: string;
526
+ onSaved: (note: SystemNote | null) => void;
497
527
  }) {
498
- if (!content.trim()) {
528
+ const [isEditing, setIsEditing] = useState(false);
529
+ const [draft, setDraft] = useState(note?.content ?? "");
530
+ const [isSaving, setIsSaving] = useState(false);
531
+ const [error, setError] = useState<string | null>(null);
532
+
533
+ useEffect(() => {
534
+ setDraft(note?.content ?? "");
535
+ }, [note?.id, note?.content]);
536
+
537
+ const hasContent = Boolean(note?.content.trim());
538
+ const updatedAt = note?.updated_at ?? note?.created_at;
539
+ const summary = note?.source;
540
+
541
+ async function handleSave() {
542
+ if (!subjectId) return;
543
+ setIsSaving(true);
544
+ setError(null);
545
+ try {
546
+ const res = await fetch("/api/knowledge-notes", {
547
+ method: "PUT",
548
+ headers: { "Content-Type": "application/json" },
549
+ body: JSON.stringify({
550
+ scope,
551
+ subjectId,
552
+ content: draft,
553
+ }),
554
+ });
555
+ const data = await res.json().catch(() => ({}));
556
+ if (!res.ok) {
557
+ throw new Error(data.error || "Failed to save knowledge note");
558
+ }
559
+ const nextNote = mapKnowledgeNoteToSystemNote(data.note);
560
+ onSaved(nextNote);
561
+ setDraft(nextNote?.content ?? "");
562
+ setIsEditing(false);
563
+ } catch (err) {
564
+ setError(err instanceof Error ? err.message : "Failed to save knowledge note");
565
+ } finally {
566
+ setIsSaving(false);
567
+ }
568
+ }
569
+
570
+ if (!hasContent) {
499
571
  return (
500
572
  <div className="rounded-xl border border-dashed border-[var(--border)] px-4 py-6 text-sm text-[var(--muted-foreground)]">
501
- {emptyLabel}
573
+ <div className="flex items-center justify-between gap-3">
574
+ <span>{emptyLabel}</span>
575
+ <button
576
+ type="button"
577
+ onClick={() => {
578
+ setDraft(note?.content ?? "");
579
+ setError(null);
580
+ setIsEditing(true);
581
+ }}
582
+ className="inline-flex items-center gap-1.5 rounded-lg border border-[var(--border)] bg-[var(--secondary)] px-3 py-1.5 text-xs font-medium text-[var(--foreground)]"
583
+ >
584
+ <SquarePen className="h-3.5 w-3.5" />
585
+ Edit
586
+ </button>
587
+ </div>
588
+ {isEditing ? (
589
+ <div className="mt-4 space-y-3">
590
+ <textarea
591
+ value={draft}
592
+ onChange={(event) => setDraft(event.target.value)}
593
+ rows={10}
594
+ className="w-full resize-y rounded-xl border border-[var(--border)] bg-[var(--secondary)] px-4 py-3 text-sm text-[var(--foreground)] focus:border-[var(--primary)] focus:outline-none focus:ring-2 focus:ring-[var(--ring)]"
595
+ placeholder="Write the living knowledge note in markdown..."
596
+ />
597
+ {error ? <p className="text-xs text-red-500">{error}</p> : null}
598
+ <div className="flex items-center justify-end gap-2">
599
+ <button
600
+ type="button"
601
+ onClick={() => {
602
+ setDraft(note?.content ?? "");
603
+ setError(null);
604
+ setIsEditing(false);
605
+ }}
606
+ className="inline-flex items-center gap-1.5 rounded-lg px-3 py-1.5 text-xs font-medium text-[var(--muted-foreground)]"
607
+ disabled={isSaving}
608
+ >
609
+ <X className="h-3.5 w-3.5" />
610
+ Cancel
611
+ </button>
612
+ <button
613
+ type="button"
614
+ onClick={() => void handleSave()}
615
+ disabled={isSaving}
616
+ className="inline-flex items-center gap-1.5 rounded-lg bg-[var(--primary)] px-3 py-1.5 text-xs font-medium text-[var(--primary-foreground)] disabled:opacity-60"
617
+ >
618
+ {isSaving ? "Saving..." : "Save"}
619
+ </button>
620
+ </div>
621
+ </div>
622
+ ) : null}
502
623
  </div>
503
624
  );
504
625
  }
505
626
 
506
627
  return (
507
628
  <div className="rounded-xl border border-[var(--border)] bg-[var(--secondary)] p-4">
508
- <div className="mb-3 flex flex-wrap items-center gap-2 text-[11px] text-[var(--app-shell-soft-text)]">
509
- {updatedAt ? <span>Updated {new Date(updatedAt).toLocaleString()}</span> : null}
510
- {summary ? <span>{summary}</span> : null}
511
- </div>
512
- <div className="text-sm leading-relaxed text-[var(--secondary-foreground)]">
513
- <Markdown content={content} />
629
+ <div className="mb-3 flex items-start justify-between gap-3">
630
+ <div className="flex flex-wrap items-center gap-2 text-[11px] text-[var(--app-shell-soft-text)]">
631
+ {updatedAt ? <span>Updated {new Date(updatedAt).toLocaleString()}</span> : null}
632
+ {summary ? <span>{summary}</span> : null}
633
+ </div>
634
+ {!isEditing ? (
635
+ <button
636
+ type="button"
637
+ onClick={() => {
638
+ setDraft(note?.content ?? "");
639
+ setError(null);
640
+ setIsEditing(true);
641
+ }}
642
+ className="inline-flex items-center gap-1.5 rounded-lg border border-[var(--border)] bg-[var(--card-bg)] px-3 py-1.5 text-xs font-medium text-[var(--foreground)]"
643
+ >
644
+ <SquarePen className="h-3.5 w-3.5" />
645
+ Edit
646
+ </button>
647
+ ) : null}
514
648
  </div>
649
+ {isEditing ? (
650
+ <div className="space-y-3">
651
+ <textarea
652
+ value={draft}
653
+ onChange={(event) => setDraft(event.target.value)}
654
+ rows={12}
655
+ className="w-full resize-y rounded-xl border border-[var(--border)] bg-[var(--card-bg)] px-4 py-3 text-sm text-[var(--foreground)] focus:border-[var(--primary)] focus:outline-none focus:ring-2 focus:ring-[var(--ring)]"
656
+ placeholder="Write the living knowledge note in markdown..."
657
+ />
658
+ {error ? <p className="text-xs text-red-500">{error}</p> : null}
659
+ <div className="flex items-center justify-end gap-2">
660
+ <button
661
+ type="button"
662
+ onClick={() => {
663
+ setDraft(note?.content ?? "");
664
+ setError(null);
665
+ setIsEditing(false);
666
+ }}
667
+ className="inline-flex items-center gap-1.5 rounded-lg px-3 py-1.5 text-xs font-medium text-[var(--muted-foreground)]"
668
+ disabled={isSaving}
669
+ >
670
+ <X className="h-3.5 w-3.5" />
671
+ Cancel
672
+ </button>
673
+ <button
674
+ type="button"
675
+ onClick={() => void handleSave()}
676
+ disabled={isSaving}
677
+ className="inline-flex items-center gap-1.5 rounded-lg bg-[var(--primary)] px-3 py-1.5 text-xs font-medium text-[var(--primary-foreground)] disabled:opacity-60"
678
+ >
679
+ {isSaving ? "Saving..." : "Save"}
680
+ </button>
681
+ </div>
682
+ </div>
683
+ ) : (
684
+ <div className="text-sm leading-relaxed text-[var(--secondary-foreground)]">
685
+ <Markdown content={note?.content ?? ""} />
686
+ </div>
687
+ )}
515
688
  </div>
516
689
  );
517
690
  }
@@ -551,14 +724,18 @@ function RepoCard({
551
724
  repo,
552
725
  draft,
553
726
  systemNote,
727
+ systemNoteMatches,
554
728
  onDraftChange,
555
729
  onSave,
730
+ onSystemNoteSaved,
556
731
  }: {
557
732
  repo: { id: string; name: string; path?: string; notes?: string };
558
733
  draft: string;
559
734
  systemNote: SystemNote | null;
735
+ systemNoteMatches: boolean;
560
736
  onDraftChange: (value: string) => void;
561
737
  onSave: () => Promise<void>;
738
+ onSystemNoteSaved: (note: SystemNote | null) => void;
562
739
  }) {
563
740
  return (
564
741
  <div className="group flex flex-col rounded-2xl border border-[var(--border)] bg-[var(--card-bg)] p-5 shadow-[var(--shadow-sm)] transition-colors hover:border-[var(--card-hover-border)]">
@@ -586,10 +763,17 @@ function RepoCard({
586
763
  Living Repo Note
587
764
  </p>
588
765
  <SystemNoteCard
589
- content={systemNote?.content ?? ""}
766
+ note={
767
+ systemNoteMatches
768
+ ? systemNote
769
+ : systemNote?.content
770
+ ? { ...systemNote, content: "" }
771
+ : null
772
+ }
590
773
  emptyLabel="No repo note yet."
591
- updatedAt={systemNote?.updated_at ?? systemNote?.created_at}
592
- summary={systemNote?.source}
774
+ scope="repo"
775
+ subjectId={repo.id}
776
+ onSaved={onSystemNoteSaved}
593
777
  />
594
778
  </div>
595
779
 
@@ -240,9 +240,20 @@ export function ChatContainer({
240
240
  activeThreadId ? { workspaceId: activeThreadId } : null,
241
241
  { messages, setMessages }
242
242
  );
243
- const activeChatRuns = (chatRuns.length > 0 ? chatRuns : polledChatRuns).filter(
244
- (run) => run.status === "queued" || run.status === "running"
245
- );
243
+ const activeChatRuns = useMemo(() => {
244
+ const now = Date.now();
245
+ const byId = new Map(polledChatRuns.map((run) => [run.chatRunId, run]));
246
+
247
+ for (const run of chatRuns) {
248
+ if (!run.optimistic || byId.has(run.chatRunId)) continue;
249
+ if (now - (run.enqueuedAt ?? 0) > 5000) continue;
250
+ byId.set(run.chatRunId, run);
251
+ }
252
+
253
+ return Array.from(byId.values()).filter(
254
+ (run) => run.status === "queued" || run.status === "running"
255
+ );
256
+ }, [chatRuns, polledChatRuns]);
246
257
  const composerActivityStatus =
247
258
  polledActiveAgents.size > 0 || activeChatRuns.some((run) => run.status === "running")
248
259
  ? "working"
@@ -252,18 +263,26 @@ export function ChatContainer({
252
263
  const loading = composerActivityStatus !== "ready";
253
264
 
254
265
  useEffect(() => {
255
- if (polledChatRuns.length === 0) return;
256
266
  setChatRuns((prev) => {
267
+ const now = Date.now();
257
268
  const byId = new Map(
258
269
  prev
259
270
  .filter((run) => typeof run.chatRunId === "string" && run.chatRunId.length > 0)
260
271
  .map((run) => [run.chatRunId, run])
261
272
  );
273
+
262
274
  for (const run of polledChatRuns) {
263
275
  if (!run?.chatRunId) continue;
264
276
  byId.set(run.chatRunId, run);
265
277
  }
266
- return Array.from(byId.values()).sort((a, b) =>
278
+
279
+ const next = Array.from(byId.values()).filter((run) => {
280
+ if (!run.optimistic) return true;
281
+ if (polledChatRuns.some((polledRun) => polledRun.chatRunId === run.chatRunId)) return true;
282
+ return now - (run.enqueuedAt ?? 0) <= 5000;
283
+ });
284
+
285
+ return next.sort((a, b) =>
267
286
  String(a.chatRunId || "").localeCompare(String(b.chatRunId || ""))
268
287
  );
269
288
  });
@@ -546,7 +565,7 @@ export function ChatContainer({
546
565
  const activeThreadTitle = useMemo(() => {
547
566
  if (!openThreadId) return "";
548
567
  const rootMsg = messages.find((m) => m.id === openThreadId);
549
- if (!rootMsg) return "Thread";
568
+ if (!rootMsg) return "Discussion";
550
569
  const text = rootMsg.content.trim();
551
570
  return text.length > 60 ? text.slice(0, 60) + "..." : text;
552
571
  }, [openThreadId, messages]);
@@ -1580,7 +1599,9 @@ export function ChatContainer({
1580
1599
  );
1581
1600
 
1582
1601
  const mainToolbar = (
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">
1602
+ <div
1603
+ className="border-b border-[var(--app-shell-border)] bg-[var(--app-shell-surface)] px-4 py-2.5 backdrop-blur-xl md:px-6"
1604
+ >
1584
1605
  <div className="mx-auto flex max-w-5xl items-center gap-3">
1585
1606
  <div className="flex min-w-0 items-center flex-shrink-0">
1586
1607
  {showSidebar && !workspaceSidebarVisible && (
@@ -1657,36 +1678,36 @@ export function ChatContainer({
1657
1678
 
1658
1679
  return (
1659
1680
  <div className="flex h-screen bg-[var(--app-shell-bg)] text-[var(--foreground)]">
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}
1689
- <div className="flex flex-col flex-1 min-w-0 relative">
1681
+ {showSidebar ? (
1682
+ <WorkspaceSidebar
1683
+ threads={threads}
1684
+ participants={participants}
1685
+ activeThreadId={activeThreadId}
1686
+ isLoading={threadsLoading}
1687
+ isRestoringActiveThread={isRestoringActiveThread}
1688
+ isCreating={isCreating}
1689
+ deletingThreadId={deletingThreadId}
1690
+ renamingThreadId={renamingThreadId}
1691
+ onSelectThread={selectThread}
1692
+ onCreateThread={createThread}
1693
+ onRenameThread={renameThread}
1694
+ onDeleteThread={handleDeleteThread}
1695
+ activeParticipantIds={activeParticipantIds}
1696
+ onToggleParticipantActive={handleToggleParticipantActive}
1697
+ visible={workspaceSidebarVisible}
1698
+ onToggle={toggleWorkspaceSidebar}
1699
+ projects={projects}
1700
+ onCreateProject={createProject}
1701
+ onUpdateProject={updateProject}
1702
+ onDeleteProject={deleteProject}
1703
+ onAddAgentToProject={addAgentToProject}
1704
+ onRemoveAgentFromProject={removeAgentFromProject}
1705
+ onReorderProjectAgents={reorderProjectAgents}
1706
+ onUpdateParticipant={handleUpdate}
1707
+ onSelectProject={handleSelectProject}
1708
+ />
1709
+ ) : null}
1710
+ <div className="flex flex-col flex-1 min-w-0 relative">
1690
1711
  {
1691
1712
  isRestoringActiveThread ? (
1692
1713
  <div className="flex-1 flex items-center justify-center px-4 text-sm text-[var(--muted-foreground)]">
@@ -1862,16 +1883,16 @@ export function ChatContainer({
1862
1883
  </div>
1863
1884
  )
1864
1885
  }
1865
- </div >
1886
+ </div>
1866
1887
  {initialRootMessageId && (
1867
1888
  <LogPanel logs={logs} participants={participants} onClear={() => void clearLogs(activeThreadId)} open={logsOpen} onToggle={() => setLogsOpen(false)} />
1868
1889
  )}
1869
1890
  <ConfirmDialog
1870
1891
  isOpen={pendingDelete !== null}
1871
- title={pendingDelete?.type === "thread" ? "Delete Thread" : "Delete Message"}
1892
+ title={pendingDelete?.type === "thread" ? "Delete Discussion" : "Delete Message"}
1872
1893
  message={
1873
1894
  pendingDelete?.type === "thread"
1874
- ? "This will permanently delete this thread and all of its replies. This action cannot be undone."
1895
+ ? "This will permanently delete this discussion and all of its replies. This action cannot be undone."
1875
1896
  : "This will permanently delete this message. This action cannot be undone."
1876
1897
  }
1877
1898
  preview={pendingDelete?.preview}
@@ -1881,6 +1902,6 @@ export function ChatContainer({
1881
1902
  onConfirm={handleConfirmDelete}
1882
1903
  onCancel={handleCancelDelete}
1883
1904
  />
1884
- </div >
1905
+ </div>
1885
1906
  );
1886
1907
  }
@@ -1,5 +1,6 @@
1
1
  "use client";
2
2
 
3
+ import React from "react";
3
4
  import ReactMarkdown from "react-markdown";
4
5
  import remarkGfm from "remark-gfm";
5
6
  import type { Components } from "react-markdown";
@@ -9,6 +10,18 @@ interface Props {
9
10
  isUser?: boolean;
10
11
  }
11
12
 
13
+ function isBlockCode(className?: string, children?: React.ReactNode) {
14
+ if (className?.includes("language-")) return true;
15
+ const text = React.Children.toArray(children).join("");
16
+ return text.includes("\n");
17
+ }
18
+
19
+ function codeBlockClasses(isUser?: boolean) {
20
+ return isUser
21
+ ? "bg-[var(--card-bg)]/[0.12] rounded-lg p-3 my-3 overflow-x-auto border border-white/[0.08]"
22
+ : "bg-black/[0.06] rounded-lg p-3 my-3 overflow-x-auto border border-black/[0.06]";
23
+ }
24
+
12
25
  const components: Components = {
13
26
  p: ({ children }) => <p className="mb-3 last:mb-0 leading-relaxed">{children}</p>,
14
27
  strong: ({ children }) => <strong className="font-semibold">{children}</strong>,
@@ -30,12 +43,10 @@ const components: Components = {
30
43
  <h3 className="text-sm font-semibold mb-1.5 mt-2.5 first:mt-0">{children}</h3>
31
44
  ),
32
45
  code: ({ children, className }) => {
33
- const isBlock = className?.includes("language-");
46
+ const isBlock = isBlockCode(className, children);
34
47
  if (isBlock) {
35
48
  return (
36
- <pre className="bg-black/[0.06] rounded-lg p-3 my-3 overflow-x-auto border border-black/[0.06]">
37
- <code className="text-[13px] leading-relaxed font-mono">{children}</code>
38
- </pre>
49
+ <code className={`text-[13px] leading-relaxed font-mono whitespace-pre ${className ?? ""}`.trim()}>{children}</code>
39
50
  );
40
51
  }
41
52
  return (
@@ -44,7 +55,7 @@ const components: Components = {
44
55
  </code>
45
56
  );
46
57
  },
47
- pre: ({ children }) => <>{children}</>,
58
+ pre: ({ children }) => <pre className={codeBlockClasses(false)}>{children}</pre>,
48
59
  blockquote: ({ children }) => (
49
60
  <blockquote className="border-l-[3px] border-[var(--border)] pl-3 my-3 text-[var(--muted-foreground)]">
50
61
  {children}
@@ -80,12 +91,10 @@ const userComponents: Components = {
80
91
  <ol className="list-decimal pl-5 mb-3 last:mb-0 space-y-1.5 marker:text-white/60">{children}</ol>
81
92
  ),
82
93
  code: ({ children, className }) => {
83
- const isBlock = className?.includes("language-");
94
+ const isBlock = isBlockCode(className, children);
84
95
  if (isBlock) {
85
96
  return (
86
- <pre className="bg-[var(--card-bg)]/[0.12] rounded-lg p-3 my-3 overflow-x-auto border border-white/[0.08]">
87
- <code className="text-[13px] leading-relaxed font-mono">{children}</code>
88
- </pre>
97
+ <code className={`text-[13px] leading-relaxed font-mono whitespace-pre ${className ?? ""}`.trim()}>{children}</code>
89
98
  );
90
99
  }
91
100
  return (
@@ -94,6 +103,7 @@ const userComponents: Components = {
94
103
  </code>
95
104
  );
96
105
  },
106
+ pre: ({ children }) => <pre className={codeBlockClasses(true)}>{children}</pre>,
97
107
  blockquote: ({ children }) => (
98
108
  <blockquote className="border-l-[3px] border-white/30 pl-3 my-3 text-white/80">
99
109
  {children}