@mndrk/agx 2.0.0-next.8 → 2.0.0

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 (407) hide show
  1. package/README.md +16 -5
  2. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/BUILD_ID +1 -1
  3. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/app-path-routes-manifest.json +9 -1
  4. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/build-manifest.json +2 -2
  5. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/prerender-manifest.json +27 -3
  6. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/routes-manifest.json +57 -0
  7. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_global-error/page.js +1 -1
  8. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_global-error/page.js.nft.json +1 -1
  9. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  10. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_global-error.html +2 -2
  11. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_global-error.rsc +1 -1
  12. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  13. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  14. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  15. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  16. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  17. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_not-found/page.js +1 -1
  18. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_not-found/page.js.nft.json +1 -1
  19. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  20. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_not-found.html +2 -2
  21. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_not-found.rsc +2 -2
  22. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  23. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  24. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  25. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  26. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  27. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  28. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/daemon/route/app-paths-manifest.json +3 -0
  29. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/daemon/route/build-manifest.json +11 -0
  30. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/daemon/route/server-reference-manifest.json +4 -0
  31. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/daemon/route.js +7 -0
  32. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/daemon/route.js.map +5 -0
  33. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/daemon/route.js.nft.json +1 -0
  34. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/daemon/route_client-reference-manifest.js +2 -0
  35. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/file-search/route.js.nft.json +1 -1
  36. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/health/route.js.nft.json +1 -1
  37. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/history/route.js +2 -2
  38. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/learnings/route.js.nft.json +1 -1
  39. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/logs/stream/route.js.nft.json +1 -1
  40. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/memories/route.js.nft.json +1 -1
  41. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/notification-outbox/[id]/route/app-paths-manifest.json +3 -0
  42. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/notification-outbox/[id]/route/build-manifest.json +11 -0
  43. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/notification-outbox/[id]/route/server-reference-manifest.json +4 -0
  44. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/notification-outbox/[id]/route.js +8 -0
  45. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/notification-outbox/[id]/route.js.map +5 -0
  46. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/notification-outbox/[id]/route.js.nft.json +1 -0
  47. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/notification-outbox/[id]/route_client-reference-manifest.js +2 -0
  48. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/notifications/[id]/read/route/app-paths-manifest.json +3 -0
  49. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/notifications/[id]/read/route/build-manifest.json +11 -0
  50. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/notifications/[id]/read/route/server-reference-manifest.json +4 -0
  51. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/notifications/[id]/read/route.js +8 -0
  52. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/notifications/[id]/read/route.js.map +5 -0
  53. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/notifications/[id]/read/route.js.nft.json +1 -0
  54. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/notifications/[id]/read/route_client-reference-manifest.js +2 -0
  55. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/notifications/route/app-paths-manifest.json +3 -0
  56. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/notifications/route/build-manifest.json +11 -0
  57. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/notifications/route/server-reference-manifest.json +4 -0
  58. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/notifications/route.js +8 -0
  59. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/notifications/route.js.map +5 -0
  60. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/notifications/route.js.nft.json +1 -0
  61. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/notifications/route_client-reference-manifest.js +2 -0
  62. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/notifications/unread-count/route/app-paths-manifest.json +3 -0
  63. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/notifications/unread-count/route/build-manifest.json +11 -0
  64. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/notifications/unread-count/route/server-reference-manifest.json +4 -0
  65. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/notifications/unread-count/route.js +8 -0
  66. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/notifications/unread-count/route.js.map +5 -0
  67. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/notifications/unread-count/route.js.nft.json +1 -0
  68. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/notifications/unread-count/route_client-reference-manifest.js +2 -0
  69. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/orchestrator/tasks/[taskId]/cancel/route.js.nft.json +1 -1
  70. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/orchestrator/tasks/[taskId]/signal/route.js.nft.json +1 -1
  71. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/orchestrator/tasks/[taskId]/start/route.js.nft.json +1 -1
  72. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/orchestrator/tasks/[taskId]/status/route.js.nft.json +1 -1
  73. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/projects/[id]/migrate-v1/route.js.nft.json +1 -1
  74. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/projects/[id]/migrate-v2/route.js.nft.json +1 -1
  75. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
  76. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/projects/route.js.nft.json +1 -1
  77. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/queue/complete/route.js.nft.json +1 -1
  78. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/queue/route.js.nft.json +1 -1
  79. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/system/db-status/route.js.nft.json +1 -1
  80. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js.nft.json +1 -1
  81. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/comments/route.js.nft.json +1 -1
  82. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/costs/route.js.nft.json +1 -1
  83. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/dependencies/route.js.nft.json +1 -1
  84. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/graph/events/route.js.nft.json +1 -1
  85. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/graph/history/route.js.nft.json +1 -1
  86. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/graph/metrics/route.js.nft.json +1 -1
  87. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/graph/pause/route.js.nft.json +1 -1
  88. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/graph/replan/route.js.nft.json +1 -1
  89. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/graph/restart/route.js.nft.json +1 -1
  90. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/graph/resume/route.js.nft.json +1 -1
  91. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/graph/rollback/route.js.nft.json +1 -1
  92. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/graph/route.js.nft.json +1 -1
  93. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/graph/start/route.js.nft.json +1 -1
  94. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/graph/stop/route.js.nft.json +1 -1
  95. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/heartbeat/route.js.nft.json +1 -1
  96. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/history/route.js.nft.json +1 -1
  97. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/logs/route.js.nft.json +1 -1
  98. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/logs/stream/route.js.nft.json +1 -1
  99. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/nodes/[nodeId]/comments/route.js.nft.json +1 -1
  100. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/nodes/[nodeId]/complete/route.js.nft.json +1 -1
  101. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/nodes/[nodeId]/fail/route.js.nft.json +1 -1
  102. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/nodes/[nodeId]/resume/route.js.nft.json +1 -1
  103. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/nodes/[nodeId]/start/route.js.nft.json +1 -1
  104. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/nodes/[nodeId]/stop/route.js.nft.json +1 -1
  105. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js.nft.json +1 -1
  106. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
  107. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/assign-orphans/route.js.nft.json +1 -1
  108. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/route.js.nft.json +1 -1
  109. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/stream/route.js.nft.json +1 -1
  110. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/user-settings/route.js.nft.json +1 -1
  111. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/board/page.js +1 -1
  112. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/board/page.js.nft.json +1 -1
  113. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/board/page_client-reference-manifest.js +1 -1
  114. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/board.html +2 -2
  115. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/board.rsc +2 -2
  116. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/board.segments/_full.segment.rsc +2 -2
  117. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/board.segments/_head.segment.rsc +1 -1
  118. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/board.segments/_index.segment.rsc +2 -2
  119. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/board.segments/_tree.segment.rsc +2 -2
  120. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/board.segments/board/__PAGE__.segment.rsc +1 -1
  121. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/board.segments/board.segment.rsc +1 -1
  122. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/execution-graph/page.js +1 -1
  123. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/execution-graph/page.js.nft.json +1 -1
  124. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/execution-graph/page_client-reference-manifest.js +1 -1
  125. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/execution-graph.html +2 -2
  126. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/execution-graph.rsc +3 -3
  127. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/execution-graph.segments/_full.segment.rsc +3 -3
  128. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/execution-graph.segments/_head.segment.rsc +1 -1
  129. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/execution-graph.segments/_index.segment.rsc +2 -2
  130. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/execution-graph.segments/_tree.segment.rsc +2 -2
  131. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/execution-graph.segments/execution-graph/__PAGE__.segment.rsc +2 -2
  132. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/execution-graph.segments/execution-graph.segment.rsc +1 -1
  133. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/index.html +2 -2
  134. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/index.rsc +3 -3
  135. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  136. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/index.segments/_full.segment.rsc +3 -3
  137. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/index.segments/_head.segment.rsc +1 -1
  138. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/index.segments/_index.segment.rsc +2 -2
  139. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  140. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/page.js +1 -1
  141. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/page.js.nft.json +1 -1
  142. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/page_client-reference-manifest.js +1 -1
  143. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/[slug]/graph/[taskId]/page.js +1 -1
  144. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/[slug]/graph/[taskId]/page.js.nft.json +1 -1
  145. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/[slug]/graph/[taskId]/page_client-reference-manifest.js +1 -1
  146. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/[slug]/page.js +1 -1
  147. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/[slug]/page.js.nft.json +1 -1
  148. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
  149. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/orphans/page.js +1 -1
  150. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/orphans/page.js.nft.json +1 -1
  151. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/orphans/page_client-reference-manifest.js +1 -1
  152. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/orphans.html +1 -1
  153. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/orphans.rsc +3 -3
  154. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/orphans.segments/_full.segment.rsc +3 -3
  155. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/orphans.segments/_head.segment.rsc +1 -1
  156. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/orphans.segments/_index.segment.rsc +2 -2
  157. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/orphans.segments/_tree.segment.rsc +2 -2
  158. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/orphans.segments/projects/orphans/__PAGE__.segment.rsc +2 -2
  159. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/orphans.segments/projects/orphans.segment.rsc +1 -1
  160. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/orphans.segments/projects.segment.rsc +1 -1
  161. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/page.js +1 -1
  162. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/page.js.nft.json +1 -1
  163. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  164. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects.html +2 -2
  165. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects.rsc +3 -3
  166. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects.segments/_full.segment.rsc +3 -3
  167. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects.segments/_head.segment.rsc +1 -1
  168. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects.segments/_index.segment.rsc +2 -2
  169. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
  170. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +2 -2
  171. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects.segments/projects.segment.rsc +1 -1
  172. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/settings/page.js +1 -1
  173. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/settings/page.js.nft.json +1 -1
  174. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  175. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/settings.html +2 -2
  176. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/settings.rsc +3 -3
  177. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/settings.segments/_full.segment.rsc +3 -3
  178. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  179. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/settings.segments/_index.segment.rsc +2 -2
  180. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  181. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +2 -2
  182. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  183. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/status/page.js +1 -1
  184. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/status/page.js.nft.json +1 -1
  185. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/status/page_client-reference-manifest.js +1 -1
  186. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/status.html +2 -2
  187. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/status.rsc +3 -3
  188. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/status.segments/_full.segment.rsc +3 -3
  189. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/status.segments/_head.segment.rsc +1 -1
  190. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/status.segments/_index.segment.rsc +2 -2
  191. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/status.segments/_tree.segment.rsc +2 -2
  192. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/status.segments/status/__PAGE__.segment.rsc +2 -2
  193. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/status.segments/status.segment.rsc +1 -1
  194. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/w/[workspaceId]/[threadId]/page/app-paths-manifest.json +3 -0
  195. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/w/[workspaceId]/[threadId]/page/build-manifest.json +18 -0
  196. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/w/[workspaceId]/[threadId]/page/next-font-manifest.json +11 -0
  197. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/w/[workspaceId]/[threadId]/page/react-loadable-manifest.json +1 -0
  198. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/w/[workspaceId]/[threadId]/page/server-reference-manifest.json +4 -0
  199. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/w/[workspaceId]/[threadId]/page.js +16 -0
  200. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/w/[workspaceId]/[threadId]/page.js.map +5 -0
  201. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/w/[workspaceId]/[threadId]/page.js.nft.json +1 -0
  202. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/w/[workspaceId]/[threadId]/page_client-reference-manifest.js +2 -0
  203. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/w/[workspaceId]/page/app-paths-manifest.json +3 -0
  204. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/w/[workspaceId]/page/build-manifest.json +18 -0
  205. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/w/[workspaceId]/page/next-font-manifest.json +11 -0
  206. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/w/[workspaceId]/page/react-loadable-manifest.json +1 -0
  207. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/w/[workspaceId]/page/server-reference-manifest.json +4 -0
  208. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/w/[workspaceId]/page.js +16 -0
  209. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/w/[workspaceId]/page.js.map +5 -0
  210. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/w/[workspaceId]/page.js.nft.json +1 -0
  211. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/w/[workspaceId]/page_client-reference-manifest.js +2 -0
  212. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/welcome/page/app-paths-manifest.json +3 -0
  213. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/welcome/page/build-manifest.json +18 -0
  214. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/welcome/page/next-font-manifest.json +11 -0
  215. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/welcome/page/react-loadable-manifest.json +1 -0
  216. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/welcome/page/server-reference-manifest.json +4 -0
  217. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/welcome/page.js +15 -0
  218. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/welcome/page.js.map +5 -0
  219. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/welcome/page.js.nft.json +1 -0
  220. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/welcome/page_client-reference-manifest.js +2 -0
  221. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/welcome.html +9 -0
  222. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/welcome.meta +15 -0
  223. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/welcome.rsc +23 -0
  224. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/welcome.segments/_full.segment.rsc +23 -0
  225. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/welcome.segments/_head.segment.rsc +5 -0
  226. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/welcome.segments/_index.segment.rsc +9 -0
  227. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/welcome.segments/_tree.segment.rsc +5 -0
  228. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/welcome.segments/welcome/__PAGE__.segment.rsc +9 -0
  229. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/welcome.segments/welcome.segment.rsc +4 -0
  230. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app-paths-manifest.json +9 -1
  231. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/7e210_Agents_agx-cloud__next-internal_server_app_api_daemon_route_actions_460dc557.js +3 -0
  232. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/Projects_Agents_agx-cloud_ef3cf579._.js +8 -8
  233. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/Projects_Agents_agx-cloud_lib_6a5d1c80._.js +11 -11
  234. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/Projects_Agents_agx-cloud_lib_7eefb426._.js +10 -10
  235. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__1f176ebf._.js +4 -0
  236. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__22d0d2cc._.js +10 -0
  237. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__26bfcde9._.js +7 -7
  238. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__27e9e463._.js +3 -0
  239. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__299302d8._.js +1 -1
  240. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__2ed85740._.js +3 -0
  241. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__33e7bfc0._.js +5 -0
  242. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__8f9b0934._.js +28 -28
  243. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__9b8efd58._.js +1 -1
  244. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__a7a82510._.js +7 -7
  245. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__bea8711d._.js +1 -1
  246. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__ec8bbb77._.js +1 -1
  247. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/a2576__next-internal_server_app_api_notification-outbox_[id]_route_actions_c429c549.js +3 -0
  248. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/a2576__next-internal_server_app_api_notifications_[id]_read_route_actions_615ae13d.js +3 -0
  249. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/a2576__next-internal_server_app_api_notifications_unread-count_route_actions_b61a9301.js +3 -0
  250. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ad555_agx-cloud__next-internal_server_app_api_notifications_route_actions_06dbcdc4.js +3 -0
  251. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ae43b_next_dist_esm_build_templates_app-route_122e31fe.js +28 -24
  252. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/7e210_Agents_agx-cloud__next-internal_server_app_welcome_page_actions_5176f4d4.js +3 -0
  253. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_033373a0._.js +3 -0
  254. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_039c43e5._.js +1 -1
  255. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_0562c9cd._.js +3 -0
  256. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_0cf15b7b._.js +8 -0
  257. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_0d91718c._.js +3 -0
  258. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_1e1c23f7._.js +1 -1
  259. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_502ede06._.js +1 -1
  260. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_68972519._.js +1 -1
  261. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_69570e90._.js +3 -0
  262. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_6cbdc6fd._.js +4 -0
  263. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_82783170._.js +3 -0
  264. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_a0e26bca._.js +1 -1
  265. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_a2a39dbe._.js +1 -1
  266. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_aaa774d8._.js +4 -0
  267. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_afe007c2._.js +4 -0
  268. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_b2707e4d._.js +1 -1
  269. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_components_chat-ui_f59beea5._.js +95 -0
  270. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/{Projects_Agents_agx-cloud_e7635878._.js → Projects_Agents_agx-cloud_dc82c7bf._.js} +2 -2
  271. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_ef6ea3fc._.js +1 -1
  272. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_ff11dd7c._.js +1 -1
  273. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/{[root-of-the-server]__9d72d782._.js → [root-of-the-server]__00507cd5._.js} +2 -2
  274. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/[root-of-the-server]__24a978df._.js +3 -0
  275. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/[root-of-the-server]__523e8b0b._.js +3 -0
  276. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/[root-of-the-server]__546c34e3._.js +3 -0
  277. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/[root-of-the-server]__807e5ecc._.js +3 -0
  278. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/[root-of-the-server]__9668fae0._.js +3 -0
  279. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/[root-of-the-server]__97870484._.js +3 -0
  280. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/{[root-of-the-server]__657b446b._.js → [root-of-the-server]__99fa92e8._.js} +2 -2
  281. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/[root-of-the-server]__a4a5c57b._.js +3 -0
  282. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/[root-of-the-server]__b549e8c2._.js +4 -0
  283. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/{[root-of-the-server]__5dace3c6._.js → [root-of-the-server]__d78dfcf2._.js} +2 -2
  284. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/[root-of-the-server]__e915acb2._.js +3 -0
  285. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/a2576__next-internal_server_app_w_[workspaceId]_[threadId]_page_actions_f668795b.js +3 -0
  286. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/ad555_agx-cloud__next-internal_server_app_w_[workspaceId]_page_actions_8ade5a6c.js +3 -0
  287. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/ae43b_@dnd-kit_core_dist_core_esm_e4fe20d7.js +3 -0
  288. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/ae43b_db3f38e3._.js +1 -1
  289. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/ae43b_lucide-react_dist_esm_63b016a6._.js +3 -0
  290. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/ae43b_next_dist_2cd20dd7._.js +1 -1
  291. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/ae43b_next_dist_832595f2._.js +1 -1
  292. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/ae43b_next_dist_esm_build_templates_app-page_e4003e94.js +1 -1
  293. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/functions-config-manifest.json +1 -0
  294. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/middleware-manifest.json +5 -5
  295. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/next-font-manifest.js +1 -1
  296. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/next-font-manifest.json +12 -0
  297. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/pages/404.html +1 -1
  298. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/pages/500.html +2 -2
  299. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/server-reference-manifest.js +1 -1
  300. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/server-reference-manifest.json +1 -1
  301. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/0804e1cf36ac4c40.js +1 -0
  302. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/245ea04687930f1c.css +1 -0
  303. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/2f63efec13a9346a.js +1 -0
  304. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/54fbb309ba7c2b4b.js +1 -0
  305. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/55f8c843a8037ac8.js +1 -0
  306. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/5eda5cd286808293.js +93 -0
  307. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/6bfec2ea0d682ffc.js +18 -0
  308. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/7d2c10033c8a8554.js +1 -0
  309. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/{b47938cee3a79764.js → 822bd641355a9397.js} +2 -2
  310. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/{49b2630db3ff37fe.js → 8dad5ee086c3d46d.js} +1 -1
  311. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/c6ed4939c63ba444.js +1 -0
  312. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/e4b656247e95267b.js +1 -0
  313. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/ef426b92c6ce58a5.js +1 -0
  314. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/app/api/daemon/route.ts +55 -0
  315. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/app/api/notification-outbox/[id]/route.ts +42 -0
  316. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/app/api/notifications/[id]/read/route.ts +43 -0
  317. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/app/api/notifications/route.ts +46 -0
  318. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/app/api/notifications/unread-count/route.ts +24 -0
  319. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/app/api/participants/route.ts +13 -6
  320. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/app/api/system/db-status/route.ts +23 -15
  321. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/app/projects/[slug]/layout.tsx +28 -10
  322. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/app/w/[workspaceId]/[threadId]/page.tsx +4 -0
  323. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/app/w/[workspaceId]/layout.tsx +7 -0
  324. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/app/w/[workspaceId]/page.tsx +4 -0
  325. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/app/welcome/page.tsx +117 -0
  326. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/components/Layout.tsx +4 -6
  327. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/components/Notifications/NotificationBell.tsx +62 -0
  328. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/components/Notifications/NotificationItem.tsx +96 -0
  329. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/components/Notifications/NotificationsPanel.tsx +127 -0
  330. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/components/Notifications/index.ts +3 -0
  331. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/components/WorkspaceNav.tsx +67 -0
  332. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/components/chat-ui/ChatContainer.tsx +181 -122
  333. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/components/chat-ui/ChatPreview.tsx +85 -0
  334. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/components/chat-ui/MessageBubble.tsx +3 -0
  335. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/components/chat-ui/MessageList.tsx +3 -16
  336. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/components/chat-ui/ParticipantBar.tsx +41 -86
  337. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/components/chat-ui/ThreadView.tsx +4 -3
  338. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/components/thread/ThreadItem.tsx +9 -9
  339. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/components/thread/ThreadList.tsx +15 -15
  340. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/components/thread/ThreadSidebar.tsx +34 -34
  341. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/db/sqlite/001_agx_board_schema.sql +52 -0
  342. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/hooks/useNotifications.ts +115 -0
  343. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/hooks/useThreadState.ts +85 -85
  344. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/lib/cli-runner.ts +6 -1
  345. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/lib/db/cursors.js +75 -0
  346. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/lib/db/notifications.js +70 -0
  347. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/lib/db/preferences.js +110 -0
  348. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/lib/demo-threads.ts +76 -0
  349. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/lib/jobs/pruneNotifications.js +87 -0
  350. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/lib/participants-store.ts +7 -3
  351. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/lib/projectors/notificationProjector.js +351 -0
  352. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/lib/storage/index.ts +1 -1
  353. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/lib/storage/local-thread-adapter.ts +27 -27
  354. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/lib/storage/thread-adapter.ts +31 -31
  355. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/lib/stream-multiplexer.ts +45 -9
  356. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/lib/types.ts +7 -1
  357. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/migrations/sqlite_schema.sql +45 -0
  358. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/script.txt +111 -0
  359. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/services/threadService.ts +32 -32
  360. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/state/threadSelection.test.ts +30 -30
  361. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/state/threadSelection.ts +21 -21
  362. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/state/uiSettings.ts +14 -11
  363. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/tests/projector/_helpers.js +68 -0
  364. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/tests/projector/crash.test.js +139 -0
  365. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/tests/projector/duplicate.test.js +111 -0
  366. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/tests/projector/flood.test.js +162 -0
  367. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/tests/projector/replay.test.js +107 -0
  368. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/tsconfig.tsbuildinfo +1 -1
  369. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/types/userPreferences.ts +12 -8
  370. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/worker/index.js +5 -1
  371. package/lib/cli/daemon.js +7 -1
  372. package/lib/cli/onboarding.js +71 -1
  373. package/lib/cli/providers.js +5 -5
  374. package/lib/cli/runCli.js +12 -1
  375. package/lib/commands/chat.js +8 -2
  376. package/lib/executor.js +56 -3
  377. package/lib/proc/commandExists.js +14 -8
  378. package/package.json +1 -1
  379. package/scripts/postinstall.js +19 -7
  380. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_215731e9._.js +0 -3
  381. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_2b2a91e2._.js +0 -3
  382. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_a7533794._.js +0 -3
  383. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_e1b68242._.js +0 -8
  384. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/[root-of-the-server]__0d6259d5._.js +0 -3
  385. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/[root-of-the-server]__13df20fe._.js +0 -95
  386. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/[root-of-the-server]__c76acf29._.js +0 -4
  387. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/[root-of-the-server]__e5a1e0b5._.js +0 -3
  388. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/ae43b_lucide-react_dist_esm_6c755856._.js +0 -3
  389. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/ae43b_lucide-react_dist_esm_icons_search_04b9412a.js +0 -3
  390. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/0d58db99a936501d.js +0 -1
  391. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/20d98b7f52e93d14.js +0 -18
  392. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/216d8e2f28fa9ab1.js +0 -1
  393. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/5d94ba021f22122d.js +0 -1
  394. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/5e2849404c532f70.js +0 -1
  395. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/81d22c5173d36098.js +0 -93
  396. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/9b2c429432840844.css +0 -1
  397. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/9fa263ad20d27969.js +0 -1
  398. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/dc534541f2bd6342.js +0 -1
  399. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/agx-board.db +0 -0
  400. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/agx-board.db-shm +0 -0
  401. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/agx-board.db-wal +0 -0
  402. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/agx-queue.db +0 -0
  403. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/agx-queue.db-shm +0 -0
  404. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/agx-queue.db-wal +0 -0
  405. /package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/{m5R8F5c1zxb5EWbYNiR5n → UBZZwc9vLlz1xCm5PYCTc}/_buildManifest.js +0 -0
  406. /package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/{m5R8F5c1zxb5EWbYNiR5n → UBZZwc9vLlz1xCm5PYCTc}/_clientMiddlewareManifest.json +0 -0
  407. /package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/{m5R8F5c1zxb5EWbYNiR5n → UBZZwc9vLlz1xCm5PYCTc}/_ssgManifest.js +0 -0
