@shepai/cli 1.151.2-pr470.ec33cce → 1.152.0-pr476.5b101f5

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 (739) hide show
  1. package/apis/json-schema/InteractiveAgentConfig.yaml +25 -0
  2. package/apis/json-schema/InteractiveMessage.yaml +23 -0
  3. package/apis/json-schema/InteractiveMessageRole.yaml +7 -0
  4. package/apis/json-schema/InteractiveSession.yaml +30 -0
  5. package/apis/json-schema/InteractiveSessionStatus.yaml +9 -0
  6. package/apis/json-schema/Settings.yaml +3 -0
  7. package/dist/packages/core/src/application/ports/output/agents/agent-executor-factory.interface.d.ts +17 -0
  8. package/dist/packages/core/src/application/ports/output/agents/agent-executor-factory.interface.d.ts.map +1 -1
  9. package/dist/packages/core/src/application/ports/output/agents/index.d.ts +1 -0
  10. package/dist/packages/core/src/application/ports/output/agents/index.d.ts.map +1 -1
  11. package/dist/packages/core/src/application/ports/output/agents/interactive-agent-executor.interface.d.ts +53 -0
  12. package/dist/packages/core/src/application/ports/output/agents/interactive-agent-executor.interface.d.ts.map +1 -0
  13. package/dist/packages/core/src/application/ports/output/agents/interactive-agent-executor.interface.js +13 -0
  14. package/dist/packages/core/src/application/ports/output/repositories/index.d.ts +2 -0
  15. package/dist/packages/core/src/application/ports/output/repositories/index.d.ts.map +1 -1
  16. package/dist/packages/core/src/application/ports/output/repositories/interactive-message-repository.interface.d.ts +37 -0
  17. package/dist/packages/core/src/application/ports/output/repositories/interactive-message-repository.interface.d.ts.map +1 -0
  18. package/dist/packages/core/src/application/ports/output/repositories/interactive-message-repository.interface.js +10 -0
  19. package/dist/packages/core/src/application/ports/output/repositories/interactive-session-repository.interface.d.ts +78 -0
  20. package/dist/packages/core/src/application/ports/output/repositories/interactive-session-repository.interface.d.ts.map +1 -0
  21. package/dist/packages/core/src/application/ports/output/repositories/interactive-session-repository.interface.js +10 -0
  22. package/dist/packages/core/src/application/ports/output/services/index.d.ts +1 -0
  23. package/dist/packages/core/src/application/ports/output/services/index.d.ts.map +1 -1
  24. package/dist/packages/core/src/application/ports/output/services/interactive-session-service.interface.d.ts +187 -0
  25. package/dist/packages/core/src/application/ports/output/services/interactive-session-service.interface.d.ts.map +1 -0
  26. package/dist/packages/core/src/application/ports/output/services/interactive-session-service.interface.js +12 -0
  27. package/dist/packages/core/src/application/use-cases/interactive/get-interactive-chat-state.use-case.d.ts +26 -0
  28. package/dist/packages/core/src/application/use-cases/interactive/get-interactive-chat-state.use-case.d.ts.map +1 -0
  29. package/dist/packages/core/src/application/use-cases/interactive/get-interactive-chat-state.use-case.js +41 -0
  30. package/dist/packages/core/src/application/use-cases/interactive/index.d.ts +14 -0
  31. package/dist/packages/core/src/application/use-cases/interactive/index.d.ts.map +1 -0
  32. package/dist/packages/core/src/application/use-cases/interactive/index.js +9 -0
  33. package/dist/packages/core/src/application/use-cases/interactive/send-interactive-message.use-case.d.ts +31 -0
  34. package/dist/packages/core/src/application/use-cases/interactive/send-interactive-message.use-case.d.ts.map +1 -0
  35. package/dist/packages/core/src/application/use-cases/interactive/send-interactive-message.use-case.js +43 -0
  36. package/dist/packages/core/src/application/use-cases/interactive/start-interactive-session.use-case.d.ts +34 -0
  37. package/dist/packages/core/src/application/use-cases/interactive/start-interactive-session.use-case.d.ts.map +1 -0
  38. package/dist/packages/core/src/application/use-cases/interactive/start-interactive-session.use-case.js +43 -0
  39. package/dist/packages/core/src/application/use-cases/interactive/stop-interactive-session.use-case.d.ts +27 -0
  40. package/dist/packages/core/src/application/use-cases/interactive/stop-interactive-session.use-case.d.ts.map +1 -0
  41. package/dist/packages/core/src/application/use-cases/interactive/stop-interactive-session.use-case.js +42 -0
  42. package/dist/packages/core/src/domain/errors/concurrent-session-limit.error.d.ts +13 -0
  43. package/dist/packages/core/src/domain/errors/concurrent-session-limit.error.d.ts.map +1 -0
  44. package/dist/packages/core/src/domain/errors/concurrent-session-limit.error.js +19 -0
  45. package/dist/packages/core/src/domain/generated/output.d.ts +77 -0
  46. package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
  47. package/dist/packages/core/src/domain/generated/output.js +12 -0
  48. package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
  49. package/dist/packages/core/src/infrastructure/di/container.js +47 -0
  50. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/interactive-message.mapper.d.ts +36 -0
  51. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/interactive-message.mapper.d.ts.map +1 -0
  52. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/interactive-message.mapper.js +41 -0
  53. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/interactive-session.mapper.d.ts +39 -0
  54. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/interactive-session.mapper.d.ts.map +1 -0
  55. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/interactive-session.mapper.js +47 -0
  56. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts +3 -0
  57. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts.map +1 -1
  58. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.js +10 -0
  59. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/045-create-interactive-tables.d.ts +22 -0
  60. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/045-create-interactive-tables.d.ts.map +1 -0
  61. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/045-create-interactive-tables.js +52 -0
  62. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/046-add-interactive-agent-settings.d.ts +16 -0
  63. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/046-add-interactive-agent-settings.d.ts.map +1 -0
  64. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/046-add-interactive-agent-settings.js +27 -0
  65. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/047-add-agent-session-id.d.ts +15 -0
  66. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/047-add-agent-session-id.d.ts.map +1 -0
  67. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/047-add-agent-session-id.js +27 -0
  68. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/048-add-turn-status.d.ts +15 -0
  69. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/048-add-turn-status.d.ts.map +1 -0
  70. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/048-add-turn-status.js +20 -0
  71. package/dist/packages/core/src/infrastructure/repositories/sqlite-interactive-message.repository.d.ts +18 -0
  72. package/dist/packages/core/src/infrastructure/repositories/sqlite-interactive-message.repository.d.ts.map +1 -0
  73. package/dist/packages/core/src/infrastructure/repositories/sqlite-interactive-message.repository.js +58 -0
  74. package/dist/packages/core/src/infrastructure/repositories/sqlite-interactive-session.repository.d.ts +28 -0
  75. package/dist/packages/core/src/infrastructure/repositories/sqlite-interactive-session.repository.d.ts.map +1 -0
  76. package/dist/packages/core/src/infrastructure/repositories/sqlite-interactive-session.repository.js +137 -0
  77. package/dist/packages/core/src/infrastructure/repositories/sqlite-settings.repository.d.ts.map +1 -1
  78. package/dist/packages/core/src/infrastructure/repositories/sqlite-settings.repository.js +10 -3
  79. package/dist/packages/core/src/infrastructure/services/agents/common/agent-executor-factory.service.d.ts +18 -0
  80. package/dist/packages/core/src/infrastructure/services/agents/common/agent-executor-factory.service.d.ts.map +1 -1
  81. package/dist/packages/core/src/infrastructure/services/agents/common/agent-executor-factory.service.js +27 -0
  82. package/dist/packages/core/src/infrastructure/services/agents/common/executors/claude-code-interactive-executor.service.d.ts +43 -0
  83. package/dist/packages/core/src/infrastructure/services/agents/common/executors/claude-code-interactive-executor.service.d.ts.map +1 -0
  84. package/dist/packages/core/src/infrastructure/services/agents/common/executors/claude-code-interactive-executor.service.js +288 -0
  85. package/dist/packages/core/src/infrastructure/services/agents/common/executors/mock-executor-factory.service.d.ts +3 -0
  86. package/dist/packages/core/src/infrastructure/services/agents/common/executors/mock-executor-factory.service.d.ts.map +1 -1
  87. package/dist/packages/core/src/infrastructure/services/agents/common/executors/mock-executor-factory.service.js +6 -0
  88. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-graph.d.ts +1 -1
  89. package/dist/packages/core/src/infrastructure/services/interactive/feature-context.builder.d.ts +26 -0
  90. package/dist/packages/core/src/infrastructure/services/interactive/feature-context.builder.d.ts.map +1 -0
  91. package/dist/packages/core/src/infrastructure/services/interactive/feature-context.builder.js +140 -0
  92. package/dist/packages/core/src/infrastructure/services/interactive/interactive-session.service.d.ts +90 -0
  93. package/dist/packages/core/src/infrastructure/services/interactive/interactive-session.service.d.ts.map +1 -0
  94. package/dist/packages/core/src/infrastructure/services/interactive/interactive-session.service.js +889 -0
  95. package/dist/src/presentation/web/app/(dashboard)/@drawer/chat/page.d.ts +3 -0
  96. package/dist/src/presentation/web/app/(dashboard)/@drawer/chat/page.d.ts.map +1 -0
  97. package/dist/src/presentation/web/app/(dashboard)/@drawer/chat/page.js +6 -0
  98. package/dist/src/presentation/web/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.d.ts.map +1 -1
  99. package/dist/src/presentation/web/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +2 -2
  100. package/dist/src/presentation/web/app/(dashboard)/@drawer/feature/[featureId]/page.d.ts.map +1 -1
  101. package/dist/src/presentation/web/app/(dashboard)/@drawer/feature/[featureId]/page.js +2 -2
  102. package/dist/src/presentation/web/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.d.ts +11 -0
  103. package/dist/src/presentation/web/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.d.ts.map +1 -0
  104. package/dist/src/presentation/web/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js +18 -0
  105. package/dist/src/presentation/web/app/(dashboard)/chat/page.d.ts +3 -0
  106. package/dist/src/presentation/web/app/(dashboard)/chat/page.d.ts.map +1 -0
  107. package/dist/src/presentation/web/app/(dashboard)/chat/page.js +4 -0
  108. package/dist/src/presentation/web/app/(dashboard)/repository/[repositoryId]/[tab]/page.d.ts +3 -0
  109. package/dist/src/presentation/web/app/(dashboard)/repository/[repositoryId]/[tab]/page.d.ts.map +1 -0
  110. package/dist/src/presentation/web/app/(dashboard)/repository/[repositoryId]/[tab]/page.js +4 -0
  111. package/dist/src/presentation/web/app/api/agent-events/route.d.ts +6 -0
  112. package/dist/src/presentation/web/app/api/agent-events/route.d.ts.map +1 -1
  113. package/dist/src/presentation/web/app/api/agent-events/route.js +54 -1
  114. package/dist/src/presentation/web/app/api/interactive/chat/[featureId]/mark-read/route.d.ts +19 -0
  115. package/dist/src/presentation/web/app/api/interactive/chat/[featureId]/mark-read/route.d.ts.map +1 -0
  116. package/dist/src/presentation/web/app/api/interactive/chat/[featureId]/mark-read/route.js +24 -0
  117. package/dist/src/presentation/web/app/api/interactive/chat/[featureId]/messages/route.d.ts +24 -0
  118. package/dist/src/presentation/web/app/api/interactive/chat/[featureId]/messages/route.d.ts.map +1 -0
  119. package/dist/src/presentation/web/app/api/interactive/chat/[featureId]/messages/route.js +76 -0
  120. package/dist/src/presentation/web/app/api/interactive/chat/[featureId]/stop/route.d.ts +16 -0
  121. package/dist/src/presentation/web/app/api/interactive/chat/[featureId]/stop/route.d.ts.map +1 -0
  122. package/dist/src/presentation/web/app/api/interactive/chat/[featureId]/stop/route.js +21 -0
  123. package/dist/src/presentation/web/app/api/interactive/chat/[featureId]/stream/route.d.ts +21 -0
  124. package/dist/src/presentation/web/app/api/interactive/chat/[featureId]/stream/route.d.ts.map +1 -0
  125. package/dist/src/presentation/web/app/api/interactive/chat/[featureId]/stream/route.js +87 -0
  126. package/dist/src/presentation/web/app/api/interactive/chat/turn-statuses/route.d.ts +12 -0
  127. package/dist/src/presentation/web/app/api/interactive/chat/turn-statuses/route.d.ts.map +1 -0
  128. package/dist/src/presentation/web/app/api/interactive/chat/turn-statuses/route.js +28 -0
  129. package/dist/src/presentation/web/app/api/interactive/sessions/[id]/messages/route.d.ts +19 -0
  130. package/dist/src/presentation/web/app/api/interactive/sessions/[id]/messages/route.d.ts.map +1 -0
  131. package/dist/src/presentation/web/app/api/interactive/sessions/[id]/messages/route.js +78 -0
  132. package/dist/src/presentation/web/app/api/interactive/sessions/[id]/route.d.ts +18 -0
  133. package/dist/src/presentation/web/app/api/interactive/sessions/[id]/route.d.ts.map +1 -0
  134. package/dist/src/presentation/web/app/api/interactive/sessions/[id]/route.js +43 -0
  135. package/dist/src/presentation/web/app/api/interactive/sessions/[id]/stream/route.d.ts +19 -0
  136. package/dist/src/presentation/web/app/api/interactive/sessions/[id]/stream/route.d.ts.map +1 -0
  137. package/dist/src/presentation/web/app/api/interactive/sessions/[id]/stream/route.js +92 -0
  138. package/dist/src/presentation/web/app/api/interactive/sessions/route.d.ts +12 -0
  139. package/dist/src/presentation/web/app/api/interactive/sessions/route.d.ts.map +1 -0
  140. package/dist/src/presentation/web/app/api/interactive/sessions/route.js +37 -0
  141. package/dist/src/presentation/web/app/layout.d.ts.map +1 -1
  142. package/dist/src/presentation/web/app/layout.js +2 -1
  143. package/dist/src/presentation/web/components/assistant-ui/thread.d.ts +6 -0
  144. package/dist/src/presentation/web/components/assistant-ui/thread.d.ts.map +1 -0
  145. package/dist/src/presentation/web/components/assistant-ui/thread.js +192 -0
  146. package/dist/src/presentation/web/components/common/base-drawer/base-drawer.d.ts +1 -1
  147. package/dist/src/presentation/web/components/common/base-drawer/base-drawer.d.ts.map +1 -1
  148. package/dist/src/presentation/web/components/common/base-drawer/base-drawer.js +1 -0
  149. package/dist/src/presentation/web/components/common/control-center-drawer/drawer-view.d.ts +1 -1
  150. package/dist/src/presentation/web/components/common/control-center-drawer/drawer-view.d.ts.map +1 -1
  151. package/dist/src/presentation/web/components/common/control-center-drawer/drawer-view.js +1 -0
  152. package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.d.ts +3 -1
  153. package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.d.ts.map +1 -1
  154. package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.js +5 -6
  155. package/dist/src/presentation/web/components/common/control-center-drawer/global-chat-drawer-client.d.ts +2 -0
  156. package/dist/src/presentation/web/components/common/control-center-drawer/global-chat-drawer-client.d.ts.map +1 -0
  157. package/dist/src/presentation/web/components/common/control-center-drawer/global-chat-drawer-client.js +17 -0
  158. package/dist/src/presentation/web/components/common/control-center-drawer/repository-drawer-client.d.ts +3 -1
  159. package/dist/src/presentation/web/components/common/control-center-drawer/repository-drawer-client.d.ts.map +1 -1
  160. package/dist/src/presentation/web/components/common/control-center-drawer/repository-drawer-client.js +15 -8
  161. package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.d.ts +7 -1
  162. package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.d.ts.map +1 -1
  163. package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.js +11 -4
  164. package/dist/src/presentation/web/components/common/feature-node/feature-node.d.ts.map +1 -1
  165. package/dist/src/presentation/web/components/common/feature-node/feature-node.js +10 -2
  166. package/dist/src/presentation/web/components/common/floating-action-button/floating-action-button.d.ts +9 -2
  167. package/dist/src/presentation/web/components/common/floating-action-button/floating-action-button.d.ts.map +1 -1
  168. package/dist/src/presentation/web/components/common/floating-action-button/floating-action-button.js +11 -16
  169. package/dist/src/presentation/web/components/common/merge-review/merge-review.d.ts.map +1 -1
  170. package/dist/src/presentation/web/components/common/merge-review/merge-review.js +2 -28
  171. package/dist/src/presentation/web/components/common/repository-node/repository-node.d.ts.map +1 -1
  172. package/dist/src/presentation/web/components/common/repository-node/repository-node.js +10 -2
  173. package/dist/src/presentation/web/components/features/chat/AgentStatusBadge.d.ts +21 -0
  174. package/dist/src/presentation/web/components/features/chat/AgentStatusBadge.d.ts.map +1 -0
  175. package/dist/src/presentation/web/components/features/chat/AgentStatusBadge.js +46 -0
  176. package/dist/src/presentation/web/components/features/chat/AgentStatusBadge.stories.d.ts +20 -0
  177. package/dist/src/presentation/web/components/features/chat/AgentStatusBadge.stories.d.ts.map +1 -0
  178. package/dist/src/presentation/web/components/features/chat/AgentStatusBadge.stories.js +52 -0
  179. package/dist/src/presentation/web/components/features/chat/ChatComposer.d.ts +18 -0
  180. package/dist/src/presentation/web/components/features/chat/ChatComposer.d.ts.map +1 -0
  181. package/dist/src/presentation/web/components/features/chat/ChatComposer.js +16 -0
  182. package/dist/src/presentation/web/components/features/chat/ChatDotIndicator.d.ts +14 -0
  183. package/dist/src/presentation/web/components/features/chat/ChatDotIndicator.d.ts.map +1 -0
  184. package/dist/src/presentation/web/components/features/chat/ChatDotIndicator.js +13 -0
  185. package/dist/src/presentation/web/components/features/chat/ChatDotIndicator.stories.d.ts +9 -0
  186. package/dist/src/presentation/web/components/features/chat/ChatDotIndicator.stories.d.ts.map +1 -0
  187. package/dist/src/presentation/web/components/features/chat/ChatDotIndicator.stories.js +19 -0
  188. package/dist/src/presentation/web/components/features/chat/ChatInput.d.ts +19 -0
  189. package/dist/src/presentation/web/components/features/chat/ChatInput.d.ts.map +1 -0
  190. package/dist/src/presentation/web/components/features/chat/ChatInput.js +42 -0
  191. package/dist/src/presentation/web/components/features/chat/ChatInput.stories.d.ts +14 -0
  192. package/dist/src/presentation/web/components/features/chat/ChatInput.stories.d.ts.map +1 -0
  193. package/dist/src/presentation/web/components/features/chat/ChatInput.stories.js +56 -0
  194. package/dist/src/presentation/web/components/features/chat/ChatMessageBubble.d.ts +21 -0
  195. package/dist/src/presentation/web/components/features/chat/ChatMessageBubble.d.ts.map +1 -0
  196. package/dist/src/presentation/web/components/features/chat/ChatMessageBubble.js +43 -0
  197. package/dist/src/presentation/web/components/features/chat/ChatMessageBubble.stories.d.ts +24 -0
  198. package/dist/src/presentation/web/components/features/chat/ChatMessageBubble.stories.d.ts.map +1 -0
  199. package/dist/src/presentation/web/components/features/chat/ChatMessageBubble.stories.js +84 -0
  200. package/dist/src/presentation/web/components/features/chat/ChatMessageList.d.ts +25 -0
  201. package/dist/src/presentation/web/components/features/chat/ChatMessageList.d.ts.map +1 -0
  202. package/dist/src/presentation/web/components/features/chat/ChatMessageList.js +36 -0
  203. package/dist/src/presentation/web/components/features/chat/ChatSheet.d.ts +2 -0
  204. package/dist/src/presentation/web/components/features/chat/ChatSheet.d.ts.map +1 -0
  205. package/dist/src/presentation/web/components/features/chat/ChatSheet.js +259 -0
  206. package/dist/src/presentation/web/components/features/chat/ChatTab.d.ts +6 -0
  207. package/dist/src/presentation/web/components/features/chat/ChatTab.d.ts.map +1 -0
  208. package/dist/src/presentation/web/components/features/chat/ChatTab.js +67 -0
  209. package/dist/src/presentation/web/components/features/chat/ChatTab.stories.d.ts +25 -0
  210. package/dist/src/presentation/web/components/features/chat/ChatTab.stories.d.ts.map +1 -0
  211. package/dist/src/presentation/web/components/features/chat/ChatTab.stories.js +237 -0
  212. package/dist/src/presentation/web/components/features/chat/useChatRuntime.d.ts +34 -0
  213. package/dist/src/presentation/web/components/features/chat/useChatRuntime.d.ts.map +1 -0
  214. package/dist/src/presentation/web/components/features/chat/useChatRuntime.js +272 -0
  215. package/dist/src/presentation/web/components/features/control-center/control-center-inner.d.ts.map +1 -1
  216. package/dist/src/presentation/web/components/features/control-center/control-center-inner.js +71 -8
  217. package/dist/src/presentation/web/components/features/features-canvas/canvas-toolbar.d.ts +8 -0
  218. package/dist/src/presentation/web/components/features/features-canvas/canvas-toolbar.d.ts.map +1 -0
  219. package/dist/src/presentation/web/components/features/features-canvas/canvas-toolbar.js +29 -0
  220. package/dist/src/presentation/web/components/features/features-canvas/features-canvas.d.ts +1 -2
  221. package/dist/src/presentation/web/components/features/features-canvas/features-canvas.d.ts.map +1 -1
  222. package/dist/src/presentation/web/components/features/features-canvas/features-canvas.js +5 -13
  223. package/dist/src/presentation/web/components/features/settings/settings-page-client.d.ts.map +1 -1
  224. package/dist/src/presentation/web/components/features/settings/settings-page-client.js +45 -2
  225. package/dist/src/presentation/web/components/layouts/app-shell/app-shell.d.ts.map +1 -1
  226. package/dist/src/presentation/web/components/layouts/app-shell/app-shell.js +25 -66
  227. package/dist/src/presentation/web/components/providers/query-provider.d.ts +4 -0
  228. package/dist/src/presentation/web/components/providers/query-provider.d.ts.map +1 -0
  229. package/dist/src/presentation/web/components/providers/query-provider.js +16 -0
  230. package/dist/src/presentation/web/hooks/turn-statuses-provider.d.ts +15 -0
  231. package/dist/src/presentation/web/hooks/turn-statuses-provider.d.ts.map +1 -0
  232. package/dist/src/presentation/web/hooks/turn-statuses-provider.js +26 -0
  233. package/dist/src/presentation/web/hooks/use-attachments.d.ts +26 -0
  234. package/dist/src/presentation/web/hooks/use-attachments.d.ts.map +1 -0
  235. package/dist/src/presentation/web/hooks/use-attachments.js +227 -0
  236. package/dist/src/presentation/web/hooks/use-turn-statuses.d.ts +12 -0
  237. package/dist/src/presentation/web/hooks/use-turn-statuses.d.ts.map +1 -0
  238. package/dist/src/presentation/web/hooks/use-turn-statuses.js +26 -0
  239. package/dist/tsconfig.build.tsbuildinfo +1 -1
  240. package/package.json +3 -1
  241. package/web/.next/BUILD_ID +1 -1
  242. package/web/.next/app-path-routes-manifest.json +13 -0
  243. package/web/.next/build-manifest.json +5 -5
  244. package/web/.next/fallback-build-manifest.json +2 -2
  245. package/web/.next/prerender-manifest.json +3 -3
  246. package/web/.next/required-server-files.js +2 -2
  247. package/web/.next/required-server-files.json +2 -2
  248. package/web/.next/routes-manifest.json +83 -0
  249. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/build-manifest.json +3 -3
  250. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +82 -82
  251. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js +2 -2
  252. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
  253. package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
  254. package/web/.next/server/app/(dashboard)/@drawer/chat/page/app-paths-manifest.json +3 -0
  255. package/web/.next/server/app/(dashboard)/@drawer/chat/page/build-manifest.json +18 -0
  256. package/web/.next/server/app/(dashboard)/@drawer/chat/page/next-font-manifest.json +6 -0
  257. package/web/.next/server/app/(dashboard)/@drawer/chat/page/react-loadable-manifest.json +8 -0
  258. package/web/.next/server/app/(dashboard)/@drawer/chat/page/server-reference-manifest.json +395 -0
  259. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js +22 -0
  260. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js.map +5 -0
  261. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js.nft.json +1 -0
  262. package/web/.next/server/app/(dashboard)/@drawer/chat/page_client-reference-manifest.js +2 -0
  263. package/web/.next/server/app/(dashboard)/@drawer/create/page/build-manifest.json +3 -3
  264. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +84 -84
  265. package/web/.next/server/app/(dashboard)/@drawer/create/page.js +2 -2
  266. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  267. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  268. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/build-manifest.json +3 -3
  269. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +98 -98
  270. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +2 -2
  271. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  272. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  273. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/build-manifest.json +3 -3
  274. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +98 -98
  275. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +2 -2
  276. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  277. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  278. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/app-paths-manifest.json +3 -0
  279. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/build-manifest.json +18 -0
  280. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/next-font-manifest.json +6 -0
  281. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/react-loadable-manifest.json +8 -0
  282. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +395 -0
  283. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js +22 -0
  284. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js.map +5 -0
  285. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js.nft.json +1 -0
  286. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +2 -0
  287. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/build-manifest.json +3 -3
  288. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +78 -78
  289. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +2 -2
  290. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  291. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  292. package/web/.next/server/app/(dashboard)/chat/page/app-paths-manifest.json +3 -0
  293. package/web/.next/server/app/(dashboard)/chat/page/build-manifest.json +18 -0
  294. package/web/.next/server/app/(dashboard)/chat/page/next-font-manifest.json +6 -0
  295. package/web/.next/server/app/(dashboard)/chat/page/react-loadable-manifest.json +8 -0
  296. package/web/.next/server/app/(dashboard)/chat/page/server-reference-manifest.json +395 -0
  297. package/web/.next/server/app/(dashboard)/chat/page.js +22 -0
  298. package/web/.next/server/app/(dashboard)/chat/page.js.map +5 -0
  299. package/web/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -0
  300. package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +2 -0
  301. package/web/.next/server/app/(dashboard)/create/page/build-manifest.json +3 -3
  302. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +84 -84
  303. package/web/.next/server/app/(dashboard)/create/page.js +2 -2
  304. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  305. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  306. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/build-manifest.json +3 -3
  307. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +98 -98
  308. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js +2 -2
  309. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  310. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  311. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/build-manifest.json +3 -3
  312. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +98 -98
  313. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +2 -2
  314. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  315. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  316. package/web/.next/server/app/(dashboard)/page/build-manifest.json +3 -3
  317. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +78 -78
  318. package/web/.next/server/app/(dashboard)/page.js +2 -2
  319. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  320. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  321. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/app-paths-manifest.json +3 -0
  322. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/build-manifest.json +18 -0
  323. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/next-font-manifest.json +6 -0
  324. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/react-loadable-manifest.json +8 -0
  325. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +395 -0
  326. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js +22 -0
  327. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js.map +5 -0
  328. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js.nft.json +1 -0
  329. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +2 -0
  330. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/build-manifest.json +3 -3
  331. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +78 -78
  332. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +2 -2
  333. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  334. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  335. package/web/.next/server/app/_global-error/page/build-manifest.json +3 -3
  336. package/web/.next/server/app/_global-error.html +2 -2
  337. package/web/.next/server/app/_global-error.rsc +1 -1
  338. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  339. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  340. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  341. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  342. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  343. package/web/.next/server/app/_not-found/page/build-manifest.json +3 -3
  344. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +36 -6
  345. package/web/.next/server/app/_not-found/page.js +2 -2
  346. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  347. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  348. package/web/.next/server/app/api/attachments/preview/route.js +1 -1
  349. package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
  350. package/web/.next/server/app/api/attachments/upload-from-path/route.js +1 -1
  351. package/web/.next/server/app/api/attachments/upload-from-path/route.js.nft.json +1 -1
  352. package/web/.next/server/app/api/evidence/route.js +1 -1
  353. package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
  354. package/web/.next/server/app/api/graph-data/route.js +1 -1
  355. package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
  356. package/web/.next/server/app/api/interactive/chat/[featureId]/mark-read/route/app-paths-manifest.json +3 -0
  357. package/web/.next/server/app/api/interactive/chat/[featureId]/mark-read/route/build-manifest.json +11 -0
  358. package/web/.next/server/app/api/interactive/chat/[featureId]/mark-read/route/server-reference-manifest.json +4 -0
  359. package/web/.next/server/app/api/interactive/chat/[featureId]/mark-read/route.js +7 -0
  360. package/web/.next/server/app/api/interactive/chat/[featureId]/mark-read/route.js.map +5 -0
  361. package/web/.next/server/app/api/interactive/chat/[featureId]/mark-read/route.js.nft.json +1 -0
  362. package/web/.next/server/app/api/interactive/chat/[featureId]/mark-read/route_client-reference-manifest.js +2 -0
  363. package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route/app-paths-manifest.json +3 -0
  364. package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route/build-manifest.json +11 -0
  365. package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route/server-reference-manifest.json +4 -0
  366. package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route.js +7 -0
  367. package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route.js.map +5 -0
  368. package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route.js.nft.json +1 -0
  369. package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route_client-reference-manifest.js +2 -0
  370. package/web/.next/server/app/api/interactive/chat/[featureId]/stop/route/app-paths-manifest.json +3 -0
  371. package/web/.next/server/app/api/interactive/chat/[featureId]/stop/route/build-manifest.json +11 -0
  372. package/web/.next/server/app/api/interactive/chat/[featureId]/stop/route/server-reference-manifest.json +4 -0
  373. package/web/.next/server/app/api/interactive/chat/[featureId]/stop/route.js +7 -0
  374. package/web/.next/server/app/api/interactive/chat/[featureId]/stop/route.js.map +5 -0
  375. package/web/.next/server/app/api/interactive/chat/[featureId]/stop/route.js.nft.json +1 -0
  376. package/web/.next/server/app/api/interactive/chat/[featureId]/stop/route_client-reference-manifest.js +2 -0
  377. package/web/.next/server/app/api/interactive/chat/[featureId]/stream/route/app-paths-manifest.json +3 -0
  378. package/web/.next/server/app/api/interactive/chat/[featureId]/stream/route/build-manifest.json +11 -0
  379. package/web/.next/server/app/api/interactive/chat/[featureId]/stream/route/server-reference-manifest.json +4 -0
  380. package/web/.next/server/app/api/interactive/chat/[featureId]/stream/route.js +6 -0
  381. package/web/.next/server/app/api/interactive/chat/[featureId]/stream/route.js.map +5 -0
  382. package/web/.next/server/app/api/interactive/chat/[featureId]/stream/route.js.nft.json +1 -0
  383. package/web/.next/server/app/api/interactive/chat/[featureId]/stream/route_client-reference-manifest.js +2 -0
  384. package/web/.next/server/app/api/interactive/chat/turn-statuses/route/app-paths-manifest.json +3 -0
  385. package/web/.next/server/app/api/interactive/chat/turn-statuses/route/build-manifest.json +11 -0
  386. package/web/.next/server/app/api/interactive/chat/turn-statuses/route/server-reference-manifest.json +4 -0
  387. package/web/.next/server/app/api/interactive/chat/turn-statuses/route.js +7 -0
  388. package/web/.next/server/app/api/interactive/chat/turn-statuses/route.js.map +5 -0
  389. package/web/.next/server/app/api/interactive/chat/turn-statuses/route.js.nft.json +1 -0
  390. package/web/.next/server/app/api/interactive/chat/turn-statuses/route_client-reference-manifest.js +2 -0
  391. package/web/.next/server/app/api/interactive/sessions/[id]/messages/route/app-paths-manifest.json +3 -0
  392. package/web/.next/server/app/api/interactive/sessions/[id]/messages/route/build-manifest.json +11 -0
  393. package/web/.next/server/app/api/interactive/sessions/[id]/messages/route/server-reference-manifest.json +4 -0
  394. package/web/.next/server/app/api/interactive/sessions/[id]/messages/route.js +7 -0
  395. package/web/.next/server/app/api/interactive/sessions/[id]/messages/route.js.map +5 -0
  396. package/web/.next/server/app/api/interactive/sessions/[id]/messages/route.js.nft.json +1 -0
  397. package/web/.next/server/app/api/interactive/sessions/[id]/messages/route_client-reference-manifest.js +2 -0
  398. package/web/.next/server/app/api/interactive/sessions/[id]/route/app-paths-manifest.json +3 -0
  399. package/web/.next/server/app/api/interactive/sessions/[id]/route/build-manifest.json +11 -0
  400. package/web/.next/server/app/api/interactive/sessions/[id]/route/server-reference-manifest.json +4 -0
  401. package/web/.next/server/app/api/interactive/sessions/[id]/route.js +7 -0
  402. package/web/.next/server/app/api/interactive/sessions/[id]/route.js.map +5 -0
  403. package/web/.next/server/app/api/interactive/sessions/[id]/route.js.nft.json +1 -0
  404. package/web/.next/server/app/api/interactive/sessions/[id]/route_client-reference-manifest.js +2 -0
  405. package/web/.next/server/app/api/interactive/sessions/[id]/stream/route/app-paths-manifest.json +3 -0
  406. package/web/.next/server/app/api/interactive/sessions/[id]/stream/route/build-manifest.json +11 -0
  407. package/web/.next/server/app/api/interactive/sessions/[id]/stream/route/server-reference-manifest.json +4 -0
  408. package/web/.next/server/app/api/interactive/sessions/[id]/stream/route.js +6 -0
  409. package/web/.next/server/app/api/interactive/sessions/[id]/stream/route.js.map +5 -0
  410. package/web/.next/server/app/api/interactive/sessions/[id]/stream/route.js.nft.json +1 -0
  411. package/web/.next/server/app/api/interactive/sessions/[id]/stream/route_client-reference-manifest.js +2 -0
  412. package/web/.next/server/app/api/interactive/sessions/route/app-paths-manifest.json +3 -0
  413. package/web/.next/server/app/api/interactive/sessions/route/build-manifest.json +11 -0
  414. package/web/.next/server/app/api/interactive/sessions/route/server-reference-manifest.json +4 -0
  415. package/web/.next/server/app/api/interactive/sessions/route.js +7 -0
  416. package/web/.next/server/app/api/interactive/sessions/route.js.map +5 -0
  417. package/web/.next/server/app/api/interactive/sessions/route.js.nft.json +1 -0
  418. package/web/.next/server/app/api/interactive/sessions/route_client-reference-manifest.js +2 -0
  419. package/web/.next/server/app/api/sessions/route.js.nft.json +1 -1
  420. package/web/.next/server/app/api/sessions-batch/route.js +1 -1
  421. package/web/.next/server/app/api/sessions-batch/route.js.nft.json +1 -1
  422. package/web/.next/server/app/api/tools/route.js +2 -2
  423. package/web/.next/server/app/settings/page/build-manifest.json +3 -3
  424. package/web/.next/server/app/settings/page/server-reference-manifest.json +42 -42
  425. package/web/.next/server/app/settings/page.js +3 -3
  426. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  427. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  428. package/web/.next/server/app/skills/page/build-manifest.json +3 -3
  429. package/web/.next/server/app/skills/page/server-reference-manifest.json +46 -16
  430. package/web/.next/server/app/skills/page.js +3 -3
  431. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  432. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  433. package/web/.next/server/app/tools/page/build-manifest.json +3 -3
  434. package/web/.next/server/app/tools/page/server-reference-manifest.json +46 -16
  435. package/web/.next/server/app/tools/page.js +3 -3
  436. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  437. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  438. package/web/.next/server/app/version/page/build-manifest.json +3 -3
  439. package/web/.next/server/app/version/page/server-reference-manifest.json +36 -6
  440. package/web/.next/server/app/version/page.js +2 -2
  441. package/web/.next/server/app/version/page.js.nft.json +1 -1
  442. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  443. package/web/.next/server/app-paths-manifest.json +13 -0
  444. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_4d623b8e.js +8 -2
  445. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_4d623b8e.js.map +1 -1
  446. package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_interactive_sessions_route_actions_f2e7447f.js +3 -0
  447. package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_interactive_sessions_route_actions_f2e7447f.js.map +1 -0
  448. package/web/.next/server/chunks/8ba4b_server_app_api_interactive_chat_[featureId]_mark-read_route_actions_ce79c730.js +3 -0
  449. package/web/.next/server/chunks/8ba4b_server_app_api_interactive_chat_[featureId]_mark-read_route_actions_ce79c730.js.map +1 -0
  450. package/web/.next/server/chunks/8ba4b_server_app_api_interactive_chat_[featureId]_messages_route_actions_f98e5802.js +3 -0
  451. package/web/.next/server/chunks/8ba4b_server_app_api_interactive_chat_[featureId]_messages_route_actions_f98e5802.js.map +1 -0
  452. package/web/.next/server/chunks/8ba4b_server_app_api_interactive_chat_[featureId]_stop_route_actions_36518d35.js +3 -0
  453. package/web/.next/server/chunks/8ba4b_server_app_api_interactive_chat_[featureId]_stop_route_actions_36518d35.js.map +1 -0
  454. package/web/.next/server/chunks/8ba4b_server_app_api_interactive_chat_[featureId]_stream_route_actions_e6210931.js +3 -0
  455. package/web/.next/server/chunks/8ba4b_server_app_api_interactive_chat_[featureId]_stream_route_actions_e6210931.js.map +1 -0
  456. package/web/.next/server/chunks/8ba4b_server_app_api_interactive_chat_turn-statuses_route_actions_f97e4de7.js +3 -0
  457. package/web/.next/server/chunks/8ba4b_server_app_api_interactive_chat_turn-statuses_route_actions_f97e4de7.js.map +1 -0
  458. package/web/.next/server/chunks/8ba4b_server_app_api_interactive_sessions_[id]_messages_route_actions_be179971.js +3 -0
  459. package/web/.next/server/chunks/8ba4b_server_app_api_interactive_sessions_[id]_messages_route_actions_be179971.js.map +1 -0
  460. package/web/.next/server/chunks/8ba4b_server_app_api_interactive_sessions_[id]_stream_route_actions_58ab2b5b.js +3 -0
  461. package/web/.next/server/chunks/8ba4b_server_app_api_interactive_sessions_[id]_stream_route_actions_58ab2b5b.js.map +1 -0
  462. package/web/.next/server/chunks/[root-of-the-server]__10852c5c._.js +3 -0
  463. package/web/.next/server/chunks/[root-of-the-server]__10852c5c._.js.map +1 -0
  464. package/web/.next/server/chunks/[root-of-the-server]__2b71641f._.js +3 -0
  465. package/web/.next/server/chunks/[root-of-the-server]__2b71641f._.js.map +1 -0
  466. package/web/.next/server/chunks/[root-of-the-server]__2bb675ff._.js +3 -0
  467. package/web/.next/server/chunks/[root-of-the-server]__2bb675ff._.js.map +1 -0
  468. package/web/.next/server/chunks/{[root-of-the-server]__0d33c29e._.js → [root-of-the-server]__31598852._.js} +2 -2
  469. package/web/.next/server/chunks/{[root-of-the-server]__0d33c29e._.js.map → [root-of-the-server]__31598852._.js.map} +1 -1
  470. package/web/.next/server/chunks/[root-of-the-server]__32b04219._.js +3 -0
  471. package/web/.next/server/chunks/[root-of-the-server]__32b04219._.js.map +1 -0
  472. package/web/.next/server/chunks/[root-of-the-server]__4408a5ba._.js +12 -0
  473. package/web/.next/server/chunks/[root-of-the-server]__4408a5ba._.js.map +1 -0
  474. package/web/.next/server/chunks/[root-of-the-server]__6565a045._.js +3 -0
  475. package/web/.next/server/chunks/[root-of-the-server]__6565a045._.js.map +1 -0
  476. package/web/.next/server/chunks/[root-of-the-server]__8a281f8d._.js +18 -0
  477. package/web/.next/server/chunks/[root-of-the-server]__8a281f8d._.js.map +1 -0
  478. package/web/.next/server/chunks/[root-of-the-server]__8f8d6afe._.js +3 -0
  479. package/web/.next/server/chunks/[root-of-the-server]__8f8d6afe._.js.map +1 -0
  480. package/web/.next/server/chunks/[root-of-the-server]__9191749c._.js +1 -1
  481. package/web/.next/server/chunks/[root-of-the-server]__9191749c._.js.map +1 -1
  482. package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
  483. package/web/.next/server/chunks/[root-of-the-server]__ab4951b1._.js +3 -0
  484. package/web/.next/server/chunks/[root-of-the-server]__ab4951b1._.js.map +1 -0
  485. package/web/.next/server/chunks/{[root-of-the-server]__26565141._.js → [root-of-the-server]__acea6565._.js} +2 -2
  486. package/web/.next/server/chunks/{[root-of-the-server]__26565141._.js.map → [root-of-the-server]__acea6565._.js.map} +1 -1
  487. package/web/.next/server/chunks/[root-of-the-server]__beda892a._.js +3 -0
  488. package/web/.next/server/chunks/[root-of-the-server]__beda892a._.js.map +1 -0
  489. package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js +1 -1
  490. package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js.map +1 -1
  491. package/web/.next/server/chunks/{[root-of-the-server]__25f23d5d._.js → [root-of-the-server]__e3692208._.js} +2 -2
  492. package/web/.next/server/chunks/{[root-of-the-server]__25f23d5d._.js.map → [root-of-the-server]__e3692208._.js.map} +1 -1
  493. package/web/.next/server/chunks/{[root-of-the-server]__a5879003._.js → [root-of-the-server]__ea653642._.js} +2 -2
  494. package/web/.next/server/chunks/{[root-of-the-server]__a5879003._.js.map → [root-of-the-server]__ea653642._.js.map} +1 -1
  495. package/web/.next/server/chunks/f3a1f__next-internal_server_app_api_interactive_sessions_[id]_route_actions_a4ea4d16.js +3 -0
  496. package/web/.next/server/chunks/f3a1f__next-internal_server_app_api_interactive_sessions_[id]_route_actions_a4ea4d16.js.map +1 -0
  497. package/web/.next/server/chunks/ssr/403f9_next_dist_c9d9b4d7._.js +1 -1
  498. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_2c44200f.js +4 -0
  499. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_2c44200f.js.map +1 -0
  500. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_56f4f121.js +4 -0
  501. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_56f4f121.js.map +1 -0
  502. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_77436e06.js +4 -0
  503. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_77436e06.js.map +1 -0
  504. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_b9bb0443.js +4 -0
  505. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_b9bb0443.js.map +1 -0
  506. package/web/.next/server/chunks/ssr/744ca_web_app_(dashboard)_repository_[repositoryId]_[tab]_page_tsx_2e9a3025._.js +3 -0
  507. package/web/.next/server/chunks/ssr/744ca_web_app_(dashboard)_repository_[repositoryId]_[tab]_page_tsx_2e9a3025._.js.map +1 -0
  508. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  509. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  510. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js +7 -0
  511. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js.map +1 -0
  512. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_4b319ae6._.js +3 -0
  513. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_4b319ae6._.js.map +1 -0
  514. package/web/.next/server/chunks/ssr/[root-of-the-server]__0b150ddf._.js +1 -1
  515. package/web/.next/server/chunks/ssr/[root-of-the-server]__0b150ddf._.js.map +1 -1
  516. package/web/.next/server/chunks/ssr/[root-of-the-server]__17ed7ed1._.js +4 -0
  517. package/web/.next/server/chunks/ssr/[root-of-the-server]__17ed7ed1._.js.map +1 -0
  518. package/web/.next/server/chunks/ssr/[root-of-the-server]__28d0d265._.js +4 -0
  519. package/web/.next/server/chunks/ssr/[root-of-the-server]__28d0d265._.js.map +1 -0
  520. package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +1 -1
  521. package/web/.next/server/chunks/ssr/[root-of-the-server]__42bf1807._.js +4 -0
  522. package/web/.next/server/chunks/ssr/[root-of-the-server]__42bf1807._.js.map +1 -0
  523. package/web/.next/server/chunks/ssr/[root-of-the-server]__56b70465._.js +4 -0
  524. package/web/.next/server/chunks/ssr/[root-of-the-server]__56b70465._.js.map +1 -0
  525. package/web/.next/server/chunks/ssr/[root-of-the-server]__684a868c._.js +1 -1
  526. package/web/.next/server/chunks/ssr/[root-of-the-server]__684a868c._.js.map +1 -1
  527. package/web/.next/server/chunks/ssr/[root-of-the-server]__7528eb6f._.js +3 -0
  528. package/web/.next/server/chunks/ssr/[root-of-the-server]__7528eb6f._.js.map +1 -0
  529. package/web/.next/server/chunks/ssr/[root-of-the-server]__88f7e8e6._.js +4 -0
  530. package/web/.next/server/chunks/ssr/[root-of-the-server]__88f7e8e6._.js.map +1 -0
  531. package/web/.next/server/chunks/ssr/[root-of-the-server]__8b0aac03._.js +4 -0
  532. package/web/.next/server/chunks/ssr/[root-of-the-server]__8b0aac03._.js.map +1 -0
  533. package/web/.next/server/chunks/ssr/[root-of-the-server]__b14946f5._.js +2 -2
  534. package/web/.next/server/chunks/ssr/[root-of-the-server]__b8d4bd27._.js +3 -0
  535. package/web/.next/server/chunks/ssr/[root-of-the-server]__b8d4bd27._.js.map +1 -0
  536. package/web/.next/server/chunks/ssr/[root-of-the-server]__c16bf5de._.js +1 -1
  537. package/web/.next/server/chunks/ssr/[root-of-the-server]__c16bf5de._.js.map +1 -1
  538. package/web/.next/server/chunks/ssr/[root-of-the-server]__c30f1f82._.js +4 -0
  539. package/web/.next/server/chunks/ssr/[root-of-the-server]__c30f1f82._.js.map +1 -0
  540. package/web/.next/server/chunks/ssr/[root-of-the-server]__e91ffd5e._.js +7 -0
  541. package/web/.next/server/chunks/ssr/[root-of-the-server]__e91ffd5e._.js.map +1 -0
  542. package/web/.next/server/chunks/ssr/[root-of-the-server]__f80bfc75._.js +4 -0
  543. package/web/.next/server/chunks/ssr/[root-of-the-server]__f80bfc75._.js.map +1 -0
  544. package/web/.next/server/chunks/ssr/[root-of-the-server]__f8dd4422._.js +3 -0
  545. package/web/.next/server/chunks/ssr/[root-of-the-server]__f8dd4422._.js.map +1 -0
  546. package/web/.next/server/chunks/ssr/_05c23ad9._.js +1 -1
  547. package/web/.next/server/chunks/ssr/_05c23ad9._.js.map +1 -1
  548. package/web/.next/server/chunks/ssr/_16eb4fec._.js +1 -1
  549. package/web/.next/server/chunks/ssr/_16eb4fec._.js.map +1 -1
  550. package/web/.next/server/chunks/ssr/{_34a8a162._.js → _245b6623._.js} +3 -3
  551. package/web/.next/server/chunks/ssr/_245b6623._.js.map +1 -0
  552. package/web/.next/server/chunks/ssr/_3a0b989f._.js +6 -0
  553. package/web/.next/server/chunks/ssr/_3a0b989f._.js.map +1 -0
  554. package/web/.next/server/chunks/ssr/{_6c7faa01._.js → _507a8382._.js} +2 -2
  555. package/web/.next/server/chunks/ssr/_507a8382._.js.map +1 -0
  556. package/web/.next/server/chunks/ssr/_51af0bf4._.js +3 -0
  557. package/web/.next/server/chunks/ssr/_51af0bf4._.js.map +1 -0
  558. package/web/.next/server/chunks/ssr/_56b9d60f._.js +3 -0
  559. package/web/.next/server/chunks/ssr/_56b9d60f._.js.map +1 -0
  560. package/web/.next/server/chunks/ssr/_5f69c13f._.js +4 -0
  561. package/web/.next/server/chunks/ssr/_5f69c13f._.js.map +1 -0
  562. package/web/.next/server/chunks/ssr/_78ff6f1d._.js +3 -0
  563. package/web/.next/server/chunks/ssr/_78ff6f1d._.js.map +1 -0
  564. package/web/.next/server/chunks/ssr/_7c5b97c6._.js +4 -0
  565. package/web/.next/server/chunks/ssr/_7c5b97c6._.js.map +1 -0
  566. package/web/.next/server/chunks/ssr/_8219712a._.js +3 -0
  567. package/web/.next/server/chunks/ssr/_8219712a._.js.map +1 -0
  568. package/web/.next/server/chunks/ssr/_82c57f10._.js +4 -0
  569. package/web/.next/server/chunks/ssr/_82c57f10._.js.map +1 -0
  570. package/web/.next/server/chunks/ssr/{_0020fddd._.js → _8b57edb8._.js} +2 -2
  571. package/web/.next/server/chunks/ssr/_8b57edb8._.js.map +1 -0
  572. package/web/.next/server/chunks/ssr/_8d733ce4._.js +3 -0
  573. package/web/.next/server/chunks/ssr/_8d733ce4._.js.map +1 -0
  574. package/web/.next/server/chunks/ssr/{_6256a985._.js → _9495d50b._.js} +3 -3
  575. package/web/.next/server/chunks/ssr/{_6256a985._.js.map → _9495d50b._.js.map} +1 -1
  576. package/web/.next/server/chunks/ssr/_a0e3f7e4._.js +4 -0
  577. package/web/.next/server/chunks/ssr/_a0e3f7e4._.js.map +1 -0
  578. package/web/.next/server/chunks/ssr/_ac4a3873._.js +3 -0
  579. package/web/.next/server/chunks/ssr/_ac4a3873._.js.map +1 -0
  580. package/web/.next/server/chunks/ssr/_ca0aa7f0._.js +4 -0
  581. package/web/.next/server/chunks/ssr/_ca0aa7f0._.js.map +1 -0
  582. package/web/.next/server/chunks/ssr/_cb5a021e._.js +4 -0
  583. package/web/.next/server/chunks/ssr/_cb5a021e._.js.map +1 -0
  584. package/web/.next/server/chunks/ssr/_cfbd1d7e._.js +1 -1
  585. package/web/.next/server/chunks/ssr/_cfbd1d7e._.js.map +1 -1
  586. package/web/.next/server/chunks/ssr/_d4b20e29._.js +1 -1
  587. package/web/.next/server/chunks/ssr/_d4b20e29._.js.map +1 -1
  588. package/web/.next/server/chunks/ssr/_d86175ae._.js +4 -0
  589. package/web/.next/server/chunks/ssr/_d86175ae._.js.map +1 -0
  590. package/web/.next/server/chunks/ssr/_d8bedf13._.js +4 -0
  591. package/web/.next/server/chunks/ssr/_d8bedf13._.js.map +1 -0
  592. package/web/.next/server/chunks/ssr/_e9a73a63._.js +9 -0
  593. package/web/.next/server/chunks/ssr/_e9a73a63._.js.map +1 -0
  594. package/web/.next/server/chunks/ssr/{_4093a637._.js → _fa0acc22._.js} +2 -2
  595. package/web/.next/server/chunks/ssr/_fa0acc22._.js.map +1 -0
  596. package/web/.next/server/chunks/ssr/_fa7efce3._.js +6 -0
  597. package/web/.next/server/chunks/ssr/_fa7efce3._.js.map +1 -0
  598. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  599. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  600. package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_global-chat-drawer-client_tsx_158c4b12._.js +3 -0
  601. package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_global-chat-drawer-client_tsx_158c4b12._.js.map +1 -0
  602. package/web/.next/server/chunks/ssr/node_modules__pnpm_8ec2c790._.js +3 -0
  603. package/web/.next/server/chunks/ssr/node_modules__pnpm_8ec2c790._.js.map +1 -0
  604. package/web/.next/server/chunks/ssr/node_modules__pnpm_ef15a0bd._.js +3 -0
  605. package/web/.next/server/chunks/ssr/node_modules__pnpm_ef15a0bd._.js.map +1 -0
  606. package/web/.next/server/chunks/ssr/src_presentation_web_324a47da._.js +3 -0
  607. package/web/.next/server/chunks/ssr/src_presentation_web_324a47da._.js.map +1 -0
  608. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_cdc632e3.js +3 -0
  609. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_cdc632e3.js.map +1 -0
  610. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_39ca0924.js +3 -0
  611. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_39ca0924.js.map +1 -0
  612. package/web/.next/server/chunks/ssr/src_presentation_web_app_(dashboard)_chat_page_tsx_85327270._.js +3 -0
  613. package/web/.next/server/chunks/ssr/src_presentation_web_app_(dashboard)_chat_page_tsx_85327270._.js.map +1 -0
  614. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js +1 -1
  615. package/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js +1 -1
  616. package/web/.next/server/chunks/ssr/src_presentation_web_components_357e3eb0._.js +3 -0
  617. package/web/.next/server/chunks/ssr/src_presentation_web_components_357e3eb0._.js.map +1 -0
  618. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  619. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  620. package/web/.next/server/middleware-build-manifest.js +3 -3
  621. package/web/.next/server/pages/500.html +2 -2
  622. package/web/.next/server/server-reference-manifest.js +1 -1
  623. package/web/.next/server/server-reference-manifest.json +1346 -562
  624. package/web/.next/static/chunks/0aa0c51000c61a82.js +5 -0
  625. package/web/.next/static/chunks/0bb071bc5f7487be.js +1 -0
  626. package/web/.next/static/chunks/0c38793438b8c038.js +1 -0
  627. package/web/.next/static/chunks/0df0e1499e672836.js +3 -0
  628. package/web/.next/static/chunks/11091b676d1b3bd4.js +1 -0
  629. package/web/.next/static/chunks/19e9b142ad142695.js +7 -0
  630. package/web/.next/static/chunks/22c459f1877b1e4f.js +1 -0
  631. package/web/.next/static/chunks/2354d39c63978576.js +1 -0
  632. package/web/.next/static/chunks/29f375627d0eccca.js +1 -0
  633. package/web/.next/static/chunks/2ea8e9030cd5ab2b.js +1 -0
  634. package/web/.next/static/chunks/40b6bcf1a2de4a0f.js +1 -0
  635. package/web/.next/static/chunks/4b2c4a5c35ebb70d.js +1 -0
  636. package/web/.next/static/chunks/5ae60a052ab5f437.js +5 -0
  637. package/web/.next/static/chunks/811d8a0007da9137.js +1 -0
  638. package/web/.next/static/chunks/8a83eca1de6a4ed0.js +1 -0
  639. package/web/.next/static/chunks/8ba1c07ef18b15a9.js +1 -0
  640. package/web/.next/static/chunks/9033e51dfc21b48d.js +1 -0
  641. package/web/.next/static/chunks/a36ca50cbdfb3ffe.js +1 -0
  642. package/web/.next/static/chunks/b4cde06eff374c59.js +5 -0
  643. package/web/.next/static/chunks/be7d8a4fee3b9860.js +1 -0
  644. package/web/.next/static/chunks/c86594475dcb03d5.css +1 -0
  645. package/web/.next/static/chunks/cd54b758f58061d0.js +1 -0
  646. package/web/.next/static/chunks/{cfe4dc9904fcfddb.js → d0e04c4bd51d2553.js} +1 -1
  647. package/web/.next/static/chunks/{e558b4b9d066763c.js → fab1eb6312340c1b.js} +2 -2
  648. package/web/.next/static/chunks/{turbopack-c2d183e05f30c7dc.js → turbopack-432ef324fc27240c.js} +1 -1
  649. package/web/package.json +7 -2
  650. package/dist/src/presentation/web/components/common/evidence-lightbox/evidence-lightbox.d.ts +0 -15
  651. package/dist/src/presentation/web/components/common/evidence-lightbox/evidence-lightbox.d.ts.map +0 -1
  652. package/dist/src/presentation/web/components/common/evidence-lightbox/evidence-lightbox.js +0 -43
  653. package/dist/src/presentation/web/components/common/evidence-lightbox/evidence-lightbox.stories.d.ts +0 -18
  654. package/dist/src/presentation/web/components/common/evidence-lightbox/evidence-lightbox.stories.d.ts.map +0 -1
  655. package/dist/src/presentation/web/components/common/evidence-lightbox/evidence-lightbox.stories.js +0 -125
  656. package/dist/src/presentation/web/components/common/evidence-lightbox/index.d.ts +0 -3
  657. package/dist/src/presentation/web/components/common/evidence-lightbox/index.d.ts.map +0 -1
  658. package/dist/src/presentation/web/components/common/evidence-lightbox/index.js +0 -1
  659. package/web/.next/server/chunks/[root-of-the-server]__c6e32a23._.js +0 -3
  660. package/web/.next/server/chunks/[root-of-the-server]__c6e32a23._.js.map +0 -1
  661. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_8b618f7d._.js +0 -3
  662. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_8b618f7d._.js.map +0 -1
  663. package/web/.next/server/chunks/ssr/[root-of-the-server]__2138fa7e._.js +0 -4
  664. package/web/.next/server/chunks/ssr/[root-of-the-server]__2138fa7e._.js.map +0 -1
  665. package/web/.next/server/chunks/ssr/[root-of-the-server]__29580090._.js +0 -4
  666. package/web/.next/server/chunks/ssr/[root-of-the-server]__29580090._.js.map +0 -1
  667. package/web/.next/server/chunks/ssr/[root-of-the-server]__3ef34e4c._.js +0 -4
  668. package/web/.next/server/chunks/ssr/[root-of-the-server]__3ef34e4c._.js.map +0 -1
  669. package/web/.next/server/chunks/ssr/[root-of-the-server]__43f51aa6._.js +0 -4
  670. package/web/.next/server/chunks/ssr/[root-of-the-server]__43f51aa6._.js.map +0 -1
  671. package/web/.next/server/chunks/ssr/[root-of-the-server]__815546bd._.js +0 -4
  672. package/web/.next/server/chunks/ssr/[root-of-the-server]__815546bd._.js.map +0 -1
  673. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js +0 -7
  674. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js.map +0 -1
  675. package/web/.next/server/chunks/ssr/[root-of-the-server]__c094882b._.js +0 -4
  676. package/web/.next/server/chunks/ssr/[root-of-the-server]__c094882b._.js.map +0 -1
  677. package/web/.next/server/chunks/ssr/[root-of-the-server]__d48c5b11._.js +0 -3
  678. package/web/.next/server/chunks/ssr/[root-of-the-server]__d48c5b11._.js.map +0 -1
  679. package/web/.next/server/chunks/ssr/[root-of-the-server]__dac5dbf1._.js +0 -4
  680. package/web/.next/server/chunks/ssr/[root-of-the-server]__dac5dbf1._.js.map +0 -1
  681. package/web/.next/server/chunks/ssr/[root-of-the-server]__df7c1cd3._.js +0 -3
  682. package/web/.next/server/chunks/ssr/[root-of-the-server]__df7c1cd3._.js.map +0 -1
  683. package/web/.next/server/chunks/ssr/[root-of-the-server]__fae8b355._.js +0 -4
  684. package/web/.next/server/chunks/ssr/[root-of-the-server]__fae8b355._.js.map +0 -1
  685. package/web/.next/server/chunks/ssr/_0020fddd._.js.map +0 -1
  686. package/web/.next/server/chunks/ssr/_01046927._.js +0 -9
  687. package/web/.next/server/chunks/ssr/_01046927._.js.map +0 -1
  688. package/web/.next/server/chunks/ssr/_0c473fef._.js +0 -6
  689. package/web/.next/server/chunks/ssr/_0c473fef._.js.map +0 -1
  690. package/web/.next/server/chunks/ssr/_1b719e7f._.js +0 -4
  691. package/web/.next/server/chunks/ssr/_1b719e7f._.js.map +0 -1
  692. package/web/.next/server/chunks/ssr/_34a8a162._.js.map +0 -1
  693. package/web/.next/server/chunks/ssr/_37e8548b._.js +0 -4
  694. package/web/.next/server/chunks/ssr/_37e8548b._.js.map +0 -1
  695. package/web/.next/server/chunks/ssr/_4093a637._.js.map +0 -1
  696. package/web/.next/server/chunks/ssr/_55d763e2._.js +0 -4
  697. package/web/.next/server/chunks/ssr/_55d763e2._.js.map +0 -1
  698. package/web/.next/server/chunks/ssr/_6c7faa01._.js.map +0 -1
  699. package/web/.next/server/chunks/ssr/_762bbdd5._.js +0 -3
  700. package/web/.next/server/chunks/ssr/_762bbdd5._.js.map +0 -1
  701. package/web/.next/server/chunks/ssr/_8fcc39d4._.js +0 -3
  702. package/web/.next/server/chunks/ssr/_8fcc39d4._.js.map +0 -1
  703. package/web/.next/server/chunks/ssr/_b71645b4._.js +0 -4
  704. package/web/.next/server/chunks/ssr/_b71645b4._.js.map +0 -1
  705. package/web/.next/server/chunks/ssr/_d8575088._.js +0 -3
  706. package/web/.next/server/chunks/ssr/_d8575088._.js.map +0 -1
  707. package/web/.next/server/chunks/ssr/_e9e9ed20._.js +0 -6
  708. package/web/.next/server/chunks/ssr/_e9e9ed20._.js.map +0 -1
  709. package/web/.next/server/chunks/ssr/node_modules__pnpm_55c7a131._.js +0 -3
  710. package/web/.next/server/chunks/ssr/node_modules__pnpm_55c7a131._.js.map +0 -1
  711. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1b176e3c.js +0 -3
  712. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1b176e3c.js.map +0 -1
  713. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_bd9f0dda.js +0 -3
  714. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_bd9f0dda.js.map +0 -1
  715. package/web/.next/server/chunks/ssr/src_presentation_web_b437e763._.js +0 -3
  716. package/web/.next/server/chunks/ssr/src_presentation_web_b437e763._.js.map +0 -1
  717. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js +0 -3
  718. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js.map +0 -1
  719. package/web/.next/static/chunks/08baac5434d9528e.js +0 -13
  720. package/web/.next/static/chunks/0d473fbdf724361c.js +0 -1
  721. package/web/.next/static/chunks/1ef9dfc624cdd5c0.js +0 -1
  722. package/web/.next/static/chunks/2c4e4027386847dc.js +0 -1
  723. package/web/.next/static/chunks/331e2a1232d9f855.js +0 -5
  724. package/web/.next/static/chunks/48a36b37fc27443b.js +0 -1
  725. package/web/.next/static/chunks/49057cf8cd37e262.js +0 -1
  726. package/web/.next/static/chunks/4cec255f2754e5ec.js +0 -1
  727. package/web/.next/static/chunks/52470bcbe2e8198d.css +0 -1
  728. package/web/.next/static/chunks/601d93593f5f664f.js +0 -1
  729. package/web/.next/static/chunks/6e406c42f179f73f.js +0 -1
  730. package/web/.next/static/chunks/706819c360883af1.js +0 -1
  731. package/web/.next/static/chunks/7bf35c5612fdba16.js +0 -1
  732. package/web/.next/static/chunks/b70dd4985a814b27.js +0 -1
  733. package/web/.next/static/chunks/c286aae364899eae.js +0 -1
  734. package/web/.next/static/chunks/d8685c1bf2415bc5.js +0 -1
  735. package/web/.next/static/chunks/ebebc7a215e04768.js +0 -1
  736. package/web/.next/static/chunks/f66c996402a430f5.js +0 -1
  737. /package/web/.next/static/{crqlqgDegiKDLReFt70L0 → vc6t9IqXHzQXsbrkf5_dt}/_buildManifest.js +0 -0
  738. /package/web/.next/static/{crqlqgDegiKDLReFt70L0 → vc6t9IqXHzQXsbrkf5_dt}/_clientMiddlewareManifest.json +0 -0
  739. /package/web/.next/static/{crqlqgDegiKDLReFt70L0 → vc6t9IqXHzQXsbrkf5_dt}/_ssgManifest.js +0 -0
