devchain-cli 0.18.0 → 0.19.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (637) hide show
  1. package/README.md +8 -6
  2. package/dist/node_modules/@devchain/shared/schemas/export-schema.d.ts +6 -6
  3. package/dist/node_modules/@devchain/shared/tsconfig.tsbuildinfo +1 -1
  4. package/dist/node_modules/@devchain/shared/tunnel-protocol.d.ts.map +1 -1
  5. package/dist/node_modules/@devchain/shared/tunnel-protocol.js.map +1 -1
  6. package/dist/server/common/errors/error-types.js +5 -0
  7. package/dist/server/common/errors/error-types.js.map +1 -1
  8. package/dist/server/common/errors/service-unavailable.error.js +1 -1
  9. package/dist/server/common/errors/service-unavailable.error.js.map +1 -1
  10. package/dist/server/common/http/runtime-route-classification.d.ts +15 -0
  11. package/dist/server/common/http/runtime-route-classification.js +56 -0
  12. package/dist/server/common/http/runtime-route-classification.js.map +1 -0
  13. package/dist/server/common/http/send-allowlisted-file.d.ts +7 -0
  14. package/dist/server/common/http/send-allowlisted-file.js +46 -0
  15. package/dist/server/common/http/send-allowlisted-file.js.map +1 -0
  16. package/dist/server/common/http/swagger.d.ts +2 -0
  17. package/dist/server/common/http/swagger.js +73 -0
  18. package/dist/server/common/http/swagger.js.map +1 -0
  19. package/dist/server/main.js +8 -20
  20. package/dist/server/main.js.map +1 -1
  21. package/dist/server/modules/agent-message-delivery/agent-message-delivery.service.d.ts +6 -2
  22. package/dist/server/modules/agent-message-delivery/agent-message-delivery.service.js +54 -3
  23. package/dist/server/modules/agent-message-delivery/agent-message-delivery.service.js.map +1 -1
  24. package/dist/server/modules/agent-message-delivery/dtos/delivery.types.d.ts +21 -0
  25. package/dist/server/modules/agent-message-delivery/subscribers/chat-message-delivery.subscriber.js +2 -1
  26. package/dist/server/modules/agent-message-delivery/subscribers/chat-message-delivery.subscriber.js.map +1 -1
  27. package/dist/server/modules/agents/controllers/agents.controller.js +6 -0
  28. package/dist/server/modules/agents/controllers/agents.controller.js.map +1 -1
  29. package/dist/server/modules/chat/controllers/chat-settings.controller.js +1 -0
  30. package/dist/server/modules/chat/controllers/chat-settings.controller.js.map +1 -1
  31. package/dist/server/modules/chat/controllers/chat.controller.js +1 -0
  32. package/dist/server/modules/chat/controllers/chat.controller.js.map +1 -1
  33. package/dist/server/modules/chat/services/chat-session-invite.service.js +6 -0
  34. package/dist/server/modules/chat/services/chat-session-invite.service.js.map +1 -1
  35. package/dist/server/modules/chat/services/chat-settings.service.js +3 -1
  36. package/dist/server/modules/chat/services/chat-settings.service.js.map +1 -1
  37. package/dist/server/modules/chat/services/chat.service.js +4 -0
  38. package/dist/server/modules/chat/services/chat.service.js.map +1 -1
  39. package/dist/server/modules/cloud/controllers/activity-proxy.controller.js +2 -1
  40. package/dist/server/modules/cloud/controllers/activity-proxy.controller.js.map +1 -1
  41. package/dist/server/modules/cloud/controllers/auth-callback.controller.js +1 -0
  42. package/dist/server/modules/cloud/controllers/auth-callback.controller.js.map +1 -1
  43. package/dist/server/modules/cloud/controllers/devices-proxy.controller.js +2 -0
  44. package/dist/server/modules/cloud/controllers/devices-proxy.controller.js.map +1 -1
  45. package/dist/server/modules/cloud/controllers/egress-config.controller.js +1 -0
  46. package/dist/server/modules/cloud/controllers/egress-config.controller.js.map +1 -1
  47. package/dist/server/modules/cloud/controllers/preferences-proxy.controller.js +2 -0
  48. package/dist/server/modules/cloud/controllers/preferences-proxy.controller.js.map +1 -1
  49. package/dist/server/modules/cloud/controllers/qr-initiate-proxy.controller.js +2 -0
  50. package/dist/server/modules/cloud/controllers/qr-initiate-proxy.controller.js.map +1 -1
  51. package/dist/server/modules/cloud/services/cloud-egress-bridge.service.js +4 -0
  52. package/dist/server/modules/cloud/services/cloud-egress-bridge.service.js.map +1 -1
  53. package/dist/server/modules/cloud/services/cloud-session-manager.service.js +6 -3
  54. package/dist/server/modules/cloud/services/cloud-session-manager.service.js.map +1 -1
  55. package/dist/server/modules/cloud/services/egress-queue.service.js +7 -4
  56. package/dist/server/modules/cloud/services/egress-queue.service.js.map +1 -1
  57. package/dist/server/modules/cloud/services/encrypted-token-store.service.js +3 -1
  58. package/dist/server/modules/cloud/services/encrypted-token-store.service.js.map +1 -1
  59. package/dist/server/modules/cloud/services/project-activity-reporter.service.d.ts +2 -13
  60. package/dist/server/modules/cloud/services/project-activity-reporter.service.js +5 -56
  61. package/dist/server/modules/cloud/services/project-activity-reporter.service.js.map +1 -1
  62. package/dist/server/modules/cloud/services/project-egress-config.service.d.ts +3 -2
  63. package/dist/server/modules/cloud/services/project-egress-config.service.js +45 -9
  64. package/dist/server/modules/cloud/services/project-egress-config.service.js.map +1 -1
  65. package/dist/server/modules/cloud/services/refresh-gate.service.js +2 -1
  66. package/dist/server/modules/cloud/services/refresh-gate.service.js.map +1 -1
  67. package/dist/server/modules/cloud-tunnel/cloud-tunnel.module.js.map +1 -1
  68. package/dist/server/modules/cloud-tunnel/services/ask-user-question-push-gate.service.js +6 -1
  69. package/dist/server/modules/cloud-tunnel/services/ask-user-question-push-gate.service.js.map +1 -1
  70. package/dist/server/modules/cloud-tunnel/services/lifecycle-operation-tracker.js +1 -3
  71. package/dist/server/modules/cloud-tunnel/services/lifecycle-operation-tracker.js.map +1 -1
  72. package/dist/server/modules/cloud-tunnel/services/mobile-board-rpc.service.js +2 -0
  73. package/dist/server/modules/cloud-tunnel/services/mobile-board-rpc.service.js.map +1 -1
  74. package/dist/server/modules/cloud-tunnel/services/mobile-chat-rpc.service.js +10 -0
  75. package/dist/server/modules/cloud-tunnel/services/mobile-chat-rpc.service.js.map +1 -1
  76. package/dist/server/modules/cloud-tunnel/services/tunnel-client.service.js +21 -14
  77. package/dist/server/modules/cloud-tunnel/services/tunnel-client.service.js.map +1 -1
  78. package/dist/server/modules/cloud-tunnel/services/tunnel-event-forwarder.service.js +7 -1
  79. package/dist/server/modules/cloud-tunnel/services/tunnel-event-forwarder.service.js.map +1 -1
  80. package/dist/server/modules/cloud-tunnel/services/tunnel-handler.service.js +8 -0
  81. package/dist/server/modules/cloud-tunnel/services/tunnel-handler.service.js.map +1 -1
  82. package/dist/server/modules/cloud-tunnel/services/tunnel-keypair.service.js +3 -1
  83. package/dist/server/modules/cloud-tunnel/services/tunnel-keypair.service.js.map +1 -1
  84. package/dist/server/modules/cloud-tunnel/services/tunnel-push-crypto.service.js +4 -1
  85. package/dist/server/modules/cloud-tunnel/services/tunnel-push-crypto.service.js.map +1 -1
  86. package/dist/server/modules/cloud-tunnel/services/tunnel-rpc-crypto.service.js +4 -1
  87. package/dist/server/modules/cloud-tunnel/services/tunnel-rpc-crypto.service.js.map +1 -1
  88. package/dist/server/modules/cloud-tunnel/services/tunnel-viewport-crypto.service.js +4 -1
  89. package/dist/server/modules/cloud-tunnel/services/tunnel-viewport-crypto.service.js.map +1 -1
  90. package/dist/server/modules/cloud-tunnel/services/viewport-streamer.service.js +7 -3
  91. package/dist/server/modules/cloud-tunnel/services/viewport-streamer.service.js.map +1 -1
  92. package/dist/server/modules/codebase-overview-analyzer/controllers/codebase-overview.controller.d.ts +1 -1
  93. package/dist/server/modules/codebase-overview-analyzer/controllers/codebase-overview.controller.js +5 -0
  94. package/dist/server/modules/codebase-overview-analyzer/controllers/codebase-overview.controller.js.map +1 -1
  95. package/dist/server/modules/codebase-overview-analyzer/repositories/overview-scope.repository.js +3 -0
  96. package/dist/server/modules/codebase-overview-analyzer/repositories/overview-scope.repository.js.map +1 -1
  97. package/dist/server/modules/codebase-overview-analyzer/services/codebase-overview-analyzer.service.d.ts +1 -1
  98. package/dist/server/modules/codebase-overview-analyzer/services/codebase-overview-analyzer.service.js +15 -4
  99. package/dist/server/modules/codebase-overview-analyzer/services/codebase-overview-analyzer.service.js.map +1 -1
  100. package/dist/server/modules/codebase-overview-analyzer/services/dependency-aggregation.service.d.ts +1 -1
  101. package/dist/server/modules/codebase-overview-analyzer/services/district-splitting.service.d.ts +1 -1
  102. package/dist/server/modules/codebase-overview-analyzer/services/evidence-query.service.d.ts +1 -1
  103. package/dist/server/modules/codebase-overview-analyzer/services/go-adapter.d.ts +1 -1
  104. package/dist/server/modules/codebase-overview-analyzer/services/hotspot-scoring.service.d.ts +1 -1
  105. package/dist/server/modules/codebase-overview-analyzer/services/hotspot-scoring.service.js +3 -2
  106. package/dist/server/modules/codebase-overview-analyzer/services/hotspot-scoring.service.js.map +1 -1
  107. package/dist/server/modules/codebase-overview-analyzer/services/java-adapter.d.ts +1 -1
  108. package/dist/server/modules/codebase-overview-analyzer/services/language-adapter-registry.service.d.ts +1 -1
  109. package/dist/server/modules/codebase-overview-analyzer/services/language-adapter-registry.service.js +10 -9
  110. package/dist/server/modules/codebase-overview-analyzer/services/language-adapter-registry.service.js.map +1 -1
  111. package/dist/server/modules/codebase-overview-analyzer/services/php-adapter.d.ts +1 -1
  112. package/dist/server/modules/codebase-overview-analyzer/services/python-adapter.d.ts +1 -1
  113. package/dist/server/modules/codebase-overview-analyzer/services/ruby-adapter.d.ts +1 -1
  114. package/dist/server/modules/codebase-overview-analyzer/services/rust-adapter.d.ts +1 -1
  115. package/dist/server/modules/codebase-overview-analyzer/services/typescript-adapter.d.ts +1 -1
  116. package/dist/{node_modules/@devchain/codebase-overview/types.d.ts → server/modules/codebase-overview-analyzer/types/overview.types.d.ts} +0 -1
  117. package/dist/server/modules/codebase-overview-analyzer/types/overview.types.js +3 -0
  118. package/dist/server/modules/codebase-overview-analyzer/types/overview.types.js.map +1 -0
  119. package/dist/server/modules/core/controllers/health.controller.js +1 -0
  120. package/dist/server/modules/core/controllers/health.controller.js.map +1 -1
  121. package/dist/server/modules/core/controllers/preflight.controller.js +1 -0
  122. package/dist/server/modules/core/controllers/preflight.controller.js.map +1 -1
  123. package/dist/server/modules/core/controllers/runtime.controller.js +5 -2
  124. package/dist/server/modules/core/controllers/runtime.controller.js.map +1 -1
  125. package/dist/server/modules/core/services/antigravity-trusted-workspaces.service.js +1 -3
  126. package/dist/server/modules/core/services/antigravity-trusted-workspaces.service.js.map +1 -1
  127. package/dist/server/modules/core/services/copilot-trusted-folders.service.js +1 -3
  128. package/dist/server/modules/core/services/copilot-trusted-folders.service.js.map +1 -1
  129. package/dist/server/modules/core/services/health.service.js +1 -0
  130. package/dist/server/modules/core/services/health.service.js.map +1 -1
  131. package/dist/server/modules/core/services/main-readiness-checker.service.js +3 -0
  132. package/dist/server/modules/core/services/main-readiness-checker.service.js.map +1 -1
  133. package/dist/server/modules/core/services/normal-readiness-checker.service.js +3 -0
  134. package/dist/server/modules/core/services/normal-readiness-checker.service.js.map +1 -1
  135. package/dist/server/modules/core/services/preflight.service.js +4 -0
  136. package/dist/server/modules/core/services/preflight.service.js.map +1 -1
  137. package/dist/server/modules/documents/controllers/documents.controller.js +1 -0
  138. package/dist/server/modules/documents/controllers/documents.controller.js.map +1 -1
  139. package/dist/server/modules/e2ee/controllers/e2ee-pairing.controller.js +1 -0
  140. package/dist/server/modules/e2ee/controllers/e2ee-pairing.controller.js.map +1 -1
  141. package/dist/server/modules/e2ee/controllers/e2ee-trust.controller.js +1 -0
  142. package/dist/server/modules/e2ee/controllers/e2ee-trust.controller.js.map +1 -1
  143. package/dist/server/modules/e2ee/services/e2ee-device-store.service.js +2 -0
  144. package/dist/server/modules/e2ee/services/e2ee-device-store.service.js.map +1 -1
  145. package/dist/server/modules/e2ee/services/e2ee-keypair.service.js +4 -2
  146. package/dist/server/modules/e2ee/services/e2ee-keypair.service.js.map +1 -1
  147. package/dist/server/modules/e2ee/services/e2ee-pairing.service.js +3 -1
  148. package/dist/server/modules/e2ee/services/e2ee-pairing.service.js.map +1 -1
  149. package/dist/server/modules/e2ee/services/e2ee-trust.service.js +2 -0
  150. package/dist/server/modules/e2ee/services/e2ee-trust.service.js.map +1 -1
  151. package/dist/server/modules/epics/controllers/epic-comments.controller.js +2 -0
  152. package/dist/server/modules/epics/controllers/epic-comments.controller.js.map +1 -1
  153. package/dist/server/modules/epics/controllers/epics.controller.js +1 -0
  154. package/dist/server/modules/epics/controllers/epics.controller.js.map +1 -1
  155. package/dist/server/modules/epics/services/epics.service.js +5 -1
  156. package/dist/server/modules/epics/services/epics.service.js.map +1 -1
  157. package/dist/server/modules/epics/subscribers/epic-assignment-notifier.subscriber.js +6 -1
  158. package/dist/server/modules/epics/subscribers/epic-assignment-notifier.subscriber.js.map +1 -1
  159. package/dist/server/modules/epics/subscribers/sub-epic-created-notifier.subscriber.js +4 -1
  160. package/dist/server/modules/epics/subscribers/sub-epic-created-notifier.subscriber.js.map +1 -1
  161. package/dist/server/modules/events/catalog/agent.message.sent.d.ts +238 -0
  162. package/dist/server/modules/events/catalog/agent.message.sent.js +64 -0
  163. package/dist/server/modules/events/catalog/agent.message.sent.js.map +1 -0
  164. package/dist/server/modules/events/catalog/broadcast-metadata.d.ts +1 -0
  165. package/dist/server/modules/events/catalog/broadcast-registry.js +50 -0
  166. package/dist/server/modules/events/catalog/broadcast-registry.js.map +1 -1
  167. package/dist/server/modules/events/catalog/index.d.ts +252 -0
  168. package/dist/server/modules/events/catalog/index.js +9 -1
  169. package/dist/server/modules/events/catalog/index.js.map +1 -1
  170. package/dist/server/modules/events/catalog/session.started.d.ts +3 -0
  171. package/dist/server/modules/events/catalog/session.started.js +1 -0
  172. package/dist/server/modules/events/catalog/session.started.js.map +1 -1
  173. package/dist/server/modules/events/catalog/session.starting.d.ts +18 -0
  174. package/dist/server/modules/events/catalog/session.starting.js +13 -0
  175. package/dist/server/modules/events/catalog/session.starting.js.map +1 -0
  176. package/dist/server/modules/events/controllers/event-log.controller.js +1 -0
  177. package/dist/server/modules/events/controllers/event-log.controller.js.map +1 -1
  178. package/dist/server/modules/events/services/catalog-broadcaster.service.js +4 -0
  179. package/dist/server/modules/events/services/catalog-broadcaster.service.js.map +1 -1
  180. package/dist/server/modules/events/services/event-log.service.js +3 -0
  181. package/dist/server/modules/events/services/event-log.service.js.map +1 -1
  182. package/dist/server/modules/events/services/events-stream.service.js +2 -1
  183. package/dist/server/modules/events/services/events-stream.service.js.map +1 -1
  184. package/dist/server/modules/events/services/events.service.js +2 -0
  185. package/dist/server/modules/events/services/events.service.js.map +1 -1
  186. package/dist/server/modules/git/controllers/git.controller.js +1 -0
  187. package/dist/server/modules/git/controllers/git.controller.js.map +1 -1
  188. package/dist/server/modules/git/services/git.service.js +2 -0
  189. package/dist/server/modules/git/services/git.service.js.map +1 -1
  190. package/dist/server/modules/guests/services/guest-health.service.js +5 -1
  191. package/dist/server/modules/guests/services/guest-health.service.js.map +1 -1
  192. package/dist/server/modules/guests/services/guests.service.js +4 -0
  193. package/dist/server/modules/guests/services/guests.service.js.map +1 -1
  194. package/dist/server/modules/hooks/controllers/hooks.controller.js +1 -0
  195. package/dist/server/modules/hooks/controllers/hooks.controller.js.map +1 -1
  196. package/dist/server/modules/hooks/services/copilot-hooks-config.service.js +1 -3
  197. package/dist/server/modules/hooks/services/copilot-hooks-config.service.js.map +1 -1
  198. package/dist/server/modules/hooks/services/hooks.service.js +4 -0
  199. package/dist/server/modules/hooks/services/hooks.service.js.map +1 -1
  200. package/dist/server/modules/hooks/services/pending-ask-user-question.service.js +1 -3
  201. package/dist/server/modules/hooks/services/pending-ask-user-question.service.js.map +1 -1
  202. package/dist/server/modules/mcp/controllers/mcp-http.controller.js +2 -1
  203. package/dist/server/modules/mcp/controllers/mcp-http.controller.js.map +1 -1
  204. package/dist/server/modules/mcp/controllers/mcp-sdk.controller.js +3 -0
  205. package/dist/server/modules/mcp/controllers/mcp-sdk.controller.js.map +1 -1
  206. package/dist/server/modules/mcp/controllers/mcp-test.controller.js +1 -0
  207. package/dist/server/modules/mcp/controllers/mcp-test.controller.js.map +1 -1
  208. package/dist/server/modules/mcp/gateways/mcp.gateway.js +2 -0
  209. package/dist/server/modules/mcp/gateways/mcp.gateway.js.map +1 -1
  210. package/dist/server/modules/mcp/services/handlers/chat-tools.js +48 -21
  211. package/dist/server/modules/mcp/services/handlers/chat-tools.js.map +1 -1
  212. package/dist/server/modules/mcp/services/instructions-resolver.js +2 -0
  213. package/dist/server/modules/mcp/services/instructions-resolver.js.map +1 -1
  214. package/dist/server/modules/mcp/services/mcp-server.service.js +1 -3
  215. package/dist/server/modules/mcp/services/mcp-server.service.js.map +1 -1
  216. package/dist/server/modules/mcp/services/mcp.service.js +20 -1
  217. package/dist/server/modules/mcp/services/mcp.service.js.map +1 -1
  218. package/dist/server/modules/mcp/services/utils/resource-resolver.js +1 -0
  219. package/dist/server/modules/mcp/services/utils/resource-resolver.js.map +1 -1
  220. package/dist/server/modules/mcp/services/utils/session-context-resolver.js +4 -0
  221. package/dist/server/modules/mcp/services/utils/session-context-resolver.js.map +1 -1
  222. package/dist/server/modules/mcp/tool-descriptors/chat.metadata.js +2 -2
  223. package/dist/server/modules/mcp/tool-descriptors/chat.metadata.js.map +1 -1
  224. package/dist/server/modules/metrics/controllers/metrics.controller.js +1 -0
  225. package/dist/server/modules/metrics/controllers/metrics.controller.js.map +1 -1
  226. package/dist/server/modules/metrics/services/metrics.service.js +7 -6
  227. package/dist/server/modules/metrics/services/metrics.service.js.map +1 -1
  228. package/dist/server/modules/orchestrator/docker/services/docker.service.js +2 -0
  229. package/dist/server/modules/orchestrator/docker/services/docker.service.js.map +1 -1
  230. package/dist/server/modules/orchestrator/docker/services/worktree-mount-discovery.service.js +1 -0
  231. package/dist/server/modules/orchestrator/docker/services/worktree-mount-discovery.service.js.map +1 -1
  232. package/dist/server/modules/orchestrator/git/controllers/git.controller.js +2 -0
  233. package/dist/server/modules/orchestrator/git/controllers/git.controller.js.map +1 -1
  234. package/dist/server/modules/orchestrator/git/services/git-worktree.service.js +3 -1
  235. package/dist/server/modules/orchestrator/git/services/git-worktree.service.js.map +1 -1
  236. package/dist/server/modules/orchestrator/proxy/services/orchestrator-proxy.service.js +3 -1
  237. package/dist/server/modules/orchestrator/proxy/services/orchestrator-proxy.service.js.map +1 -1
  238. package/dist/server/modules/orchestrator/sync/controllers/overview.controller.js +1 -0
  239. package/dist/server/modules/orchestrator/sync/controllers/overview.controller.js.map +1 -1
  240. package/dist/server/modules/orchestrator/sync/services/lazy-fetch.service.js +7 -4
  241. package/dist/server/modules/orchestrator/sync/services/lazy-fetch.service.js.map +1 -1
  242. package/dist/server/modules/orchestrator/sync/services/task-merge.service.js +18 -11
  243. package/dist/server/modules/orchestrator/sync/services/task-merge.service.js.map +1 -1
  244. package/dist/server/modules/orchestrator/ui/app/lib/worktrees.js +3 -0
  245. package/dist/server/modules/orchestrator/ui/app/lib/worktrees.js.map +1 -1
  246. package/dist/server/modules/orchestrator/worktrees/controllers/worktrees.controller.js +8 -4
  247. package/dist/server/modules/orchestrator/worktrees/controllers/worktrees.controller.js.map +1 -1
  248. package/dist/server/modules/orchestrator/worktrees/local-worktrees.store.js +1 -0
  249. package/dist/server/modules/orchestrator/worktrees/local-worktrees.store.js.map +1 -1
  250. package/dist/server/modules/orchestrator/worktrees/runtime/container-runtime.js +1 -0
  251. package/dist/server/modules/orchestrator/worktrees/runtime/container-runtime.js.map +1 -1
  252. package/dist/server/modules/orchestrator/worktrees/runtime/process-runtime.js +1 -0
  253. package/dist/server/modules/orchestrator/worktrees/runtime/process-runtime.js.map +1 -1
  254. package/dist/server/modules/orchestrator/worktrees/services/worktrees.service.js +12 -2
  255. package/dist/server/modules/orchestrator/worktrees/services/worktrees.service.js.map +1 -1
  256. package/dist/server/modules/profiles/controllers/profiles.controller.js +1 -0
  257. package/dist/server/modules/profiles/controllers/profiles.controller.js.map +1 -1
  258. package/dist/server/modules/profiles/controllers/provider-configs.controller.js +2 -0
  259. package/dist/server/modules/profiles/controllers/provider-configs.controller.js.map +1 -1
  260. package/dist/server/modules/profiles/services/provider-configs.service.js +2 -0
  261. package/dist/server/modules/profiles/services/provider-configs.service.js.map +1 -1
  262. package/dist/server/modules/projects/controllers/projects.controller.js +5 -0
  263. package/dist/server/modules/projects/controllers/projects.controller.js.map +1 -1
  264. package/dist/server/modules/projects/dtos/template-upgrade.dto.js +7 -0
  265. package/dist/server/modules/projects/dtos/template-upgrade.dto.js.map +1 -1
  266. package/dist/server/modules/projects/services/main-project-bootstrap.service.js +2 -1
  267. package/dist/server/modules/projects/services/main-project-bootstrap.service.js.map +1 -1
  268. package/dist/server/modules/projects/services/project-provider-provisioning.service.js +2 -0
  269. package/dist/server/modules/projects/services/project-provider-provisioning.service.js.map +1 -1
  270. package/dist/server/modules/projects/services/project-registry-import.service.js +5 -0
  271. package/dist/server/modules/projects/services/project-registry-import.service.js.map +1 -1
  272. package/dist/server/modules/projects/services/project-template-upgrade.service.js +7 -3
  273. package/dist/server/modules/projects/services/project-template-upgrade.service.js.map +1 -1
  274. package/dist/server/modules/projects/services/projects.service.js +11 -0
  275. package/dist/server/modules/projects/services/projects.service.js.map +1 -1
  276. package/dist/server/modules/projects/template-codec/codecs/agents.codec.js +7 -9
  277. package/dist/server/modules/projects/template-codec/codecs/agents.codec.js.map +1 -1
  278. package/dist/server/modules/projects/template-codec/codecs/presets.codec.js +6 -8
  279. package/dist/server/modules/projects/template-codec/codecs/presets.codec.js.map +1 -1
  280. package/dist/server/modules/projects/template-codec/codecs/profiles.codec.js +13 -15
  281. package/dist/server/modules/projects/template-codec/codecs/profiles.codec.js.map +1 -1
  282. package/dist/server/modules/projects/template-codec/codecs/project-settings.codec.js +6 -8
  283. package/dist/server/modules/projects/template-codec/codecs/project-settings.codec.js.map +1 -1
  284. package/dist/server/modules/projects/template-codec/codecs/prompts.codec.js +8 -10
  285. package/dist/server/modules/projects/template-codec/codecs/prompts.codec.js.map +1 -1
  286. package/dist/server/modules/projects/template-codec/codecs/provider-efforts.codec.js +6 -8
  287. package/dist/server/modules/projects/template-codec/codecs/provider-efforts.codec.js.map +1 -1
  288. package/dist/server/modules/projects/template-codec/codecs/provider-models.codec.js +6 -8
  289. package/dist/server/modules/projects/template-codec/codecs/provider-models.codec.js.map +1 -1
  290. package/dist/server/modules/projects/template-codec/codecs/provider-settings.codec.js +6 -8
  291. package/dist/server/modules/projects/template-codec/codecs/provider-settings.codec.js.map +1 -1
  292. package/dist/server/modules/projects/template-codec/codecs/scheduled-epics.codec.js +7 -9
  293. package/dist/server/modules/projects/template-codec/codecs/scheduled-epics.codec.js.map +1 -1
  294. package/dist/server/modules/projects/template-codec/codecs/statuses.codec.js +8 -10
  295. package/dist/server/modules/projects/template-codec/codecs/statuses.codec.js.map +1 -1
  296. package/dist/server/modules/projects/template-codec/codecs/subscribers.codec.js +7 -9
  297. package/dist/server/modules/projects/template-codec/codecs/subscribers.codec.js.map +1 -1
  298. package/dist/server/modules/projects/template-codec/codecs/teams.codec.js +8 -10
  299. package/dist/server/modules/projects/template-codec/codecs/teams.codec.js.map +1 -1
  300. package/dist/server/modules/projects/template-codec/codecs/watchers.codec.js +7 -9
  301. package/dist/server/modules/projects/template-codec/codecs/watchers.codec.js.map +1 -1
  302. package/dist/server/modules/projects/template-codec/import-context.js +2 -2
  303. package/dist/server/modules/projects/template-codec/import-context.js.map +1 -1
  304. package/dist/server/modules/projects/template-codec/template-pipeline.js +1 -0
  305. package/dist/server/modules/projects/template-codec/template-pipeline.js.map +1 -1
  306. package/dist/server/modules/prompts/controllers/prompts.controller.js +1 -0
  307. package/dist/server/modules/prompts/controllers/prompts.controller.js.map +1 -1
  308. package/dist/server/modules/providers/adapters/antigravity.adapter.js +7 -6
  309. package/dist/server/modules/providers/adapters/antigravity.adapter.js.map +1 -1
  310. package/dist/server/modules/providers/adapters/claude.adapter.js +13 -15
  311. package/dist/server/modules/providers/adapters/claude.adapter.js.map +1 -1
  312. package/dist/server/modules/providers/adapters/codex.adapter.js +17 -18
  313. package/dist/server/modules/providers/adapters/codex.adapter.js.map +1 -1
  314. package/dist/server/modules/providers/adapters/copilot.adapter.js +14 -12
  315. package/dist/server/modules/providers/adapters/copilot.adapter.js.map +1 -1
  316. package/dist/server/modules/providers/adapters/opencode.adapter.js +8 -10
  317. package/dist/server/modules/providers/adapters/opencode.adapter.js.map +1 -1
  318. package/dist/server/modules/providers/adapters/provider-adapter.factory.js +2 -0
  319. package/dist/server/modules/providers/adapters/provider-adapter.factory.js.map +1 -1
  320. package/dist/server/modules/providers/controllers/provider-efforts.controller.js +2 -0
  321. package/dist/server/modules/providers/controllers/provider-efforts.controller.js.map +1 -1
  322. package/dist/server/modules/providers/controllers/provider-models.controller.js +3 -0
  323. package/dist/server/modules/providers/controllers/provider-models.controller.js.map +1 -1
  324. package/dist/server/modules/providers/controllers/providers.controller.js +8 -0
  325. package/dist/server/modules/providers/controllers/providers.controller.js.map +1 -1
  326. package/dist/server/modules/providers/services/mcp-provider-registration.service.js +4 -0
  327. package/dist/server/modules/providers/services/mcp-provider-registration.service.js.map +1 -1
  328. package/dist/server/modules/providers/services/mcp-registration/antigravity-mcp-registration.adapter.js +1 -0
  329. package/dist/server/modules/providers/services/mcp-registration/antigravity-mcp-registration.adapter.js.map +1 -1
  330. package/dist/server/modules/providers/services/mcp-registration/cli-mcp-registration.adapter.js +2 -0
  331. package/dist/server/modules/providers/services/mcp-registration/cli-mcp-registration.adapter.js.map +1 -1
  332. package/dist/server/modules/providers/services/mcp-registration/config-file-mcp-registration.adapter.js +1 -0
  333. package/dist/server/modules/providers/services/mcp-registration/config-file-mcp-registration.adapter.js.map +1 -1
  334. package/dist/server/modules/providers/services/mcp-registration/mcp-registration.port.js +4 -0
  335. package/dist/server/modules/providers/services/mcp-registration/mcp-registration.port.js.map +1 -1
  336. package/dist/server/modules/providers/services/provider-discovery.service.js +2 -0
  337. package/dist/server/modules/providers/services/provider-discovery.service.js.map +1 -1
  338. package/dist/server/modules/providers/services/provider-effort-seeding.service.js +2 -0
  339. package/dist/server/modules/providers/services/provider-effort-seeding.service.js.map +1 -1
  340. package/dist/server/modules/providers/services/provider-mcp-ensure.service.js +4 -1
  341. package/dist/server/modules/providers/services/provider-mcp-ensure.service.js.map +1 -1
  342. package/dist/server/modules/providers/services/provider-project-sync.service.js +3 -0
  343. package/dist/server/modules/providers/services/provider-project-sync.service.js.map +1 -1
  344. package/dist/server/modules/providers/services/provider-state-manager.service.js +4 -0
  345. package/dist/server/modules/providers/services/provider-state-manager.service.js.map +1 -1
  346. package/dist/server/modules/realtime/services/realtime-broadcast.service.js +1 -3
  347. package/dist/server/modules/realtime/services/realtime-broadcast.service.js.map +1 -1
  348. package/dist/server/modules/records/controllers/records.controller.js +1 -0
  349. package/dist/server/modules/records/controllers/records.controller.js.map +1 -1
  350. package/dist/server/modules/registry/controllers/registry.controller.js +5 -0
  351. package/dist/server/modules/registry/controllers/registry.controller.js.map +1 -1
  352. package/dist/server/modules/registry/controllers/templates.controller.d.ts +1 -1
  353. package/dist/server/modules/registry/controllers/templates.controller.js +2 -0
  354. package/dist/server/modules/registry/controllers/templates.controller.js.map +1 -1
  355. package/dist/server/modules/registry/dtos/registry-error.js +1 -0
  356. package/dist/server/modules/registry/dtos/registry-error.js.map +1 -1
  357. package/dist/server/modules/registry/dtos/registry.dto.js +3 -0
  358. package/dist/server/modules/registry/dtos/registry.dto.js.map +1 -1
  359. package/dist/server/modules/registry/services/registry-client.service.js +1 -0
  360. package/dist/server/modules/registry/services/registry-client.service.js.map +1 -1
  361. package/dist/server/modules/registry/services/registry-orchestration.service.js +5 -2
  362. package/dist/server/modules/registry/services/registry-orchestration.service.js.map +1 -1
  363. package/dist/server/modules/registry/services/template-cache.service.js +4 -1
  364. package/dist/server/modules/registry/services/template-cache.service.js.map +1 -1
  365. package/dist/server/modules/registry/services/unified-template.service.js +1 -0
  366. package/dist/server/modules/registry/services/unified-template.service.js.map +1 -1
  367. package/dist/server/modules/reviews/controllers/reviews.controller.js +1 -0
  368. package/dist/server/modules/reviews/controllers/reviews.controller.js.map +1 -1
  369. package/dist/server/modules/reviews/services/review-suggestion-applier.service.js +5 -1
  370. package/dist/server/modules/reviews/services/review-suggestion-applier.service.js.map +1 -1
  371. package/dist/server/modules/reviews/services/reviews.service.js +4 -1
  372. package/dist/server/modules/reviews/services/reviews.service.js.map +1 -1
  373. package/dist/server/modules/reviews/subscribers/review-comment-notifier.subscriber.js +5 -1
  374. package/dist/server/modules/reviews/subscribers/review-comment-notifier.subscriber.js.map +1 -1
  375. package/dist/server/modules/runtime-context-capture/claude-launch-settings-materializer.service.js +1 -0
  376. package/dist/server/modules/runtime-context-capture/claude-launch-settings-materializer.service.js.map +1 -1
  377. package/dist/server/modules/runtime-context-capture/runtime-context-capture.service.js +3 -1
  378. package/dist/server/modules/runtime-context-capture/runtime-context-capture.service.js.map +1 -1
  379. package/dist/server/modules/scheduled-epics/controllers/scheduled-epics.controller.js +1 -0
  380. package/dist/server/modules/scheduled-epics/controllers/scheduled-epics.controller.js.map +1 -1
  381. package/dist/server/modules/scheduled-epics/services/scheduled-epic-runner.service.js +5 -2
  382. package/dist/server/modules/scheduled-epics/services/scheduled-epic-runner.service.js.map +1 -1
  383. package/dist/server/modules/scheduled-epics/services/scheduled-epics.service.js +2 -0
  384. package/dist/server/modules/scheduled-epics/services/scheduled-epics.service.js.map +1 -1
  385. package/dist/server/modules/seeders/seeders/0014_seed_preserve_project_egress_defaults.d.ts +3 -0
  386. package/dist/server/modules/seeders/seeders/0014_seed_preserve_project_egress_defaults.js +85 -0
  387. package/dist/server/modules/seeders/seeders/0014_seed_preserve_project_egress_defaults.js.map +1 -0
  388. package/dist/server/modules/seeders/services/data-seeder.service.js +9 -1
  389. package/dist/server/modules/seeders/services/data-seeder.service.js.map +1 -1
  390. package/dist/server/modules/session-reader/adapters/antigravity-session-reader.adapter.js +9 -4
  391. package/dist/server/modules/session-reader/adapters/antigravity-session-reader.adapter.js.map +1 -1
  392. package/dist/server/modules/session-reader/adapters/claude-session-reader.adapter.js +6 -3
  393. package/dist/server/modules/session-reader/adapters/claude-session-reader.adapter.js.map +1 -1
  394. package/dist/server/modules/session-reader/adapters/codex-session-reader.adapter.js +6 -3
  395. package/dist/server/modules/session-reader/adapters/codex-session-reader.adapter.js.map +1 -1
  396. package/dist/server/modules/session-reader/adapters/copilot-session-reader.adapter.js +7 -4
  397. package/dist/server/modules/session-reader/adapters/copilot-session-reader.adapter.js.map +1 -1
  398. package/dist/server/modules/session-reader/adapters/opencode-session-reader.adapter.js +8 -4
  399. package/dist/server/modules/session-reader/adapters/opencode-session-reader.adapter.js.map +1 -1
  400. package/dist/server/modules/session-reader/adapters/session-reader-adapter.factory.js +1 -3
  401. package/dist/server/modules/session-reader/adapters/session-reader-adapter.factory.js.map +1 -1
  402. package/dist/server/modules/session-reader/controllers/session-reader.controller.js +3 -0
  403. package/dist/server/modules/session-reader/controllers/session-reader.controller.js.map +1 -1
  404. package/dist/server/modules/session-reader/data/pricing.json +20 -20
  405. package/dist/server/modules/session-reader/readers/antigravity-metrics.reader.js +2 -0
  406. package/dist/server/modules/session-reader/readers/antigravity-metrics.reader.js.map +1 -1
  407. package/dist/server/modules/session-reader/readers/antigravity-transcript.reader.js +1 -0
  408. package/dist/server/modules/session-reader/readers/antigravity-transcript.reader.js.map +1 -1
  409. package/dist/server/modules/session-reader/readers/opencode-sqlite.reader.js +4 -0
  410. package/dist/server/modules/session-reader/readers/opencode-sqlite.reader.js.map +1 -1
  411. package/dist/server/modules/session-reader/services/codex-provider-session-id-backfill.service.js +5 -2
  412. package/dist/server/modules/session-reader/services/codex-provider-session-id-backfill.service.js.map +1 -1
  413. package/dist/server/modules/session-reader/services/pricing.service.js +1 -0
  414. package/dist/server/modules/session-reader/services/pricing.service.js.map +1 -1
  415. package/dist/server/modules/session-reader/services/session-cache.service.js +13 -10
  416. package/dist/server/modules/session-reader/services/session-cache.service.js.map +1 -1
  417. package/dist/server/modules/session-reader/services/session-reader.service.js +11 -3
  418. package/dist/server/modules/session-reader/services/session-reader.service.js.map +1 -1
  419. package/dist/server/modules/session-reader/services/subagent-locator.service.js +1 -3
  420. package/dist/server/modules/session-reader/services/subagent-locator.service.js.map +1 -1
  421. package/dist/server/modules/session-reader/services/subagent-resolver.service.js +4 -1
  422. package/dist/server/modules/session-reader/services/subagent-resolver.service.js.map +1 -1
  423. package/dist/server/modules/session-reader/services/transcript-path-validator.service.js +2 -0
  424. package/dist/server/modules/session-reader/services/transcript-path-validator.service.js.map +1 -1
  425. package/dist/server/modules/session-reader/services/transcript-persistence.listener.js +7 -1
  426. package/dist/server/modules/session-reader/services/transcript-persistence.listener.js.map +1 -1
  427. package/dist/server/modules/session-reader/services/transcript-watcher-rehydrator.service.js +3 -1
  428. package/dist/server/modules/session-reader/services/transcript-watcher-rehydrator.service.js.map +1 -1
  429. package/dist/server/modules/session-reader/services/transcript-watcher.service.js +5 -2
  430. package/dist/server/modules/session-reader/services/transcript-watcher.service.js.map +1 -1
  431. package/dist/server/modules/session-reader/session-reader.module.js +6 -0
  432. package/dist/server/modules/session-reader/session-reader.module.js.map +1 -1
  433. package/dist/server/modules/sessions/controllers/sessions.controller.js +4 -0
  434. package/dist/server/modules/sessions/controllers/sessions.controller.js.map +1 -1
  435. package/dist/server/modules/sessions/dtos/active-session-info.dto.js +1 -0
  436. package/dist/server/modules/sessions/dtos/active-session-info.dto.js.map +1 -1
  437. package/dist/server/modules/sessions/services/active-session-lookup.service.js +1 -0
  438. package/dist/server/modules/sessions/services/active-session-lookup.service.js.map +1 -1
  439. package/dist/server/modules/sessions/services/delivery-failure-notifier.service.js +2 -0
  440. package/dist/server/modules/sessions/services/delivery-failure-notifier.service.js.map +1 -1
  441. package/dist/server/modules/sessions/services/message-activity-stream.service.js +2 -1
  442. package/dist/server/modules/sessions/services/message-activity-stream.service.js.map +1 -1
  443. package/dist/server/modules/sessions/services/message-enqueue.service.js +1 -0
  444. package/dist/server/modules/sessions/services/message-enqueue.service.js.map +1 -1
  445. package/dist/server/modules/sessions/services/message-log.service.js +3 -5
  446. package/dist/server/modules/sessions/services/message-log.service.js.map +1 -1
  447. package/dist/server/modules/sessions/services/session-coordinator.service.js +1 -3
  448. package/dist/server/modules/sessions/services/session-coordinator.service.js.map +1 -1
  449. package/dist/server/modules/sessions/services/session-launcher-facade.service.js +4 -1
  450. package/dist/server/modules/sessions/services/session-launcher-facade.service.js.map +1 -1
  451. package/dist/server/modules/sessions/services/session-lifecycle-facade.service.js +3 -1
  452. package/dist/server/modules/sessions/services/session-lifecycle-facade.service.js.map +1 -1
  453. package/dist/server/modules/sessions/services/session-runtime/cleanup-stack.js +1 -3
  454. package/dist/server/modules/sessions/services/session-runtime/cleanup-stack.js.map +1 -1
  455. package/dist/server/modules/sessions/services/session-runtime/session-launch-pipeline.service.js +26 -0
  456. package/dist/server/modules/sessions/services/session-runtime/session-launch-pipeline.service.js.map +1 -1
  457. package/dist/server/modules/sessions/services/session-runtime/session-restore-pipeline.service.js +11 -0
  458. package/dist/server/modules/sessions/services/session-runtime/session-restore-pipeline.service.js.map +1 -1
  459. package/dist/server/modules/sessions/services/session-runtime/session-runtime.service.js +2 -0
  460. package/dist/server/modules/sessions/services/session-runtime/session-runtime.service.js.map +1 -1
  461. package/dist/server/modules/sessions/services/sessions-message-log-read.facade.js +1 -0
  462. package/dist/server/modules/sessions/services/sessions-message-log-read.facade.js.map +1 -1
  463. package/dist/server/modules/sessions/services/sessions-message-pool.service.js +11 -1
  464. package/dist/server/modules/sessions/services/sessions-message-pool.service.js.map +1 -1
  465. package/dist/server/modules/sessions/services/sessions.service.js +15 -0
  466. package/dist/server/modules/sessions/services/sessions.service.js.map +1 -1
  467. package/dist/server/modules/settings/controllers/settings.controller.js +2 -0
  468. package/dist/server/modules/settings/controllers/settings.controller.js.map +1 -1
  469. package/dist/server/modules/settings/local/delegates/core-settings.delegate.js +2 -0
  470. package/dist/server/modules/settings/local/delegates/core-settings.delegate.js.map +1 -1
  471. package/dist/server/modules/settings/local/delegates/message-pool-settings.delegate.js +1 -0
  472. package/dist/server/modules/settings/local/delegates/message-pool-settings.delegate.js.map +1 -1
  473. package/dist/server/modules/settings/local/delegates/preset-settings.delegate.js +1 -0
  474. package/dist/server/modules/settings/local/delegates/preset-settings.delegate.js.map +1 -1
  475. package/dist/server/modules/settings/local/delegates/registry-settings.delegate.js +1 -0
  476. package/dist/server/modules/settings/local/delegates/registry-settings.delegate.js.map +1 -1
  477. package/dist/server/modules/settings/local/delegates/skills-settings.delegate.js +1 -0
  478. package/dist/server/modules/settings/local/delegates/skills-settings.delegate.js.map +1 -1
  479. package/dist/server/modules/settings/services/settings.service.js +7 -0
  480. package/dist/server/modules/settings/services/settings.service.js.map +1 -1
  481. package/dist/server/modules/skills/adapters/github-skill-source.base.js +9 -0
  482. package/dist/server/modules/skills/adapters/github-skill-source.base.js.map +1 -1
  483. package/dist/server/modules/skills/adapters/local-skill-source.adapter.js +3 -0
  484. package/dist/server/modules/skills/adapters/local-skill-source.adapter.js.map +1 -1
  485. package/dist/server/modules/skills/adapters/skill-parsing.utils.js +3 -0
  486. package/dist/server/modules/skills/adapters/skill-parsing.utils.js.map +1 -1
  487. package/dist/server/modules/skills/controllers/community-sources.controller.js +1 -0
  488. package/dist/server/modules/skills/controllers/community-sources.controller.js.map +1 -1
  489. package/dist/server/modules/skills/controllers/local-sources.controller.js +1 -0
  490. package/dist/server/modules/skills/controllers/local-sources.controller.js.map +1 -1
  491. package/dist/server/modules/skills/controllers/skills.controller.js +2 -0
  492. package/dist/server/modules/skills/controllers/skills.controller.js.map +1 -1
  493. package/dist/server/modules/skills/services/community-sources.service.js +3 -0
  494. package/dist/server/modules/skills/services/community-sources.service.js.map +1 -1
  495. package/dist/server/modules/skills/services/local-sources.service.js +3 -0
  496. package/dist/server/modules/skills/services/local-sources.service.js.map +1 -1
  497. package/dist/server/modules/skills/services/skill-source-registry.service.js +2 -0
  498. package/dist/server/modules/skills/services/skill-source-registry.service.js.map +1 -1
  499. package/dist/server/modules/skills/services/skill-sync.service.js +5 -1
  500. package/dist/server/modules/skills/services/skill-sync.service.js.map +1 -1
  501. package/dist/server/modules/skills/services/skills.service.js +3 -0
  502. package/dist/server/modules/skills/services/skills.service.js.map +1 -1
  503. package/dist/server/modules/statuses/controllers/statuses.controller.js +1 -0
  504. package/dist/server/modules/statuses/controllers/statuses.controller.js.map +1 -1
  505. package/dist/server/modules/storage/db/transaction-runner.js +1 -0
  506. package/dist/server/modules/storage/db/transaction-runner.js.map +1 -1
  507. package/dist/server/modules/storage/local/delegates/agent-profile.delegate.js +31 -21
  508. package/dist/server/modules/storage/local/delegates/agent-profile.delegate.js.map +1 -1
  509. package/dist/server/modules/storage/local/delegates/agent.delegate.js +12 -9
  510. package/dist/server/modules/storage/local/delegates/agent.delegate.js.map +1 -1
  511. package/dist/server/modules/storage/local/delegates/base-storage.delegate.js +3 -0
  512. package/dist/server/modules/storage/local/delegates/base-storage.delegate.js.map +1 -1
  513. package/dist/server/modules/storage/local/delegates/document.delegate.js +1 -0
  514. package/dist/server/modules/storage/local/delegates/document.delegate.js.map +1 -1
  515. package/dist/server/modules/storage/local/delegates/epic.delegate.js +1 -0
  516. package/dist/server/modules/storage/local/delegates/epic.delegate.js.map +1 -1
  517. package/dist/server/modules/storage/local/delegates/profile-provider-config.delegate.js +1 -0
  518. package/dist/server/modules/storage/local/delegates/profile-provider-config.delegate.js.map +1 -1
  519. package/dist/server/modules/storage/local/delegates/project.delegate.js +24 -15
  520. package/dist/server/modules/storage/local/delegates/project.delegate.js.map +1 -1
  521. package/dist/server/modules/storage/local/delegates/prompt.delegate.js +1 -0
  522. package/dist/server/modules/storage/local/delegates/prompt.delegate.js.map +1 -1
  523. package/dist/server/modules/storage/local/delegates/provider.delegate.js +1 -0
  524. package/dist/server/modules/storage/local/delegates/provider.delegate.js.map +1 -1
  525. package/dist/server/modules/storage/local/delegates/record.delegate.js +1 -0
  526. package/dist/server/modules/storage/local/delegates/record.delegate.js.map +1 -1
  527. package/dist/server/modules/storage/local/delegates/review.delegate.js +1 -0
  528. package/dist/server/modules/storage/local/delegates/review.delegate.js.map +1 -1
  529. package/dist/server/modules/storage/local/delegates/session.delegate.js +15 -11
  530. package/dist/server/modules/storage/local/delegates/session.delegate.js.map +1 -1
  531. package/dist/server/modules/storage/local/delegates/skill-source.delegate.js +45 -12
  532. package/dist/server/modules/storage/local/delegates/skill-source.delegate.js.map +1 -1
  533. package/dist/server/modules/storage/local/local-storage.service.js +21 -0
  534. package/dist/server/modules/storage/local/local-storage.service.js.map +1 -1
  535. package/dist/server/modules/subscribers/controllers/subscribers.controller.js +1 -0
  536. package/dist/server/modules/subscribers/controllers/subscribers.controller.js.map +1 -1
  537. package/dist/server/modules/subscribers/events/event-fields-catalog.js +35 -0
  538. package/dist/server/modules/subscribers/events/event-fields-catalog.js.map +1 -1
  539. package/dist/server/modules/subscribers/services/automation-scheduler.service.js +7 -7
  540. package/dist/server/modules/subscribers/services/automation-scheduler.service.js.map +1 -1
  541. package/dist/server/modules/subscribers/services/subscriber-executor.service.js +14 -3
  542. package/dist/server/modules/subscribers/services/subscriber-executor.service.js.map +1 -1
  543. package/dist/server/modules/subscribers/services/subscribers.service.js +2 -1
  544. package/dist/server/modules/subscribers/services/subscribers.service.js.map +1 -1
  545. package/dist/server/modules/teams/controllers/teams.controller.js +2 -0
  546. package/dist/server/modules/teams/controllers/teams.controller.js.map +1 -1
  547. package/dist/server/modules/teams/services/teams.service.js +6 -0
  548. package/dist/server/modules/teams/services/teams.service.js.map +1 -1
  549. package/dist/server/modules/teams/storage/teams.store.js +20 -17
  550. package/dist/server/modules/teams/storage/teams.store.js.map +1 -1
  551. package/dist/server/modules/teams/subscribers/team-config-updated-notifier.subscriber.js +5 -1
  552. package/dist/server/modules/teams/subscribers/team-config-updated-notifier.subscriber.js.map +1 -1
  553. package/dist/server/modules/teams/subscribers/team-membership-changed-notifier.subscriber.js +4 -1
  554. package/dist/server/modules/teams/subscribers/team-membership-changed-notifier.subscriber.js.map +1 -1
  555. package/dist/server/modules/terminal/gateways/terminal.gateway.js +21 -9
  556. package/dist/server/modules/terminal/gateways/terminal.gateway.js.map +1 -1
  557. package/dist/server/modules/terminal/services/guest-delivery.service.js +1 -0
  558. package/dist/server/modules/terminal/services/guest-delivery.service.js.map +1 -1
  559. package/dist/server/modules/terminal/services/process-executor/fake-process-executor.js +6 -9
  560. package/dist/server/modules/terminal/services/process-executor/fake-process-executor.js.map +1 -1
  561. package/dist/server/modules/terminal/services/process-executor/routing-process-executor.js +2 -0
  562. package/dist/server/modules/terminal/services/process-executor/routing-process-executor.js.map +1 -1
  563. package/dist/server/modules/terminal/services/pty.service.js +7 -1
  564. package/dist/server/modules/terminal/services/pty.service.js.map +1 -1
  565. package/dist/server/modules/terminal/services/terminal-activity.service.js +8 -3
  566. package/dist/server/modules/terminal/services/terminal-activity.service.js.map +1 -1
  567. package/dist/server/modules/terminal/services/terminal-delivery-facade.service.js +1 -0
  568. package/dist/server/modules/terminal/services/terminal-delivery-facade.service.js.map +1 -1
  569. package/dist/server/modules/terminal/services/terminal-io/delivery.js +5 -0
  570. package/dist/server/modules/terminal/services/terminal-io/delivery.js.map +1 -1
  571. package/dist/server/modules/terminal/services/terminal-io/terminal-io.service.js +8 -7
  572. package/dist/server/modules/terminal/services/terminal-io/terminal-io.service.js.map +1 -1
  573. package/dist/server/modules/terminal/services/terminal-key-input/terminal-key-input.facade.js +2 -0
  574. package/dist/server/modules/terminal/services/terminal-key-input/terminal-key-input.facade.js.map +1 -1
  575. package/dist/server/modules/terminal/services/terminal-registry-rehydrator.service.js +3 -0
  576. package/dist/server/modules/terminal/services/terminal-registry-rehydrator.service.js.map +1 -1
  577. package/dist/server/modules/terminal/services/terminal-seed.service.js +8 -4
  578. package/dist/server/modules/terminal/services/terminal-seed.service.js.map +1 -1
  579. package/dist/server/modules/terminal/services/terminal-send-scheduler.service.js +4 -1
  580. package/dist/server/modules/terminal/services/terminal-send-scheduler.service.js.map +1 -1
  581. package/dist/server/modules/terminal/services/terminal-session/terminal-session-registry.js +2 -1
  582. package/dist/server/modules/terminal/services/terminal-session/terminal-session-registry.js.map +1 -1
  583. package/dist/server/modules/terminal/services/terminal-session/terminal-session.js +22 -16
  584. package/dist/server/modules/terminal/services/terminal-session/terminal-session.js.map +1 -1
  585. package/dist/server/modules/terminal/services/terminal-stream.service.js +7 -5
  586. package/dist/server/modules/terminal/services/terminal-stream.service.js.map +1 -1
  587. package/dist/server/modules/terminal/services/terminal-viewport/terminal-viewport.facade.js +2 -0
  588. package/dist/server/modules/terminal/services/terminal-viewport/terminal-viewport.facade.js.map +1 -1
  589. package/dist/server/modules/terminal/terminal-key-input.module.js.map +1 -1
  590. package/dist/server/modules/terminal/terminal-viewport.module.js.map +1 -1
  591. package/dist/server/modules/terminal/utils/ansi-sanitizer.js +2 -1
  592. package/dist/server/modules/terminal/utils/ansi-sanitizer.js.map +1 -1
  593. package/dist/server/modules/ui/ui-root.d.ts +3 -0
  594. package/dist/server/modules/ui/ui-root.js +33 -0
  595. package/dist/server/modules/ui/ui-root.js.map +1 -0
  596. package/dist/server/modules/ui/ui.controller.d.ts +5 -1
  597. package/dist/server/modules/ui/ui.controller.js +35 -20
  598. package/dist/server/modules/ui/ui.controller.js.map +1 -1
  599. package/dist/server/modules/ui/ui.module.js +15 -1
  600. package/dist/server/modules/ui/ui.module.js.map +1 -1
  601. package/dist/server/modules/ui/ui.tokens.d.ts +3 -0
  602. package/dist/server/modules/ui/ui.tokens.js +7 -0
  603. package/dist/server/modules/ui/ui.tokens.js.map +1 -0
  604. package/dist/server/modules/watchers/controllers/watchers.controller.js +1 -0
  605. package/dist/server/modules/watchers/controllers/watchers.controller.js.map +1 -1
  606. package/dist/server/modules/watchers/services/watcher-runner.service.js +10 -6
  607. package/dist/server/modules/watchers/services/watcher-runner.service.js.map +1 -1
  608. package/dist/server/modules/watchers/services/watcher-trigger-state.js +5 -7
  609. package/dist/server/modules/watchers/services/watcher-trigger-state.js.map +1 -1
  610. package/dist/server/modules/watchers/services/watchers.service.js +3 -1
  611. package/dist/server/modules/watchers/services/watchers.service.js.map +1 -1
  612. package/dist/server/templates/teams-dev.json +67 -142
  613. package/dist/server/tsconfig.tsbuildinfo +1 -1
  614. package/dist/server/ui/assets/{ReviewDetailPage-CkB_Fx1C.js → ReviewDetailPage-yOe1a_fn.js} +1 -1
  615. package/dist/server/ui/assets/ReviewsPage-Bib-IgPo.js +6 -0
  616. package/dist/server/ui/assets/index-B2TO-QTO.js +1156 -0
  617. package/dist/server/ui/assets/index-DowJ3ZtQ.css +32 -0
  618. package/dist/server/ui/assets/{useReviewSubscription-BZxAz2ZG.js → useReviewSubscription-BmU3yczR.js} +1 -1
  619. package/dist/server/ui/index.html +2 -2
  620. package/dist/templates/teams-dev.json +67 -142
  621. package/package.json +19 -9
  622. package/prebuilds/README.md +13 -4
  623. package/scripts/postinstall.js +21 -49
  624. package/dist/node_modules/@devchain/codebase-overview/index.d.ts +0 -2
  625. package/dist/node_modules/@devchain/codebase-overview/index.d.ts.map +0 -1
  626. package/dist/node_modules/@devchain/codebase-overview/index.js +0 -2
  627. package/dist/node_modules/@devchain/codebase-overview/index.js.map +0 -1
  628. package/dist/node_modules/@devchain/codebase-overview/package.json +0 -8
  629. package/dist/node_modules/@devchain/codebase-overview/tsconfig.tsbuildinfo +0 -1
  630. package/dist/node_modules/@devchain/codebase-overview/types.d.ts.map +0 -1
  631. package/dist/node_modules/@devchain/codebase-overview/types.js +0 -2
  632. package/dist/node_modules/@devchain/codebase-overview/types.js.map +0 -1
  633. package/dist/server/templates/3-agents-dev.json +0 -976
  634. package/dist/server/ui/assets/ReviewsPage-Bx6-dM75.js +0 -6
  635. package/dist/server/ui/assets/index-5SDRTmwU.js +0 -1156
  636. package/dist/server/ui/assets/index-PyQSKUPl.css +0 -32
  637. package/dist/templates/3-agents-dev.json +0 -976
