devchain-cli 0.9.1 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (353) hide show
  1. package/dist/cli.js +985 -194
  2. package/dist/drizzle/0042_nice_flatman.sql +10 -0
  3. package/dist/drizzle/0043_majestic_starhawk.sql +10 -0
  4. package/dist/drizzle/0044_supreme_joshua_kane.sql +57 -0
  5. package/dist/drizzle/0045_provider_auto_compact_threshold.sql +11 -0
  6. package/dist/drizzle/0046_worktrees_owner_project_id.sql +3 -0
  7. package/dist/drizzle/meta/0042_snapshot.json +4171 -0
  8. package/dist/drizzle/meta/0043_snapshot.json +4231 -0
  9. package/dist/drizzle/meta/0044_snapshot.json +4620 -0
  10. package/dist/drizzle/meta/_journal.json +35 -0
  11. package/dist/node_modules/@devchain/shared/schemas/export-schema.d.ts +18 -0
  12. package/dist/node_modules/@devchain/shared/schemas/export-schema.d.ts.map +1 -1
  13. package/dist/node_modules/@devchain/shared/schemas/export-schema.js +6 -0
  14. package/dist/node_modules/@devchain/shared/schemas/export-schema.js.map +1 -1
  15. package/dist/node_modules/@devchain/shared/tsconfig.tsbuildinfo +1 -1
  16. package/dist/server/app.main.module.d.ts +4 -0
  17. package/dist/server/app.main.module.js +102 -0
  18. package/dist/server/app.main.module.js.map +1 -0
  19. package/dist/server/app.module.d.ts +1 -4
  20. package/dist/server/app.module.js +2 -78
  21. package/dist/server/app.module.js.map +1 -1
  22. package/dist/server/app.normal.module.d.ts +4 -0
  23. package/dist/server/app.normal.module.js +90 -0
  24. package/dist/server/app.normal.module.js.map +1 -0
  25. package/dist/server/common/config/env.config.d.ts +81 -1
  26. package/dist/server/common/config/env.config.js +52 -2
  27. package/dist/server/common/config/env.config.js.map +1 -1
  28. package/dist/server/common/templates-directory.d.ts +8 -0
  29. package/dist/server/common/templates-directory.js +56 -0
  30. package/dist/server/common/templates-directory.js.map +1 -0
  31. package/dist/server/main.js +58 -7
  32. package/dist/server/main.js.map +1 -1
  33. package/dist/server/modules/chat/dtos/chat.dto.d.ts +2 -2
  34. package/dist/server/modules/core/controllers/health.controller.d.ts +4 -0
  35. package/dist/server/modules/core/controllers/health.controller.js +22 -1
  36. package/dist/server/modules/core/controllers/health.controller.js.map +1 -1
  37. package/dist/server/modules/core/controllers/runtime.controller.d.ts +18 -0
  38. package/dist/server/modules/core/controllers/runtime.controller.js +130 -0
  39. package/dist/server/modules/core/controllers/runtime.controller.js.map +1 -0
  40. package/dist/server/modules/core/core-common.module.d.ts +2 -0
  41. package/dist/server/modules/core/core-common.module.js +24 -0
  42. package/dist/server/modules/core/core-common.module.js.map +1 -0
  43. package/dist/server/modules/core/core-main-health.module.d.ts +2 -0
  44. package/dist/server/modules/core/core-main-health.module.js +32 -0
  45. package/dist/server/modules/core/core-main-health.module.js.map +1 -0
  46. package/dist/server/modules/core/core-normal-health.module.d.ts +2 -0
  47. package/dist/server/modules/core/core-normal-health.module.js +29 -0
  48. package/dist/server/modules/core/core-normal-health.module.js.map +1 -0
  49. package/dist/server/modules/core/core-normal.module.d.ts +2 -0
  50. package/dist/server/modules/core/core-normal.module.js +28 -0
  51. package/dist/server/modules/core/core-normal.module.js.map +1 -0
  52. package/dist/server/modules/core/core.module.js +4 -11
  53. package/dist/server/modules/core/core.module.js.map +1 -1
  54. package/dist/server/modules/core/services/health.service.d.ts +13 -0
  55. package/dist/server/modules/core/services/health.service.js +39 -0
  56. package/dist/server/modules/core/services/health.service.js.map +1 -0
  57. package/dist/server/modules/core/services/main-readiness-checker.service.d.ts +14 -0
  58. package/dist/server/modules/core/services/main-readiness-checker.service.js +82 -0
  59. package/dist/server/modules/core/services/main-readiness-checker.service.js.map +1 -0
  60. package/dist/server/modules/core/services/normal-readiness-checker.service.d.ts +13 -0
  61. package/dist/server/modules/core/services/normal-readiness-checker.service.js +67 -0
  62. package/dist/server/modules/core/services/normal-readiness-checker.service.js.map +1 -0
  63. package/dist/server/modules/core/services/preflight.service.d.ts +1 -0
  64. package/dist/server/modules/core/services/preflight.service.js +18 -1
  65. package/dist/server/modules/core/services/preflight.service.js.map +1 -1
  66. package/dist/server/modules/core/services/provider-mcp-ensure.service.js +8 -0
  67. package/dist/server/modules/core/services/provider-mcp-ensure.service.js.map +1 -1
  68. package/dist/server/modules/epics/epics.module.js +2 -2
  69. package/dist/server/modules/epics/epics.module.js.map +1 -1
  70. package/dist/server/modules/events/catalog/claude.hooks.session.started.d.ts +39 -0
  71. package/dist/server/modules/events/catalog/claude.hooks.session.started.js +20 -0
  72. package/dist/server/modules/events/catalog/claude.hooks.session.started.js.map +1 -0
  73. package/dist/server/modules/events/catalog/epic.created.d.ts +2 -2
  74. package/dist/server/modules/events/catalog/index.d.ts +38 -4
  75. package/dist/server/modules/events/catalog/index.js +2 -0
  76. package/dist/server/modules/events/catalog/index.js.map +1 -1
  77. package/dist/server/modules/events/catalog/terminal.watcher.triggered.d.ts +2 -2
  78. package/dist/server/modules/events/controllers/event-log.controller.d.ts +1 -1
  79. package/dist/server/modules/events/controllers/event-log.controller.js +11 -9
  80. package/dist/server/modules/events/controllers/event-log.controller.js.map +1 -1
  81. package/dist/server/modules/events/dtos/event-log.dto.d.ts +1 -0
  82. package/dist/server/modules/events/events-domain.module.d.ts +2 -0
  83. package/dist/server/modules/events/events-domain.module.js +42 -0
  84. package/dist/server/modules/events/events-domain.module.js.map +1 -0
  85. package/dist/server/modules/events/events-infra.module.d.ts +2 -0
  86. package/dist/server/modules/events/events-infra.module.js +26 -0
  87. package/dist/server/modules/events/events-infra.module.js.map +1 -0
  88. package/dist/server/modules/events/events.module.js +4 -27
  89. package/dist/server/modules/events/events.module.js.map +1 -1
  90. package/dist/server/modules/events/index.d.ts +2 -0
  91. package/dist/server/modules/events/index.js +2 -0
  92. package/dist/server/modules/events/index.js.map +1 -1
  93. package/dist/server/modules/events/services/event-log.service.d.ts +8 -1
  94. package/dist/server/modules/events/services/event-log.service.js +41 -0
  95. package/dist/server/modules/events/services/event-log.service.js.map +1 -1
  96. package/dist/server/modules/events/subscribers/index.js +2 -0
  97. package/dist/server/modules/events/subscribers/index.js.map +1 -1
  98. package/dist/server/modules/events/subscribers/worktree-broadcaster.subscriber.d.ts +8 -0
  99. package/dist/server/modules/events/subscribers/worktree-broadcaster.subscriber.js +48 -0
  100. package/dist/server/modules/events/subscribers/worktree-broadcaster.subscriber.js.map +1 -0
  101. package/dist/server/modules/git/dtos/git.dto.d.ts +1 -1
  102. package/dist/server/modules/guests/guests.module.js +2 -2
  103. package/dist/server/modules/guests/guests.module.js.map +1 -1
  104. package/dist/server/modules/hooks/controllers/hooks.controller.d.ts +7 -0
  105. package/dist/server/modules/hooks/controllers/hooks.controller.js +49 -0
  106. package/dist/server/modules/hooks/controllers/hooks.controller.js.map +1 -0
  107. package/dist/server/modules/hooks/dtos/hook-event.dto.d.ts +41 -0
  108. package/dist/server/modules/hooks/dtos/hook-event.dto.js +19 -0
  109. package/dist/server/modules/hooks/dtos/hook-event.dto.js.map +1 -0
  110. package/dist/server/modules/hooks/hooks.module.d.ts +2 -0
  111. package/dist/server/modules/hooks/hooks.module.js +27 -0
  112. package/dist/server/modules/hooks/hooks.module.js.map +1 -0
  113. package/dist/server/modules/hooks/services/hooks-config.service.d.ts +5 -0
  114. package/dist/server/modules/hooks/services/hooks-config.service.js +215 -0
  115. package/dist/server/modules/hooks/services/hooks-config.service.js.map +1 -0
  116. package/dist/server/modules/hooks/services/hooks.service.d.ts +11 -0
  117. package/dist/server/modules/hooks/services/hooks.service.js +83 -0
  118. package/dist/server/modules/hooks/services/hooks.service.js.map +1 -0
  119. package/dist/server/modules/mcp/dtos/mcp.dto.d.ts +14 -14
  120. package/dist/server/modules/mcp/mcp.module.js +2 -2
  121. package/dist/server/modules/mcp/mcp.module.js.map +1 -1
  122. package/dist/server/modules/orchestrator/docker/docker.module.d.ts +2 -0
  123. package/dist/server/modules/orchestrator/docker/docker.module.js +22 -0
  124. package/dist/server/modules/orchestrator/docker/docker.module.js.map +1 -0
  125. package/dist/server/modules/orchestrator/docker/index.d.ts +3 -0
  126. package/dist/server/modules/orchestrator/docker/index.js +20 -0
  127. package/dist/server/modules/orchestrator/docker/index.js.map +1 -0
  128. package/dist/server/modules/orchestrator/docker/services/docker.service.d.ts +85 -0
  129. package/dist/server/modules/orchestrator/docker/services/docker.service.js +745 -0
  130. package/dist/server/modules/orchestrator/docker/services/docker.service.js.map +1 -0
  131. package/dist/server/modules/orchestrator/docker/services/seed-preparation.service.d.ts +11 -0
  132. package/dist/server/modules/orchestrator/docker/services/seed-preparation.service.js +181 -0
  133. package/dist/server/modules/orchestrator/docker/services/seed-preparation.service.js.map +1 -0
  134. package/dist/server/modules/orchestrator/git/controllers/git.controller.d.ts +8 -0
  135. package/dist/server/modules/orchestrator/git/controllers/git.controller.js +38 -0
  136. package/dist/server/modules/orchestrator/git/controllers/git.controller.js.map +1 -0
  137. package/dist/server/modules/orchestrator/git/git.module.d.ts +2 -0
  138. package/dist/server/modules/orchestrator/git/git.module.js +23 -0
  139. package/dist/server/modules/orchestrator/git/git.module.js.map +1 -0
  140. package/dist/server/modules/orchestrator/git/index.d.ts +3 -0
  141. package/dist/server/modules/orchestrator/git/index.js +20 -0
  142. package/dist/server/modules/orchestrator/git/index.js.map +1 -0
  143. package/dist/server/modules/orchestrator/git/services/git-worktree.service.d.ts +83 -0
  144. package/dist/server/modules/orchestrator/git/services/git-worktree.service.js +474 -0
  145. package/dist/server/modules/orchestrator/git/services/git-worktree.service.js.map +1 -0
  146. package/dist/server/modules/orchestrator/index.d.ts +6 -0
  147. package/dist/server/modules/orchestrator/index.js +23 -0
  148. package/dist/server/modules/orchestrator/index.js.map +1 -0
  149. package/dist/server/modules/orchestrator/orchestrator-storage/db/index.d.ts +1 -0
  150. package/dist/server/modules/orchestrator/orchestrator-storage/db/index.js +18 -0
  151. package/dist/server/modules/orchestrator/orchestrator-storage/db/index.js.map +1 -0
  152. package/dist/server/modules/orchestrator/orchestrator-storage/db/orchestrator.provider.d.ts +5 -0
  153. package/dist/server/modules/orchestrator/orchestrator-storage/db/orchestrator.provider.js +10 -0
  154. package/dist/server/modules/orchestrator/orchestrator-storage/db/orchestrator.provider.js.map +1 -0
  155. package/dist/server/modules/orchestrator/orchestrator-storage/index.d.ts +2 -0
  156. package/dist/server/modules/orchestrator/orchestrator-storage/index.js +19 -0
  157. package/dist/server/modules/orchestrator/orchestrator-storage/index.js.map +1 -0
  158. package/dist/server/modules/orchestrator/orchestrator-storage/orchestrator-storage.module.d.ts +2 -0
  159. package/dist/server/modules/orchestrator/orchestrator-storage/orchestrator-storage.module.js +23 -0
  160. package/dist/server/modules/orchestrator/orchestrator-storage/orchestrator-storage.module.js.map +1 -0
  161. package/dist/server/modules/orchestrator/proxy/index.d.ts +2 -0
  162. package/dist/server/modules/orchestrator/proxy/index.js +19 -0
  163. package/dist/server/modules/orchestrator/proxy/index.js.map +1 -0
  164. package/dist/server/modules/orchestrator/proxy/orchestrator-proxy.module.d.ts +2 -0
  165. package/dist/server/modules/orchestrator/proxy/orchestrator-proxy.module.js +22 -0
  166. package/dist/server/modules/orchestrator/proxy/orchestrator-proxy.module.js.map +1 -0
  167. package/dist/server/modules/orchestrator/proxy/services/orchestrator-proxy.service.d.ts +18 -0
  168. package/dist/server/modules/orchestrator/proxy/services/orchestrator-proxy.service.js +192 -0
  169. package/dist/server/modules/orchestrator/proxy/services/orchestrator-proxy.service.js.map +1 -0
  170. package/dist/server/modules/orchestrator/sync/controllers/overview.controller.d.ts +9 -0
  171. package/dist/server/modules/orchestrator/sync/controllers/overview.controller.js +66 -0
  172. package/dist/server/modules/orchestrator/sync/controllers/overview.controller.js.map +1 -0
  173. package/dist/server/modules/orchestrator/sync/dtos/overview.dto.d.ts +52 -0
  174. package/dist/server/modules/orchestrator/sync/dtos/overview.dto.js +3 -0
  175. package/dist/server/modules/orchestrator/sync/dtos/overview.dto.js.map +1 -0
  176. package/dist/server/modules/orchestrator/sync/dtos/task-merge.dto.d.ts +5 -0
  177. package/dist/server/modules/orchestrator/sync/dtos/task-merge.dto.js +3 -0
  178. package/dist/server/modules/orchestrator/sync/dtos/task-merge.dto.js.map +1 -0
  179. package/dist/server/modules/orchestrator/sync/events/task-merge.events.d.ts +4 -0
  180. package/dist/server/modules/orchestrator/sync/events/task-merge.events.js +5 -0
  181. package/dist/server/modules/orchestrator/sync/events/task-merge.events.js.map +1 -0
  182. package/dist/server/modules/orchestrator/sync/index.d.ts +7 -0
  183. package/dist/server/modules/orchestrator/sync/index.js +24 -0
  184. package/dist/server/modules/orchestrator/sync/index.js.map +1 -0
  185. package/dist/server/modules/orchestrator/sync/services/lazy-fetch.service.d.ts +31 -0
  186. package/dist/server/modules/orchestrator/sync/services/lazy-fetch.service.js +410 -0
  187. package/dist/server/modules/orchestrator/sync/services/lazy-fetch.service.js.map +1 -0
  188. package/dist/server/modules/orchestrator/sync/services/task-merge.service.d.ts +44 -0
  189. package/dist/server/modules/orchestrator/sync/services/task-merge.service.js +730 -0
  190. package/dist/server/modules/orchestrator/sync/services/task-merge.service.js.map +1 -0
  191. package/dist/server/modules/orchestrator/sync/sync.module.d.ts +2 -0
  192. package/dist/server/modules/orchestrator/sync/sync.module.js +36 -0
  193. package/dist/server/modules/orchestrator/sync/sync.module.js.map +1 -0
  194. package/dist/server/modules/orchestrator/ui/app/lib/worktrees.d.ts +118 -0
  195. package/dist/server/modules/orchestrator/ui/app/lib/worktrees.js +297 -0
  196. package/dist/server/modules/orchestrator/ui/app/lib/worktrees.js.map +1 -0
  197. package/dist/server/modules/orchestrator/ui/app/orchestrator-app.d.ts +17 -0
  198. package/dist/server/modules/orchestrator/ui/app/orchestrator-app.js +752 -0
  199. package/dist/server/modules/orchestrator/ui/app/orchestrator-app.js.map +1 -0
  200. package/dist/server/modules/orchestrator/worktrees/controllers/templates.controller.d.ts +15 -0
  201. package/dist/server/modules/orchestrator/worktrees/controllers/templates.controller.js +85 -0
  202. package/dist/server/modules/orchestrator/worktrees/controllers/templates.controller.js.map +1 -0
  203. package/dist/server/modules/orchestrator/worktrees/controllers/worktrees.controller.d.ts +29 -0
  204. package/dist/server/modules/orchestrator/worktrees/controllers/worktrees.controller.js +272 -0
  205. package/dist/server/modules/orchestrator/worktrees/controllers/worktrees.controller.js.map +1 -0
  206. package/dist/server/modules/orchestrator/worktrees/dtos/worktree.dto.d.ts +109 -0
  207. package/dist/server/modules/orchestrator/worktrees/dtos/worktree.dto.js +57 -0
  208. package/dist/server/modules/orchestrator/worktrees/dtos/worktree.dto.js.map +1 -0
  209. package/dist/server/modules/orchestrator/worktrees/events/worktree.events.d.ts +4 -0
  210. package/dist/server/modules/orchestrator/worktrees/events/worktree.events.js +5 -0
  211. package/dist/server/modules/orchestrator/worktrees/events/worktree.events.js.map +1 -0
  212. package/dist/server/modules/orchestrator/worktrees/index.d.ts +7 -0
  213. package/dist/server/modules/orchestrator/worktrees/index.js +24 -0
  214. package/dist/server/modules/orchestrator/worktrees/index.js.map +1 -0
  215. package/dist/server/modules/orchestrator/worktrees/local-worktrees.store.d.ts +18 -0
  216. package/dist/server/modules/orchestrator/worktrees/local-worktrees.store.js +198 -0
  217. package/dist/server/modules/orchestrator/worktrees/local-worktrees.store.js.map +1 -0
  218. package/dist/server/modules/orchestrator/worktrees/services/worktrees.service.d.ts +87 -0
  219. package/dist/server/modules/orchestrator/worktrees/services/worktrees.service.js +1380 -0
  220. package/dist/server/modules/orchestrator/worktrees/services/worktrees.service.js.map +1 -0
  221. package/dist/server/modules/orchestrator/worktrees/worktree-validation.d.ts +4 -0
  222. package/dist/server/modules/orchestrator/worktrees/worktree-validation.js +43 -0
  223. package/dist/server/modules/orchestrator/worktrees/worktree-validation.js.map +1 -0
  224. package/dist/server/modules/orchestrator/worktrees/worktrees.module.d.ts +2 -0
  225. package/dist/server/modules/orchestrator/worktrees/worktrees.module.js +44 -0
  226. package/dist/server/modules/orchestrator/worktrees/worktrees.module.js.map +1 -0
  227. package/dist/server/modules/orchestrator/worktrees/worktrees.store.d.ts +38 -0
  228. package/dist/server/modules/orchestrator/worktrees/worktrees.store.js +5 -0
  229. package/dist/server/modules/orchestrator/worktrees/worktrees.store.js.map +1 -0
  230. package/dist/server/modules/profiles/dto.d.ts +4 -4
  231. package/dist/server/modules/projects/controllers/projects.controller.d.ts +13 -3
  232. package/dist/server/modules/projects/controllers/projects.controller.js +55 -7
  233. package/dist/server/modules/projects/controllers/projects.controller.js.map +1 -1
  234. package/dist/server/modules/projects/projects.module.js +3 -2
  235. package/dist/server/modules/projects/projects.module.js.map +1 -1
  236. package/dist/server/modules/projects/services/main-project-bootstrap.service.d.ts +11 -0
  237. package/dist/server/modules/projects/services/main-project-bootstrap.service.js +76 -0
  238. package/dist/server/modules/projects/services/main-project-bootstrap.service.js.map +1 -0
  239. package/dist/server/modules/projects/services/projects.service.d.ts +8 -0
  240. package/dist/server/modules/projects/services/projects.service.js +115 -37
  241. package/dist/server/modules/projects/services/projects.service.js.map +1 -1
  242. package/dist/server/modules/providers/adapters/gemini.adapter.d.ts +1 -1
  243. package/dist/server/modules/providers/adapters/gemini.adapter.js +6 -4
  244. package/dist/server/modules/providers/adapters/gemini.adapter.js.map +1 -1
  245. package/dist/server/modules/providers/controllers/providers.controller.d.ts +3 -0
  246. package/dist/server/modules/providers/controllers/providers.controller.js +28 -0
  247. package/dist/server/modules/providers/controllers/providers.controller.js.map +1 -1
  248. package/dist/server/modules/providers/providers.module.js +2 -2
  249. package/dist/server/modules/providers/providers.module.js.map +1 -1
  250. package/dist/server/modules/registry/services/unified-template.service.js +6 -18
  251. package/dist/server/modules/registry/services/unified-template.service.js.map +1 -1
  252. package/dist/server/modules/reviews/dtos/review.dto.d.ts +4 -4
  253. package/dist/server/modules/reviews/reviews.module.js +2 -2
  254. package/dist/server/modules/reviews/reviews.module.js.map +1 -1
  255. package/dist/server/modules/seeders/seeders/0005_seed_renew_instructions_subscriber.d.ts +3 -0
  256. package/dist/server/modules/seeders/seeders/0005_seed_renew_instructions_subscriber.js +89 -0
  257. package/dist/server/modules/seeders/seeders/0005_seed_renew_instructions_subscriber.js.map +1 -0
  258. package/dist/server/modules/seeders/seeders/0006_seed_rename_template_slugs.d.ts +3 -0
  259. package/dist/server/modules/seeders/seeders/0006_seed_rename_template_slugs.js +60 -0
  260. package/dist/server/modules/seeders/seeders/0006_seed_rename_template_slugs.js.map +1 -0
  261. package/dist/server/modules/seeders/services/data-seeder.service.js +4 -0
  262. package/dist/server/modules/seeders/services/data-seeder.service.js.map +1 -1
  263. package/dist/server/modules/sessions/services/sessions.service.d.ts +3 -1
  264. package/dist/server/modules/sessions/services/sessions.service.js +79 -22
  265. package/dist/server/modules/sessions/services/sessions.service.js.map +1 -1
  266. package/dist/server/modules/sessions/sessions.module.js +6 -4
  267. package/dist/server/modules/sessions/sessions.module.js.map +1 -1
  268. package/dist/server/modules/sessions/utils/claude-config.d.ts +6 -2
  269. package/dist/server/modules/sessions/utils/claude-config.js +19 -6
  270. package/dist/server/modules/sessions/utils/claude-config.js.map +1 -1
  271. package/dist/server/modules/settings/dtos/settings.dto.d.ts +4 -4
  272. package/dist/server/modules/skills/adapters/github-skill-source.base.d.ts +2 -5
  273. package/dist/server/modules/skills/adapters/github-skill-source.base.js +31 -100
  274. package/dist/server/modules/skills/adapters/github-skill-source.base.js.map +1 -1
  275. package/dist/server/modules/skills/adapters/local-skill-source.adapter.d.ts +16 -0
  276. package/dist/server/modules/skills/adapters/local-skill-source.adapter.js +265 -0
  277. package/dist/server/modules/skills/adapters/local-skill-source.adapter.js.map +1 -0
  278. package/dist/server/modules/skills/adapters/skill-parsing.utils.d.ts +32 -0
  279. package/dist/server/modules/skills/adapters/skill-parsing.utils.js +169 -0
  280. package/dist/server/modules/skills/adapters/skill-parsing.utils.js.map +1 -0
  281. package/dist/server/modules/skills/controllers/local-sources.controller.d.ts +12 -0
  282. package/dist/server/modules/skills/controllers/local-sources.controller.js +71 -0
  283. package/dist/server/modules/skills/controllers/local-sources.controller.js.map +1 -0
  284. package/dist/server/modules/skills/controllers/skills.controller.d.ts +11 -1
  285. package/dist/server/modules/skills/controllers/skills.controller.js +35 -3
  286. package/dist/server/modules/skills/controllers/skills.controller.js.map +1 -1
  287. package/dist/server/modules/skills/dtos/community-sources.dto.d.ts +2 -2
  288. package/dist/server/modules/skills/dtos/local-sources.dto.d.ts +42 -0
  289. package/dist/server/modules/skills/dtos/local-sources.dto.js +30 -0
  290. package/dist/server/modules/skills/dtos/local-sources.dto.js.map +1 -0
  291. package/dist/server/modules/skills/dtos/skill.dto.d.ts +23 -7
  292. package/dist/server/modules/skills/dtos/skill.dto.js +7 -1
  293. package/dist/server/modules/skills/dtos/skill.dto.js.map +1 -1
  294. package/dist/server/modules/skills/services/community-sources.service.d.ts +8 -1
  295. package/dist/server/modules/skills/services/community-sources.service.js +62 -3
  296. package/dist/server/modules/skills/services/community-sources.service.js.map +1 -1
  297. package/dist/server/modules/skills/services/local-sources.service.d.ts +20 -0
  298. package/dist/server/modules/skills/services/local-sources.service.js +206 -0
  299. package/dist/server/modules/skills/services/local-sources.service.js.map +1 -0
  300. package/dist/server/modules/skills/services/skill-source-registry.service.d.ts +11 -0
  301. package/dist/server/modules/skills/services/skill-source-registry.service.js +99 -3
  302. package/dist/server/modules/skills/services/skill-source-registry.service.js.map +1 -1
  303. package/dist/server/modules/skills/services/skill-sync.service.d.ts +4 -0
  304. package/dist/server/modules/skills/services/skill-sync.service.js +93 -0
  305. package/dist/server/modules/skills/services/skill-sync.service.js.map +1 -1
  306. package/dist/server/modules/skills/services/skills.service.d.ts +14 -2
  307. package/dist/server/modules/skills/services/skills.service.js +125 -23
  308. package/dist/server/modules/skills/services/skills.service.js.map +1 -1
  309. package/dist/server/modules/skills/skills.module.js +4 -1
  310. package/dist/server/modules/skills/skills.module.js.map +1 -1
  311. package/dist/server/modules/storage/db/schema.d.ts +1115 -102
  312. package/dist/server/modules/storage/db/schema.js +81 -1
  313. package/dist/server/modules/storage/db/schema.js.map +1 -1
  314. package/dist/server/modules/storage/db/sqlite-json.d.ts +2 -0
  315. package/dist/server/modules/storage/db/sqlite-json.js +8 -0
  316. package/dist/server/modules/storage/db/sqlite-json.js.map +1 -0
  317. package/dist/server/modules/storage/interfaces/storage.interface.d.ts +17 -2
  318. package/dist/server/modules/storage/interfaces/storage.interface.js.map +1 -1
  319. package/dist/server/modules/storage/local/local-storage.service.d.ts +19 -2
  320. package/dist/server/modules/storage/local/local-storage.service.js +313 -5
  321. package/dist/server/modules/storage/local/local-storage.service.js.map +1 -1
  322. package/dist/server/modules/storage/models/domain.models.d.ts +10 -0
  323. package/dist/server/modules/subscribers/dtos/subscriber.dto.d.ts +16 -16
  324. package/dist/server/modules/subscribers/events/event-fields-catalog.js +18 -0
  325. package/dist/server/modules/subscribers/events/event-fields-catalog.js.map +1 -1
  326. package/dist/server/modules/subscribers/subscribers.module.js +2 -2
  327. package/dist/server/modules/subscribers/subscribers.module.js.map +1 -1
  328. package/dist/server/modules/terminal/gateways/terminal.gateway.js +7 -2
  329. package/dist/server/modules/terminal/gateways/terminal.gateway.js.map +1 -1
  330. package/dist/server/modules/terminal/services/tmux.service.d.ts +9 -0
  331. package/dist/server/modules/terminal/services/tmux.service.js +55 -5
  332. package/dist/server/modules/terminal/services/tmux.service.js.map +1 -1
  333. package/dist/server/modules/terminal/terminal.module.js +2 -2
  334. package/dist/server/modules/terminal/terminal.module.js.map +1 -1
  335. package/dist/server/modules/watchers/watchers.module.js +2 -2
  336. package/dist/server/modules/watchers/watchers.module.js.map +1 -1
  337. package/dist/server/templates/3-agents-dev.json +662 -0
  338. package/dist/server/templates/{dev-loop.json → 5-agents-dev.json} +174 -100
  339. package/dist/server/test-setup.js +7 -0
  340. package/dist/server/test-setup.js.map +1 -1
  341. package/dist/server/tsconfig.tsbuildinfo +1 -1
  342. package/dist/server/ui/assets/ReviewDetailPage-CZZQtaY7.js +1 -0
  343. package/dist/server/ui/assets/{ReviewsPage-C98ST0lf.js → ReviewsPage-C209GLQG.js} +1 -1
  344. package/dist/server/ui/assets/index-DvRuLfpZ.css +32 -0
  345. package/dist/server/ui/assets/index-Th1FDtKR.js +977 -0
  346. package/dist/server/ui/assets/{useReviewSubscription-CmLuF45Z.js → useReviewSubscription-Dcabsa78.js} +1 -1
  347. package/dist/server/ui/index.html +2 -2
  348. package/dist/templates/3-agents-dev.json +662 -0
  349. package/dist/templates/{dev-loop.json → 5-agents-dev.json} +174 -100
  350. package/package.json +19 -1
  351. package/dist/server/ui/assets/ReviewDetailPage-D13dH7Wh.js +0 -6
  352. package/dist/server/ui/assets/index-C8Dc1yQf.js +0 -945
  353. package/dist/server/ui/assets/index-DZkJ40z9.css +0 -32
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "devchain-cli",
3
- "version": "0.9.1",
3
+ "version": "0.10.0",
4
4
  "description": "AI driven development platform",