@@ -0,0 +1,46 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { cn } from '../../../lib/utils.js';
4
+ import { InteractiveSessionStatus } from '../../../../../../packages/core/src/domain/generated/output.js';
5
+ import { Loader2, CheckCircle2, XCircle, AlertCircle } from 'lucide-react';
6
+ const STATUS_CONFIG = {
7
+ [InteractiveSessionStatus.booting]: {
8
+ label: 'Booting...',
9
+ icon: _jsx(Loader2, { className: "size-3 animate-spin" }),
10
+ className: 'bg-amber-100 text-amber-800 border-amber-200 dark:bg-amber-900/30 dark:text-amber-300 dark:border-amber-700',
11
+ },
12
+ spawning: {
13
+ label: 'Spawning process',
14
+ icon: _jsx(Loader2, { className: "size-3 animate-spin" }),
15
+ className: 'bg-blue-100 text-blue-800 border-blue-200 dark:bg-blue-900/30 dark:text-blue-300 dark:border-blue-700',
16
+ },
17
+ 'loading-context': {
18
+ label: 'Loading context',
19
+ icon: _jsx(Loader2, { className: "size-3 animate-spin" }),
20
+ className: 'bg-indigo-100 text-indigo-800 border-indigo-200 dark:bg-indigo-900/30 dark:text-indigo-300 dark:border-indigo-700',
21
+ },
22
+ [InteractiveSessionStatus.ready]: {
23
+ label: 'Ready',
24
+ icon: _jsx(CheckCircle2, { className: "size-3" }),
25
+ className: 'bg-emerald-100 text-emerald-800 border-emerald-200 dark:bg-emerald-900/30 dark:text-emerald-300 dark:border-emerald-700',
26
+ },
27
+ [InteractiveSessionStatus.stopped]: {
28
+ label: 'Stopped',
29
+ icon: _jsx(XCircle, { className: "size-3" }),
30
+ className: 'bg-zinc-100 text-zinc-700 border-zinc-200 dark:bg-zinc-800 dark:text-zinc-400 dark:border-zinc-600',
31
+ },
32
+ [InteractiveSessionStatus.error]: {
33
+ label: 'Error',
34
+ icon: _jsx(AlertCircle, { className: "size-3" }),
35
+ className: 'bg-red-100 text-red-700 border-red-200 dark:bg-red-900/30 dark:text-red-400 dark:border-red-700',
36
+ },
37
+ };
38
+ /**
39
+ * Small inline badge showing the current interactive session status.
40
+ * Maps each status to a distinct color, icon, and label.
41
+ * Animated spinner shown for booting/spawning/loading-context states.
42
+ */
43
+ export function AgentStatusBadge({ status, className }) {
44
+ const config = STATUS_CONFIG[status] ?? STATUS_CONFIG[InteractiveSessionStatus.booting];
45
+ return (_jsxs("span", { role: "status", "aria-label": `Agent status: ${config.label}`, className: cn('inline-flex items-center gap-1.5 rounded-full border px-2.5 py-0.5 text-xs font-medium', config.className, className), children: [config.icon, config.label] }));
46
+ }
@@ -0,0 +1,20 @@
1
+ import type { Meta, StoryObj } from '@storybook/react';
2
+ import { AgentStatusBadge } from './AgentStatusBadge.js';
3
+ declare const meta: Meta<typeof AgentStatusBadge>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof AgentStatusBadge>;
6
+ /** Generic booting state — shown before a specific stage is known. */
7
+ export declare const Booting: Story;
8
+ /** First boot stage: spawning the agent OS process. */
9
+ export declare const Spawning: Story;
10
+ /** Second boot stage: injecting feature context into the agent. */
11
+ export declare const LoadingContext: Story;
12
+ /** Agent is ready and accepting messages. */
13
+ export declare const Ready: Story;
14
+ /** Session was stopped manually or via auto-timeout. */
15
+ export declare const Stopped: Story;
16
+ /** Session encountered an error (e.g. process crashed). */
17
+ export declare const Error: Story;
18
+ /** All variants stacked for visual comparison. */
19
+ export declare const AllVariants: Story;
20
+ //# sourceMappingURL=AgentStatusBadge.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentStatusBadge.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/chat/AgentStatusBadge.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,gBAAgB,CAOvC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE/C,sEAAsE;AACtE,eAAO,MAAM,OAAO,EAAE,KAIrB,CAAC;AAEF,uDAAuD;AACvD,eAAO,MAAM,QAAQ,EAAE,KAItB,CAAC;AAEF,mEAAmE;AACnE,eAAO,MAAM,cAAc,EAAE,KAI5B,CAAC;AAEF,6CAA6C;AAC7C,eAAO,MAAM,KAAK,EAAE,KAInB,CAAC;AAEF,wDAAwD;AACxD,eAAO,MAAM,OAAO,EAAE,KAIrB,CAAC;AAEF,2DAA2D;AAC3D,eAAO,MAAM,KAAK,EAAE,KAInB,CAAC;AAEF,kDAAkD;AAClD,eAAO,MAAM,WAAW,EAAE,KAWzB,CAAC"}
@@ -0,0 +1,52 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { InteractiveSessionStatus } from '../../../../../../packages/core/src/domain/generated/output.js';
3
+ import { AgentStatusBadge } from './AgentStatusBadge.js';
4
+ const meta = {
5
+ title: 'Features/Chat/AgentStatusBadge',
6
+ component: AgentStatusBadge,
7
+ tags: ['autodocs'],
8
+ parameters: {
9
+ layout: 'centered',
10
+ },
11
+ };
12
+ export default meta;
13
+ /** Generic booting state — shown before a specific stage is known. */
14
+ export const Booting = {
15
+ args: {
16
+ status: InteractiveSessionStatus.booting,
17
+ },
18
+ };
19
+ /** First boot stage: spawning the agent OS process. */
20
+ export const Spawning = {
21
+ args: {
22
+ status: 'spawning',
23
+ },
24
+ };
25
+ /** Second boot stage: injecting feature context into the agent. */
26
+ export const LoadingContext = {
27
+ args: {
28
+ status: 'loading-context',
29
+ },
30
+ };
31
+ /** Agent is ready and accepting messages. */
32
+ export const Ready = {
33
+ args: {
34
+ status: InteractiveSessionStatus.ready,
35
+ },
36
+ };
37
+ /** Session was stopped manually or via auto-timeout. */
38
+ export const Stopped = {
39
+ args: {
40
+ status: InteractiveSessionStatus.stopped,
41
+ },
42
+ };
43
+ /** Session encountered an error (e.g. process crashed). */
44
+ export const Error = {
45
+ args: {
46
+ status: InteractiveSessionStatus.error,
47
+ },
48
+ };
49
+ /** All variants stacked for visual comparison. */
50
+ export const AllVariants = {
51
+ render: () => (_jsxs("div", { className: "flex flex-col gap-3 p-4", children: [_jsx(AgentStatusBadge, { status: InteractiveSessionStatus.booting }), _jsx(AgentStatusBadge, { status: "spawning" }), _jsx(AgentStatusBadge, { status: "loading-context" }), _jsx(AgentStatusBadge, { status: InteractiveSessionStatus.ready }), _jsx(AgentStatusBadge, { status: InteractiveSessionStatus.stopped }), _jsx(AgentStatusBadge, { status: InteractiveSessionStatus.error })] })),
52
+ };
@@ -0,0 +1,18 @@
1
+ import type { FormAttachment } from '../../../hooks/use-attachments.js';
2
+ export interface ChatComposerProps {
3
+ attachments: FormAttachment[];
4
+ isDragOver: boolean;
5
+ uploadError: string | null;
6
+ onDragEnter: (e: React.DragEvent) => void;
7
+ onDragLeave: (e: React.DragEvent) => void;
8
+ onDragOver: (e: React.DragEvent) => void;
9
+ onDrop: (e: React.DragEvent) => void;
10
+ onPaste: (e: React.ClipboardEvent) => void;
11
+ onRemoveAttachment: (id: string) => void;
12
+ onNotesChange: (id: string, notes: string) => void;
13
+ onPickFiles: () => void;
14
+ /** Agent/model picker rendered in the controls row. */
15
+ agentPicker?: React.ReactNode;
16
+ }
17
+ export declare function ChatComposer({ attachments, isDragOver, uploadError, onDragEnter, onDragLeave, onDragOver, onDrop, onPaste, onRemoveAttachment, onNotesChange, onPickFiles, agentPicker, }: ChatComposerProps): import("react/jsx-runtime").JSX.Element;
18
+ //# sourceMappingURL=ChatComposer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatComposer.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/chat/ChatComposer.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC;IAC1C,WAAW,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC;IAC1C,UAAU,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC;IACzC,MAAM,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC;IACrC,OAAO,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,cAAc,KAAK,IAAI,CAAC;IAC3C,kBAAkB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnD,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,uDAAuD;IACvD,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC/B;AAED,wBAAgB,YAAY,CAAC,EAC3B,WAAW,EACX,UAAU,EACV,WAAW,EACX,WAAW,EACX,WAAW,EACX,UAAU,EACV,MAAM,EACN,OAAO,EACP,kBAAkB,EAClB,aAAa,EACb,WAAW,EACX,WAAW,GACZ,EAAE,iBAAiB,2CAoFnB"}
@@ -0,0 +1,16 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import { useState, useRef } from 'react';
4
+ import { ComposerPrimitive, ThreadPrimitive } from '@assistant-ui/react';
5
+ import { SendHorizontal, CircleStop, Paperclip } from 'lucide-react';
6
+ import { cn } from '../../../lib/utils.js';
7
+ import { Tooltip, TooltipContent, TooltipTrigger } from '../../ui/tooltip.js';
8
+ import { AttachmentChip } from '../../common/attachment-chip/index.js';
9
+ export function ChatComposer({ attachments, isDragOver, uploadError, onDragEnter, onDragLeave, onDragOver, onDrop, onPaste, onRemoveAttachment, onNotesChange, onPickFiles, agentPicker, }) {
10
+ const [isFocused, setIsFocused] = useState(false);
11
+ const containerRef = useRef(null);
12
+ return (_jsx(ComposerPrimitive.Root, { className: "shrink-0 border-t p-3", children: _jsx("div", { onDragEnter: onDragEnter, onDragLeave: onDragLeave, onDragOver: onDragOver, onDrop: onDrop, className: cn('flex flex-col gap-1.5 rounded-md border-2 border-transparent p-1 transition-colors', isDragOver && 'border-primary/50 bg-primary/5'), children: _jsxs("div", { ref: containerRef, onFocus: () => setIsFocused(true), onBlur: () => setIsFocused(false), className: cn('border-input flex flex-col overflow-hidden rounded-md border shadow-xs transition-[color,box-shadow]', isFocused && 'ring-ring/50 border-ring ring-[3px]'), children: [_jsx(ComposerPrimitive.Input, { rows: 1, autoFocus: true, placeholder: "Write a message...", onPaste: onPaste, className: "max-h-[4.5rem] min-h-0 resize-none rounded-none border-0 px-3 py-2.5 text-sm shadow-none focus:outline-none focus-visible:ring-0" }), attachments.length > 0 ? (_jsx("div", { className: "flex flex-wrap items-center gap-1.5 px-3 py-2", children: attachments.map((file) => (_jsx(AttachmentChip, { name: file.name, size: file.size, mimeType: file.mimeType, path: file.path, onRemove: () => onRemoveAttachment(file.id), loading: file.loading, notes: file.notes, onNotesChange: (notes) => onNotesChange(file.id, notes) }, file.id))) })) : null, uploadError ? _jsx("p", { className: "text-destructive px-3 pb-2 text-xs", children: uploadError }) : null, _jsxs("div", { className: "border-input flex items-center gap-3 border-t px-3 py-1.5", children: [agentPicker, _jsx("div", { className: "flex-1" }), _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx("button", { type: "button", onClick: onPickFiles, "aria-label": "Attach files", className: "text-muted-foreground hover:text-foreground cursor-pointer rounded p-1 transition-colors", children: _jsx(Paperclip, { className: "h-4 w-4" }) }) }), _jsx(TooltipContent, { side: "top", children: "Attach files" })] }), _jsx(ChatComposerAction, {})] })] }) }) }));
13
+ }
14
+ function ChatComposerAction() {
15
+ return (_jsxs(_Fragment, { children: [_jsx(ThreadPrimitive.If, { running: false, children: _jsx(ComposerPrimitive.Send, { className: cn('bg-primary text-primary-foreground inline-flex h-8 w-8 shrink-0 items-center justify-center rounded-md', 'hover:bg-primary/90 disabled:pointer-events-none disabled:opacity-30', 'transition-colors'), children: _jsx(SendHorizontal, { className: "size-3.5" }) }) }), _jsx(ThreadPrimitive.If, { running: true, children: _jsx(ComposerPrimitive.Cancel, { className: cn('bg-destructive/10 text-destructive inline-flex h-8 w-8 shrink-0 items-center justify-center rounded-md', 'hover:bg-destructive/20', 'transition-colors'), children: _jsx(CircleStop, { className: "size-3.5" }) }) })] }));
16
+ }
@@ -0,0 +1,14 @@
1
+ import type { TurnStatus } from '../../../hooks/use-turn-statuses.js';
2
+ interface ChatDotIndicatorProps {
3
+ status: TurnStatus;
4
+ className?: string;
5
+ }
6
+ /**
7
+ * Dot indicator for chat buttons showing agent activity state:
8
+ * - idle: no dot (hidden)
9
+ * - processing: pulsing blue dot
10
+ * - unread: static green dot
11
+ */
12
+ export declare function ChatDotIndicator({ status, className }: ChatDotIndicatorProps): import("react/jsx-runtime").JSX.Element | null;
13
+ export {};
14
+ //# sourceMappingURL=ChatDotIndicator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatDotIndicator.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/chat/ChatDotIndicator.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D,UAAU,qBAAqB;IAC7B,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,MAAM,EAAE,SAAc,EAAE,EAAE,qBAAqB,kDAUjF"}
@@ -0,0 +1,13 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ /**
4
+ * Dot indicator for chat buttons showing agent activity state:
5
+ * - idle: no dot (hidden)
6
+ * - processing: pulsing blue dot
7
+ * - unread: static green dot
8
+ */
9
+ export function ChatDotIndicator({ status, className = '' }) {
10
+ if (status === 'idle')
11
+ return null;
12
+ return (_jsx("span", { className: `absolute -top-0.5 -right-0.5 block rounded-full ${status === 'processing' ? 'h-2.5 w-2.5 animate-pulse bg-blue-500' : 'h-2 w-2 bg-green-500'} ${className}` }));
13
+ }
@@ -0,0 +1,9 @@
1
+ import type { Meta, StoryObj } from '@storybook/react';
2
+ import { ChatDotIndicator } from './ChatDotIndicator.js';
3
+ declare const meta: Meta<typeof ChatDotIndicator>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof ChatDotIndicator>;
6
+ export declare const Idle: Story;
7
+ export declare const Processing: Story;
8
+ export declare const Unread: Story;
9
+ //# sourceMappingURL=ChatDotIndicator.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatDotIndicator.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/chat/ChatDotIndicator.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,gBAAgB,CAWvC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE/C,eAAO,MAAM,IAAI,EAAE,KAElB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAExB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,KAEpB,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { ChatDotIndicator } from './ChatDotIndicator.js';
3
+ const meta = {
4
+ title: 'Features/Chat/ChatDotIndicator',
5
+ component: ChatDotIndicator,
6
+ decorators: [
7
+ (Story) => (_jsxs("div", { className: "relative inline-block rounded-md bg-zinc-800 p-4", children: [_jsx("span", { className: "text-white", children: "Chat" }), _jsx(Story, {})] })),
8
+ ],
9
+ };
10
+ export default meta;
11
+ export const Idle = {
12
+ args: { status: 'idle' },
13
+ };
14
+ export const Processing = {
15
+ args: { status: 'processing' },
16
+ };
17
+ export const Unread = {
18
+ args: { status: 'unread' },
19
+ };
@@ -0,0 +1,19 @@
1
+ export interface ChatInputProps {
2
+ /** Called when the user submits a message (Enter key or send button). */
3
+ onSubmit: (content: string) => void;
4
+ /** Disables the input when the session is not in ready state. */
5
+ disabled?: boolean;
6
+ /** Placeholder text for the textarea. */
7
+ placeholder?: string;
8
+ className?: string;
9
+ }
10
+ /**
11
+ * Chat input component for the interactive agent chat.
12
+ *
13
+ * - Enter key submits the message
14
+ * - Shift+Enter inserts a newline
15
+ * - Disabled state prevents all interaction
16
+ * - Accessible via keyboard: tab to reach, Enter to send
17
+ */
18
+ export declare function ChatInput({ onSubmit, disabled, placeholder, className, }: ChatInputProps): import("react/jsx-runtime").JSX.Element;
19
+ //# sourceMappingURL=ChatInput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatInput.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/chat/ChatInput.tsx"],"names":[],"mappings":"AAOA,MAAM,WAAW,cAAc;IAC7B,yEAAyE;IACzE,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,iEAAiE;IACjE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,yCAAyC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,EACxB,QAAQ,EACR,QAAgB,EAChB,WAA6E,EAC7E,SAAS,GACV,EAAE,cAAc,2CA+DhB"}
@@ -0,0 +1,42 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useRef, useCallback } from 'react';
4
+ import { Send } from 'lucide-react';
5
+ import { Button } from '../../ui/button.js';
6
+ import { cn } from '../../../lib/utils.js';
7
+ /**
8
+ * Chat input component for the interactive agent chat.
9
+ *
10
+ * - Enter key submits the message
11
+ * - Shift+Enter inserts a newline
12
+ * - Disabled state prevents all interaction
13
+ * - Accessible via keyboard: tab to reach, Enter to send
14
+ */
15
+ export function ChatInput({ onSubmit, disabled = false, placeholder = 'Message the agent... (Enter to send, Shift+Enter for newline)', className, }) {
16
+ const textareaRef = useRef(null);
17
+ const handleSubmit = useCallback(() => {
18
+ const textarea = textareaRef.current;
19
+ if (!textarea)
20
+ return;
21
+ const content = textarea.value.trim();
22
+ if (!content)
23
+ return;
24
+ onSubmit(content);
25
+ textarea.value = '';
26
+ // Reset height after clearing
27
+ textarea.style.height = 'auto';
28
+ }, [onSubmit]);
29
+ const handleKeyDown = useCallback((e) => {
30
+ if (e.key === 'Enter' && !e.shiftKey) {
31
+ e.preventDefault();
32
+ handleSubmit();
33
+ }
34
+ }, [handleSubmit]);
35
+ const handleInput = useCallback((e) => {
36
+ const el = e.target;
37
+ // Auto-resize textarea up to a max height
38
+ el.style.height = 'auto';
39
+ el.style.height = `${Math.min(el.scrollHeight, 160)}px`;
40
+ }, []);
41
+ return (_jsxs("div", { className: cn('bg-background flex items-end gap-2 border-t p-3', className), children: [_jsx("textarea", { ref: textareaRef, rows: 1, disabled: disabled, placeholder: placeholder, "aria-label": "Message input", onKeyDown: handleKeyDown, onChange: handleInput, className: cn('bg-background min-h-[36px] flex-1 resize-none rounded-md border px-3 py-2 text-sm', 'focus:ring-ring focus:ring-2 focus:ring-offset-0 focus:outline-none', 'placeholder:text-muted-foreground', 'disabled:cursor-not-allowed disabled:opacity-50', 'max-h-40 overflow-y-auto') }), _jsx(Button, { type: "button", size: "icon-sm", disabled: disabled, onClick: handleSubmit, "aria-label": "Send message", className: "shrink-0", children: _jsx(Send, { className: "size-4" }) })] }));
42
+ }
@@ -0,0 +1,14 @@
1
+ import type { Meta, StoryObj } from '@storybook/react';
2
+ import { ChatInput } from './ChatInput.js';
3
+ declare const meta: Meta<typeof ChatInput>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof ChatInput>;
6
+ /** Default empty state — ready for input. */
7
+ export declare const Empty: Story;
8
+ /** With pre-filled text to show how content looks. */
9
+ export declare const WithText: Story;
10
+ /** Disabled state — shown when the session is not in ready state. */
11
+ export declare const Disabled: Story;
12
+ /** Custom placeholder text for when the agent is booting. */
13
+ export declare const BootingPlaceholder: Story;
14
+ //# sourceMappingURL=ChatInput.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatInput.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/chat/ChatInput.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,SAAS,CA2BhC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,SAAS,CAAC,CAAC;AAExC,6CAA6C;AAC7C,eAAO,MAAM,KAAK,EAAE,KAKnB,CAAC;AAEF,sDAAsD;AACtD,eAAO,MAAM,QAAQ,EAAE,KAetB,CAAC;AAEF,qEAAqE;AACrE,eAAO,MAAM,QAAQ,EAAE,KAKtB,CAAC;AAEF,6DAA6D;AAC7D,eAAO,MAAM,kBAAkB,EAAE,KAKhC,CAAC"}
@@ -0,0 +1,56 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { ChatInput } from './ChatInput.js';
3
+ const meta = {
4
+ title: 'Features/Chat/ChatInput',
5
+ component: ChatInput,
6
+ tags: ['autodocs'],
7
+ parameters: {
8
+ layout: 'padded',
9
+ },
10
+ decorators: [
11
+ (Story) => (_jsx("div", { style: {
12
+ maxWidth: '480px',
13
+ border: '1px solid var(--color-border)',
14
+ borderRadius: '8px',
15
+ overflow: 'hidden',
16
+ }, children: _jsx(Story, {}) })),
17
+ ],
18
+ args: {
19
+ onSubmit: (content) => {
20
+ // eslint-disable-next-line no-console
21
+ console.log('Message submitted:', content);
22
+ },
23
+ },
24
+ };
25
+ export default meta;
26
+ /** Default empty state — ready for input. */
27
+ export const Empty = {
28
+ args: {
29
+ disabled: false,
30
+ placeholder: 'Message the agent... (Enter to send, Shift+Enter for newline)',
31
+ },
32
+ };
33
+ /** With pre-filled text to show how content looks. */
34
+ export const WithText = {
35
+ render: (args) => {
36
+ return (_jsxs("div", { style: { maxWidth: '480px' }, children: [_jsx(ChatInput, { ...args }), _jsx("p", { style: { padding: '8px', fontSize: '12px', color: 'gray' }, children: "Note: The textarea starts empty; text is shown here for demonstration." })] }));
37
+ },
38
+ args: {
39
+ disabled: false,
40
+ placeholder: 'Can you run the tests for the auth module?',
41
+ },
42
+ };
43
+ /** Disabled state — shown when the session is not in ready state. */
44
+ export const Disabled = {
45
+ args: {
46
+ disabled: true,
47
+ placeholder: 'Start the agent to begin chatting...',
48
+ },
49
+ };
50
+ /** Custom placeholder text for when the agent is booting. */
51
+ export const BootingPlaceholder = {
52
+ args: {
53
+ disabled: true,
54
+ placeholder: 'Waiting for agent to be ready...',
55
+ },
56
+ };
@@ -0,0 +1,21 @@
1
+ import { InteractiveMessageRole } from '../../../../../../packages/core/src/domain/generated/output.js';
2
+ export interface ChatMessageBubbleProps {
3
+ /** Role of the message author */
4
+ role: InteractiveMessageRole;
5
+ /** Full message content */
6
+ content: string;
7
+ /** When the message was created */
8
+ timestamp?: Date | string;
9
+ /** Whether this message is currently streaming (assistant only) */
10
+ streaming?: boolean;
11
+ className?: string;
12
+ }
13
+ /**
14
+ * Renders a single chat message bubble with full markdown support.
15
+ *
16
+ * - User messages: right-aligned, primary background
17
+ * - Assistant messages: left-aligned, muted background, markdown rendered
18
+ * - When streaming=true and role=assistant: trailing blinking cursor is shown
19
+ */
20
+ export declare function ChatMessageBubble({ role, content, timestamp, streaming, className, }: ChatMessageBubbleProps): import("react/jsx-runtime").JSX.Element;
21
+ //# sourceMappingURL=ChatMessageBubble.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatMessageBubble.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/chat/ChatMessageBubble.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAqC9E,MAAM,WAAW,sBAAsB;IACrC,iCAAiC;IACjC,IAAI,EAAE,sBAAsB,CAAC;IAC7B,2BAA2B;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IAC1B,mEAAmE;IACnE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAWD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,IAAI,EACJ,OAAO,EACP,SAAS,EACT,SAAiB,EACjB,SAAS,GACV,EAAE,sBAAsB,2CAkCxB"}
@@ -0,0 +1,43 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import Markdown from 'react-markdown';
4
+ import { cn } from '../../../lib/utils.js';
5
+ import { InteractiveMessageRole } from '../../../../../../packages/core/src/domain/generated/output.js';
6
+ const markdownComponents = {
7
+ p: ({ children }) => _jsx("p", { className: "mb-2 leading-relaxed last:mb-0", children: children }),
8
+ strong: ({ children }) => _jsx("strong", { className: "font-semibold", children: children }),
9
+ em: ({ children }) => _jsx("em", { className: "italic", children: children }),
10
+ code: ({ children, className }) => className ? (_jsx("code", { className: `${className} text-[11px]`, children: children })) : (_jsx("code", { className: "bg-background/50 rounded-md px-1.5 py-0.5 font-mono text-xs", children: children })),
11
+ pre: ({ children }) => (_jsx("pre", { className: "bg-background/50 my-2 overflow-x-auto rounded-md p-3 font-mono text-xs leading-relaxed", children: children })),
12
+ ul: ({ children }) => _jsx("ul", { className: "mb-2 list-disc pl-4 last:mb-0", children: children }),
13
+ ol: ({ children }) => _jsx("ol", { className: "mb-2 list-decimal pl-4 last:mb-0", children: children }),
14
+ li: ({ children }) => _jsx("li", { className: "mb-0.5", children: children }),
15
+ h1: ({ children }) => _jsx("h1", { className: "mb-1 text-base font-bold", children: children }),
16
+ h2: ({ children }) => _jsx("h2", { className: "mb-1 text-sm font-bold", children: children }),
17
+ h3: ({ children }) => _jsx("h3", { className: "mb-1 text-sm font-semibold", children: children }),
18
+ a: ({ children, href }) => (_jsx("a", { href: href, className: "text-blue-500 underline", target: "_blank", rel: "noopener noreferrer", children: children })),
19
+ blockquote: ({ children }) => (_jsx("blockquote", { className: "border-muted-foreground/30 my-1 border-l-2 pl-3 italic opacity-80", children: children })),
20
+ };
21
+ function formatTime(ts) {
22
+ try {
23
+ const d = typeof ts === 'string' ? new Date(ts) : ts;
24
+ return d.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' });
25
+ }
26
+ catch {
27
+ return '';
28
+ }
29
+ }
30
+ /**
31
+ * Renders a single chat message bubble with full markdown support.
32
+ *
33
+ * - User messages: right-aligned, primary background
34
+ * - Assistant messages: left-aligned, muted background, markdown rendered
35
+ * - When streaming=true and role=assistant: trailing blinking cursor is shown
36
+ */
37
+ export function ChatMessageBubble({ role, content, timestamp, streaming = false, className, }) {
38
+ const isUser = role === InteractiveMessageRole.user;
39
+ const timeStr = timestamp ? formatTime(timestamp) : null;
40
+ return (_jsxs("div", { className: cn('flex w-full flex-col', isUser ? 'items-end' : 'items-start', className), "aria-label": isUser ? 'Your message' : 'Agent message', children: [_jsxs("div", { className: cn('max-w-[85%] rounded-2xl px-4 py-2.5 text-sm leading-relaxed', isUser
41
+ ? 'bg-primary text-primary-foreground rounded-br-sm'
42
+ : 'bg-muted text-foreground rounded-bl-sm'), children: [isUser ? (_jsx("span", { className: "whitespace-pre-wrap", children: content })) : (_jsx(Markdown, { components: markdownComponents, children: content })), streaming && !isUser ? (_jsx("span", { "aria-label": "Agent is typing", className: "ml-0.5 inline-block h-3.5 w-0.5 animate-pulse bg-current align-middle opacity-75" })) : null] }), timeStr && !streaming ? (_jsx("span", { className: "text-muted-foreground mt-0.5 px-1 text-[10px]", children: timeStr })) : null] }));
43
+ }
@@ -0,0 +1,24 @@
1
+ import type { Meta, StoryObj } from '@storybook/react';
2
+ import { ChatMessageBubble } from './ChatMessageBubble.js';
3
+ declare const meta: Meta<typeof ChatMessageBubble>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof ChatMessageBubble>;
6
+ /** User message — right-aligned with primary color. */
7
+ export declare const UserMessage: Story;
8
+ /** Assistant message — left-aligned with muted background. */
9
+ export declare const AssistantMessage: Story;
10
+ /** Assistant message that is still streaming — shows blinking cursor. */
11
+ export declare const StreamingAssistant: Story;
12
+ /** Assistant message with a code block. */
13
+ export declare const AssistantWithCode: Story;
14
+ /** Long user message — should wrap cleanly within the bubble. */
15
+ export declare const LongUserMessage: Story;
16
+ /** Multi-line assistant response. */
17
+ export declare const MultilineAssistant: Story;
18
+ /** Assistant message with rich markdown — headers, lists, bold, links. */
19
+ export declare const AssistantWithMarkdown: Story;
20
+ /** Message with timestamp. */
21
+ export declare const WithTimestamp: Story;
22
+ /** Conversation thread — both roles rendered together. */
23
+ export declare const ConversationThread: Story;
24
+ //# sourceMappingURL=ChatMessageBubble.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatMessageBubble.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/chat/ChatMessageBubble.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,iBAAiB,CAcxC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEhD,uDAAuD;AACvD,eAAO,MAAM,WAAW,EAAE,KAMzB,CAAC;AAEF,8DAA8D;AAC9D,eAAO,MAAM,gBAAgB,EAAE,KAO9B,CAAC;AAEF,yEAAyE;AACzE,eAAO,MAAM,kBAAkB,EAAE,KAMhC,CAAC;AAEF,2CAA2C;AAC3C,eAAO,MAAM,iBAAiB,EAAE,KAO/B,CAAC;AAEF,iEAAiE;AACjE,eAAO,MAAM,eAAe,EAAE,KAO7B,CAAC;AAEF,qCAAqC;AACrC,eAAO,MAAM,kBAAkB,EAAE,KAOhC,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,qBAAqB,EAAE,KAOnC,CAAC;AAEF,8BAA8B;AAC9B,eAAO,MAAM,aAAa,EAAE,KAO3B,CAAC;AAEF,0DAA0D;AAC1D,eAAO,MAAM,kBAAkB,EAAE,KAoBhC,CAAC"}
@@ -0,0 +1,84 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { InteractiveMessageRole } from '../../../../../../packages/core/src/domain/generated/output.js';
3
+ import { ChatMessageBubble } from './ChatMessageBubble.js';
4
+ const meta = {
5
+ title: 'Features/Chat/ChatMessageBubble',
6
+ component: ChatMessageBubble,
7
+ tags: ['autodocs'],
8
+ parameters: {
9
+ layout: 'padded',
10
+ },
11
+ decorators: [
12
+ (Story) => (_jsx("div", { style: { maxWidth: '480px', padding: '16px' }, children: _jsx(Story, {}) })),
13
+ ],
14
+ };
15
+ export default meta;
16
+ /** User message — right-aligned with primary color. */
17
+ export const UserMessage = {
18
+ args: {
19
+ role: InteractiveMessageRole.user,
20
+ content: 'Can you show me the current test coverage for the auth module?',
21
+ streaming: false,
22
+ },
23
+ };
24
+ /** Assistant message — left-aligned with muted background. */
25
+ export const AssistantMessage = {
26
+ args: {
27
+ role: InteractiveMessageRole.assistant,
28
+ content: 'Sure! Let me check the test coverage for you.\n\nThe auth module currently has 87% line coverage. The main gaps are in the OAuth callback handler and the token refresh logic.',
29
+ streaming: false,
30
+ },
31
+ };
32
+ /** Assistant message that is still streaming — shows blinking cursor. */
33
+ export const StreamingAssistant = {
34
+ args: {
35
+ role: InteractiveMessageRole.assistant,
36
+ content: 'I can see the coverage report. Let me analyze the gaps',
37
+ streaming: true,
38
+ },
39
+ };
40
+ /** Assistant message with a code block. */
41
+ export const AssistantWithCode = {
42
+ args: {
43
+ role: InteractiveMessageRole.assistant,
44
+ content: 'Here is the failing test:\n\n```typescript\ndescribe("auth", () => {\n it("should refresh token", async () => {\n const token = await refreshToken("expired-token");\n expect(token).toBeDefined();\n });\n});\n```\n\nThe test fails because `refreshToken` throws when the token is expired.',
45
+ streaming: false,
46
+ },
47
+ };
48
+ /** Long user message — should wrap cleanly within the bubble. */
49
+ export const LongUserMessage = {
50
+ args: {
51
+ role: InteractiveMessageRole.user,
52
+ content: 'I need you to help me understand why the CI pipeline is failing on the integration tests. The logs show a database connection timeout after about 30 seconds but only on the CI runner, not locally. Can you look at the test setup and suggest what might be different?',
53
+ streaming: false,
54
+ },
55
+ };
56
+ /** Multi-line assistant response. */
57
+ export const MultilineAssistant = {
58
+ args: {
59
+ role: InteractiveMessageRole.assistant,
60
+ content: 'I can investigate that for you.\n\nLooking at the CI configuration:\n1. The test database uses a different hostname in CI (`db` vs `localhost`)\n2. The connection pool timeout is set to 10s locally but uses default (30s) in CI\n3. The `DB_POOL_MAX` env var is not set in CI\n\nLet me check the actual test setup file to confirm.',
61
+ streaming: false,
62
+ },
63
+ };
64
+ /** Assistant message with rich markdown — headers, lists, bold, links. */
65
+ export const AssistantWithMarkdown = {
66
+ args: {
67
+ role: InteractiveMessageRole.assistant,
68
+ content: '## Analysis Results\n\nI found **3 issues** in the auth module:\n\n1. Missing `try/catch` in token refresh\n2. Expired session cleanup is *not* running\n3. Rate limiter threshold too low\n\n> Note: The rate limiter was changed in [PR #142](https://example.com)\n\nLet me fix these for you.',
69
+ streaming: false,
70
+ },
71
+ };
72
+ /** Message with timestamp. */
73
+ export const WithTimestamp = {
74
+ args: {
75
+ role: InteractiveMessageRole.assistant,
76
+ content: 'Here is the test result. All 42 tests passed.',
77
+ timestamp: new Date().toISOString(),
78
+ streaming: false,
79
+ },
80
+ };
81
+ /** Conversation thread — both roles rendered together. */
82
+ export const ConversationThread = {
83
+ render: () => (_jsxs("div", { className: "flex flex-col gap-3 p-4", children: [_jsx(ChatMessageBubble, { role: InteractiveMessageRole.assistant, content: "Hey, how can I help you with this feature?", timestamp: new Date(Date.now() - 120000).toISOString() }), _jsx(ChatMessageBubble, { role: InteractiveMessageRole.user, content: "Can you run the tests and show me the results?", timestamp: new Date(Date.now() - 60000).toISOString() }), _jsx(ChatMessageBubble, { role: InteractiveMessageRole.assistant, content: "Running tests now...", streaming: true })] })),
84
+ };
@@ -0,0 +1,25 @@
1
+ import type { InteractiveMessage } from '../../../../../../packages/core/src/domain/generated/output.js';
2
+ export interface ChatMessageListProps {
3
+ /** Persisted message history for this feature */
4
+ messages: InteractiveMessage[];
5
+ /**
6
+ * Current streaming text buffer.
7
+ * When non-null, an in-progress assistant bubble is shown at the bottom.
8
+ */
9
+ streamingContent: string | null;
10
+ /** Whether the agent is thinking (waiting for first token) */
11
+ isAgentThinking?: boolean;
12
+ /** Activity log entries from tool use / thinking events */
13
+ activityLog?: string[];
14
+ /** Show a loading skeleton while the initial message history is fetching */
15
+ isLoading?: boolean;
16
+ /** Empty-state message shown when there are no messages and no session */
17
+ emptyStateMessage?: string;
18
+ }
19
+ /**
20
+ * Scrollable message list rendering all persisted messages plus an optional
21
+ * in-progress streaming bubble at the bottom. Auto-scrolls to the newest
22
+ * message whenever messages or streamingContent changes.
23
+ */
24
+ export declare function ChatMessageList({ messages, streamingContent, isAgentThinking, activityLog, isLoading, emptyStateMessage, }: ChatMessageListProps): import("react/jsx-runtime").JSX.Element;
25
+ //# sourceMappingURL=ChatMessageList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatMessageList.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/chat/ChatMessageList.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAI/E,MAAM,WAAW,oBAAoB;IACnC,iDAAiD;IACjD,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAC/B;;;OAGG;IACH,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,8DAA8D;IAC9D,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,2DAA2D;IAC3D,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,4EAA4E;IAC5E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,0EAA0E;IAC1E,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,EAC9B,QAAQ,EACR,gBAAgB,EAChB,eAAuB,EACvB,WAAgB,EAChB,SAAiB,EACjB,iBAAsC,GACvC,EAAE,oBAAoB,2CAwEtB"}