@@ -1 +1 @@
1
- import{E as ae,u as se,r as p,l as d,j as e,y as ie,o as w,G as le,B as k,a as te,I as oe,T as ne,v as ce,w as pe,K as re,x as me,z as n}from"./index-5SDRTmwU.js";import{N as z,u as ue,a as he,b as de,h as ge,S as be,w as Ne,R as A,k as g,F as G,l as ve,m as K,D as _,n as H,K as fe,x as xe,y as we,z as De,v as Pe}from"./useReviewSubscription-BZxAz2ZG.js";const q="review-file-nav",B="review-comment-split";function O(){return e.jsxDEV("div",{className:"flex flex-col items-center justify-center h-full text-muted-foreground",children:[e.jsxDEV(G,{className:"h-12 w-12 mb-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:46,columnNumber:7},this),e.jsxDEV("p",{className:"text-lg font-medium",children:"Select a file to view diff"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:47,columnNumber:7},this),e.jsxDEV("p",{className:"text-sm",children:"Choose a file from the left panel"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:48,columnNumber:7},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:45,columnNumber:5},this)}function Re(){return e.jsxDEV("div",{className:"flex flex-col h-full",children:[e.jsxDEV("div",{className:"border-b p-4",children:e.jsxDEV("div",{className:"flex items-center gap-4",children:[e.jsxDEV(n,{className:"h-9 w-9"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:59,columnNumber:11},this),e.jsxDEV("div",{className:"flex-1",children:[e.jsxDEV(n,{className:"h-6 w-48 mb-2"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:61,columnNumber:13},this),e.jsxDEV(n,{className:"h-4 w-32"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:62,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:60,columnNumber:11},this),e.jsxDEV(n,{className:"h-6 w-20"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:64,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:58,columnNumber:9},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:57,columnNumber:7},this),e.jsxDEV("div",{className:"flex-1 flex",children:[e.jsxDEV("div",{className:"w-64 border-r p-4 space-y-2",children:Array.from({length:5}).map((i,r)=>e.jsxDEV(n,{className:"h-8 w-full"},r,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:71,columnNumber:13},this))},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:69,columnNumber:9},this),e.jsxDEV("div",{className:"flex-1 p-4",children:e.jsxDEV(n,{className:"h-full w-full"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:75,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:74,columnNumber:9},this),e.jsxDEV("div",{className:"w-80 border-l p-4 space-y-2",children:[e.jsxDEV(n,{className:"h-6 w-24 mb-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:78,columnNumber:11},this),Array.from({length:3}).map((i,r)=>e.jsxDEV(n,{className:"h-16 w-full"},r,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:80,columnNumber:13},this))]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:77,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:68,columnNumber:7},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:55,columnNumber:5},this)}function Ve(){var T;const{reviewId:i}=ae(),r=se(),[l,m]=p.useState(null),[b,D]=p.useState("unified"),P=z({id:q,storage:localStorage}),R=z({id:B,storage:localStorage}),{data:a,isLoading:j,isError:E}=d({queryKey:["review",i],queryFn:()=>xe(i),enabled:!!i});ue(i??null,(a==null?void 0:a.projectId)??null);const u=he(),h=de(),{data:t=[],isLoading:U}=d({queryKey:["review-files",i,a==null?void 0:a.baseSha,a==null?void 0:a.headSha],queryFn:()=>{if(!(a!=null&&a.projectId)||!a.baseSha||!a.headSha)throw new Error("Review SHAs are not available");return we(a.projectId,a.baseSha,a.headSha)},enabled:!!(a!=null&&a.projectId)&&!!(a!=null&&a.baseSha)&&!!(a!=null&&a.headSha)}),{data:V="",isLoading:y,isError:S}=d({queryKey:["review-diff",i,a==null?void 0:a.baseSha,a==null?void 0:a.headSha],queryFn:()=>{if(!(a!=null&&a.projectId)||!a.baseSha||!a.headSha)throw new Error("Review SHAs are not available");return De(a.projectId,a.baseSha,a.headSha)},enabled:!!(a!=null&&a.projectId)&&!!(a!=null&&a.baseSha)&&!!(a!=null&&a.headSha)&&!!l}),{data:N}=d({queryKey:["review-comments",i],queryFn:()=>Pe(i),enabled:!!i}),C=((T=N==null?void 0:N.items)==null?void 0:T.filter(s=>s.filePath===l))??[],I=()=>{r("/reviews")},M=s=>{m(s)},Q=p.useCallback(()=>{if(t.length===0)return;const o=((l?t.findIndex(c=>c.path===l):-1)+1)%t.length;m(t[o].path)},[t,l]),J=p.useCallback(()=>{if(t.length===0)return;const s=l?t.findIndex(c=>c.path===l):0,o=s<=0?t.length-1:s-1;m(t[o].path)},[t,l]),L=p.useRef(null),W=p.useCallback(()=>{var s;(s=L.current)==null||s.focusNextComment()},[]),X=p.useCallback(()=>{var s;(s=L.current)==null||s.focusPreviousComment()},[]),{isHelpOpen:Y,closeHelp:Z,openHelp:$}=ge({enabled:!j&&!E,handlers:{onNextFile:Q,onPreviousFile:J,onNextComment:W,onPreviousComment:X}});if(j)return e.jsxDEV(Re,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:215,columnNumber:12},this);if(E||!a)return e.jsxDEV("div",{className:"flex flex-col items-center justify-center h-full",children:[e.jsxDEV(ie,{className:"h-12 w-12 text-destructive mb-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:222,columnNumber:9},this),e.jsxDEV("h2",{className:"text-lg font-medium mb-2",children:"Failed to load review"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:223,columnNumber:9},this),e.jsxDEV("p",{className:"text-muted-foreground mb-4",children:"The review could not be found or there was an error loading it."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:224,columnNumber:9},this),e.jsxDEV(w,{onClick:I,children:"Back to Reviews"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:227,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:221,columnNumber:7},this);const F=be[a.status],ee=Ne[a.status];return e.jsxDEV("div",{className:"flex flex-col h-full",children:[e.jsxDEV("div",{className:"border-b px-4 py-3 bg-card",children:e.jsxDEV("div",{className:"flex items-center gap-4",children:[e.jsxDEV(w,{variant:"ghost",size:"icon",onClick:I,title:"Back to reviews",children:e.jsxDEV(le,{className:"h-5 w-5"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:241,columnNumber:13},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:240,columnNumber:11},this),e.jsxDEV("div",{className:"flex-1 min-w-0",children:[e.jsxDEV("div",{className:"flex items-center gap-2",children:[e.jsxDEV("h1",{className:"text-lg font-semibold truncate",children:a.title},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:245,columnNumber:15},this),e.jsxDEV(k,{variant:"secondary",className:te("shrink-0",F.bg,F.text),children:ee},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:246,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:244,columnNumber:13},this),e.jsxDEV("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[e.jsxDEV(oe,{className:"h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:254,columnNumber:15},this),e.jsxDEV("span",{children:[a.baseRef,"...",a.headRef]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:255,columnNumber:15},this),a.baseSha&&a.headSha?e.jsxDEV("span",{className:"text-xs",children:["(",a.baseSha.slice(0,7),"...",a.headSha.slice(0,7),")"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:259,columnNumber:17},this):e.jsxDEV("span",{className:"text-xs",children:["(",a.mode==="working_tree"?"working tree":"sha pending",")"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:263,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:253,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:243,columnNumber:11},this),e.jsxDEV("div",{className:"flex items-center gap-2 text-sm text-muted-foreground shrink-0",children:[e.jsxDEV("span",{children:[t.length," files"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:270,columnNumber:13},this),e.jsxDEV(ne,{children:e.jsxDEV(ce,{children:[e.jsxDEV(pe,{asChild:!0,children:e.jsxDEV(w,{variant:"ghost",size:"icon",className:"h-8 w-8",onClick:$,title:"Keyboard shortcuts",children:e.jsxDEV(re,{className:"h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:281,columnNumber:21},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:274,columnNumber:19},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:273,columnNumber:17},this),e.jsxDEV(me,{children:e.jsxDEV("p",{children:"Keyboard shortcuts (?)"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:285,columnNumber:19},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:284,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:272,columnNumber:15},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:271,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:269,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:239,columnNumber:9},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:238,columnNumber:7},this),e.jsxDEV(A,{orientation:"horizontal",className:"flex-1 min-h-0",id:q,defaultLayout:P.defaultLayout,onLayoutChanged:P.onLayoutChanged,children:[e.jsxDEV(g,{id:"file-nav",defaultSize:"256px",minSize:"150px",maxSize:"40%",children:e.jsxDEV("div",{className:"h-full border-r bg-card overflow-hidden flex flex-col",children:[e.jsxDEV("div",{className:"p-3 border-b shrink-0",children:e.jsxDEV("h2",{className:"text-sm font-medium flex items-center gap-2",children:[e.jsxDEV(G,{className:"h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:306,columnNumber:17},this),"Files",t.length>0&&e.jsxDEV(k,{variant:"secondary",className:"text-xs",children:t.length},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:309,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:305,columnNumber:15},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:304,columnNumber:13},this),e.jsxDEV("div",{className:"flex-1 min-h-0",children:e.jsxDEV(ve,{files:t,selectedFile:l,onSelectFile:M,isLoading:U},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:316,columnNumber:15},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:315,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:303,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:302,columnNumber:9},this),e.jsxDEV(K,{withHandle:!0},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:326,columnNumber:9},this),e.jsxDEV(g,{id:"diff-comments",defaultSize:"80%",children:b==="split"?e.jsxDEV(A,{orientation:"vertical",className:"h-full",id:B,defaultLayout:R.defaultLayout,onLayoutChanged:R.onLayoutChanged,children:[e.jsxDEV(g,{id:"diff-panel",defaultSize:"70%",minSize:"30%",children:e.jsxDEV("div",{className:"h-full min-w-0 bg-background overflow-auto",children:l?e.jsxDEV(_,{diff:V,filePath:l,isLoading:y,error:S?"Failed to load diff":null,viewType:b,onViewTypeChange:D,projectId:a==null?void 0:a.projectId,comments:C,onAddComment:async(s,o,c,v,f,x)=>{await u.mutateAsync({reviewId:i,content:v,commentType:f,filePath:l,lineStart:s,lineEnd:o,side:c,targetAgentIds:x})},onReplyToComment:async(s,o)=>{await h.mutateAsync({reviewId:i,parentId:s,content:o})},isSubmittingComment:u.isPending||h.isPending},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:342,columnNumber:21},this):e.jsxDEV(O,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:382,columnNumber:21},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:340,columnNumber:17},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:339,columnNumber:15},this),e.jsxDEV(K,{withHandle:!0},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:386,columnNumber:15},this),e.jsxDEV(g,{id:"comment-panel",defaultSize:"30%",minSize:"15%",children:e.jsxDEV("div",{className:"h-full bg-card overflow-hidden border-t",children:e.jsxDEV(H,{reviewId:i,projectId:a==null?void 0:a.projectId,selectedFile:l,onCommentSelect:s=>{s.filePath&&m(s.filePath)}},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:389,columnNumber:19},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:388,columnNumber:17},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:387,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:332,columnNumber:13},this):e.jsxDEV("div",{className:"h-full grid grid-cols-[1fr_320px]",children:[e.jsxDEV("div",{className:"min-w-0 bg-background overflow-auto",children:l?e.jsxDEV(_,{diff:V,filePath:l,isLoading:y,error:S?"Failed to load diff":null,viewType:b,onViewTypeChange:D,projectId:a==null?void 0:a.projectId,comments:C,onAddComment:async(s,o,c,v,f,x)=>{await u.mutateAsync({reviewId:i,content:v,commentType:f,filePath:l,lineStart:s,lineEnd:o,side:c,targetAgentIds:x})},onReplyToComment:async(s,o)=>{await h.mutateAsync({reviewId:i,parentId:s,content:o})},isSubmittingComment:u.isPending||h.isPending},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:407,columnNumber:19},this):e.jsxDEV(O,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:445,columnNumber:19},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:405,columnNumber:15},this),e.jsxDEV("div",{className:"bg-card overflow-hidden border-l",children:e.jsxDEV(H,{reviewId:i,projectId:a==null?void 0:a.projectId,selectedFile:l,onCommentSelect:s=>{s.filePath&&m(s.filePath)}},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:449,columnNumber:17},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:448,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:404,columnNumber:13},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:329,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:294,columnNumber:7},this),e.jsxDEV(fe,{open:Y,onOpenChange:Z},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:466,columnNumber:7},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:236,columnNumber:5},this)}export{Ve as ReviewDetailPage};
1
+ import{E as ae,u as se,r as p,l as d,j as e,y as ie,o as w,G as le,B as k,a as te,I as oe,T as ne,v as ce,w as pe,K as re,x as me,z as n}from"./index-B2TO-QTO.js";import{N as z,u as ue,a as he,b as de,h as ge,S as be,w as Ne,R as A,k as g,F as G,l as ve,m as K,D as _,n as H,K as fe,x as xe,y as we,z as De,v as Pe}from"./useReviewSubscription-BmU3yczR.js";const q="review-file-nav",B="review-comment-split";function O(){return e.jsxDEV("div",{className:"flex flex-col items-center justify-center h-full text-muted-foreground",children:[e.jsxDEV(G,{className:"h-12 w-12 mb-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:46,columnNumber:7},this),e.jsxDEV("p",{className:"text-lg font-medium",children:"Select a file to view diff"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:47,columnNumber:7},this),e.jsxDEV("p",{className:"text-sm",children:"Choose a file from the left panel"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:48,columnNumber:7},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:45,columnNumber:5},this)}function Re(){return e.jsxDEV("div",{className:"flex flex-col h-full",children:[e.jsxDEV("div",{className:"border-b p-4",children:e.jsxDEV("div",{className:"flex items-center gap-4",children:[e.jsxDEV(n,{className:"h-9 w-9"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:59,columnNumber:11},this),e.jsxDEV("div",{className:"flex-1",children:[e.jsxDEV(n,{className:"h-6 w-48 mb-2"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:61,columnNumber:13},this),e.jsxDEV(n,{className:"h-4 w-32"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:62,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:60,columnNumber:11},this),e.jsxDEV(n,{className:"h-6 w-20"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:64,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:58,columnNumber:9},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:57,columnNumber:7},this),e.jsxDEV("div",{className:"flex-1 flex",children:[e.jsxDEV("div",{className:"w-64 border-r p-4 space-y-2",children:Array.from({length:5}).map((i,r)=>e.jsxDEV(n,{className:"h-8 w-full"},r,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:71,columnNumber:13},this))},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:69,columnNumber:9},this),e.jsxDEV("div",{className:"flex-1 p-4",children:e.jsxDEV(n,{className:"h-full w-full"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:75,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:74,columnNumber:9},this),e.jsxDEV("div",{className:"w-80 border-l p-4 space-y-2",children:[e.jsxDEV(n,{className:"h-6 w-24 mb-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:78,columnNumber:11},this),Array.from({length:3}).map((i,r)=>e.jsxDEV(n,{className:"h-16 w-full"},r,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:80,columnNumber:13},this))]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:77,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:68,columnNumber:7},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:55,columnNumber:5},this)}function Ve(){var T;const{reviewId:i}=ae(),r=se(),[l,m]=p.useState(null),[b,D]=p.useState("unified"),P=z({id:q,storage:localStorage}),R=z({id:B,storage:localStorage}),{data:a,isLoading:j,isError:E}=d({queryKey:["review",i],queryFn:()=>xe(i),enabled:!!i});ue(i??null,(a==null?void 0:a.projectId)??null);const u=he(),h=de(),{data:t=[],isLoading:U}=d({queryKey:["review-files",i,a==null?void 0:a.baseSha,a==null?void 0:a.headSha],queryFn:()=>{if(!(a!=null&&a.projectId)||!a.baseSha||!a.headSha)throw new Error("Review SHAs are not available");return we(a.projectId,a.baseSha,a.headSha)},enabled:!!(a!=null&&a.projectId)&&!!(a!=null&&a.baseSha)&&!!(a!=null&&a.headSha)}),{data:V="",isLoading:y,isError:S}=d({queryKey:["review-diff",i,a==null?void 0:a.baseSha,a==null?void 0:a.headSha],queryFn:()=>{if(!(a!=null&&a.projectId)||!a.baseSha||!a.headSha)throw new Error("Review SHAs are not available");return De(a.projectId,a.baseSha,a.headSha)},enabled:!!(a!=null&&a.projectId)&&!!(a!=null&&a.baseSha)&&!!(a!=null&&a.headSha)&&!!l}),{data:N}=d({queryKey:["review-comments",i],queryFn:()=>Pe(i),enabled:!!i}),C=((T=N==null?void 0:N.items)==null?void 0:T.filter(s=>s.filePath===l))??[],I=()=>{r("/reviews")},M=s=>{m(s)},Q=p.useCallback(()=>{if(t.length===0)return;const o=((l?t.findIndex(c=>c.path===l):-1)+1)%t.length;m(t[o].path)},[t,l]),J=p.useCallback(()=>{if(t.length===0)return;const s=l?t.findIndex(c=>c.path===l):0,o=s<=0?t.length-1:s-1;m(t[o].path)},[t,l]),L=p.useRef(null),W=p.useCallback(()=>{var s;(s=L.current)==null||s.focusNextComment()},[]),X=p.useCallback(()=>{var s;(s=L.current)==null||s.focusPreviousComment()},[]),{isHelpOpen:Y,closeHelp:Z,openHelp:$}=ge({enabled:!j&&!E,handlers:{onNextFile:Q,onPreviousFile:J,onNextComment:W,onPreviousComment:X}});if(j)return e.jsxDEV(Re,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:215,columnNumber:12},this);if(E||!a)return e.jsxDEV("div",{className:"flex flex-col items-center justify-center h-full",children:[e.jsxDEV(ie,{className:"h-12 w-12 text-destructive mb-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:222,columnNumber:9},this),e.jsxDEV("h2",{className:"text-lg font-medium mb-2",children:"Failed to load review"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:223,columnNumber:9},this),e.jsxDEV("p",{className:"text-muted-foreground mb-4",children:"The review could not be found or there was an error loading it."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:224,columnNumber:9},this),e.jsxDEV(w,{onClick:I,children:"Back to Reviews"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:227,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:221,columnNumber:7},this);const F=be[a.status],ee=Ne[a.status];return e.jsxDEV("div",{className:"flex flex-col h-full",children:[e.jsxDEV("div",{className:"border-b px-4 py-3 bg-card",children:e.jsxDEV("div",{className:"flex items-center gap-4",children:[e.jsxDEV(w,{variant:"ghost",size:"icon",onClick:I,title:"Back to reviews",children:e.jsxDEV(le,{className:"h-5 w-5"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:241,columnNumber:13},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:240,columnNumber:11},this),e.jsxDEV("div",{className:"flex-1 min-w-0",children:[e.jsxDEV("div",{className:"flex items-center gap-2",children:[e.jsxDEV("h1",{className:"text-lg font-semibold truncate",children:a.title},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:245,columnNumber:15},this),e.jsxDEV(k,{variant:"secondary",className:te("shrink-0",F.bg,F.text),children:ee},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:246,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:244,columnNumber:13},this),e.jsxDEV("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[e.jsxDEV(oe,{className:"h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:254,columnNumber:15},this),e.jsxDEV("span",{children:[a.baseRef,"...",a.headRef]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:255,columnNumber:15},this),a.baseSha&&a.headSha?e.jsxDEV("span",{className:"text-xs",children:["(",a.baseSha.slice(0,7),"...",a.headSha.slice(0,7),")"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:259,columnNumber:17},this):e.jsxDEV("span",{className:"text-xs",children:["(",a.mode==="working_tree"?"working tree":"sha pending",")"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:263,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:253,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:243,columnNumber:11},this),e.jsxDEV("div",{className:"flex items-center gap-2 text-sm text-muted-foreground shrink-0",children:[e.jsxDEV("span",{children:[t.length," files"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:270,columnNumber:13},this),e.jsxDEV(ne,{children:e.jsxDEV(ce,{children:[e.jsxDEV(pe,{asChild:!0,children:e.jsxDEV(w,{variant:"ghost",size:"icon",className:"h-8 w-8",onClick:$,title:"Keyboard shortcuts",children:e.jsxDEV(re,{className:"h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:281,columnNumber:21},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:274,columnNumber:19},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:273,columnNumber:17},this),e.jsxDEV(me,{children:e.jsxDEV("p",{children:"Keyboard shortcuts (?)"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:285,columnNumber:19},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:284,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:272,columnNumber:15},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:271,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:269,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:239,columnNumber:9},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:238,columnNumber:7},this),e.jsxDEV(A,{orientation:"horizontal",className:"flex-1 min-h-0",id:q,defaultLayout:P.defaultLayout,onLayoutChanged:P.onLayoutChanged,children:[e.jsxDEV(g,{id:"file-nav",defaultSize:"256px",minSize:"150px",maxSize:"40%",children:e.jsxDEV("div",{className:"h-full border-r bg-card overflow-hidden flex flex-col",children:[e.jsxDEV("div",{className:"p-3 border-b shrink-0",children:e.jsxDEV("h2",{className:"text-sm font-medium flex items-center gap-2",children:[e.jsxDEV(G,{className:"h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:306,columnNumber:17},this),"Files",t.length>0&&e.jsxDEV(k,{variant:"secondary",className:"text-xs",children:t.length},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:309,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:305,columnNumber:15},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:304,columnNumber:13},this),e.jsxDEV("div",{className:"flex-1 min-h-0",children:e.jsxDEV(ve,{files:t,selectedFile:l,onSelectFile:M,isLoading:U},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:316,columnNumber:15},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:315,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:303,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:302,columnNumber:9},this),e.jsxDEV(K,{withHandle:!0},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:326,columnNumber:9},this),e.jsxDEV(g,{id:"diff-comments",defaultSize:"80%",children:b==="split"?e.jsxDEV(A,{orientation:"vertical",className:"h-full",id:B,defaultLayout:R.defaultLayout,onLayoutChanged:R.onLayoutChanged,children:[e.jsxDEV(g,{id:"diff-panel",defaultSize:"70%",minSize:"30%",children:e.jsxDEV("div",{className:"h-full min-w-0 bg-background overflow-auto",children:l?e.jsxDEV(_,{diff:V,filePath:l,isLoading:y,error:S?"Failed to load diff":null,viewType:b,onViewTypeChange:D,projectId:a==null?void 0:a.projectId,comments:C,onAddComment:async(s,o,c,v,f,x)=>{await u.mutateAsync({reviewId:i,content:v,commentType:f,filePath:l,lineStart:s,lineEnd:o,side:c,targetAgentIds:x})},onReplyToComment:async(s,o)=>{await h.mutateAsync({reviewId:i,parentId:s,content:o})},isSubmittingComment:u.isPending||h.isPending},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:342,columnNumber:21},this):e.jsxDEV(O,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:382,columnNumber:21},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:340,columnNumber:17},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:339,columnNumber:15},this),e.jsxDEV(K,{withHandle:!0},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:386,columnNumber:15},this),e.jsxDEV(g,{id:"comment-panel",defaultSize:"30%",minSize:"15%",children:e.jsxDEV("div",{className:"h-full bg-card overflow-hidden border-t",children:e.jsxDEV(H,{reviewId:i,projectId:a==null?void 0:a.projectId,selectedFile:l,onCommentSelect:s=>{s.filePath&&m(s.filePath)}},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:389,columnNumber:19},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:388,columnNumber:17},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:387,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:332,columnNumber:13},this):e.jsxDEV("div",{className:"h-full grid grid-cols-[1fr_320px]",children:[e.jsxDEV("div",{className:"min-w-0 bg-background overflow-auto",children:l?e.jsxDEV(_,{diff:V,filePath:l,isLoading:y,error:S?"Failed to load diff":null,viewType:b,onViewTypeChange:D,projectId:a==null?void 0:a.projectId,comments:C,onAddComment:async(s,o,c,v,f,x)=>{await u.mutateAsync({reviewId:i,content:v,commentType:f,filePath:l,lineStart:s,lineEnd:o,side:c,targetAgentIds:x})},onReplyToComment:async(s,o)=>{await h.mutateAsync({reviewId:i,parentId:s,content:o})},isSubmittingComment:u.isPending||h.isPending},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:407,columnNumber:19},this):e.jsxDEV(O,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:445,columnNumber:19},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:405,columnNumber:15},this),e.jsxDEV("div",{className:"bg-card overflow-hidden border-l",children:e.jsxDEV(H,{reviewId:i,projectId:a==null?void 0:a.projectId,selectedFile:l,onCommentSelect:s=>{s.filePath&&m(s.filePath)}},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:449,columnNumber:17},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:448,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:404,columnNumber:13},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:329,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:294,columnNumber:7},this),e.jsxDEV(fe,{open:Y,onOpenChange:Z},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:466,columnNumber:7},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewDetailPage.tsx",lineNumber:236,columnNumber:5},this)}export{Ve as ReviewDetailPage};
@@ -0,0 +1,6 @@
1
+ import{c as ns,r as n,j as e,C as os,a as pe,b as cs,d as rs,e as ms,M as ps,B as ue,f as us,u as hs,g as ds,h as gs,i as vs,k as Ns,l as P,m as fs,n as Se,F as bs,o as X,H as ws,S as ke,p as Te,q as Ie,s as Fe,t as ce,R as xs,T as Ps,v as Rs,w as Es,K as js,x as Ds,y as Vs,z as R,A as Cs,D as ys}from"./index-B2TO-QTO.js";import{g as Ss,i as re,C as ks,N as Ae,u as Ts,a as Is,b as Fs,c as As,d as qs,e as Ls,f as me,h as Ms,T as qe,j as K,R as Le,k as Z,F as he,l as zs,m as Me,D as ze,n as Ke,K as Ks,o as Hs,p as _s,q as Os,r as Bs,s as Gs,t as Qs,v as Ws}from"./useReviewSubscription-BmU3yczR.js";/**
2
+ * @license lucide-react v0.545.0 - ISC
3
+ *
4
+ * This source code is licensed under the ISC license.
5
+ * See the LICENSE file in the root directory of this source tree.
6
+ */const $s=[["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["line",{x1:"3",x2:"9",y1:"12",y2:"12",key:"1dyftd"}],["line",{x1:"15",x2:"21",y1:"12",y2:"12",key:"oup4p8"}]],He=ns("git-commit-horizontal",$s);function _e({comments:y,selectedCommentId:d,isExpanded:E,onToggleExpand:ee,onReply:a,onResolve:q,onDelete:se,onEdit:m,onApplySuggestion:H,isReplying:L=!1,isResolving:ie=!1,isDeleting:_=!1,isEditing:O=!1,isApplyingSuggestion:o=!1,getSessionForAgent:S,onOpenTerminal:c,className:b}){const j=n.useRef(null),D=n.useMemo(()=>y.filter(r=>r.filePath===null),[y]),N=n.useMemo(()=>Ss(D),[D]),w=n.useMemo(()=>D.filter(r=>r.parentId===null).sort((r,v)=>{const k=N.get(r.id)??[],V=N.get(v.id)??[],s=re({comment:r,replies:k}),ae=re({comment:v,replies:V});if(s!==ae)return s?-1:1;if(r.status!==v.status){if(r.status==="open")return-1;if(v.status==="open")return 1}return new Date(v.createdAt).getTime()-new Date(r.createdAt).getTime()}),[D,N]);return n.useEffect(()=>{d&&j.current&&E&&j.current.scrollIntoView({behavior:"smooth",block:"nearest"})},[d,E]),w.length===0?null:e.jsxDEV(os,{open:E,onOpenChange:ee,className:pe("border-b bg-card",b),"data-testid":"review-comments-section",children:[e.jsxDEV(cs,{asChild:!0,children:e.jsxDEV("button",{type:"button",className:"flex items-center gap-2 px-4 py-3 border-b bg-muted/30 w-full text-left hover:bg-muted/50 transition-colors","aria-label":E?"Collapse review comments":"Expand review comments",children:[E?e.jsxDEV(rs,{className:"h-4 w-4 text-muted-foreground","aria-hidden":"true"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/review/ReviewCommentsSection.tsx",lineNumber:140,columnNumber:13},this):e.jsxDEV(ms,{className:"h-4 w-4 text-muted-foreground","aria-hidden":"true"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/review/ReviewCommentsSection.tsx",lineNumber:142,columnNumber:13},this),e.jsxDEV("h3",{className:"font-medium text-sm flex items-center gap-2",id:"review-comments-heading",children:[e.jsxDEV(ps,{className:"h-4 w-4","aria-hidden":"true"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/review/ReviewCommentsSection.tsx",lineNumber:146,columnNumber:13},this),"Review Comments",e.jsxDEV(ue,{variant:"secondary",className:"text-xs","aria-label":`${w.length} comments`,children:w.length},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/review/ReviewCommentsSection.tsx",lineNumber:148,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/review/ReviewCommentsSection.tsx",lineNumber:145,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/review/ReviewCommentsSection.tsx",lineNumber:134,columnNumber:9},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/review/ReviewCommentsSection.tsx",lineNumber:133,columnNumber:7},this),e.jsxDEV(us,{children:e.jsxDEV("div",{className:"p-4 space-y-4",role:"region","aria-labelledby":"review-comments-heading",children:w.map(r=>{const v=N.get(r.id)??[],k=re({comment:r,replies:v}),V=d===r.id;return e.jsxDEV("div",{ref:V?j:void 0,className:pe("transition-all duration-200",V&&"ring-2 ring-primary ring-offset-2 rounded-lg"),"data-comment-id":r.id,children:e.jsxDEV(ks,{comment:r,replies:v,isPending:k,getSessionForAgent:S,onOpenTerminal:c,onReply:a,onResolve:q,onDelete:se,onEdit:m,onApplySuggestion:H,isReplying:L,isResolving:ie,isDeleting:_,isEditing:O,isApplyingSuggestion:o},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/review/ReviewCommentsSection.tsx",lineNumber:178,columnNumber:17},this)},r.id,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/review/ReviewCommentsSection.tsx",lineNumber:168,columnNumber:15},this)})},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/review/ReviewCommentsSection.tsx",lineNumber:161,columnNumber:9},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/review/ReviewCommentsSection.tsx",lineNumber:160,columnNumber:7},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/components/review/ReviewCommentsSection.tsx",lineNumber:126,columnNumber:5},this)}const Oe="review-file-nav",Be="review-comment-split";function Us(){return e.jsxDEV("div",{className:"flex flex-col items-center justify-center h-full text-muted-foreground",children:[e.jsxDEV(he,{className:"h-12 w-12 mb-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:87,columnNumber:7},this),e.jsxDEV("p",{className:"text-lg font-medium",children:"No changes to review"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:88,columnNumber:7},this),e.jsxDEV("p",{className:"text-sm",children:"Your working tree is clean"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:89,columnNumber:7},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:86,columnNumber:5},this)}function Ge(){return e.jsxDEV("div",{className:"flex flex-col items-center justify-center h-full text-muted-foreground",children:[e.jsxDEV(he,{className:"h-12 w-12 mb-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:98,columnNumber:7},this),e.jsxDEV("p",{className:"text-lg font-medium",children:"Select a file to view diff"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:99,columnNumber:7},this),e.jsxDEV("p",{className:"text-sm",children:"Choose a file from the left panel"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:100,columnNumber:7},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:97,columnNumber:5},this)}function Ys(){return e.jsxDEV("div",{className:"flex flex-col h-full",children:[e.jsxDEV("div",{className:"border-b p-4",children:e.jsxDEV("div",{className:"flex items-center gap-4",children:[e.jsxDEV(R,{className:"h-6 w-32"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:111,columnNumber:11},this),e.jsxDEV(R,{className:"h-9 w-40"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:112,columnNumber:11},this),e.jsxDEV(R,{className:"h-9 w-48"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:113,columnNumber:11},this),e.jsxDEV("div",{className:"flex-1"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:114,columnNumber:11},this),e.jsxDEV(R,{className:"h-9 w-24"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:115,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:110,columnNumber:9},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:109,columnNumber:7},this),e.jsxDEV("div",{className:"flex-1 flex",children:[e.jsxDEV("div",{className:"w-64 border-r p-4 space-y-2",children:Array.from({length:5}).map((y,d)=>e.jsxDEV(R,{className:"h-8 w-full"},d,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:122,columnNumber:13},this))},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:120,columnNumber:9},this),e.jsxDEV("div",{className:"flex-1 p-4",children:e.jsxDEV(R,{className:"h-full w-full"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:126,columnNumber:11},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:125,columnNumber:9},this),e.jsxDEV("div",{className:"w-80 border-l p-4 space-y-2",children:[e.jsxDEV(R,{className:"h-6 w-24 mb-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:129,columnNumber:11},this),Array.from({length:3}).map((y,d)=>e.jsxDEV(R,{className:"h-16 w-full"},d,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:131,columnNumber:13},this))]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:128,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:119,columnNumber:7},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:107,columnNumber:5},this)}function Zs(){var Ce;const y=hs(),d=ds(),{toast:E}=gs(),{selectedProject:ee,selectedProjectId:a,projectsLoading:q}=vs(),se=Ns(),[m,H]=n.useState("working-tree"),[L,ie]=n.useState("all"),[_,O]=n.useState("HEAD"),[o,S]=n.useState(null),[c,b]=n.useState(null),[j,D]=n.useState("unified"),[N,w]=n.useState(null),[r,v]=n.useState(!0),k=Ae({id:Oe,storage:localStorage}),V=Ae({id:Be,storage:localStorage}),{data:s,isLoading:ae}=P({queryKey:["active-review",a],queryFn:()=>me(a),enabled:!!a});Ts((s==null?void 0:s.id)??null,a??null);const{data:f,isLoading:de,isError:Qe,refetch:ge}=P({queryKey:["working-tree",a,L],queryFn:()=>Os(a,L),enabled:!!a&&m==="working-tree",refetchInterval:5e3}),{data:T,isLoading:We,isError:$e}=P({queryKey:["commit-diff",a,o==null?void 0:o.sha],queryFn:()=>Bs(a,o.sha),enabled:!!a&&m==="commit"&&!!o}),{data:C=[]}=P({queryKey:["commits",a],queryFn:()=>Gs(a,{limit:50}),enabled:!!a});n.useEffect(()=>{if(s){const i=s.mode==="working_tree"?"working-tree":"commit";if(H(i),O(s.baseRef),s.mode==="commit"&&C.length>0){const l=C.find(t=>t.sha===s.headRef);l&&S(l)}}},[s,C]);const{data:Ue=[]}=P({queryKey:["branches",a],queryFn:()=>Qs(a),enabled:!!a}),{data:p}=P({queryKey:["review-comments",s==null?void 0:s.id],queryFn:()=>Ws(s.id),enabled:!!(s!=null&&s.id)}),{data:ve={}}=P({queryKey:["agent-presence",a],queryFn:()=>Cs(a,se),enabled:!!a,refetchInterval:1e4}),{data:Ne=[]}=P({queryKey:["active-sessions",a],queryFn:()=>ys(a),enabled:!!a,refetchInterval:1e4}),B=n.useCallback(i=>{const l=ve[i];return l!=null&&l.sessionId?Ne.find(t=>t.id===l.sessionId)??null:null},[ve,Ne]),G=fs(),Q=Se({mutationFn:()=>_s(s.id,s.version),onSuccess:()=>{d.invalidateQueries({queryKey:["active-review",a]}),d.invalidateQueries({queryKey:["review-comments"]}),E({title:"Review closed",description:"The review has been closed successfully."})}}),M=Se({mutationFn:async()=>{const i=m==="commit"&&o?`Review: ${o.sha.slice(0,7)}`:"Pre-commit review",l=m==="commit"&&o?`${o.sha}^`:_,t=m==="commit"&&o?o.sha:"HEAD";return Hs({projectId:a,title:i,mode:m==="working-tree"?"working_tree":"commit",baseRef:l,headRef:t,status:"draft"})},onSuccess:i=>{d.setQueryData(["active-review",a],i)}}),le=Is(),z=Fs(),x=As(),I=qs(),F=Ls(),fe=n.useCallback(async(i,l,t,g,h,ts)=>{let J=s==null?void 0:s.id;if(!J)try{J=(await M.mutateAsync()).id}catch(ye){const oe=await me(a);if(!oe)throw ye;d.setQueryData(["active-review",a],oe),J=oe.id}await le.mutateAsync({reviewId:J,content:g,commentType:h,filePath:c,lineStart:i,lineEnd:l,side:t,targetAgentIds:ts})},[s==null?void 0:s.id,M,le,d,a,c]),W=n.useCallback(async(i,l)=>{let t=s==null?void 0:s.id;if(!t)try{t=(await M.mutateAsync()).id}catch(g){const h=await me(a);if(!h)throw g;d.setQueryData(["active-review",a],h),t=h.id}await z.mutateAsync({reviewId:t,parentId:i,content:l})},[s==null?void 0:s.id,M,z,d,a]),be=n.useCallback(i=>{if((s==null?void 0:s.mode)==="commit"&&(o==null?void 0:o.sha)!==s.headRef){const l=C.find(t=>t.sha===s.headRef);l&&S(l)}i.filePath?(b(i.filePath),w(i.commentId)):(v(!0),w(i.commentId))},[s==null?void 0:s.mode,s==null?void 0:s.headRef,o==null?void 0:o.sha,C]),we=n.useCallback(()=>{w(null)},[]),xe=n.useCallback(async(i,l,t)=>{s!=null&&s.id&&await x.mutateAsync({reviewId:s.id,commentId:i,status:l,version:t})},[s==null?void 0:s.id,x]),Pe=n.useCallback(async(i,l)=>{if(!(s!=null&&s.id)||!(p!=null&&p.items))return;const t=p.items.find(g=>g.id===i);t&&await x.mutateAsync({reviewId:s.id,commentId:i,status:l,version:t.version})},[s==null?void 0:s.id,p==null?void 0:p.items,x]),$=n.useCallback(async i=>{s!=null&&s.id&&await I.mutateAsync({reviewId:s.id,commentId:i})},[s==null?void 0:s.id,I]),U=n.useCallback(async(i,l,t)=>{s!=null&&s.id&&await F.mutateAsync({reviewId:s.id,commentId:i,content:l,version:t})},[s==null?void 0:s.id,F]),Re=M.isPending||le.isPending||z.isPending,u=n.useMemo(()=>{if(m==="working-tree"&&f){const{staged:i,unstaged:l,untracked:t}=f.changes,g=new Map;return i.forEach(h=>g.set(h.path,h)),l.forEach(h=>{g.has(h.path)||g.set(h.path,h)}),(t||[]).forEach(h=>{g.has(h)||g.set(h,{path:h,status:"added",additions:0,deletions:0})}),Array.from(g.values())}return m==="commit"&&T?T.changedFiles:[]},[m,f,T]),Ee=m==="working-tree"?(f==null?void 0:f.diff)??"":(T==null?void 0:T.diff)??"",je=((Ce=p==null?void 0:p.items)==null?void 0:Ce.filter(i=>i.filePath===c))??[],De=c?u.find(i=>i.path===c):void 0,Ye=i=>{H(i),b(null),i==="commit"&&S(null)},Je=i=>{const l=C.find(t=>t.sha===i);S(l??null),b(null)},te=i=>{b(i)},Xe=n.useCallback(()=>{if(u.length===0)return;const l=((c?u.findIndex(t=>t.path===c):-1)+1)%u.length;b(u[l].path)},[u,c]),Ze=n.useCallback(()=>{if(u.length===0)return;const i=c?u.findIndex(t=>t.path===c):0,l=i<=0?u.length-1:i-1;b(u[l].path)},[u,c]),Ve=n.useRef(null),es=n.useCallback(()=>{var i;(i=Ve.current)==null||i.focusNextComment()},[]),ss=n.useCallback(()=>{var i;(i=Ve.current)==null||i.focusPreviousComment()},[]),{isHelpOpen:is,closeHelp:as,openHelp:ls}=Ms({enabled:!q,handlers:{onNextFile:Xe,onPreviousFile:Ze,onNextComment:es,onPreviousComment:ss}});if(!q&&!ee)return e.jsxDEV("div",{className:"flex flex-col items-center justify-center h-full py-16",children:[e.jsxDEV(bs,{className:"h-12 w-12 text-muted-foreground/50 mb-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:597,columnNumber:9},this),e.jsxDEV("h2",{className:"text-lg font-medium mb-2",children:"No project selected"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:598,columnNumber:9},this),e.jsxDEV("p",{className:"text-muted-foreground mb-4",children:"Select a project to view code reviews."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:599,columnNumber:9},this),e.jsxDEV(X,{onClick:()=>y("/projects"),children:"Go to Projects"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:600,columnNumber:9},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:596,columnNumber:7},this);if(q||ae)return e.jsxDEV(Ys,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:607,columnNumber:12},this);const Y=m==="working-tree"?de:We,A=m==="working-tree"?Qe:$e,ne=u.length>0;return e.jsxDEV("div",{className:"flex flex-col h-full",children:[e.jsxDEV("div",{className:"border-b px-4 py-3 bg-card",children:e.jsxDEV("div",{className:"flex items-center gap-4",children:[e.jsxDEV("div",{className:"flex items-center gap-1",children:[e.jsxDEV("h1",{className:"text-lg font-semibold",children:"Code Review"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:621,columnNumber:13},this),e.jsxDEV(ws,{featureId:"reviews"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:622,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:620,columnNumber:11},this),e.jsxDEV(qe,{type:"single",value:m,onValueChange:i=>i&&Ye(i),className:"border rounded-md",children:[e.jsxDEV(K,{value:"working-tree",className:"text-xs px-3",children:"Working Changes"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:632,columnNumber:13},this),e.jsxDEV(K,{value:"commit",className:"text-xs px-3",children:[e.jsxDEV(He,{className:"h-3.5 w-3.5 mr-1"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:636,columnNumber:15},this),"Commit"]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:635,columnNumber:13},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:626,columnNumber:11},this),m==="working-tree"?e.jsxDEV(e.Fragment,{children:[e.jsxDEV(ke,{value:_,onValueChange:O,children:[e.jsxDEV(Te,{className:"w-36","aria-label":"Select base reference",children:e.jsxDEV(Ie,{placeholder:"Base"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:647,columnNumber:19},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:646,columnNumber:17},this),e.jsxDEV(Fe,{children:[e.jsxDEV(ce,{value:"HEAD",children:"HEAD"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:650,columnNumber:19},this),Ue.filter(i=>["main","master"].includes(i.name)).map(i=>e.jsxDEV(ce,{value:i.name,children:i.name},i.name,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:654,columnNumber:23},this))]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:649,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:645,columnNumber:15},this),e.jsxDEV(qe,{type:"single",value:L,onValueChange:i=>i&&ie(i),className:"border rounded-md",children:[e.jsxDEV(K,{value:"all",className:"text-xs px-3",children:"All"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:668,columnNumber:17},this),e.jsxDEV(K,{value:"staged",className:"text-xs px-3",children:"Staged"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:671,columnNumber:17},this),e.jsxDEV(K,{value:"unstaged",className:"text-xs px-3",children:"Unstaged"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:674,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:662,columnNumber:15},this),e.jsxDEV(X,{variant:"ghost",size:"icon",onClick:()=>ge(),title:"Refresh",children:e.jsxDEV(xs,{className:pe("h-4 w-4",de&&"animate-spin")},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:686,columnNumber:17},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:680,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:643,columnNumber:13},this):e.jsxDEV(ke,{value:(o==null?void 0:o.sha)??"",onValueChange:Je,children:[e.jsxDEV(Te,{className:"w-80","aria-label":"Select commit to review",children:e.jsxDEV(Ie,{placeholder:"Select a commit to review"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:693,columnNumber:17},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:692,columnNumber:15},this),e.jsxDEV(Fe,{children:C.map(i=>e.jsxDEV(ce,{value:i.sha,children:[e.jsxDEV("span",{className:"font-mono text-xs",children:i.sha.slice(0,7)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:698,columnNumber:21},this),e.jsxDEV("span",{className:"ml-2 truncate",children:i.message},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:699,columnNumber:21},this)]},i.sha,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:697,columnNumber:19},this))},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:695,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:691,columnNumber:13},this),e.jsxDEV("div",{className:"flex-1"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:706,columnNumber:11},this),ne&&e.jsxDEV("span",{className:"text-sm text-muted-foreground",children:[u.length," files",(f==null?void 0:f.untrackedDiffsCapped)&&e.jsxDEV("span",{className:"ml-1 text-amber-600",title:`Showing diffs for ${f.untrackedProcessed} of ${f.untrackedTotal} untracked files`,children:"(diffs capped)"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:713,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:710,columnNumber:13},this),s&&e.jsxDEV(ue,{variant:"secondary",className:"bg-blue-100 text-blue-800",children:"Active Review"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:725,columnNumber:13},this),e.jsxDEV(Ps,{children:e.jsxDEV(Rs,{children:[e.jsxDEV(Es,{asChild:!0,children:e.jsxDEV(X,{variant:"ghost",size:"icon",className:"h-8 w-8",onClick:ls,title:"Keyboard shortcuts",children:e.jsxDEV(js,{className:"h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:741,columnNumber:19},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:734,columnNumber:17},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:733,columnNumber:15},this),e.jsxDEV(Ds,{children:e.jsxDEV("p",{children:"Keyboard shortcuts (?)"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:745,columnNumber:17},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:744,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:732,columnNumber:13},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:731,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:618,columnNumber:9},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:617,columnNumber:7},this),A&&e.jsxDEV("div",{className:"flex flex-col items-center justify-center h-full",children:[e.jsxDEV(Vs,{className:"h-12 w-12 text-destructive mb-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:755,columnNumber:11},this),e.jsxDEV("h2",{className:"text-lg font-medium mb-2",children:"Failed to load changes"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:756,columnNumber:11},this),e.jsxDEV("p",{className:"text-muted-foreground mb-4",children:"There was an error loading the changes. Please try again."},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:757,columnNumber:11},this),e.jsxDEV(X,{onClick:()=>ge(),children:"Retry"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:760,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:754,columnNumber:9},this),!A&&!Y&&!ne&&m==="working-tree"&&e.jsxDEV(Us,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:765,columnNumber:76},this),!A&&m==="commit"&&!o&&e.jsxDEV("div",{className:"flex flex-col items-center justify-center h-full text-muted-foreground",children:[e.jsxDEV(He,{className:"h-12 w-12 mb-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:770,columnNumber:11},this),e.jsxDEV("p",{className:"text-lg font-medium",children:"Select a commit to review"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:771,columnNumber:11},this),e.jsxDEV("p",{className:"text-sm",children:"Choose a commit from the dropdown above"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:772,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:769,columnNumber:9},this),!A&&ne&&e.jsxDEV(Le,{orientation:"horizontal",className:"flex-1 min-h-0",id:Oe,defaultLayout:k.defaultLayout,onLayoutChanged:k.onLayoutChanged,children:[e.jsxDEV(Z,{id:"file-nav",defaultSize:"256px",minSize:"150px",maxSize:"40%",children:e.jsxDEV("div",{className:"h-full border-r bg-card overflow-hidden flex flex-col",children:[e.jsxDEV("div",{className:"p-3 border-b shrink-0",children:e.jsxDEV("h2",{className:"text-sm font-medium flex items-center gap-2",children:[e.jsxDEV(he,{className:"h-4 w-4"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:790,columnNumber:19},this),"Files",u.length>0&&e.jsxDEV(ue,{variant:"secondary",className:"text-xs",children:u.length},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:793,columnNumber:21},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:789,columnNumber:17},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:788,columnNumber:15},this),e.jsxDEV("div",{className:"flex-1 min-h-0",children:e.jsxDEV(zs,{files:u,selectedFile:c,onSelectFile:te,isLoading:Y},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:800,columnNumber:17},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:799,columnNumber:15},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:787,columnNumber:13},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:786,columnNumber:11},this),e.jsxDEV(Me,{withHandle:!0},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:810,columnNumber:11},this),e.jsxDEV(Z,{id:"diff-comments",defaultSize:"80%",children:j==="split"?e.jsxDEV(Le,{orientation:"vertical",className:"h-full",id:Be,defaultLayout:V.defaultLayout,onLayoutChanged:V.onLayoutChanged,children:[e.jsxDEV(Z,{id:"diff-panel",defaultSize:"70%",minSize:"30%",children:e.jsxDEV("div",{className:"h-full min-w-0 bg-background overflow-auto flex flex-col",children:[s&&(p==null?void 0:p.items)&&e.jsxDEV(_e,{comments:p.items,selectedCommentId:N,isExpanded:r,onToggleExpand:()=>v(i=>!i),onReply:W,onResolve:Pe,onDelete:$,onEdit:U,isReplying:z.isPending,isResolving:x.isPending,isDeleting:I.isPending,isEditing:F.isPending,getSessionForAgent:B,onOpenTerminal:G},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:827,columnNumber:23},this),e.jsxDEV("div",{className:"flex-1 min-h-0",children:c?e.jsxDEV(ze,{diff:Ee,filePath:c,isLoading:Y,error:A?"Failed to load diff":null,viewType:j,onViewTypeChange:D,projectId:a,comments:je,onAddComment:fe,onReplyToComment:W,onResolveComment:xe,onDeleteComment:$,onEditComment:U,isSubmittingComment:Re,isResolvingComment:x.isPending,isDeletingComment:I.isPending,isEditingComment:F.isPending,getSessionForAgent:B,onOpenTerminal:G,fileInfo:De,selectedCommentId:N,onClearSelectedComment:we},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:847,columnNumber:25},this):e.jsxDEV(Ge,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:872,columnNumber:25},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:845,columnNumber:21},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:824,columnNumber:19},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:823,columnNumber:17},this),e.jsxDEV(Me,{withHandle:!0},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:877,columnNumber:17},this),e.jsxDEV(Z,{id:"comment-panel",defaultSize:"30%",minSize:"15%",children:e.jsxDEV("div",{className:"h-full bg-card overflow-hidden border-t",children:s?e.jsxDEV(Ke,{reviewId:s.id,review:s,projectId:a,selectedFile:c,onNavigateToComment:be,onSelectFile:te,selectedCommentId:N,onCloseReview:()=>Q.mutate(),isClosingReview:Q.isPending},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:881,columnNumber:23},this):e.jsxDEV("div",{className:"p-4 text-center text-muted-foreground",children:e.jsxDEV("p",{className:"text-sm",children:"Add a comment to start a review"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:894,columnNumber:25},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:893,columnNumber:23},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:879,columnNumber:19},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:878,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:816,columnNumber:15},this):e.jsxDEV("div",{className:"h-full grid grid-cols-[1fr_320px]",children:[e.jsxDEV("div",{className:"min-w-0 bg-background overflow-auto flex flex-col",children:[s&&(p==null?void 0:p.items)&&e.jsxDEV(_e,{comments:p.items,selectedCommentId:N,isExpanded:r,onToggleExpand:()=>v(i=>!i),onReply:W,onResolve:Pe,onDelete:$,onEdit:U,isReplying:z.isPending,isResolving:x.isPending,isDeleting:I.isPending,isEditing:F.isPending,getSessionForAgent:B,onOpenTerminal:G},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:906,columnNumber:21},this),e.jsxDEV("div",{className:"flex-1 min-h-0",children:c?e.jsxDEV(ze,{diff:Ee,filePath:c,isLoading:Y,error:A?"Failed to load diff":null,viewType:j,onViewTypeChange:D,projectId:a,comments:je,onAddComment:fe,onReplyToComment:W,onResolveComment:xe,onDeleteComment:$,onEditComment:U,isSubmittingComment:Re,isResolvingComment:x.isPending,isDeletingComment:I.isPending,isEditingComment:F.isPending,getSessionForAgent:B,onOpenTerminal:G,fileInfo:De,selectedCommentId:N,onClearSelectedComment:we},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:926,columnNumber:23},this):e.jsxDEV(Ge,{},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:951,columnNumber:23},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:924,columnNumber:19},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:903,columnNumber:17},this),e.jsxDEV("div",{className:"bg-card overflow-hidden border-l",children:s?e.jsxDEV(Ke,{reviewId:s.id,review:s,projectId:a,selectedFile:c,onNavigateToComment:be,onSelectFile:te,selectedCommentId:N,onCloseReview:()=>Q.mutate(),isClosingReview:Q.isPending},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:957,columnNumber:21},this):e.jsxDEV("div",{className:"p-4 text-center text-muted-foreground",children:e.jsxDEV("p",{className:"text-sm",children:"Add a comment to start a review"},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:970,columnNumber:23},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:969,columnNumber:21},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:955,columnNumber:17},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:902,columnNumber:15},this)},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:813,columnNumber:11},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:778,columnNumber:9},this),e.jsxDEV(Ks,{open:is,onOpenChange:as},void 0,!1,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:981,columnNumber:7},this)]},void 0,!0,{fileName:"/home/ngsupb/repos/twitech/devchain/apps/local-app/src/ui/pages/ReviewsPage.tsx",lineNumber:615,columnNumber:5},this)}export{Zs as ReviewsPage};