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
@@ -1,10 +1,17 @@
1
+ import { OnModuleDestroy, OnModuleInit } from '@nestjs/common';
1
2
  import type { BetterSQLite3Database } from 'drizzle-orm/better-sqlite3';
2
3
  import type { EventLogListFilters, EventLogListResult } from '../dtos/event-log.dto';
3
4
  import { EventsStreamService } from './events-stream.service';
4
- export declare class EventLogService {
5
+ export declare class EventLogService implements OnModuleInit, OnModuleDestroy {
5
6
  private readonly db;
6
7
  private readonly eventsStreamService;
8
+ private cleanupTimer?;
7
9
  constructor(db: BetterSQLite3Database, eventsStreamService: EventsStreamService);
10
+ onModuleInit(): Promise<void>;
11
+ onModuleDestroy(): void;
12
+ cleanupOldWorktreeActivityEvents(params?: {
13
+ retentionDays?: number;
14
+ }): Promise<void>;
8
15
  recordPublished(params: {
9
16
  name: string;
10
17
  payload: unknown;
@@ -52,6 +52,9 @@ const db_provider_1 = require("../../storage/db/db.provider");
52
52
  const logger_1 = require("../../../common/logging/logger");
53
53
  const events_stream_service_1 = require("./events-stream.service");
54
54
  const logger = (0, logger_1.createLogger)('EventLogService');
55
+ const WORKTREE_ACTIVITY_EVENT_NAME = 'orchestrator.worktree.activity';
56
+ const WORKTREE_ACTIVITY_RETENTION_DAYS = 30;
57
+ const WORKTREE_ACTIVITY_CLEANUP_INTERVAL_MS = 86_400_000;
55
58
  function safeStringify(value) {
56
59
  if (value === null || value === undefined) {
57
60
  return null;
@@ -84,6 +87,40 @@ let EventLogService = class EventLogService {
84
87
  this.db = db;
85
88
  this.eventsStreamService = eventsStreamService;
86
89
  }
90
+ async onModuleInit() {
91
+ if (this.cleanupTimer) {
92
+ clearInterval(this.cleanupTimer);
93
+ this.cleanupTimer = undefined;
94
+ }
95
+ await this.cleanupOldWorktreeActivityEvents().catch((error) => {
96
+ logger.warn({ error }, 'Failed initial cleanup of worktree activity events');
97
+ });
98
+ this.cleanupTimer = setInterval(() => {
99
+ this.cleanupOldWorktreeActivityEvents().catch((error) => {
100
+ logger.warn({ error }, 'Failed scheduled cleanup of worktree activity events');
101
+ });
102
+ }, WORKTREE_ACTIVITY_CLEANUP_INTERVAL_MS);
103
+ this.cleanupTimer.unref?.();
104
+ }
105
+ onModuleDestroy() {
106
+ if (!this.cleanupTimer) {
107
+ return;
108
+ }
109
+ clearInterval(this.cleanupTimer);
110
+ this.cleanupTimer = undefined;
111
+ }
112
+ async cleanupOldWorktreeActivityEvents(params) {
113
+ const retentionDaysRaw = params?.retentionDays ?? WORKTREE_ACTIVITY_RETENTION_DAYS;
114
+ const retentionDays = Number.isFinite(retentionDaysRaw)
115
+ ? Math.max(1, Math.trunc(retentionDaysRaw))
116
+ : WORKTREE_ACTIVITY_RETENTION_DAYS;
117
+ const cutoffIso = new Date(Date.now() - retentionDays * 86_400_000).toISOString();
118
+ const { events } = await Promise.resolve().then(() => __importStar(require('../../storage/db/schema')));
119
+ const { and, eq, lt } = await Promise.resolve().then(() => __importStar(require('drizzle-orm')));
120
+ await this.db
121
+ .delete(events)
122
+ .where(and(eq(events.name, WORKTREE_ACTIVITY_EVENT_NAME), lt(events.publishedAt, cutoffIso)));
123
+ }
87
124
  async recordPublished(params) {
88
125
  const { events } = await Promise.resolve().then(() => __importStar(require('../../storage/db/schema')));
89
126
  const eventId = params.id ?? (0, crypto_1.randomUUID)();
@@ -147,12 +184,16 @@ let EventLogService = class EventLogService {
147
184
  async listEvents(filters) {
148
185
  const { events, eventHandlers } = await Promise.resolve().then(() => __importStar(require('../../storage/db/schema')));
149
186
  const { and, eq, gte, lte, inArray, sql, desc } = await Promise.resolve().then(() => __importStar(require('drizzle-orm')));
187
+ const { safeJsonFieldEquals } = await Promise.resolve().then(() => __importStar(require('../../storage/db/sqlite-json')));
150
188
  const limit = filters.limit ?? 50;
151
189
  const offset = filters.offset ?? 0;
152
190
  const eventConditions = [];
153
191
  if (filters.name) {
154
192
  eventConditions.push(eq(events.name, filters.name));
155
193
  }
194
+ if (filters.ownerProjectId) {
195
+ eventConditions.push(safeJsonFieldEquals(events.payloadJson, '$.ownerProjectId', filters.ownerProjectId));
196
+ }
156
197
  if (filters.from) {
157
198
  eventConditions.push(gte(events.publishedAt, filters.from));
158
199
  }
@@ -1 +1 @@
1
- {"version":3,"file":"event-log.service.js","sourceRoot":"","sources":["../../../../src/modules/events/services/event-log.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"event-log.service.js","sourceRoot":"","sources":["../../../../src/modules/events/services/event-log.service.ts"],"names":[],"mappings":"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"}
@@ -6,11 +6,13 @@ const chat_message_broadcaster_subscriber_1 = require("./chat-message-broadcaste
6
6
  const chat_message_delivery_subscriber_1 = require("./chat-message-delivery.subscriber");
7
7
  const review_comment_notifier_subscriber_1 = require("./review-comment-notifier.subscriber");
8
8
  const review_broadcaster_subscriber_1 = require("./review-broadcaster.subscriber");
9
+ const worktree_broadcaster_subscriber_1 = require("./worktree-broadcaster.subscriber");
9
10
  exports.subscribers = [
10
11
  epic_assignment_notifier_subscriber_1.EpicAssignmentNotifierSubscriber,
11
12
  chat_message_broadcaster_subscriber_1.ChatMessageBroadcasterSubscriber,
12
13
  chat_message_delivery_subscriber_1.ChatMessageDeliverySubscriber,
13
14
  review_comment_notifier_subscriber_1.ReviewCommentNotifierSubscriber,
14
15
  review_broadcaster_subscriber_1.ReviewBroadcasterSubscriber,
16
+ worktree_broadcaster_subscriber_1.WorktreeBroadcasterSubscriber,
15
17
  ];
16
18
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/events/subscribers/index.ts"],"names":[],"mappings":";;;AACA,+FAAyF;AACzF,+FAAyF;AACzF,yFAAmF;AACnF,6FAAuF;AACvF,mFAA8E;AAEjE,QAAA,WAAW,GAAe;IACrC,sEAAgC;IAChC,sEAAgC;IAChC,gEAA6B;IAC7B,oEAA+B;IAC/B,2DAA2B;CAC5B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/events/subscribers/index.ts"],"names":[],"mappings":";;;AACA,+FAAyF;AACzF,+FAAyF;AACzF,yFAAmF;AACnF,6FAAuF;AACvF,mFAA8E;AAC9E,uFAAkF;AAErE,QAAA,WAAW,GAAe;IACrC,sEAAgC;IAChC,sEAAgC;IAChC,gEAA6B;IAC7B,oEAA+B;IAC/B,2DAA2B;IAC3B,+DAA6B;CAC9B,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { TerminalGateway } from '../../terminal/gateways/terminal.gateway';
2
+ import { WorktreeChangedEvent } from '../../orchestrator/worktrees/events/worktree.events';
3
+ export declare class WorktreeBroadcasterSubscriber {
4
+ private readonly terminalGateway;
5
+ private readonly logger;
6
+ constructor(terminalGateway: TerminalGateway);
7
+ handleWorktreeChanged(payload: WorktreeChangedEvent): Promise<void>;
8
+ }
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ var WorktreeBroadcasterSubscriber_1;
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.WorktreeBroadcasterSubscriber = void 0;
17
+ const common_1 = require("@nestjs/common");
18
+ const event_emitter_1 = require("@nestjs/event-emitter");
19
+ const terminal_gateway_1 = require("../../terminal/gateways/terminal.gateway");
20
+ const worktree_events_1 = require("../../orchestrator/worktrees/events/worktree.events");
21
+ let WorktreeBroadcasterSubscriber = WorktreeBroadcasterSubscriber_1 = class WorktreeBroadcasterSubscriber {
22
+ constructor(terminalGateway) {
23
+ this.terminalGateway = terminalGateway;
24
+ this.logger = new common_1.Logger(WorktreeBroadcasterSubscriber_1.name);
25
+ }
26
+ async handleWorktreeChanged(payload) {
27
+ try {
28
+ this.terminalGateway.broadcastEvent('worktrees', 'changed', {});
29
+ this.logger.debug({ worktreeId: payload.worktreeId }, 'Broadcasted worktree changed event via WebSocket');
30
+ }
31
+ catch (error) {
32
+ this.logger.error({ error, worktreeId: payload.worktreeId }, 'Failed to broadcast worktree changed event');
33
+ }
34
+ }
35
+ };
36
+ exports.WorktreeBroadcasterSubscriber = WorktreeBroadcasterSubscriber;
37
+ __decorate([
38
+ (0, event_emitter_1.OnEvent)(worktree_events_1.WORKTREE_CHANGED_EVENT, { async: true }),
39
+ __metadata("design:type", Function),
40
+ __metadata("design:paramtypes", [Object]),
41
+ __metadata("design:returntype", Promise)
42
+ ], WorktreeBroadcasterSubscriber.prototype, "handleWorktreeChanged", null);
43
+ exports.WorktreeBroadcasterSubscriber = WorktreeBroadcasterSubscriber = WorktreeBroadcasterSubscriber_1 = __decorate([
44
+ (0, common_1.Injectable)(),
45
+ __param(0, (0, common_1.Inject)((0, common_1.forwardRef)(() => terminal_gateway_1.TerminalGateway))),
46
+ __metadata("design:paramtypes", [terminal_gateway_1.TerminalGateway])
47
+ ], WorktreeBroadcasterSubscriber);
48
+ //# sourceMappingURL=worktree-broadcaster.subscriber.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worktree-broadcaster.subscriber.js","sourceRoot":"","sources":["../../../../src/modules/events/subscribers/worktree-broadcaster.subscriber.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAwE;AACxE,yDAAgD;AAChD,+EAA2E;AAC3E,yFAG6D;AAGtD,IAAM,6BAA6B,qCAAnC,MAAM,6BAA6B;IAGxC,YAEE,eAAiD;QAAhC,oBAAe,GAAf,eAAe,CAAiB;QAJlC,WAAM,GAAG,IAAI,eAAM,CAAC,+BAA6B,CAAC,IAAI,CAAC,CAAC;IAKtE,CAAC;IAGE,AAAN,KAAK,CAAC,qBAAqB,CAAC,OAA6B;QACvD,IAAI,CAAC;YACH,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,WAAW,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;YAChE,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,EAClC,kDAAkD,CACnD,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,EACzC,4CAA4C,CAC7C,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAA;AAvBY,sEAA6B;AASlC;IADL,IAAA,uBAAO,EAAC,wCAAsB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;;;;0EAchD;wCAtBU,6BAA6B;IADzC,IAAA,mBAAU,GAAE;IAKR,WAAA,IAAA,eAAM,EAAC,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,kCAAe,CAAC,CAAC,CAAA;qCACR,kCAAe;GALxC,6BAA6B,CAuBzC"}
@@ -4,8 +4,8 @@ export declare const ListCommitsQuerySchema: z.ZodObject<{
4
4
  ref: z.ZodOptional<z.ZodString>;
5
5
  limit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6
6
  }, "strip", z.ZodTypeAny, {
7
- projectId: string;
8
7
  limit: number;
8
+ projectId: string;
9
9
  ref?: string | undefined;
10
10
  }, {
11
11
  projectId: string;
@@ -12,13 +12,13 @@ const guests_service_1 = require("./services/guests.service");
12
12
  const guest_health_service_1 = require("./services/guest-health.service");
13
13
  const storage_module_1 = require("../storage/storage.module");
14
14
  const terminal_module_1 = require("../terminal/terminal.module");
15
- const events_module_1 = require("../events/events.module");
15
+ const events_domain_module_1 = require("../events/events-domain.module");
16
16
  let GuestsModule = class GuestsModule {
17
17
  };
18
18
  exports.GuestsModule = GuestsModule;
19
19
  exports.GuestsModule = GuestsModule = __decorate([
20
20
  (0, common_1.Module)({
21
- imports: [storage_module_1.StorageModule, (0, common_1.forwardRef)(() => terminal_module_1.TerminalModule), (0, common_1.forwardRef)(() => events_module_1.EventsModule)],
21
+ imports: [storage_module_1.StorageModule, (0, common_1.forwardRef)(() => terminal_module_1.TerminalModule), (0, common_1.forwardRef)(() => events_domain_module_1.EventsDomainModule)],
22
22
  providers: [guests_service_1.GuestsService, guest_health_service_1.GuestHealthService],
23
23
  exports: [guests_service_1.GuestsService, guest_health_service_1.GuestHealthService],
24
24
  })
@@ -1 +1 @@
1
- {"version":3,"file":"guests.module.js","sourceRoot":"","sources":["../../../src/modules/guests/guests.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAoD;AACpD,8DAA0D;AAC1D,0EAAqE;AACrE,8DAA0D;AAC1D,iEAA6D;AAC7D,2DAAuD;AAOhD,IAAM,YAAY,GAAlB,MAAM,YAAY;CAAG,CAAA;AAAf,oCAAY;uBAAZ,YAAY;IALxB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,8BAAa,EAAE,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,gCAAc,CAAC,EAAE,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,4BAAY,CAAC,CAAC;QAC1F,SAAS,EAAE,CAAC,8BAAa,EAAE,yCAAkB,CAAC;QAC9C,OAAO,EAAE,CAAC,8BAAa,EAAE,yCAAkB,CAAC;KAC7C,CAAC;GACW,YAAY,CAAG"}
1
+ {"version":3,"file":"guests.module.js","sourceRoot":"","sources":["../../../src/modules/guests/guests.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAoD;AACpD,8DAA0D;AAC1D,0EAAqE;AACrE,8DAA0D;AAC1D,iEAA6D;AAC7D,yEAAoE;AAO7D,IAAM,YAAY,GAAlB,MAAM,YAAY;CAAG,CAAA;AAAf,oCAAY;uBAAZ,YAAY;IALxB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,8BAAa,EAAE,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,gCAAc,CAAC,EAAE,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,yCAAkB,CAAC,CAAC;QAChG,SAAS,EAAE,CAAC,8BAAa,EAAE,yCAAkB,CAAC;QAC9C,OAAO,EAAE,CAAC,8BAAa,EAAE,yCAAkB,CAAC;KAC7C,CAAC;GACW,YAAY,CAAG"}
@@ -0,0 +1,7 @@
1
+ import { HooksService } from '../services/hooks.service';
2
+ import { type HookEventResponse } from '../dtos/hook-event.dto';
3
+ export declare class HooksController {
4
+ private readonly hooksService;
5
+ constructor(hooksService: HooksService);
6
+ receiveHookEvent(body: unknown): Promise<HookEventResponse>;
7
+ }
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.HooksController = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const hooks_service_1 = require("../services/hooks.service");
18
+ const hook_event_dto_1 = require("../dtos/hook-event.dto");
19
+ const logger_1 = require("../../../common/logging/logger");
20
+ const logger = (0, logger_1.createLogger)('HooksController');
21
+ let HooksController = class HooksController {
22
+ constructor(hooksService) {
23
+ this.hooksService = hooksService;
24
+ }
25
+ async receiveHookEvent(body) {
26
+ logger.info('POST /api/hooks/events');
27
+ const parseResult = hook_event_dto_1.HookEventSchema.safeParse(body);
28
+ if (!parseResult.success) {
29
+ throw new common_1.BadRequestException({
30
+ message: 'Validation failed',
31
+ errors: parseResult.error.errors,
32
+ });
33
+ }
34
+ return this.hooksService.handleHookEvent(parseResult.data);
35
+ }
36
+ };
37
+ exports.HooksController = HooksController;
38
+ __decorate([
39
+ (0, common_1.Post)('events'),
40
+ __param(0, (0, common_1.Body)()),
41
+ __metadata("design:type", Function),
42
+ __metadata("design:paramtypes", [Object]),
43
+ __metadata("design:returntype", Promise)
44
+ ], HooksController.prototype, "receiveHookEvent", null);
45
+ exports.HooksController = HooksController = __decorate([
46
+ (0, common_1.Controller)('api/hooks'),
47
+ __metadata("design:paramtypes", [hooks_service_1.HooksService])
48
+ ], HooksController);
49
+ //# sourceMappingURL=hooks.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.controller.js","sourceRoot":"","sources":["../../../../src/modules/hooks/controllers/hooks.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA6E;AAC7E,6DAAyD;AACzD,2DAAiF;AACjF,2DAA8D;AAE9D,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,iBAAiB,CAAC,CAAC;AAGxC,IAAM,eAAe,GAArB,MAAM,eAAe;IAC1B,YAA6B,YAA0B;QAA1B,iBAAY,GAAZ,YAAY,CAAc;IAAG,CAAC;IAQrD,AAAN,KAAK,CAAC,gBAAgB,CAAS,IAAa;QAC1C,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAEtC,MAAM,WAAW,GAAG,gCAAe,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YACzB,MAAM,IAAI,4BAAmB,CAAC;gBAC5B,OAAO,EAAE,mBAAmB;gBAC5B,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC,MAAM;aACjC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC7D,CAAC;CACF,CAAA;AAtBY,0CAAe;AASpB;IADL,IAAA,aAAI,EAAC,QAAQ,CAAC;IACS,WAAA,IAAA,aAAI,GAAE,CAAA;;;;uDAY7B;0BArBU,eAAe;IAD3B,IAAA,mBAAU,EAAC,WAAW,CAAC;qCAEqB,4BAAY;GAD5C,eAAe,CAsB3B"}
@@ -0,0 +1,41 @@
1
+ import { z } from 'zod';
2
+ export declare const HookEventSchema: z.ZodObject<{
3
+ hookEventName: z.ZodString;
4
+ claudeSessionId: z.ZodString;
5
+ source: z.ZodString;
6
+ model: z.ZodOptional<z.ZodString>;
7
+ permissionMode: z.ZodOptional<z.ZodString>;
8
+ transcriptPath: z.ZodOptional<z.ZodString>;
9
+ tmuxSessionName: z.ZodString;
10
+ projectId: z.ZodString;
11
+ agentId: z.ZodNullable<z.ZodString>;
12
+ sessionId: z.ZodNullable<z.ZodString>;
13
+ }, "strict", z.ZodTypeAny, {
14
+ projectId: string;
15
+ agentId: string | null;
16
+ source: string;
17
+ sessionId: string | null;
18
+ tmuxSessionName: string;
19
+ claudeSessionId: string;
20
+ hookEventName: string;
21
+ model?: string | undefined;
22
+ permissionMode?: string | undefined;
23
+ transcriptPath?: string | undefined;
24
+ }, {
25
+ projectId: string;
26
+ agentId: string | null;
27
+ source: string;
28
+ sessionId: string | null;
29
+ tmuxSessionName: string;
30
+ claudeSessionId: string;
31
+ hookEventName: string;
32
+ model?: string | undefined;
33
+ permissionMode?: string | undefined;
34
+ transcriptPath?: string | undefined;
35
+ }>;
36
+ export type HookEventData = z.infer<typeof HookEventSchema>;
37
+ export interface HookEventResponse {
38
+ ok: boolean;
39
+ handled: boolean;
40
+ data: Record<string, unknown>;
41
+ }
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HookEventSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ exports.HookEventSchema = zod_1.z
6
+ .object({
7
+ hookEventName: zod_1.z.string().min(1),
8
+ claudeSessionId: zod_1.z.string().min(1),
9
+ source: zod_1.z.string().min(1),
10
+ model: zod_1.z.string().max(200).optional(),
11
+ permissionMode: zod_1.z.string().max(100).optional(),
12
+ transcriptPath: zod_1.z.string().max(1000).optional(),
13
+ tmuxSessionName: zod_1.z.string().min(1),
14
+ projectId: zod_1.z.string().uuid(),
15
+ agentId: zod_1.z.string().uuid().nullable(),
16
+ sessionId: zod_1.z.string().uuid().nullable(),
17
+ })
18
+ .strict();
19
+ //# sourceMappingURL=hook-event.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook-event.dto.js","sourceRoot":"","sources":["../../../../src/modules/hooks/dtos/hook-event.dto.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AASX,QAAA,eAAe,GAAG,OAAC;KAC7B,MAAM,CAAC;IAEN,aAAa,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAIhC,eAAe,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAElC,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEzB,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IAErC,cAAc,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IAE9C,cAAc,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;IAI/C,eAAe,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAElC,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IAE5B,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IAErC,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CACxC,CAAC;KACD,MAAM,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare class HooksModule {
2
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.HooksModule = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const hooks_controller_1 = require("./controllers/hooks.controller");
12
+ const hooks_service_1 = require("./services/hooks.service");
13
+ const hooks_config_service_1 = require("./services/hooks-config.service");
14
+ const storage_module_1 = require("../storage/storage.module");
15
+ const events_domain_module_1 = require("../events/events-domain.module");
16
+ let HooksModule = class HooksModule {
17
+ };
18
+ exports.HooksModule = HooksModule;
19
+ exports.HooksModule = HooksModule = __decorate([
20
+ (0, common_1.Module)({
21
+ imports: [storage_module_1.StorageModule, (0, common_1.forwardRef)(() => events_domain_module_1.EventsDomainModule)],
22
+ controllers: [hooks_controller_1.HooksController],
23
+ providers: [hooks_service_1.HooksService, hooks_config_service_1.HooksConfigService],
24
+ exports: [hooks_service_1.HooksService, hooks_config_service_1.HooksConfigService],
25
+ })
26
+ ], HooksModule);
27
+ //# sourceMappingURL=hooks.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.module.js","sourceRoot":"","sources":["../../../src/modules/hooks/hooks.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAoD;AACpD,qEAAiE;AACjE,4DAAwD;AACxD,0EAAqE;AACrE,8DAA0D;AAC1D,yEAAoE;AAQ7D,IAAM,WAAW,GAAjB,MAAM,WAAW;CAAG,CAAA;AAAd,kCAAW;sBAAX,WAAW;IANvB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,8BAAa,EAAE,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,yCAAkB,CAAC,CAAC;QAC9D,WAAW,EAAE,CAAC,kCAAe,CAAC;QAC9B,SAAS,EAAE,CAAC,4BAAY,EAAE,yCAAkB,CAAC;QAC7C,OAAO,EAAE,CAAC,4BAAY,EAAE,yCAAkB,CAAC;KAC5C,CAAC;GACW,WAAW,CAAG"}
@@ -0,0 +1,5 @@
1
+ export declare class HooksConfigService {
2
+ ensureHooksConfig(projectRootPath: string): Promise<void>;
3
+ private materializeRelayScript;
4
+ private mergeHooksSettings;
5
+ }
@@ -0,0 +1,215 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.HooksConfigService = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const promises_1 = require("fs/promises");
12
+ const path_1 = require("path");
13
+ const logger_1 = require("../../../common/logging/logger");
14
+ const logger = (0, logger_1.createLogger)('HooksConfigService');
15
+ const SETTINGS_FILE_MODE = 0o600;
16
+ const SCRIPT_FILE_MODE = 0o755;
17
+ const RELAY_SCRIPT_CONTENT = `#!/bin/bash
18
+ # DevChain relay script — bridges Claude Code hooks to DevChain's event API.
19
+ # Auto-generated by DevChain. Do not edit manually.
20
+ # Requires: jq, curl
21
+
22
+ set -euo pipefail
23
+
24
+ # Read Claude Code hook JSON from stdin
25
+ INPUT="$(cat)"
26
+
27
+ # Bail if no API URL configured
28
+ if [ -z "\${DEVCHAIN_API_URL:-}" ]; then
29
+ exit 0
30
+ fi
31
+
32
+ # Extract hook event name from input
33
+ HOOK_EVENT_NAME="$(echo "$INPUT" | jq -r '.hook_event_name // empty')"
34
+ if [ -z "$HOOK_EVENT_NAME" ]; then
35
+ exit 0
36
+ fi
37
+
38
+ # Capture tmux session name (fallback to env var if tmux unavailable)
39
+ TMUX_SESSION="\${DEVCHAIN_TMUX_SESSION_NAME:-}"
40
+ if [ -z "$TMUX_SESSION" ] && command -v tmux >/dev/null 2>&1; then
41
+ TMUX_SESSION="$(tmux display-message -p '#S' 2>/dev/null || true)"
42
+ fi
43
+ if [ -z "$TMUX_SESSION" ]; then
44
+ exit 0
45
+ fi
46
+
47
+ # Build combined payload: Claude Code fields + DevChain env vars
48
+ PAYLOAD="$(echo "$INPUT" | jq \\
49
+ --arg hookEventName "$HOOK_EVENT_NAME" \\
50
+ --arg claudeSessionId "$(echo "$INPUT" | jq -r '.session_id // empty')" \\
51
+ --arg source "$(echo "$INPUT" | jq -r '.source // empty')" \\
52
+ --arg model "$(echo "$INPUT" | jq -r '.model // empty')" \\
53
+ --arg permissionMode "$(echo "$INPUT" | jq -r '.permission_mode // empty')" \\
54
+ --arg transcriptPath "$(echo "$INPUT" | jq -r '.transcript_path // empty')" \\
55
+ --arg tmuxSessionName "$TMUX_SESSION" \\
56
+ --arg projectId "\${DEVCHAIN_PROJECT_ID:-}" \\
57
+ --arg agentId "\${DEVCHAIN_AGENT_ID:-}" \\
58
+ --arg sessionId "\${DEVCHAIN_SESSION_ID:-}" \\
59
+ '{
60
+ hookEventName: $hookEventName,
61
+ claudeSessionId: $claudeSessionId,
62
+ source: $source,
63
+ tmuxSessionName: $tmuxSessionName,
64
+ projectId: $projectId,
65
+ agentId: (if $agentId == "" then null else $agentId end),
66
+ sessionId: (if $sessionId == "" then null else $sessionId end)
67
+ }
68
+ + (if $model != "" then {model: $model} else {} end)
69
+ + (if $permissionMode != "" then {permissionMode: $permissionMode} else {} end)
70
+ + (if $transcriptPath != "" then {transcriptPath: $transcriptPath} else {} end)
71
+ ')" || exit 0
72
+
73
+ # POST to DevChain API, capture response
74
+ RESPONSE="$(curl -s -f -X POST \\
75
+ -H "Content-Type: application/json" \\
76
+ -d "$PAYLOAD" \\
77
+ "\${DEVCHAIN_API_URL}/api/hooks/events" \\
78
+ --max-time 10 \\
79
+ 2>/dev/null)" || exit 0
80
+
81
+ # Bidirectional: output hook-compatible JSON if response contains data
82
+ if [ -n "$RESPONSE" ]; then
83
+ # Check if response has non-empty data with additionalContext
84
+ ADDITIONAL_CONTEXT="$(echo "$RESPONSE" | jq -r '.data.additionalContext // empty' 2>/dev/null)" || true
85
+ if [ -n "$ADDITIONAL_CONTEXT" ]; then
86
+ jq -n --arg ctx "$ADDITIONAL_CONTEXT" --arg evt "$HOOK_EVENT_NAME" '{
87
+ hookSpecificOutput: {
88
+ hookEventName: $evt,
89
+ additionalContext: $ctx
90
+ }
91
+ }' 2>/dev/null || true
92
+ fi
93
+ fi
94
+
95
+ exit 0
96
+ `;
97
+ let HooksConfigService = class HooksConfigService {
98
+ async ensureHooksConfig(projectRootPath) {
99
+ try {
100
+ await this.materializeRelayScript(projectRootPath);
101
+ await this.mergeHooksSettings(projectRootPath);
102
+ logger.info({ projectRootPath }, 'Hooks config ensured successfully');
103
+ }
104
+ catch (error) {
105
+ logger.error({ error, projectRootPath }, 'Failed to ensure hooks config (non-fatal)');
106
+ }
107
+ }
108
+ async materializeRelayScript(projectRootPath) {
109
+ const hooksDir = (0, path_1.join)(projectRootPath, '.claude', 'hooks');
110
+ const scriptPath = (0, path_1.join)(hooksDir, 'devchain-relay.sh');
111
+ const tempPath = `${scriptPath}.tmp-${process.pid}-${Date.now()}`;
112
+ await (0, promises_1.mkdir)(hooksDir, { recursive: true });
113
+ try {
114
+ await (0, promises_1.writeFile)(tempPath, RELAY_SCRIPT_CONTENT, {
115
+ encoding: 'utf-8',
116
+ mode: SCRIPT_FILE_MODE,
117
+ });
118
+ await (0, promises_1.rename)(tempPath, scriptPath);
119
+ await (0, promises_1.chmod)(scriptPath, SCRIPT_FILE_MODE);
120
+ logger.debug({ scriptPath }, 'Relay script materialized');
121
+ }
122
+ catch (error) {
123
+ try {
124
+ await (0, promises_1.unlink)(tempPath);
125
+ }
126
+ catch {
127
+ }
128
+ throw error;
129
+ }
130
+ }
131
+ async mergeHooksSettings(projectRootPath) {
132
+ const settingsDir = (0, path_1.join)(projectRootPath, '.claude');
133
+ const settingsPath = (0, path_1.join)(settingsDir, 'settings.local.json');
134
+ const tempPath = `${settingsPath}.tmp-${process.pid}-${Date.now()}`;
135
+ const relayScriptPath = (0, path_1.join)(projectRootPath, '.claude', 'hooks', 'devchain-relay.sh');
136
+ await (0, promises_1.mkdir)(settingsDir, { recursive: true });
137
+ let settings;
138
+ try {
139
+ const content = await (0, promises_1.readFile)(settingsPath, 'utf-8');
140
+ settings = JSON.parse(content);
141
+ if (typeof settings !== 'object' || settings === null || Array.isArray(settings)) {
142
+ logger.warn({ settingsPath }, 'Invalid settings.local.json (not an object) — creating fresh');
143
+ settings = {};
144
+ }
145
+ }
146
+ catch (error) {
147
+ if (error.code === 'ENOENT') {
148
+ settings = {};
149
+ }
150
+ else if (error instanceof SyntaxError) {
151
+ logger.warn({ settingsPath }, 'Invalid JSON in settings.local.json — creating fresh');
152
+ settings = {};
153
+ }
154
+ else {
155
+ throw error;
156
+ }
157
+ }
158
+ const devchainHook = {
159
+ type: 'command',
160
+ command: `"${relayScriptPath}"`,
161
+ timeout: 10,
162
+ };
163
+ if (!settings.hooks || typeof settings.hooks !== 'object') {
164
+ settings.hooks = {};
165
+ }
166
+ const hooks = settings.hooks;
167
+ const sessionStartEntries = Array.isArray(hooks.SessionStart) ? hooks.SessionStart : [];
168
+ const devchainMarker = 'devchain-relay.sh';
169
+ let devchainGroupFound = false;
170
+ const updatedEntries = sessionStartEntries.map((entry) => {
171
+ if (!isMatcherGroup(entry))
172
+ return entry;
173
+ const hasDevchain = entry.hooks?.some((h) => isHookEntry(h) && typeof h.command === 'string' && h.command.includes(devchainMarker));
174
+ if (hasDevchain) {
175
+ devchainGroupFound = true;
176
+ return {
177
+ ...entry,
178
+ hooks: [devchainHook],
179
+ };
180
+ }
181
+ return entry;
182
+ });
183
+ if (!devchainGroupFound) {
184
+ updatedEntries.push({
185
+ hooks: [devchainHook],
186
+ });
187
+ }
188
+ hooks.SessionStart = updatedEntries;
189
+ const output = JSON.stringify(settings, null, 2) + '\n';
190
+ try {
191
+ await (0, promises_1.writeFile)(tempPath, output, { encoding: 'utf-8', mode: SETTINGS_FILE_MODE });
192
+ await (0, promises_1.rename)(tempPath, settingsPath);
193
+ logger.debug({ settingsPath }, 'Hooks settings merged');
194
+ }
195
+ catch (error) {
196
+ try {
197
+ await (0, promises_1.unlink)(tempPath);
198
+ }
199
+ catch {
200
+ }
201
+ throw error;
202
+ }
203
+ }
204
+ };
205
+ exports.HooksConfigService = HooksConfigService;
206
+ exports.HooksConfigService = HooksConfigService = __decorate([
207
+ (0, common_1.Injectable)()
208
+ ], HooksConfigService);
209
+ function isMatcherGroup(value) {
210
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
211
+ }
212
+ function isHookEntry(value) {
213
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
214
+ }
215
+ //# sourceMappingURL=hooks-config.service.js.map