5
5
  "homepage": "https://devchain.twitechlab.com/",
6
6
  "repository": {
@@ -8,6 +8,21 @@
8
8
  "url": "https://github.com/twitech-lab/devchain.git"
9
9
  },
10
10
  "changelog": {
11
+ "0.10.0": [
12
+ "Details: https://devchain.twitechlab.com/releases/0.10.0/",
13
+ "",
14
+ "Worktrees: launch isolated agent environments as Docker containers or local processes, each with their own branch, terminal, and chat",
15
+ "Container isolation: auto-provision worktree image from GHCR, run agents as non-root with full git identity and Docker CLI access",
16
+ "Worktree UI: central chat hub with per-worktree terminals, inline agent chat, preset and provider switching, real-time status updates",
17
+ "Claude Code hooks: integrate Claude Code hook events with DevChain automation",
18
+ "Auto-compact: moved to non-blocking recommendation with provider-specific thresholds",
19
+ "UI: compact collapsible sidebar, persistent section state, board context menu with move-to-worktree action",
20
+ "Templates: 5-agents-dev rename and new 3-agents-dev lightweight template"
21
+ ],
22
+ "0.9.2": [
23
+ "Per-project source controls, local folder sources, and stale skill cleanup",
24
+ "Auto-sync skills on new source creation"
25
+ ],
11
26
  "0.9.1": [
12
27
  "Community skill sources: add any GitHub repo as a skill source via UI"
13
28
  ],
@@ -157,6 +172,7 @@
157
172
  "LICENSE"
158
173
  ],