@@ -0,0 +1,85 @@
1
+ "use client";
2
+
3
+ import { useState, useEffect, useRef } from "react";
4
+ import { DEMO_MESSAGES, DEMO_PARTICIPANTS } from "@/lib/demo-threads";
5
+ import { agentAvatarUrl } from "./ParticipantBar";
6
+ import { Markdown } from "./Markdown";
7
+ import { User } from "lucide-react";
8
+
9
+ const STAGGER_MS = 400;
10
+
11
+ export function ChatPreview() {
12
+ const [visibleCount, setVisibleCount] = useState(0);
13
+ const containerRef = useRef<HTMLDivElement>(null);
14
+
15
+ useEffect(() => {
16
+ if (visibleCount >= DEMO_MESSAGES.length) return;
17
+ const timer = setTimeout(() => {
18
+ setVisibleCount((c) => c + 1);
19
+ }, visibleCount === 0 ? 300 : STAGGER_MS);
20
+ return () => clearTimeout(timer);
21
+ }, [visibleCount]);
22
+
23
+ useEffect(() => {
24
+ containerRef.current?.scrollTo({
25
+ top: containerRef.current.scrollHeight,
26
+ behavior: "smooth",
27
+ });
28
+ }, [visibleCount]);
29
+
30
+ const participantMap = Object.fromEntries(
31
+ DEMO_PARTICIPANTS.map((p) => [p.id, p])
32
+ );
33
+
34
+ return (
35
+ <div
36
+ ref={containerRef}
37
+ className="flex-1 overflow-y-auto px-4 py-6"
38
+ >
39
+ <div className="max-w-2xl mx-auto space-y-4">
40
+ {DEMO_MESSAGES.slice(0, visibleCount).map((msg, i) => {
41
+ const isUser = msg.role === "user";
42
+ const p = msg.participantId ? participantMap[msg.participantId] : null;
43
+
44
+ return (
45
+ <div
46
+ key={msg.id}
47
+ className="flex gap-3 animate-in fade-in slide-in-from-bottom-2 duration-300"
48
+ style={{ animationDelay: `${i * 50}ms` }}
49
+ >
50
+ <div className="w-8 h-8 rounded-full overflow-hidden border border-slate-100 shadow-sm shrink-0 mt-0.5 flex items-center justify-center bg-slate-100">
51
+ {isUser ? (
52
+ <User className="w-4 h-4 text-slate-400" />
53
+ ) : p ? (
54
+ <img
55
+ src={agentAvatarUrl(p.id, 32, p.color)}
56
+ alt={p.name}
57
+ className="w-full h-full object-cover"
58
+ />
59
+ ) : null}
60
+ </div>
61
+ <div className="flex-1 min-w-0">
62
+ <div className="flex items-baseline gap-2">
63
+ <span
64
+ className="text-[12px] font-bold tracking-wide uppercase"
65
+ style={{ color: isUser ? "#334155" : (p?.color || "#64748b") }}
66
+ >
67
+ {isUser ? "You" : (p?.name || "Agent")}
68
+ </span>
69
+ {!isUser && p?.model && (
70
+ <span className="text-[10px] text-slate-400 font-medium">
71
+ {p.model}
72
+ </span>
73
+ )}
74
+ </div>
75
+ <div className="text-[14px] text-slate-700 leading-relaxed mt-0.5">
76
+ <Markdown content={msg.content} isUser={isUser} />
77
+ </div>
78
+ </div>
79
+ </div>
80
+ );
81
+ })}
82
+ </div>
83
+ </div>
84
+ );
85
+ }
@@ -11,6 +11,7 @@ interface Props {
11
11
  message: GroupMessage;
12
12
  participantName?: string;
13
13
  participantColor?: string;
14
+ participantModel?: string | null;
14
15
  participantId?: string;
15
16
  onReply?: (messageId: string) => void;
16
17
  onOpenThread?: (rootMessageId: string) => void;
@@ -25,6 +26,7 @@ export function MessageBubble({
25
26
  message,
26
27
  participantName,
27
28
  participantColor,
29
+ participantModel,
28
30
  participantId,
29
31
  onReply,
30
32
  onOpenThread,
@@ -69,6 +71,7 @@ export function MessageBubble({
69
71
  {isUser ? "You" : (participantName || "Unknown")}
70
72
  </span>
71
73
  )}
74
+
72
75
  <span className="text-xs text-slate-400 font-medium">
73
76
  {formatTimestamp(message.timestamp)}
74
77
  </span>
@@ -218,10 +218,11 @@ export function MessageList({
218
218
  )}
219
219
  <div className="flex-1 min-w-0 pt-0.5">
220
220
  {msg.role !== 'user' && (
221
- <div className="flex items-center gap-2 mb-0.5">
221
+ <div className="flex items-baseline gap-2 mb-0.5">
222
222
  <span className="font-bold text-sm text-slate-900">
223
223
  {p?.name || msg.participantId || "Assistant"}
224
224
  </span>
225
+
225
226
  </div>
226
227
  )}
227
228
  <div
@@ -387,6 +388,7 @@ export function MessageList({
387
388
  message={reply}
388
389
  participantName={rp?.name || reply.participantId || "Assistant"}
389
390
  participantColor={rp?.color}
391
+ participantModel={rp?.model}
390
392
  participantId={rp?.id || reply.participantId || undefined}
391
393
  onOpenThread={onOpenThread}
392
394
  highlighted={reply.id === highlightedMessageId}
@@ -421,21 +423,6 @@ export function MessageList({
421
423
  );
422
424
  })}
423
425
 
424
- {Object.entries(streaming)
425
- .filter(([, entry]) => !entry.rootMessageId)
426
- .map(([pid, entry]) => {
427
- const p = participantMap[pid];
428
- return (
429
- <div key={`streaming-${pid}`} className="max-w-2xl mx-auto mb-8 px-4">
430
- <TypingIndicator
431
- participantId={pid}
432
- participantName={p?.name || pid}
433
- participantColor={p?.color || "#888"}
434
- content={entry.content}
435
- />
436
- </div>
437
- );
438
- })}
439
426
  <div ref={bottomRef} />
440
427
  </div>
441
428
  </div>
@@ -30,7 +30,7 @@ import {
30
30
  verticalListSortingStrategy,
31
31
  } from "@dnd-kit/sortable";
32
32
  import { CSS } from "@dnd-kit/utilities";
33
- import type { Participant, ChatProvider } from "@/lib/types";
33
+ import type { Participant, ChatProvider, Skill } from "@/lib/types";
34
34
 
35
35
  const COLORS = ["#D97706", "#2563EB", "#059669", "#DC2626", "#7C3AED", "#DB2777", "#0891B2"];
36
36
 
@@ -152,7 +152,7 @@ interface AgentFormData {
152
152
  model: string;
153
153
  identity: string;
154
154
  identityFile: string;
155
- skills: string[];
155
+ skills: Skill[];
156
156
  }
157
157
 
158
158
  function AgentForm({
@@ -192,17 +192,11 @@ function AgentForm({
192
192
  initial.identityFile ? inferRefLabel(initial.identityFile) : ""
193
193
  );
194
194
  const [identityMode, setIdentityMode] = useState<"text" | "file">(initial.identityFile ? "file" : "text");
195
- const [skills, setSkills] = useState<string[]>(initial.skills.length > 0 ? initial.skills : []);
196
- const [skillLabels, setSkillLabels] = useState<Record<string, string>>(
197
- Object.fromEntries(initial.skills.map((skillRef) => [skillRef, inferRefLabel(skillRef)]))
198
- );
195
+ const [skills, setSkills] = useState<Skill[]>(initial.skills.length > 0 ? initial.skills : []);
199
196
  const [isIdentityUploading, setIsIdentityUploading] = useState(false);
200
197
  const [identityUploadProgress, setIdentityUploadProgress] = useState(0);
201
- const [isSkillsUploading, setIsSkillsUploading] = useState(false);
202
- const [skillsUploadProgress, setSkillsUploadProgress] = useState(0);
203
198
 
204
199
  const identityFileInputRef = useRef<HTMLInputElement>(null);
205
- const skillsFileInputRef = useRef<HTMLInputElement>(null);
206
200
  const ref = useRef<HTMLDivElement>(null);
207
201
 
208
202
  useClickOutside(ref, onCancel);
@@ -266,41 +260,6 @@ function AgentForm({
266
260
  }
267
261
  };
268
262
 
269
- const handleSkillsUpload = async (e: React.ChangeEvent<HTMLInputElement>) => {
270
- const fileList = e.target.files;
271
- if (!fileList || fileList.length === 0) return;
272
-
273
- setIsSkillsUploading(true);
274
- setSkillsUploadProgress(0);
275
- try {
276
- const uploaded = await uploadFiles(Array.from(fileList), setSkillsUploadProgress);
277
- if (uploaded.length === 0) return;
278
-
279
- const refs = uploaded.map((file) => toAttachmentRef(file.id));
280
- setSkills((prev) => {
281
- const seen = new Set(prev);
282
- const next = [...prev];
283
- for (const refValue of refs) {
284
- if (!seen.has(refValue)) {
285
- next.push(refValue);
286
- seen.add(refValue);
287
- }
288
- }
289
- return next;
290
- });
291
- setSkillLabels((prev) => ({
292
- ...prev,
293
- ...Object.fromEntries(uploaded.map((file) => [toAttachmentRef(file.id), file.filename])),
294
- }));
295
- } catch (error) {
296
- console.error("Skills upload failed", error);
297
- } finally {
298
- setIsSkillsUploading(false);
299
- if (skillsFileInputRef.current) {
300
- skillsFileInputRef.current.value = "";
301
- }
302
- }
303
- };
304
263
 
305
264
  const handleSubmit = () => {
306
265
  if (!name.trim() || !model.trim()) return;
@@ -310,7 +269,7 @@ function AgentForm({
310
269
  model: model.trim(),
311
270
  identity: identityMode === "text" ? identity.trim() : "",
312
271
  identityFile: identityMode === "file" ? identityFile.trim() : "",
313
- skills: skills.map((s: string) => s.trim()).filter(Boolean),
272
+ skills: skills.filter((s) => s.file.trim()),
314
273
  });
315
274
  };
316
275
 
@@ -451,57 +410,53 @@ function AgentForm({
451
410
  <label className="flex items-center gap-2 text-sm font-medium text-slate-500">
452
411
  <Wrench size={16} /> Skills
453
412
  </label>
454
- <input
455
- type="file"
456
- ref={skillsFileInputRef}
457
- onChange={handleSkillsUpload}
458
- className="hidden"
459
- multiple
460
- accept=".txt,.md,.json,.yaml,.yml,.toml"
461
- />
462
413
  <button
463
414
  type="button"
464
- onClick={() => skillsFileInputRef.current?.click()}
415
+ onClick={() => setSkills((prev) => [...prev, { file: "", condition: "" }])}
465
416
  className="flex items-center gap-1 text-[11px] font-bold text-indigo-600 hover:text-indigo-700 uppercase tracking-wider"
466
417
  >
467
- <Plus size={14} /> Upload
418
+ <Plus size={14} /> Add
468
419
  </button>
469
420
  </div>
470
421
 
471
- {isSkillsUploading ? (
472
- <div className="flex items-center gap-2 text-xs text-slate-500 bg-slate-50 border border-slate-200 rounded-lg px-3 py-2">
473
- <div className="w-3 h-3 border-2 border-indigo-600 border-t-transparent rounded-full animate-spin" />
474
- Uploading {skillsUploadProgress}%
475
- </div>
476
- ) : null}
477
-
478
- <div className="space-y-2">
479
- {skills.map((skillRef: string, index: number) => (
480
- <div key={`${skillRef}-${index}`} className="flex items-center gap-2 p-2 bg-indigo-50/50 border border-indigo-100 rounded-lg group animate-in slide-in-from-left-2 duration-200">
481
- <div className="p-1.5 bg-indigo-100 rounded-md text-indigo-600">
482
- <Code2 size={14} />
422
+ <div className="space-y-3">
423
+ {skills.map((skill, index) => (
424
+ <div key={index} className="p-2.5 bg-indigo-50/50 border border-indigo-100 rounded-lg space-y-2 animate-in slide-in-from-left-2 duration-200">
425
+ <div className="flex items-center gap-2">
426
+ <input
427
+ type="text"
428
+ placeholder="/path/to/skill.md"
429
+ value={skill.file}
430
+ onChange={(e) =>
431
+ setSkills((prev) =>
432
+ prev.map((s, i) => i === index ? { ...s, file: e.target.value } : s)
433
+ )
434
+ }
435
+ className="flex-1 bg-white border border-indigo-100 rounded-md px-2.5 py-1.5 text-xs font-mono text-slate-700 placeholder:text-slate-400 focus:outline-none focus:ring-1 focus:ring-indigo-300"
436
+ />
437
+ <button
438
+ type="button"
439
+ onClick={() => setSkills((prev) => prev.filter((_, i) => i !== index))}
440
+ className="p-1 text-indigo-300 hover:text-indigo-600 transition-colors"
441
+ >
442
+ <X size={14} />
443
+ </button>
483
444
  </div>
484
- <span className="bg-transparent text-xs font-mono text-indigo-700 flex-1 truncate">
485
- {skillLabels[skillRef] ?? inferRefLabel(skillRef)}
486
- </span>
487
- <button
488
- type="button"
489
- onClick={() => {
490
- setSkills((prev) => prev.filter((_, i) => i !== index));
491
- setSkillLabels((prev) => {
492
- const next = { ...prev };
493
- delete next[skillRef];
494
- return next;
495
- });
496
- }}
497
- className="p-1 text-indigo-300 hover:text-indigo-600 transition-colors"
498
- >
499
- <X size={14} />
500
- </button>
445
+ <input
446
+ type="text"
447
+ placeholder="When to use this skill..."
448
+ value={skill.condition}
449
+ onChange={(e) =>
450
+ setSkills((prev) =>
451
+ prev.map((s, i) => i === index ? { ...s, condition: e.target.value } : s)
452
+ )
453
+ }
454
+ className="w-full bg-white border border-indigo-100 rounded-md px-2.5 py-1.5 text-xs text-slate-700 placeholder:text-slate-400 focus:outline-none focus:ring-1 focus:ring-indigo-300"
455
+ />
501
456
  </div>
502
457
  ))}
503
458
  {skills.length === 0 ? (
504
- <div className="text-xs text-slate-400 px-1">No skill files uploaded.</div>
459
+ <div className="text-xs text-slate-400 px-1">No skills added.</div>
505
460
  ) : null}
506
461
  </div>
507
462
  </div>
@@ -516,7 +471,7 @@ function AgentForm({
516
471
  </button>
517
472
  <button
518
473
  onClick={handleSubmit}
519
- disabled={isIdentityUploading || isSkillsUploading || !name.trim() || !model.trim()}
474
+ disabled={isIdentityUploading || !name.trim() || !model.trim()}
520
475
  className="px-8 py-2.5 bg-indigo-600 text-white text-sm font-semibold rounded-xl shadow-[0_4px_12px_rgba(79,70,229,0.3)] hover:bg-indigo-700 active:scale-95 disabled:opacity-50 transition-all font-bold"
521
476
  >
522
477
  {submitLabel}
@@ -5,7 +5,7 @@ import type { GroupMessage, Participant } from "@/lib/types";
5
5
  import type { StreamingEntry } from "@/hooks/useGroupChat";
6
6
  import type { TaskDraftMessage } from "@/types/tasks";
7
7
  import { Markdown } from "./Markdown";
8
- import { Copy, Maximize2, Trash2, ChevronLeft, User, Link } from "lucide-react";
8
+ import { Copy, Trash2, ChevronLeft, User, Link } from "lucide-react";
9
9
  import { MessageAttachments } from "./MessageAttachments";
10
10
  import { agentAvatarUrl } from "./ParticipantBar";
11
11
  import { MessageReactionsBar } from "./MessageReactionsBar";
@@ -160,9 +160,10 @@ export function ThreadView({
160
160
  )}
161
161
  <button
162
162
  className="p-1.5 text-slate-400 hover:text-slate-600 hover:bg-slate-50 rounded"
163
- title="Maximize"
163
+ title="Copy as Markdown"
164
+ onClick={() => navigator.clipboard.writeText(msg.content)}
164
165
  >
165
- <Maximize2 size={14} />
166
+ <Copy size={14} />
166
167
  </button>
167
168
  {msg.id === rootMessageId && onDeleteThreadRoot && (
168
169
  <button
@@ -1,10 +1,10 @@
1
1
  "use client";
2
2
 
3
3
  import { Hash } from "lucide-react";
4
- import type { Thread } from "@/lib/storage";
4
+ import type { Workspace } from "@/lib/storage";
5
5
 
6
- interface ThreadItemProps {
7
- thread: Thread;
6
+ interface WorkspaceItemProps {
7
+ workspace: Workspace;
8
8
  isActive: boolean;
9
9
  onSelect: () => void;
10
10
  }
@@ -17,8 +17,8 @@ const formatTimestamp = (value: number) =>
17
17
  minute: "2-digit",
18
18
  }).format(value);
19
19
 
20
- const getPreview = (thread: Thread) => {
21
- const latest = thread.messages.at(-1)?.content?.trim();
20
+ const getPreview = (workspace: Workspace) => {
21
+ const latest = workspace.messages.at(-1)?.content?.trim();
22
22
  if (!latest) {
23
23
  return "No messages yet";
24
24
  }
@@ -26,9 +26,9 @@ const getPreview = (thread: Thread) => {
26
26
  return normalized.length > 80 ? `${normalized.slice(0, 80).trim()}…` : normalized;
27
27
  };
28
28
 
29
- export function ThreadItem({ thread, isActive, onSelect }: ThreadItemProps) {
30
- const title = thread.title?.trim() || "Untitled workspace";
31
- const preview = getPreview(thread);
29
+ export function WorkspaceItem({ workspace, isActive, onSelect }: WorkspaceItemProps) {
30
+ const title = workspace.title?.trim() || "Untitled workspace";
31
+ const preview = getPreview(workspace);
32
32
  return (
33
33
  <li className="thread-sidebar__list-item">
34
34
  <button
@@ -42,7 +42,7 @@ export function ThreadItem({ thread, isActive, onSelect }: ThreadItemProps) {
42
42
  <Hash size={12} className="thread-item__hash" aria-hidden="true" />
43
43
  <span className="thread-item__title">{title}</span>
44
44
  </div>
45
- <span className="thread-item__timestamp">{formatTimestamp(thread.updatedAt)}</span>
45
+ <span className="thread-item__timestamp">{formatTimestamp(workspace.updatedAt)}</span>
46
46
  </div>
47
47
  <span className="thread-item__meta">{preview}</span>
48
48
  </button>
@@ -1,29 +1,29 @@
1
1
  "use client";
2
2
 
3
- import type { Thread } from "@/lib/storage";
4
- import { ThreadItem } from "./ThreadItem";
3
+ import type { Workspace } from "@/lib/storage";
4
+ import { WorkspaceItem } from "./ThreadItem";
5
5
 
6
- interface ThreadListProps {
7
- threads: Thread[];
8
- activeThreadId: string | null;
9
- onSelectThread: (threadId: string) => void;
6
+ interface WorkspaceListProps {
7
+ workspaces: Workspace[];
8
+ activeWorkspaceId: string | null;
9
+ onSelectWorkspace: (workspaceId: string) => void;
10
10
  }
11
11
 
12
- export function ThreadList({ threads, activeThreadId, onSelectThread }: ThreadListProps) {
13
- if (threads.length === 0) {
12
+ export function WorkspaceList({ workspaces, activeWorkspaceId, onSelectWorkspace }: WorkspaceListProps) {
13
+ if (workspaces.length === 0) {
14
14
  return null;
15
15
  }
16
16
 
17
- const sortedThreads = [...threads].sort((a, b) => b.updatedAt - a.updatedAt);
17
+ const sortedWorkspaces = [...workspaces].sort((a, b) => b.updatedAt - a.updatedAt);
18
18
 
19
19
  return (
20
20
  <ul className="thread-sidebar__list" role="list">
21
- {sortedThreads.map((thread) => (
22
- <ThreadItem
23
- key={thread.id}
24
- thread={thread}
25
- isActive={thread.id === activeThreadId}
26
- onSelect={() => onSelectThread(thread.id)}
21
+ {sortedWorkspaces.map((workspace) => (
22
+ <WorkspaceItem
23
+ key={workspace.id}
24
+ workspace={workspace}
25
+ isActive={workspace.id === activeWorkspaceId}
26
+ onSelect={() => onSelectWorkspace(workspace.id)}
27
27
  />
28
28
  ))}
29
29
  </ul>
@@ -11,24 +11,24 @@ import {
11
11
  Trash2,
12
12
  } from "lucide-react";
13
13
  import Link from "next/link";
14
- import type { Thread } from "@/lib/storage";
14
+ import type { Workspace } from "@/lib/storage";
15
15
  import type { Participant } from "@/lib/types";
16
16
  import { useFocusManagement } from "@/hooks/useFocusManagement";
17
17
  import { useProjects } from "@/hooks/useProjects";
18
18
  import { ParticipantBar } from "@/components/chat-ui/ParticipantBar";
19
19
 
20
- interface ThreadSidebarProps {
21
- threads: Thread[];
20
+ interface WorkspaceSidebarProps {
21
+ workspaces: Workspace[];
22
22
  participants?: Participant[];
23
- activeThreadId: string | null;
23
+ activeWorkspaceId: string | null;
24
24
  isLoading: boolean;
25
25
  isCreating: boolean;
26
- onSelectThread: (threadId: string) => void;
27
- onCreateThread: (input?: { title?: string }) => Promise<unknown> | void;
28
- onRenameThread: (threadId: string, title: string) => Promise<unknown> | void;
29
- onDeleteThread: (threadId: string) => void;
30
- deletingThreadId?: string | null;
31
- renamingThreadId?: string | null;
26
+ onSelectWorkspace: (workspaceId: string) => void;
27
+ onCreateWorkspace: (input?: { title?: string }) => Promise<unknown> | void;
28
+ onRenameWorkspace: (workspaceId: string, title: string) => Promise<unknown> | void;
29
+ onDeleteWorkspace: (workspaceId: string) => void;
30
+ deletingWorkspaceId?: string | null;
31
+ renamingWorkspaceId?: string | null;
32
32
  onAddParticipant?: (participant: Participant) => void;
33
33
  onUpdateParticipant?: (participant: Participant) => void;
34
34
  onRemoveParticipant?: (participantId: string) => void;
@@ -36,23 +36,23 @@ interface ThreadSidebarProps {
36
36
  onToggleParticipantActive?: (participantId: string, active: boolean) => void;
37
37
  onReorderParticipants?: (orderedIds: string[]) => void;
38
38
  visible?: boolean;
39
- isRestoringActiveThread?: boolean;
39
+ isRestoringActiveWorkspace?: boolean;
40
40
  onToggle?: () => void;
41
41
  onSearch?: () => void;
42
42
  }
43
43
 
44
- export function ThreadSidebar({
45
- threads,
44
+ export function WorkspaceSidebar({
45
+ workspaces,
46
46
  participants = [],
47
- activeThreadId,
47
+ activeWorkspaceId,
48
48
  isLoading,
49
49
  isCreating,
50
- onSelectThread,
51
- onCreateThread,
52
- onRenameThread,
53
- onDeleteThread,
54
- deletingThreadId = null,
55
- renamingThreadId = null,
50
+ onSelectWorkspace,
51
+ onCreateWorkspace,
52
+ onRenameWorkspace,
53
+ onDeleteWorkspace,
54
+ deletingWorkspaceId = null,
55
+ renamingWorkspaceId = null,
56
56
  onAddParticipant,
57
57
  onUpdateParticipant,
58
58
  onRemoveParticipant,
@@ -60,21 +60,21 @@ export function ThreadSidebar({
60
60
  onToggleParticipantActive,
61
61
  onReorderParticipants,
62
62
  visible = false,
63
- isRestoringActiveThread = false,
63
+ isRestoringActiveWorkspace = false,
64
64
  onToggle,
65
65
  onSearch,
66
- }: ThreadSidebarProps) {
66
+ }: WorkspaceSidebarProps) {
67
67
  const emptyCtaRef = useRef<HTMLButtonElement | null>(null);
68
68
  const [openAddAgentNonce, setOpenAddAgentNonce] = useState<number | null>(null);
69
69
  const { projects } = useProjects();
70
70
 
71
- const hasThreads = threads.length > 0;
72
- const showRestoringState = isRestoringActiveThread && hasThreads;
73
- const showLoadingState = (isLoading && !hasThreads) || showRestoringState;
74
- const showEmptyState = !showLoadingState && !hasThreads;
71
+ const hasWorkspaces = workspaces.length > 0;
72
+ const showRestoringState = isRestoringActiveWorkspace && hasWorkspaces;
73
+ const showLoadingState = (isLoading && !hasWorkspaces) || showRestoringState;
74
+ const showEmptyState = !showLoadingState && !hasWorkspaces;
75
75
  const isVisible = Boolean(visible);
76
76
  const canManageParticipants = Boolean(onAddParticipant && onUpdateParticipant && onRemoveParticipant);
77
- const sortedWorkspaces = [...threads].sort((a, b) => b.updatedAt - a.updatedAt);
77
+ const sortedWorkspaces = [...workspaces].sort((a, b) => (a.title || "").localeCompare(b.title || ""));
78
78
 
79
79
  useFocusManagement({
80
80
  focusTarget: emptyCtaRef,
@@ -91,11 +91,11 @@ export function ThreadSidebar({
91
91
  return;
92
92
  }
93
93
 
94
- void onCreateThread({ title });
94
+ void onCreateWorkspace({ title });
95
95
  };
96
96
 
97
97
  const handleDeleteClick = (workspaceId: string) => {
98
- void onDeleteThread(workspaceId);
98
+ void onDeleteWorkspace(workspaceId);
99
99
  };
100
100
 
101
101
  const handleRenameClick = (workspaceId: string, currentTitle: string) => {
@@ -108,7 +108,7 @@ export function ThreadSidebar({
108
108
  return;
109
109
  }
110
110
 
111
- void onRenameThread(workspaceId, title);
111
+ void onRenameWorkspace(workspaceId, title);
112
112
  };
113
113
 
114
114
  if (!isVisible) {
@@ -189,9 +189,9 @@ export function ThreadSidebar({
189
189
  </div>
190
190
  </div>
191
191
  {sortedWorkspaces.map((workspace) => {
192
- const isActive = workspace.id === activeThreadId;
193
- const isDeletingWorkspace = deletingThreadId === workspace.id;
194
- const isRenamingWorkspace = renamingThreadId === workspace.id;
192
+ const isActive = workspace.id === activeWorkspaceId;
193
+ const isDeletingWorkspace = deletingWorkspaceId === workspace.id;
194
+ const isRenamingWorkspace = renamingWorkspaceId === workspace.id;
195
195
  const title = workspace.title?.trim() || "Untitled workspace";
196
196
 
197
197
  return (
@@ -199,7 +199,7 @@ export function ThreadSidebar({
199
199
  <button
200
200
  type="button"
201
201
  className={`thread-sidebar__nav-item thread-sidebar__workspace-nav-item ${isActive ? "thread-sidebar__nav-item--active thread-sidebar__workspace-nav-item--active" : ""}`}
202
- onClick={() => onSelectThread(workspace.id)}
202
+ onClick={() => onSelectWorkspace(workspace.id)}
203
203
  aria-current={isActive ? "page" : undefined}
204
204
  >
205
205
  <Hash size={18} />
@@ -494,3 +494,55 @@ CREATE TABLE IF NOT EXISTS agent_memory (
494
494
  );
495
495
  CREATE INDEX IF NOT EXISTS idx_agent_memory_agent_id ON agent_memory(agent_id);
496
496
  CREATE INDEX IF NOT EXISTS idx_agent_memory_task_id ON agent_memory(task_id);
497
+
498
+ -- ---------------------------------------------------------------------------
499
+ -- Notifications read-model (projector output)
500
+ -- ---------------------------------------------------------------------------
501
+
502
+ CREATE TABLE IF NOT EXISTS notifications (
503
+ id TEXT NOT NULL PRIMARY KEY DEFAULT (lower(hex(randomblob(4)) || '-' || hex(randomblob(2)) || '-4' || substr(hex(randomblob(2)),2) || '-' || substr('89ab',abs(random()) % 4 + 1, 1) || substr(hex(randomblob(2)),2) || '-' || hex(randomblob(6)))),
504
+ user_id TEXT NOT NULL,
505
+ task_id TEXT NOT NULL,
506
+ event_id TEXT NOT NULL,
507
+ type TEXT NOT NULL, -- e.g. 'task.blocked', 'task.done', 'task.failed'
508
+ tier TEXT NOT NULL DEFAULT 'info' CHECK(tier IN ('info', 'warning', 'error', 'success')),
509
+ title TEXT NOT NULL,
510
+ body TEXT,
511
+ created_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now')),
512
+ read_at TEXT, -- NULL = unread
513
+ -- Dedup: one notification per (event, user, type)
514
+ UNIQUE (event_id, user_id, type)
515
+ );
516
+
517
+ -- Fast unread queries: WHERE user_id = ? AND read_at IS NULL
518
+ CREATE INDEX IF NOT EXISTS idx_notifications_user_unread ON notifications(user_id, read_at);
519
+ -- Fast task-scoped lookups
520
+ CREATE INDEX IF NOT EXISTS idx_notifications_task ON notifications(task_id);
521
+
522
+ -- ---------------------------------------------------------------------------
523
+ -- Notification outbox (transactional relay buffer)
524
+ -- Projector writes notification + outbox row in one transaction so no
525
+ -- notification can be written but never pushed.
526
+ -- ---------------------------------------------------------------------------
527
+
528
+ CREATE TABLE IF NOT EXISTS notification_outbox (
529
+ id TEXT NOT NULL PRIMARY KEY DEFAULT (lower(hex(randomblob(4)) || '-' || hex(randomblob(2)) || '-4' || substr(hex(randomblob(2)),2) || '-' || substr('89ab',abs(random()) % 4 + 1, 1) || substr(hex(randomblob(2)),2) || '-' || hex(randomblob(6)))),
530
+ notification_id TEXT NOT NULL REFERENCES notifications(id) ON DELETE CASCADE,
531
+ payload JSON NOT NULL CHECK(json_valid(payload)),
532
+ created_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now')),
533
+ delivered_at TEXT -- NULL = pending delivery
534
+ );
535
+
536
+ -- Relay consumer polls: WHERE delivered_at IS NULL ORDER BY created_at
537
+ CREATE INDEX IF NOT EXISTS idx_notification_outbox_pending ON notification_outbox(delivered_at, created_at);
538
+
539
+ -- ---------------------------------------------------------------------------
540
+ -- Projector checkpoint cursors (consumer isolation)
541
+ -- Each consumer (consumer_id) tracks its own position in the event stream.
542
+ -- ---------------------------------------------------------------------------
543
+
544
+ CREATE TABLE IF NOT EXISTS projector_cursors (
545
+ consumer_id TEXT NOT NULL PRIMARY KEY, -- e.g. 'notification-projector'
546
+ last_event_id TEXT NOT NULL, -- last processed event id
547
+ updated_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now'))
548
+ );