159
174
  "dependencies": {
175
+ "@fastify/http-proxy": "9.5.0",
160
176
  "@fastify/static": "^7.0.4",
161
177
  "@modelcontextprotocol/sdk": "1.20.1",
162
178
  "@nestjs/common": "^10.3.3",
@@ -193,6 +209,7 @@
193
209
  "class-variance-authority": "0.7.1",
194
210
  "clsx": "2.1.1",
195
211
  "commander": "^12.1.0",
212
+ "dockerode": "4.0.9",
196
213
  "devchain-cli": "0.4.1",
197
214
  "dotenv": "^16.4.5",
198
215
  "drizzle-orm": "0.44.6",
@@ -225,6 +242,7 @@
225
242
  "start": "node dist/cli.js start",
226
243
  "stop": "node scripts/cli.js stop",
227
244
  "dev": "pnpm --filter shared build && node scripts/cli.js start --dev",
245
+ "dev:image": "node scripts/cli.js dev:image",
228
246
  "dev:pure": "pnpm --filter local-app dev",
229
247
  "dev:ui": "pnpm --filter local-app dev:ui",
230
248
  "dev:api": "pnpm --filter remote-api dev",
@@ -1,6 +0,0 @@
1
- import{c as ae,D as se,u as ie,r as p,k as d,j as e,x as le,n as w,E as te,B as T,a as oe,T as ce,t as ne,v as pe,K as re,w as me,y as c}from"./index-C8Dc1yQf.js";import{N as A,u as ue,a as he,b as de,h as ge,S as be,w as Ne,R as z,k as g,F as G,l as ve,m as _,D as q,n as K,K as fe,x as xe,y as we,z as De,v as Pe}from"./useReviewSubscription-CmLuF45Z.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 Re=[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]],je=ae("git-branch",Re),H="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 Ee(){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(c,{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(c,{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(c,{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(c,{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(c,{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(c,{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(c,{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(c,{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 Se(){var F;const{reviewId:i}=se(),r=ie(),[l,m]=p.useState(null),[b,D]=p.useState("unified"),P=A({id:H,storage:localStorage}),R=A({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=((F=N==null?void 0:N.items)==null?void 0:F.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(n=>n.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(n=>n.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(Ee,{},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(le,{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 k=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(te,{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(T,{variant:"secondary",className:oe("shrink-0",k.bg,k.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(je,{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(ce,{children:e.jsxDEV(ne,{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(z,{orientation:"horizontal",className:"flex-1 min-h-0",id:H,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(T,{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(_,{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(z,{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(q,{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,n,v,f,x)=>{await u.mutateAsync({reviewId:i,content:v,commentType:f,filePath:l,lineStart:s,lineEnd:o,side:n,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(_,{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(K,{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(q,{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,n,v,f,x)=>{await u.mutateAsync({reviewId:i,content:v,commentType:f,filePath:l,lineStart:s,lineEnd:o,side:n,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(K,{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{Se as ReviewDetailPage};