@jonit-dev/night-watch-cli 1.7.29 → 1.7.31

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 (384) hide show
  1. package/bin/night-watch.mjs +1 -1
  2. package/dist/cli.d.ts +3 -0
  3. package/dist/cli.d.ts.map +1 -0
  4. package/dist/{src/cli.js → cli.js} +1 -0
  5. package/dist/cli.js.map +1 -0
  6. package/dist/{src/commands → commands}/audit.d.ts +2 -2
  7. package/dist/commands/audit.d.ts.map +1 -0
  8. package/dist/commands/audit.js +105 -0
  9. package/dist/commands/audit.js.map +1 -0
  10. package/dist/{src/commands → commands}/board.d.ts +1 -1
  11. package/dist/commands/board.d.ts.map +1 -0
  12. package/dist/commands/board.js +664 -0
  13. package/dist/commands/board.js.map +1 -0
  14. package/dist/{src/commands → commands}/cancel.d.ts +3 -3
  15. package/dist/commands/cancel.d.ts.map +1 -0
  16. package/dist/{src/commands → commands}/cancel.js +18 -20
  17. package/dist/commands/cancel.js.map +1 -0
  18. package/dist/commands/dashboard/tab-actions.d.ts.map +1 -0
  19. package/dist/commands/dashboard/tab-actions.js.map +1 -0
  20. package/dist/{src/commands → commands}/dashboard/tab-config.d.ts +3 -3
  21. package/dist/commands/dashboard/tab-config.d.ts.map +1 -0
  22. package/dist/{src/commands → commands}/dashboard/tab-config.js +250 -187
  23. package/dist/commands/dashboard/tab-config.js.map +1 -0
  24. package/dist/{src/commands → commands}/dashboard/tab-logs.d.ts +1 -1
  25. package/dist/commands/dashboard/tab-logs.d.ts.map +1 -0
  26. package/dist/{src/commands → commands}/dashboard/tab-logs.js +62 -38
  27. package/dist/commands/dashboard/tab-logs.js.map +1 -0
  28. package/dist/{src/commands → commands}/dashboard/tab-schedules.d.ts +1 -1
  29. package/dist/commands/dashboard/tab-schedules.d.ts.map +1 -0
  30. package/dist/{src/commands → commands}/dashboard/tab-schedules.js +85 -76
  31. package/dist/commands/dashboard/tab-schedules.js.map +1 -0
  32. package/dist/{src/commands → commands}/dashboard/tab-status.d.ts +7 -7
  33. package/dist/commands/dashboard/tab-status.d.ts.map +1 -0
  34. package/dist/{src/commands → commands}/dashboard/tab-status.js +98 -95
  35. package/dist/commands/dashboard/tab-status.js.map +1 -0
  36. package/dist/{src/commands → commands}/dashboard/types.d.ts +3 -4
  37. package/dist/commands/dashboard/types.d.ts.map +1 -0
  38. package/dist/commands/dashboard/types.js.map +1 -0
  39. package/dist/{src/commands → commands}/dashboard.d.ts +2 -2
  40. package/dist/commands/dashboard.d.ts.map +1 -0
  41. package/dist/{src/commands → commands}/dashboard.js +32 -33
  42. package/dist/commands/dashboard.js.map +1 -0
  43. package/dist/{src/commands → commands}/doctor.d.ts +2 -2
  44. package/dist/commands/doctor.d.ts.map +1 -0
  45. package/dist/{src/commands → commands}/doctor.js +40 -43
  46. package/dist/commands/doctor.js.map +1 -0
  47. package/dist/{src/commands → commands}/history.d.ts +1 -1
  48. package/dist/commands/history.d.ts.map +1 -0
  49. package/dist/{src/commands → commands}/history.js +11 -18
  50. package/dist/commands/history.js.map +1 -0
  51. package/dist/{src/commands → commands}/init.d.ts +1 -1
  52. package/dist/commands/init.d.ts.map +1 -0
  53. package/dist/{src/commands → commands}/init.js +62 -36
  54. package/dist/commands/init.js.map +1 -0
  55. package/dist/{src/commands → commands}/install.d.ts +2 -2
  56. package/dist/commands/install.d.ts.map +1 -0
  57. package/dist/{src/commands → commands}/install.js +48 -50
  58. package/dist/commands/install.js.map +1 -0
  59. package/dist/{src/commands → commands}/logs.d.ts +1 -1
  60. package/dist/commands/logs.d.ts.map +1 -0
  61. package/dist/{src/commands → commands}/logs.js +29 -30
  62. package/dist/commands/logs.js.map +1 -0
  63. package/dist/{src/commands → commands}/prd-state.d.ts +1 -1
  64. package/dist/commands/prd-state.d.ts.map +1 -0
  65. package/dist/{src/commands → commands}/prd-state.js +14 -14
  66. package/dist/commands/prd-state.js.map +1 -0
  67. package/dist/{src/commands → commands}/prd.d.ts +1 -1
  68. package/dist/commands/prd.d.ts.map +1 -0
  69. package/dist/{src/commands → commands}/prd.js +57 -66
  70. package/dist/commands/prd.js.map +1 -0
  71. package/dist/{src/commands → commands}/prds.d.ts +1 -1
  72. package/dist/commands/prds.d.ts.map +1 -0
  73. package/dist/{src/commands → commands}/prds.js +51 -53
  74. package/dist/commands/prds.js.map +1 -0
  75. package/dist/{src/commands → commands}/prs.d.ts +1 -1
  76. package/dist/commands/prs.d.ts.map +1 -0
  77. package/dist/{src/commands → commands}/prs.js +22 -24
  78. package/dist/commands/prs.js.map +1 -0
  79. package/dist/{src/commands → commands}/qa.d.ts +2 -2
  80. package/dist/commands/qa.d.ts.map +1 -0
  81. package/dist/{src/commands → commands}/qa.js +50 -51
  82. package/dist/commands/qa.js.map +1 -0
  83. package/dist/{src/commands → commands}/retry.d.ts +1 -1
  84. package/dist/commands/retry.d.ts.map +1 -0
  85. package/dist/{src/commands → commands}/retry.js +9 -10
  86. package/dist/commands/retry.js.map +1 -0
  87. package/dist/{src/commands → commands}/review.d.ts +2 -2
  88. package/dist/commands/review.d.ts.map +1 -0
  89. package/dist/{src/commands → commands}/review.js +68 -59
  90. package/dist/commands/review.js.map +1 -0
  91. package/dist/{src/commands → commands}/run.d.ts +2 -2
  92. package/dist/commands/run.d.ts.map +1 -0
  93. package/dist/{src/commands → commands}/run.js +87 -83
  94. package/dist/commands/run.js.map +1 -0
  95. package/dist/{src/commands → commands}/serve.d.ts +2 -2
  96. package/dist/commands/serve.d.ts.map +1 -0
  97. package/dist/{src/commands → commands}/serve.js +18 -18
  98. package/dist/commands/serve.js.map +1 -0
  99. package/dist/{src/commands → commands}/slice.d.ts +2 -2
  100. package/dist/commands/slice.d.ts.map +1 -0
  101. package/dist/{src/commands → commands}/slice.js +50 -46
  102. package/dist/commands/slice.js.map +1 -0
  103. package/dist/{src/commands → commands}/state.d.ts +1 -1
  104. package/dist/commands/state.d.ts.map +1 -0
  105. package/dist/{src/commands → commands}/state.js +20 -22
  106. package/dist/commands/state.js.map +1 -0
  107. package/dist/{src/commands → commands}/status.d.ts +1 -1
  108. package/dist/commands/status.d.ts.map +1 -0
  109. package/dist/{src/commands → commands}/status.js +75 -54
  110. package/dist/commands/status.js.map +1 -0
  111. package/dist/{src/commands → commands}/uninstall.d.ts +1 -1
  112. package/dist/commands/uninstall.d.ts.map +1 -0
  113. package/dist/{src/commands → commands}/uninstall.js +12 -14
  114. package/dist/commands/uninstall.js.map +1 -0
  115. package/dist/{src/commands → commands}/update.d.ts +1 -1
  116. package/dist/commands/update.d.ts.map +1 -0
  117. package/dist/{src/commands → commands}/update.js +23 -23
  118. package/dist/commands/update.js.map +1 -0
  119. package/package.json +18 -42
  120. package/LICENSE +0 -21
  121. package/README.md +0 -132
  122. package/dist/shared/types.d.ts +0 -226
  123. package/dist/shared/types.d.ts.map +0 -1
  124. package/dist/shared/types.js +0 -7
  125. package/dist/shared/types.js.map +0 -1
  126. package/dist/src/agents/soul-compiler.d.ts +0 -11
  127. package/dist/src/agents/soul-compiler.d.ts.map +0 -1
  128. package/dist/src/agents/soul-compiler.js +0 -157
  129. package/dist/src/agents/soul-compiler.js.map +0 -1
  130. package/dist/src/board/factory.d.ts +0 -3
  131. package/dist/src/board/factory.d.ts.map +0 -1
  132. package/dist/src/board/factory.js +0 -10
  133. package/dist/src/board/factory.js.map +0 -1
  134. package/dist/src/board/providers/github-graphql.d.ts +0 -16
  135. package/dist/src/board/providers/github-graphql.d.ts.map +0 -1
  136. package/dist/src/board/providers/github-graphql.js +0 -43
  137. package/dist/src/board/providers/github-graphql.js.map +0 -1
  138. package/dist/src/board/providers/github-projects.d.ts +0 -51
  139. package/dist/src/board/providers/github-projects.d.ts.map +0 -1
  140. package/dist/src/board/providers/github-projects.js +0 -672
  141. package/dist/src/board/providers/github-projects.js.map +0 -1
  142. package/dist/src/board/types.d.ts +0 -60
  143. package/dist/src/board/types.d.ts.map +0 -1
  144. package/dist/src/board/types.js +0 -4
  145. package/dist/src/board/types.js.map +0 -1
  146. package/dist/src/cli.d.ts +0 -3
  147. package/dist/src/cli.d.ts.map +0 -1
  148. package/dist/src/cli.js.map +0 -1
  149. package/dist/src/commands/audit.d.ts.map +0 -1
  150. package/dist/src/commands/audit.js +0 -98
  151. package/dist/src/commands/audit.js.map +0 -1
  152. package/dist/src/commands/board.d.ts.map +0 -1
  153. package/dist/src/commands/board.js +0 -294
  154. package/dist/src/commands/board.js.map +0 -1
  155. package/dist/src/commands/cancel.d.ts.map +0 -1
  156. package/dist/src/commands/cancel.js.map +0 -1
  157. package/dist/src/commands/dashboard/tab-actions.d.ts.map +0 -1
  158. package/dist/src/commands/dashboard/tab-actions.js.map +0 -1
  159. package/dist/src/commands/dashboard/tab-config.d.ts.map +0 -1
  160. package/dist/src/commands/dashboard/tab-config.js.map +0 -1
  161. package/dist/src/commands/dashboard/tab-logs.d.ts.map +0 -1
  162. package/dist/src/commands/dashboard/tab-logs.js.map +0 -1
  163. package/dist/src/commands/dashboard/tab-schedules.d.ts.map +0 -1
  164. package/dist/src/commands/dashboard/tab-schedules.js.map +0 -1
  165. package/dist/src/commands/dashboard/tab-status.d.ts.map +0 -1
  166. package/dist/src/commands/dashboard/tab-status.js.map +0 -1
  167. package/dist/src/commands/dashboard/types.d.ts.map +0 -1
  168. package/dist/src/commands/dashboard/types.js.map +0 -1
  169. package/dist/src/commands/dashboard.d.ts.map +0 -1
  170. package/dist/src/commands/dashboard.js.map +0 -1
  171. package/dist/src/commands/doctor.d.ts.map +0 -1
  172. package/dist/src/commands/doctor.js.map +0 -1
  173. package/dist/src/commands/history.d.ts.map +0 -1
  174. package/dist/src/commands/history.js.map +0 -1
  175. package/dist/src/commands/init.d.ts.map +0 -1
  176. package/dist/src/commands/init.js.map +0 -1
  177. package/dist/src/commands/install.d.ts.map +0 -1
  178. package/dist/src/commands/install.js.map +0 -1
  179. package/dist/src/commands/logs.d.ts.map +0 -1
  180. package/dist/src/commands/logs.js.map +0 -1
  181. package/dist/src/commands/prd-state.d.ts.map +0 -1
  182. package/dist/src/commands/prd-state.js.map +0 -1
  183. package/dist/src/commands/prd.d.ts.map +0 -1
  184. package/dist/src/commands/prd.js.map +0 -1
  185. package/dist/src/commands/prds.d.ts.map +0 -1
  186. package/dist/src/commands/prds.js.map +0 -1
  187. package/dist/src/commands/prs.d.ts.map +0 -1
  188. package/dist/src/commands/prs.js.map +0 -1
  189. package/dist/src/commands/qa.d.ts.map +0 -1
  190. package/dist/src/commands/qa.js.map +0 -1
  191. package/dist/src/commands/retry.d.ts.map +0 -1
  192. package/dist/src/commands/retry.js.map +0 -1
  193. package/dist/src/commands/review.d.ts.map +0 -1
  194. package/dist/src/commands/review.js.map +0 -1
  195. package/dist/src/commands/run.d.ts.map +0 -1
  196. package/dist/src/commands/run.js.map +0 -1
  197. package/dist/src/commands/serve.d.ts.map +0 -1
  198. package/dist/src/commands/serve.js.map +0 -1
  199. package/dist/src/commands/slice.d.ts.map +0 -1
  200. package/dist/src/commands/slice.js.map +0 -1
  201. package/dist/src/commands/state.d.ts.map +0 -1
  202. package/dist/src/commands/state.js.map +0 -1
  203. package/dist/src/commands/status.d.ts.map +0 -1
  204. package/dist/src/commands/status.js.map +0 -1
  205. package/dist/src/commands/uninstall.d.ts.map +0 -1
  206. package/dist/src/commands/uninstall.js.map +0 -1
  207. package/dist/src/commands/update.d.ts.map +0 -1
  208. package/dist/src/commands/update.js.map +0 -1
  209. package/dist/src/config.d.ts +0 -23
  210. package/dist/src/config.d.ts.map +0 -1
  211. package/dist/src/config.js +0 -671
  212. package/dist/src/config.js.map +0 -1
  213. package/dist/src/constants.d.ts +0 -67
  214. package/dist/src/constants.d.ts.map +0 -1
  215. package/dist/src/constants.js +0 -131
  216. package/dist/src/constants.js.map +0 -1
  217. package/dist/src/server/index.d.ts +0 -23
  218. package/dist/src/server/index.d.ts.map +0 -1
  219. package/dist/src/server/index.js +0 -1704
  220. package/dist/src/server/index.js.map +0 -1
  221. package/dist/src/slack/channel-manager.d.ts +0 -32
  222. package/dist/src/slack/channel-manager.d.ts.map +0 -1
  223. package/dist/src/slack/channel-manager.js +0 -128
  224. package/dist/src/slack/channel-manager.js.map +0 -1
  225. package/dist/src/slack/client.d.ts +0 -76
  226. package/dist/src/slack/client.d.ts.map +0 -1
  227. package/dist/src/slack/client.js +0 -193
  228. package/dist/src/slack/client.js.map +0 -1
  229. package/dist/src/slack/deliberation.d.ts +0 -87
  230. package/dist/src/slack/deliberation.d.ts.map +0 -1
  231. package/dist/src/slack/deliberation.js +0 -1354
  232. package/dist/src/slack/deliberation.js.map +0 -1
  233. package/dist/src/slack/index.d.ts +0 -6
  234. package/dist/src/slack/index.d.ts.map +0 -1
  235. package/dist/src/slack/index.js +0 -5
  236. package/dist/src/slack/index.js.map +0 -1
  237. package/dist/src/slack/interaction-listener.d.ts +0 -130
  238. package/dist/src/slack/interaction-listener.d.ts.map +0 -1
  239. package/dist/src/slack/interaction-listener.js +0 -1329
  240. package/dist/src/slack/interaction-listener.js.map +0 -1
  241. package/dist/src/storage/json-state-migrator.d.ts +0 -24
  242. package/dist/src/storage/json-state-migrator.d.ts.map +0 -1
  243. package/dist/src/storage/json-state-migrator.js +0 -197
  244. package/dist/src/storage/json-state-migrator.js.map +0 -1
  245. package/dist/src/storage/repositories/index.d.ts +0 -25
  246. package/dist/src/storage/repositories/index.d.ts.map +0 -1
  247. package/dist/src/storage/repositories/index.js +0 -45
  248. package/dist/src/storage/repositories/index.js.map +0 -1
  249. package/dist/src/storage/repositories/interfaces.d.ts +0 -60
  250. package/dist/src/storage/repositories/interfaces.d.ts.map +0 -1
  251. package/dist/src/storage/repositories/interfaces.js +0 -6
  252. package/dist/src/storage/repositories/interfaces.js.map +0 -1
  253. package/dist/src/storage/repositories/sqlite/agent-persona-repository.d.ts +0 -33
  254. package/dist/src/storage/repositories/sqlite/agent-persona-repository.d.ts.map +0 -1
  255. package/dist/src/storage/repositories/sqlite/agent-persona-repository.js +0 -715
  256. package/dist/src/storage/repositories/sqlite/agent-persona-repository.js.map +0 -1
  257. package/dist/src/storage/repositories/sqlite/execution-history-repository.d.ts +0 -21
  258. package/dist/src/storage/repositories/sqlite/execution-history-repository.d.ts.map +0 -1
  259. package/dist/src/storage/repositories/sqlite/execution-history-repository.js +0 -94
  260. package/dist/src/storage/repositories/sqlite/execution-history-repository.js.map +0 -1
  261. package/dist/src/storage/repositories/sqlite/prd-state-repository.d.ts +0 -17
  262. package/dist/src/storage/repositories/sqlite/prd-state-repository.d.ts.map +0 -1
  263. package/dist/src/storage/repositories/sqlite/prd-state-repository.js +0 -74
  264. package/dist/src/storage/repositories/sqlite/prd-state-repository.js.map +0 -1
  265. package/dist/src/storage/repositories/sqlite/project-registry-repository.d.ts +0 -17
  266. package/dist/src/storage/repositories/sqlite/project-registry-repository.d.ts.map +0 -1
  267. package/dist/src/storage/repositories/sqlite/project-registry-repository.js +0 -43
  268. package/dist/src/storage/repositories/sqlite/project-registry-repository.js.map +0 -1
  269. package/dist/src/storage/repositories/sqlite/roadmap-state-repository.d.ts +0 -14
  270. package/dist/src/storage/repositories/sqlite/roadmap-state-repository.d.ts.map +0 -1
  271. package/dist/src/storage/repositories/sqlite/roadmap-state-repository.js +0 -47
  272. package/dist/src/storage/repositories/sqlite/roadmap-state-repository.js.map +0 -1
  273. package/dist/src/storage/repositories/sqlite/slack-discussion-repository.d.ts +0 -20
  274. package/dist/src/storage/repositories/sqlite/slack-discussion-repository.d.ts.map +0 -1
  275. package/dist/src/storage/repositories/sqlite/slack-discussion-repository.js +0 -88
  276. package/dist/src/storage/repositories/sqlite/slack-discussion-repository.js.map +0 -1
  277. package/dist/src/storage/sqlite/client.d.ts +0 -23
  278. package/dist/src/storage/sqlite/client.d.ts.map +0 -1
  279. package/dist/src/storage/sqlite/client.js +0 -47
  280. package/dist/src/storage/sqlite/client.js.map +0 -1
  281. package/dist/src/storage/sqlite/migrations.d.ts +0 -11
  282. package/dist/src/storage/sqlite/migrations.d.ts.map +0 -1
  283. package/dist/src/storage/sqlite/migrations.js +0 -94
  284. package/dist/src/storage/sqlite/migrations.js.map +0 -1
  285. package/dist/src/templates/prd-template.d.ts +0 -11
  286. package/dist/src/templates/prd-template.d.ts.map +0 -1
  287. package/dist/src/templates/prd-template.js +0 -166
  288. package/dist/src/templates/prd-template.js.map +0 -1
  289. package/dist/src/templates/slicer-prompt.d.ts +0 -54
  290. package/dist/src/templates/slicer-prompt.d.ts.map +0 -1
  291. package/dist/src/templates/slicer-prompt.js +0 -163
  292. package/dist/src/templates/slicer-prompt.js.map +0 -1
  293. package/dist/src/types.d.ts +0 -140
  294. package/dist/src/types.d.ts.map +0 -1
  295. package/dist/src/types.js +0 -5
  296. package/dist/src/types.js.map +0 -1
  297. package/dist/src/utils/avatar-generator.d.ts +0 -6
  298. package/dist/src/utils/avatar-generator.d.ts.map +0 -1
  299. package/dist/src/utils/avatar-generator.js +0 -133
  300. package/dist/src/utils/avatar-generator.js.map +0 -1
  301. package/dist/src/utils/checks.d.ts +0 -55
  302. package/dist/src/utils/checks.d.ts.map +0 -1
  303. package/dist/src/utils/checks.js +0 -246
  304. package/dist/src/utils/checks.js.map +0 -1
  305. package/dist/src/utils/config-writer.d.ts +0 -16
  306. package/dist/src/utils/config-writer.d.ts.map +0 -1
  307. package/dist/src/utils/config-writer.js +0 -45
  308. package/dist/src/utils/config-writer.js.map +0 -1
  309. package/dist/src/utils/crontab.d.ts +0 -62
  310. package/dist/src/utils/crontab.d.ts.map +0 -1
  311. package/dist/src/utils/crontab.js +0 -168
  312. package/dist/src/utils/crontab.js.map +0 -1
  313. package/dist/src/utils/execution-history.d.ts +0 -54
  314. package/dist/src/utils/execution-history.d.ts.map +0 -1
  315. package/dist/src/utils/execution-history.js +0 -80
  316. package/dist/src/utils/execution-history.js.map +0 -1
  317. package/dist/src/utils/github.d.ts +0 -40
  318. package/dist/src/utils/github.d.ts.map +0 -1
  319. package/dist/src/utils/github.js +0 -126
  320. package/dist/src/utils/github.js.map +0 -1
  321. package/dist/src/utils/notify.d.ts +0 -64
  322. package/dist/src/utils/notify.d.ts.map +0 -1
  323. package/dist/src/utils/notify.js +0 -405
  324. package/dist/src/utils/notify.js.map +0 -1
  325. package/dist/src/utils/prd-states.d.ts +0 -16
  326. package/dist/src/utils/prd-states.d.ts.map +0 -1
  327. package/dist/src/utils/prd-states.js +0 -28
  328. package/dist/src/utils/prd-states.js.map +0 -1
  329. package/dist/src/utils/registry.d.ts +0 -45
  330. package/dist/src/utils/registry.d.ts.map +0 -1
  331. package/dist/src/utils/registry.js +0 -86
  332. package/dist/src/utils/registry.js.map +0 -1
  333. package/dist/src/utils/roadmap-parser.d.ts +0 -45
  334. package/dist/src/utils/roadmap-parser.d.ts.map +0 -1
  335. package/dist/src/utils/roadmap-parser.js +0 -136
  336. package/dist/src/utils/roadmap-parser.js.map +0 -1
  337. package/dist/src/utils/roadmap-scanner.d.ts +0 -92
  338. package/dist/src/utils/roadmap-scanner.d.ts.map +0 -1
  339. package/dist/src/utils/roadmap-scanner.js +0 -349
  340. package/dist/src/utils/roadmap-scanner.js.map +0 -1
  341. package/dist/src/utils/roadmap-state.d.ts +0 -90
  342. package/dist/src/utils/roadmap-state.d.ts.map +0 -1
  343. package/dist/src/utils/roadmap-state.js +0 -154
  344. package/dist/src/utils/roadmap-state.js.map +0 -1
  345. package/dist/src/utils/script-result.d.ts +0 -12
  346. package/dist/src/utils/script-result.d.ts.map +0 -1
  347. package/dist/src/utils/script-result.js +0 -46
  348. package/dist/src/utils/script-result.js.map +0 -1
  349. package/dist/src/utils/shell.d.ts +0 -27
  350. package/dist/src/utils/shell.d.ts.map +0 -1
  351. package/dist/src/utils/shell.js +0 -64
  352. package/dist/src/utils/shell.js.map +0 -1
  353. package/dist/src/utils/status-data.d.ts +0 -148
  354. package/dist/src/utils/status-data.d.ts.map +0 -1
  355. package/dist/src/utils/status-data.js +0 -548
  356. package/dist/src/utils/status-data.js.map +0 -1
  357. package/dist/src/utils/ui.d.ts +0 -55
  358. package/dist/src/utils/ui.d.ts.map +0 -1
  359. package/dist/src/utils/ui.js +0 -121
  360. package/dist/src/utils/ui.js.map +0 -1
  361. package/scripts/night-watch-audit-cron.sh +0 -149
  362. package/scripts/night-watch-cron.sh +0 -484
  363. package/scripts/night-watch-helpers.sh +0 -499
  364. package/scripts/night-watch-pr-reviewer-cron.sh +0 -528
  365. package/scripts/night-watch-qa-cron.sh +0 -281
  366. package/scripts/night-watch-slicer-cron.sh +0 -90
  367. package/scripts/test-helpers.bats +0 -77
  368. package/templates/night-watch-pr-reviewer.md +0 -174
  369. package/templates/night-watch-qa.md +0 -157
  370. package/templates/night-watch-slicer.md +0 -219
  371. package/templates/night-watch.config.json +0 -30
  372. package/templates/night-watch.md +0 -94
  373. package/templates/prd-executor.md +0 -235
  374. package/templates/prd.md +0 -26
  375. package/web/dist/assets/index-BiJf9LFT.js +0 -458
  376. package/web/dist/assets/index-OpSgvsYu.css +0 -1
  377. package/web/dist/avatars/carlos.webp +0 -0
  378. package/web/dist/avatars/dev.webp +0 -0
  379. package/web/dist/avatars/maya.webp +0 -0
  380. package/web/dist/avatars/priya.webp +0 -0
  381. package/web/dist/index.html +0 -82
  382. /package/dist/{src/commands → commands}/dashboard/tab-actions.d.ts +0 -0
  383. /package/dist/{src/commands → commands}/dashboard/tab-actions.js +0 -0
  384. /package/dist/{src/commands → commands}/dashboard/types.js +0 -0
@@ -1,94 +0,0 @@
1
- /**
2
- * SQLite schema migrations for Night Watch CLI.
3
- * Creates all required tables if they do not already exist (idempotent).
4
- */
5
- /** Current schema version */
6
- const SCHEMA_VERSION = "1";
7
- /**
8
- * Run all migrations against the provided database instance.
9
- * Safe to call multiple times — all DDL statements use IF NOT EXISTS.
10
- */
11
- export function runMigrations(db) {
12
- db.exec(`
13
- CREATE TABLE IF NOT EXISTS projects (
14
- id INTEGER PRIMARY KEY,
15
- name TEXT NOT NULL,
16
- path TEXT NOT NULL UNIQUE,
17
- created_at INTEGER NOT NULL
18
- );
19
-
20
- CREATE TABLE IF NOT EXISTS execution_history (
21
- id INTEGER PRIMARY KEY,
22
- project_path TEXT NOT NULL,
23
- prd_file TEXT NOT NULL,
24
- timestamp INTEGER NOT NULL,
25
- outcome TEXT NOT NULL,
26
- exit_code INTEGER NOT NULL,
27
- attempt INTEGER NOT NULL
28
- );
29
- CREATE INDEX IF NOT EXISTS idx_history_lookup
30
- ON execution_history(project_path, prd_file, timestamp DESC);
31
-
32
- CREATE TABLE IF NOT EXISTS prd_states (
33
- project_path TEXT NOT NULL,
34
- prd_name TEXT NOT NULL,
35
- status TEXT NOT NULL,
36
- branch TEXT NOT NULL,
37
- timestamp INTEGER NOT NULL,
38
- PRIMARY KEY(project_path, prd_name)
39
- );
40
-
41
- CREATE TABLE IF NOT EXISTS roadmap_states (
42
- prd_dir TEXT PRIMARY KEY,
43
- version INTEGER NOT NULL,
44
- last_scan TEXT NOT NULL,
45
- items_json TEXT NOT NULL
46
- );
47
-
48
- CREATE TABLE IF NOT EXISTS schema_meta (
49
- key TEXT PRIMARY KEY,
50
- value TEXT NOT NULL
51
- );
52
-
53
- CREATE TABLE IF NOT EXISTS agent_personas (
54
- id TEXT PRIMARY KEY,
55
- name TEXT NOT NULL,
56
- role TEXT NOT NULL,
57
- avatar_url TEXT,
58
- soul_json TEXT NOT NULL DEFAULT '{}',
59
- style_json TEXT NOT NULL DEFAULT '{}',
60
- skill_json TEXT NOT NULL DEFAULT '{}',
61
- model_config_json TEXT,
62
- system_prompt_override TEXT,
63
- is_active INTEGER NOT NULL DEFAULT 1,
64
- created_at INTEGER NOT NULL,
65
- updated_at INTEGER NOT NULL
66
- );
67
-
68
- CREATE TABLE IF NOT EXISTS slack_discussions (
69
- id TEXT PRIMARY KEY,
70
- project_path TEXT NOT NULL,
71
- trigger_type TEXT NOT NULL,
72
- trigger_ref TEXT NOT NULL,
73
- channel_id TEXT NOT NULL,
74
- thread_ts TEXT NOT NULL,
75
- status TEXT NOT NULL DEFAULT 'active',
76
- round INTEGER NOT NULL DEFAULT 1,
77
- participants_json TEXT NOT NULL DEFAULT '[]',
78
- consensus_result TEXT,
79
- created_at INTEGER NOT NULL,
80
- updated_at INTEGER NOT NULL
81
- );
82
- `);
83
- // Add slack_channel_id to projects table if it doesn't exist (migration for Phase 4)
84
- try {
85
- db.exec(`ALTER TABLE projects ADD COLUMN slack_channel_id TEXT`);
86
- }
87
- catch {
88
- // Column already exists — this is expected after first run
89
- }
90
- // Upsert the current schema version into schema_meta
91
- db.prepare(`INSERT INTO schema_meta (key, value) VALUES ('schema_version', ?)
92
- ON CONFLICT(key) DO UPDATE SET value = excluded.value`).run(SCHEMA_VERSION);
93
- }
94
- //# sourceMappingURL=migrations.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../../../src/storage/sqlite/migrations.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,6BAA6B;AAC7B,MAAM,cAAc,GAAG,GAAG,CAAC;AAE3B;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,EAAqB;IACjD,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsEP,CAAC,CAAC;IAEH,qFAAqF;IACrF,IAAI,CAAC;QACH,EAAE,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;IACnE,CAAC;IAAC,MAAM,CAAC;QACP,2DAA2D;IAC7D,CAAC;IAED,qDAAqD;IACrD,EAAE,CAAC,OAAO,CACR;2DACuD,CACxD,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AACxB,CAAC"}
@@ -1,11 +0,0 @@
1
- export declare const PRD_TEMPLATE = "# PRD: {{TITLE}}\n\n{{DEPENDS_ON}}\n\n**Complexity: {{COMPLEXITY_SCORE}} \u2192 {{COMPLEXITY_LEVEL}} mode**\n{{COMPLEXITY_BREAKDOWN}}\n\n```\nCOMPLEXITY SCORE (sum all that apply):\n+1 Touches 1-5 files\n+2 Touches 6-10 files\n+3 Touches 10+ files\n+2 New system/module from scratch\n+2 Complex state logic / concurrency\n+2 Multi-package changes\n+1 Database schema changes\n+1 External API integration\n\n| Score | Level | Template Mode |\n| ----- | ------ | ----------------------------------------------- |\n| 1-3 | LOW | Minimal (skip sections marked with MEDIUM/HIGH) |\n| 4-6 | MEDIUM | Standard (all sections) |\n| 7+ | HIGH | Full + mandatory checkpoints every phase |\n```\n\n---\n\n## 1. Context\n\n**Problem:** <!-- 1-2 sentences describing the issue being solved -->\n\n**Files Analyzed:**\n<!-- List all files you've inspected before planning -->\n\n**Current Behavior:**\n<!-- 3-5 bullets describing current state -->\n\n### Integration Points Checklist\n\n**How will this feature be reached?**\n- [ ] Entry point identified: <!-- e.g., route, event, cron, CLI command -->\n- [ ] Caller file identified: <!-- file that will invoke this new code -->\n- [ ] Registration/wiring needed: <!-- e.g., add route to router, register handler, add menu item -->\n\n**Is this user-facing?**\n- [ ] YES \u2192 UI components required (list them)\n- [ ] NO \u2192 Internal/background feature (explain how it's triggered)\n\n**Full user flow:**\n1. User does: <!-- action -->\n2. Triggers: <!-- what code path -->\n3. Reaches new feature via: <!-- specific connection point -->\n4. Result displayed in: <!-- where user sees outcome -->\n\n---\n\n## 2. Solution\n\n**Approach:**\n<!-- 3-5 bullets explaining the chosen solution -->\n\n**Architecture Diagram** <!-- (MEDIUM/HIGH complexity) -->:\n\n```mermaid\nflowchart LR\n A[Component A] --> B[Component B] --> C[Component C]\n```\n\n**Key Decisions:**\n<!-- Library/framework choices, error-handling strategy, reused utilities -->\n\n**Data Changes:** <!-- New schemas/migrations, or \"None\" -->\n\n---\n\n## 3. Sequence Flow <!-- (MEDIUM/HIGH complexity) -->\n\n```mermaid\nsequenceDiagram\n participant A as Component A\n participant B as Component B\n A->>B: methodName(args)\n alt Error case\n B-->>A: ErrorType\n else Success\n B-->>A: Response\n end\n```\n\n---\n\n## 4. Execution Phases\n\n**CRITICAL RULES:**\n1. Each phase = ONE user-testable vertical slice\n2. Max 5 files per phase (split if larger)\n3. Each phase MUST include concrete tests\n4. Checkpoint after each phase (automated ALWAYS required)\n\n{{PHASES}}\n\n---\n\n## 5. Acceptance Criteria\n\n- [ ] All phases complete\n- [ ] All specified tests pass\n- [ ] Verification commands pass\n- [ ] All automated checkpoint reviews passed\n- [ ] Feature is reachable (entry point connected, not orphaned code)\n- [ ] <!-- additional criterion -->\n- [ ] <!-- additional criterion -->\n";
2
- export interface IPrdTemplateVars {
3
- title: string;
4
- dependsOn: string[];
5
- complexityScore: number;
6
- complexityLevel: "LOW" | "MEDIUM" | "HIGH";
7
- complexityBreakdown: string[];
8
- phaseCount: number;
9
- }
10
- export declare function renderPrdTemplate(vars: IPrdTemplateVars, customTemplate?: string): string;
11
- //# sourceMappingURL=prd-template.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prd-template.d.ts","sourceRoot":"","sources":["../../../src/templates/prd-template.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,u9FAgHxB,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC3C,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;CACpB;AA8CD,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,gBAAgB,EACtB,cAAc,CAAC,EAAE,MAAM,GACtB,MAAM,CAkBR"}
@@ -1,166 +0,0 @@
1
- export const PRD_TEMPLATE = `# PRD: {{TITLE}}
2
-
3
- {{DEPENDS_ON}}
4
-
5
- **Complexity: {{COMPLEXITY_SCORE}} → {{COMPLEXITY_LEVEL}} mode**
6
- {{COMPLEXITY_BREAKDOWN}}
7
-
8
- \`\`\`
9
- COMPLEXITY SCORE (sum all that apply):
10
- +1 Touches 1-5 files
11
- +2 Touches 6-10 files
12
- +3 Touches 10+ files
13
- +2 New system/module from scratch
14
- +2 Complex state logic / concurrency
15
- +2 Multi-package changes
16
- +1 Database schema changes
17
- +1 External API integration
18
-
19
- | Score | Level | Template Mode |
20
- | ----- | ------ | ----------------------------------------------- |
21
- | 1-3 | LOW | Minimal (skip sections marked with MEDIUM/HIGH) |
22
- | 4-6 | MEDIUM | Standard (all sections) |
23
- | 7+ | HIGH | Full + mandatory checkpoints every phase |
24
- \`\`\`
25
-
26
- ---
27
-
28
- ## 1. Context
29
-
30
- **Problem:** <!-- 1-2 sentences describing the issue being solved -->
31
-
32
- **Files Analyzed:**
33
- <!-- List all files you've inspected before planning -->
34
-
35
- **Current Behavior:**
36
- <!-- 3-5 bullets describing current state -->
37
-
38
- ### Integration Points Checklist
39
-
40
- **How will this feature be reached?**
41
- - [ ] Entry point identified: <!-- e.g., route, event, cron, CLI command -->
42
- - [ ] Caller file identified: <!-- file that will invoke this new code -->
43
- - [ ] Registration/wiring needed: <!-- e.g., add route to router, register handler, add menu item -->
44
-
45
- **Is this user-facing?**
46
- - [ ] YES → UI components required (list them)
47
- - [ ] NO → Internal/background feature (explain how it's triggered)
48
-
49
- **Full user flow:**
50
- 1. User does: <!-- action -->
51
- 2. Triggers: <!-- what code path -->
52
- 3. Reaches new feature via: <!-- specific connection point -->
53
- 4. Result displayed in: <!-- where user sees outcome -->
54
-
55
- ---
56
-
57
- ## 2. Solution
58
-
59
- **Approach:**
60
- <!-- 3-5 bullets explaining the chosen solution -->
61
-
62
- **Architecture Diagram** <!-- (MEDIUM/HIGH complexity) -->:
63
-
64
- \`\`\`mermaid
65
- flowchart LR
66
- A[Component A] --> B[Component B] --> C[Component C]
67
- \`\`\`
68
-
69
- **Key Decisions:**
70
- <!-- Library/framework choices, error-handling strategy, reused utilities -->
71
-
72
- **Data Changes:** <!-- New schemas/migrations, or "None" -->
73
-
74
- ---
75
-
76
- ## 3. Sequence Flow <!-- (MEDIUM/HIGH complexity) -->
77
-
78
- \`\`\`mermaid
79
- sequenceDiagram
80
- participant A as Component A
81
- participant B as Component B
82
- A->>B: methodName(args)
83
- alt Error case
84
- B-->>A: ErrorType
85
- else Success
86
- B-->>A: Response
87
- end
88
- \`\`\`
89
-
90
- ---
91
-
92
- ## 4. Execution Phases
93
-
94
- **CRITICAL RULES:**
95
- 1. Each phase = ONE user-testable vertical slice
96
- 2. Max 5 files per phase (split if larger)
97
- 3. Each phase MUST include concrete tests
98
- 4. Checkpoint after each phase (automated ALWAYS required)
99
-
100
- {{PHASES}}
101
-
102
- ---
103
-
104
- ## 5. Acceptance Criteria
105
-
106
- - [ ] All phases complete
107
- - [ ] All specified tests pass
108
- - [ ] Verification commands pass
109
- - [ ] All automated checkpoint reviews passed
110
- - [ ] Feature is reachable (entry point connected, not orphaned code)
111
- - [ ] <!-- additional criterion -->
112
- - [ ] <!-- additional criterion -->
113
- `;
114
- function renderDependsOn(deps) {
115
- if (deps.length === 0) {
116
- return "";
117
- }
118
- const formatted = deps.map((d) => `\`${d}\``).join(", ");
119
- return `**Depends on:** ${formatted}`;
120
- }
121
- function renderComplexityBreakdown(items) {
122
- if (items.length === 0) {
123
- return "";
124
- }
125
- return items.map((item) => `- ${item}`).join("\n");
126
- }
127
- function renderPhases(count) {
128
- const phases = [];
129
- for (let i = 1; i <= count; i++) {
130
- phases.push(`### Phase ${i}: [Name] — [User-visible outcome in 1 sentence]
131
-
132
- **Files (max 5):**
133
- - \`src/path/file.ts\` — what changes
134
-
135
- **Implementation:**
136
- - [ ] Step 1
137
- - [ ] Step 2
138
-
139
- **Tests Required:**
140
- | Test File | Test Name | Assertion |
141
- |-----------|-----------|-----------|
142
- | \`src/__tests__/feature.test.ts\` | \`should do X when Y\` | \`expect(result).toBe(Z)\` |
143
-
144
- **Verification Plan:**
145
- 1. **Unit Tests:** File and test names
146
- 2. **Integration Test:** (if applicable)
147
- 3. **User Verification:**
148
- - Action: [what to do]
149
- - Expected: [what should happen]
150
-
151
- **Checkpoint:** Run automated review after this phase completes.`);
152
- }
153
- return phases.join("\n\n---\n\n");
154
- }
155
- export function renderPrdTemplate(vars, customTemplate) {
156
- const template = customTemplate ?? PRD_TEMPLATE;
157
- let result = template;
158
- result = result.replace("{{TITLE}}", vars.title);
159
- result = result.replace("{{DEPENDS_ON}}", renderDependsOn(vars.dependsOn));
160
- result = result.replace("{{COMPLEXITY_SCORE}}", String(vars.complexityScore));
161
- result = result.replace("{{COMPLEXITY_LEVEL}}", vars.complexityLevel);
162
- result = result.replace("{{COMPLEXITY_BREAKDOWN}}", renderComplexityBreakdown(vars.complexityBreakdown));
163
- result = result.replace("{{PHASES}}", renderPhases(vars.phaseCount));
164
- return result;
165
- }
166
- //# sourceMappingURL=prd-template.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prd-template.js","sourceRoot":"","sources":["../../../src/templates/prd-template.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgH3B,CAAC;AAWF,SAAS,eAAe,CAAC,IAAc;IACrC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzD,OAAO,mBAAmB,SAAS,EAAE,CAAC;AACxC,CAAC;AAED,SAAS,yBAAyB,CAAC,KAAe;IAChD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrD,CAAC;AAED,SAAS,YAAY,CAAC,KAAa;IACjC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;iEAqBmC,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,IAAsB,EACtB,cAAuB;IAEvB,MAAM,QAAQ,GAAG,cAAc,IAAI,YAAY,CAAC;IAEhD,IAAI,MAAM,GAAG,QAAQ,CAAC;IACtB,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACjD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAC3E,MAAM,GAAG,MAAM,CAAC,OAAO,CACrB,sBAAsB,EACtB,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAC7B,CAAC;IACF,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,sBAAsB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IACtE,MAAM,GAAG,MAAM,CAAC,OAAO,CACrB,0BAA0B,EAC1B,yBAAyB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CACpD,CAAC;IACF,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAErE,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1,54 +0,0 @@
1
- /**
2
- * Slicer Prompt Template
3
- *
4
- * Provides functionality to render the AI prompt for generating PRDs from roadmap items.
5
- * The template is loaded from templates/night-watch-slicer.md and interpolated with
6
- * runtime values from the roadmap item being processed.
7
- */
8
- /**
9
- * Variables needed to render the slicer prompt
10
- */
11
- export interface ISlicerPromptVars {
12
- /** The title of the roadmap item */
13
- title: string;
14
- /** The section/category of the roadmap item */
15
- section: string;
16
- /** The description of the roadmap item */
17
- description: string;
18
- /** The full path where the PRD should be written */
19
- outputFilePath: string;
20
- /** The directory containing PRDs */
21
- prdDir: string;
22
- }
23
- /**
24
- * Load the slicer prompt template from the templates directory.
25
- * Falls back to the default template if the file cannot be read.
26
- *
27
- * @param templateDir - Optional custom template directory
28
- * @returns The template string
29
- */
30
- export declare function loadSlicerTemplate(templateDir?: string): string;
31
- /**
32
- * Clear the cached template (useful for testing)
33
- */
34
- export declare function clearTemplateCache(): void;
35
- /**
36
- * Render the slicer prompt by interpolating the template with the provided variables.
37
- *
38
- * @param vars - The variables to interpolate into the template
39
- * @param customTemplate - Optional custom template to use instead of the default
40
- * @returns The rendered prompt string
41
- */
42
- export declare function renderSlicerPrompt(vars: ISlicerPromptVars, customTemplate?: string): string;
43
- /**
44
- * Create slicer prompt variables from a roadmap item.
45
- *
46
- * @param item - The roadmap item title
47
- * @param section - The roadmap item section
48
- * @param description - The roadmap item description
49
- * @param prdDir - The PRD directory path
50
- * @param prdFilename - The filename for the new PRD
51
- * @returns The slicer prompt variables
52
- */
53
- export declare function createSlicerPromptVars(title: string, section: string, description: string, prdDir: string, prdFilename: string): ISlicerPromptVars;
54
- //# sourceMappingURL=slicer-prompt.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"slicer-prompt.d.ts","sourceRoot":"","sources":["../../../src/templates/slicer-prompt.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,0CAA0C;IAC1C,WAAW,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,cAAc,EAAE,MAAM,CAAC;IACvB,oCAAoC;IACpC,MAAM,EAAE,MAAM,CAAC;CAChB;AAyFD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAoB/D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,iBAAiB,EACvB,cAAc,CAAC,EAAE,MAAM,GACtB,MAAM,CAaR;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAClB,iBAAiB,CAQnB"}
@@ -1,163 +0,0 @@
1
- /**
2
- * Slicer Prompt Template
3
- *
4
- * Provides functionality to render the AI prompt for generating PRDs from roadmap items.
5
- * The template is loaded from templates/night-watch-slicer.md and interpolated with
6
- * runtime values from the roadmap item being processed.
7
- */
8
- import * as fs from "fs";
9
- import * as path from "path";
10
- /**
11
- * The default slicer prompt template.
12
- * This is used if the template file cannot be read.
13
- */
14
- const DEFAULT_SLICER_TEMPLATE = `You are a **PRD Creator Agent**. Your job: analyze the codebase and write a complete Product Requirements Document (PRD) for a feature.
15
-
16
- When this activates: \`PRD Creator: Initializing\`
17
-
18
- ---
19
-
20
- ## Input
21
-
22
- You are creating a PRD for the following roadmap item:
23
-
24
- **Section:** {{SECTION}}
25
- **Title:** {{TITLE}}
26
- **Description:** {{DESCRIPTION}}
27
-
28
- The PRD must be written to this exact file path:
29
- **Output File:** \`{{OUTPUT_FILE_PATH}}\`
30
-
31
- The PRD directory is: \`{{PRD_DIR}}\`
32
-
33
- ---
34
-
35
- ## Your Task
36
-
37
- 1. **Explore the Codebase** - Read relevant existing files to understand the project structure, patterns, and conventions.
38
-
39
- 2. **Assess Complexity** - Score the complexity using the rubric and determine whether this is LOW, MEDIUM, or HIGH complexity.
40
-
41
- 3. **Write a Complete PRD** - Create a full PRD following the prd-creator template structure with Context, Solution, Phases, Tests, and Acceptance Criteria.
42
-
43
- 4. **Write the PRD File** - Use the Write tool to create the PRD file at the exact path specified in \`{{OUTPUT_FILE_PATH}}\`.
44
-
45
- ---
46
-
47
- ## Complexity Scoring
48
-
49
- \`\`\`
50
- COMPLEXITY SCORE (sum all that apply):
51
- +1 Touches 1-5 files
52
- +2 Touches 6-10 files
53
- +3 Touches 10+ files
54
- +2 New system/module from scratch
55
- +2 Complex state logic / concurrency
56
- +2 Multi-package changes
57
- +1 Database schema changes
58
- +1 External API integration
59
-
60
- | Score | Level | Template Mode |
61
- | ----- | ------ | ----------------------------------------------- |
62
- | 1-3 | LOW | Minimal (skip sections marked with MEDIUM/HIGH) |
63
- | 4-6 | MEDIUM | Standard (all sections) |
64
- | 7+ | HIGH | Full + mandatory checkpoints every phase |
65
- \`\`\`
66
-
67
- ---
68
-
69
- ## PRD Template Structure
70
-
71
- Your PRD MUST follow this exact structure with these sections:
72
- 1. **Context** - Problem, files analyzed, current behavior, integration points
73
- 2. **Solution** - Approach, architecture diagram, key decisions, data changes
74
- 3. **Sequence Flow** (MEDIUM/HIGH) - Mermaid sequence diagram
75
- 4. **Execution Phases** - Concrete phases with files, implementation steps, and tests
76
- 5. **Acceptance Criteria** - Checklist of completion requirements
77
-
78
- ---
79
-
80
- ## Critical Instructions
81
-
82
- 1. **Read all relevant existing files BEFORE writing any code**
83
- 2. **Follow existing patterns in the codebase**
84
- 3. **Write the PRD with concrete file paths and implementation details**
85
- 4. **Include specific test names and assertions**
86
- 5. **Use the Write tool to create the PRD file at \`{{OUTPUT_FILE_PATH}}\`**
87
- 6. **The PRD must be complete and actionable - no TODO placeholders**
88
-
89
- DO NOT leave placeholder text like "[Name]" or "[description]" in the final PRD.
90
- DO NOT skip any sections.
91
- DO NOT forget to write the file.
92
- `;
93
- // Cache for the loaded template
94
- let cachedTemplate = null;
95
- /**
96
- * Load the slicer prompt template from the templates directory.
97
- * Falls back to the default template if the file cannot be read.
98
- *
99
- * @param templateDir - Optional custom template directory
100
- * @returns The template string
101
- */
102
- export function loadSlicerTemplate(templateDir) {
103
- if (cachedTemplate) {
104
- return cachedTemplate;
105
- }
106
- // Determine the template file path
107
- const templatePath = templateDir
108
- ? path.join(templateDir, "night-watch-slicer.md")
109
- : path.resolve(__dirname, "..", "..", "templates", "night-watch-slicer.md");
110
- try {
111
- cachedTemplate = fs.readFileSync(templatePath, "utf-8");
112
- return cachedTemplate;
113
- }
114
- catch (_error) {
115
- // Fall back to the default template
116
- console.warn(`Warning: Could not load slicer template from ${templatePath}, using default`);
117
- return DEFAULT_SLICER_TEMPLATE;
118
- }
119
- }
120
- /**
121
- * Clear the cached template (useful for testing)
122
- */
123
- export function clearTemplateCache() {
124
- cachedTemplate = null;
125
- }
126
- /**
127
- * Render the slicer prompt by interpolating the template with the provided variables.
128
- *
129
- * @param vars - The variables to interpolate into the template
130
- * @param customTemplate - Optional custom template to use instead of the default
131
- * @returns The rendered prompt string
132
- */
133
- export function renderSlicerPrompt(vars, customTemplate) {
134
- const template = customTemplate ?? loadSlicerTemplate();
135
- let result = template;
136
- // Replace all placeholders with their values
137
- result = result.replace(/\{\{TITLE\}\}/g, vars.title);
138
- result = result.replace(/\{\{SECTION\}\}/g, vars.section);
139
- result = result.replace(/\{\{DESCRIPTION\}\}/g, vars.description);
140
- result = result.replace(/\{\{OUTPUT_FILE_PATH\}\}/g, vars.outputFilePath);
141
- result = result.replace(/\{\{PRD_DIR\}\}/g, vars.prdDir);
142
- return result;
143
- }
144
- /**
145
- * Create slicer prompt variables from a roadmap item.
146
- *
147
- * @param item - The roadmap item title
148
- * @param section - The roadmap item section
149
- * @param description - The roadmap item description
150
- * @param prdDir - The PRD directory path
151
- * @param prdFilename - The filename for the new PRD
152
- * @returns The slicer prompt variables
153
- */
154
- export function createSlicerPromptVars(title, section, description, prdDir, prdFilename) {
155
- return {
156
- title,
157
- section,
158
- description: description || "(No description provided)",
159
- outputFilePath: path.join(prdDir, prdFilename),
160
- prdDir,
161
- };
162
- }
163
- //# sourceMappingURL=slicer-prompt.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"slicer-prompt.js","sourceRoot":"","sources":["../../../src/templates/slicer-prompt.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAkB7B;;;GAGG;AACH,MAAM,uBAAuB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8E/B,CAAC;AAEF,gCAAgC;AAChC,IAAI,cAAc,GAAkB,IAAI,CAAC;AAEzC;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,WAAoB;IACrD,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,mCAAmC;IACnC,MAAM,YAAY,GAAG,WAAW;QAC9B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,uBAAuB,CAAC;QACjD,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,uBAAuB,CAAC,CAAC;IAE9E,IAAI,CAAC;QACH,cAAc,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACxD,OAAO,cAAc,CAAC;IACxB,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,oCAAoC;QACpC,OAAO,CAAC,IAAI,CACV,gDAAgD,YAAY,iBAAiB,CAC9E,CAAC;QACF,OAAO,uBAAuB,CAAC;IACjC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAChC,cAAc,GAAG,IAAI,CAAC;AACxB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAAuB,EACvB,cAAuB;IAEvB,MAAM,QAAQ,GAAG,cAAc,IAAI,kBAAkB,EAAE,CAAC;IAExD,IAAI,MAAM,GAAG,QAAQ,CAAC;IAEtB,6CAA6C;IAC7C,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,kBAAkB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1D,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,sBAAsB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAClE,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,2BAA2B,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IAC1E,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAEzD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,sBAAsB,CACpC,KAAa,EACb,OAAe,EACf,WAAmB,EACnB,MAAc,EACd,WAAmB;IAEnB,OAAO;QACL,KAAK;QACL,OAAO;QACP,WAAW,EAAE,WAAW,IAAI,2BAA2B;QACvD,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC;QAC9C,MAAM;KACP,CAAC;AACJ,CAAC"}
@@ -1,140 +0,0 @@
1
- /**
2
- * TypeScript interfaces for Night Watch CLI configuration
3
- */
4
- import { IBoardProviderConfig } from "./board/types.js";
5
- import { ISlackBotConfig } from "../shared/types.js";
6
- export type { ISlackBotConfig };
7
- /**
8
- * Supported AI providers
9
- */
10
- export type Provider = "claude" | "codex";
11
- /**
12
- * Claude model to use for native (non-proxy) execution
13
- */
14
- export type ClaudeModel = "sonnet" | "opus";
15
- /**
16
- * Complete Night Watch configuration
17
- */
18
- export interface INightWatchConfig {
19
- /** Default branch name (e.g. "main" or "master"). Empty string means auto-detect. */
20
- defaultBranch: string;
21
- /** Directory containing PRD files (relative to project root) */
22
- prdDir: string;
23
- /** Maximum runtime in seconds for PRD execution */
24
- maxRuntime: number;
25
- /** Maximum runtime in seconds for PR reviewer */
26
- reviewerMaxRuntime: number;
27
- /** Prefix for night-watch branches */
28
- branchPrefix: string;
29
- /** Branch patterns to match for PR reviewer */
30
- branchPatterns: string[];
31
- /** Minimum review score (out of 100) to consider PR complete */
32
- minReviewScore: number;
33
- /** Maximum log file size in bytes before rotation */
34
- maxLogSize: number;
35
- /** Cron schedule for PRD execution */
36
- cronSchedule: string;
37
- /** Cron schedule for PR reviewer */
38
- reviewerSchedule: string;
39
- /** Minute offset (0-59) applied to cron schedules during install. Helps stagger multiple projects. */
40
- cronScheduleOffset: number;
41
- /** Maximum retry attempts for rate-limited API calls (default: 3) */
42
- maxRetries: number;
43
- /** AI provider to use for execution */
44
- provider: Provider;
45
- /** Whether the reviewer is enabled */
46
- reviewerEnabled: boolean;
47
- /** Extra environment variables to pass to the provider CLI (e.g. API keys, base URLs) */
48
- providerEnv: Record<string, string>;
49
- /**
50
- * When true, automatically fall back to native Claude (OAuth / direct Anthropic API)
51
- * after the first rate-limit (429) on a proxy provider (e.g. GLM-5 via api.z.ai).
52
- * A Telegram warning is sent immediately when the fallback is triggered.
53
- * Default: false
54
- */
55
- fallbackOnRateLimit: boolean;
56
- /**
57
- * Claude model to use when running natively (i.e. when no ANTHROPIC_BASE_URL proxy
58
- * is set, or when falling back from a rate-limited proxy).
59
- * "sonnet" → claude-sonnet-4-6 (default)
60
- * "opus" → claude-opus-4-6
61
- */
62
- claudeModel: ClaudeModel;
63
- /** Notification webhook configuration */
64
- notifications: INotificationConfig;
65
- /** PRD execution priority order (filenames without .md extension) */
66
- prdPriority: string[];
67
- /** Roadmap scanner configuration */
68
- roadmapScanner: IRoadmapScannerConfig;
69
- /** Directory containing custom template overrides (relative to project root) */
70
- templatesDir: string;
71
- /** Board provider configuration for PRD tracking */
72
- boardProvider: IBoardProviderConfig;
73
- /** Enable automatic merging of PRs that pass CI and review score threshold */
74
- autoMerge: boolean;
75
- /** Git merge method for auto-merge */
76
- autoMergeMethod: MergeMethod;
77
- /** QA process configuration */
78
- qa: IQaConfig;
79
- /** Code audit configuration */
80
- audit: IAuditConfig;
81
- /** Slack Bot API configuration (optional) */
82
- slack?: ISlackBotConfig;
83
- }
84
- export type QaArtifacts = "screenshot" | "video" | "both";
85
- export interface IQaConfig {
86
- /** Whether the QA process is enabled */
87
- enabled: boolean;
88
- /** Cron schedule for QA execution */
89
- schedule: string;
90
- /** Maximum runtime in seconds for QA */
91
- maxRuntime: number;
92
- /** Branch patterns to match for QA (defaults to top-level branchPatterns if empty) */
93
- branchPatterns: string[];
94
- /** What artifacts to capture for UI tests */
95
- artifacts: QaArtifacts;
96
- /** GitHub label to skip QA (PRs with this label are excluded) */
97
- skipLabel: string;
98
- /** Auto-install Playwright if missing during QA run */
99
- autoInstallPlaywright: boolean;
100
- }
101
- export interface IAuditConfig {
102
- /** Whether the audit process is enabled */
103
- enabled: boolean;
104
- /** Cron schedule for audit execution */
105
- schedule: string;
106
- /** Maximum runtime in seconds for the audit */
107
- maxRuntime: number;
108
- }
109
- export type WebhookType = "slack" | "discord" | "telegram";
110
- export type NotificationEvent = "run_started" | "run_succeeded" | "run_failed" | "run_timeout" | "review_completed" | "pr_auto_merged" | "rate_limit_fallback" | "qa_completed";
111
- /**
112
- * Git merge methods for auto-merge
113
- */
114
- export type MergeMethod = "squash" | "merge" | "rebase";
115
- export interface IWebhookConfig {
116
- type: WebhookType;
117
- url?: string;
118
- botToken?: string;
119
- chatId?: string;
120
- events: NotificationEvent[];
121
- }
122
- export interface INotificationConfig {
123
- webhooks: IWebhookConfig[];
124
- }
125
- /**
126
- * Roadmap Scanner configuration
127
- */
128
- export interface IRoadmapScannerConfig {
129
- /** Whether the roadmap scanner is enabled */
130
- enabled: boolean;
131
- /** Path to the ROADMAP.md file (relative to project root) */
132
- roadmapPath: string;
133
- /** Interval in seconds between automatic scans */
134
- autoScanInterval: number;
135
- /** Cron schedule for the slicer (AI-powered PRD generation from roadmap items) */
136
- slicerSchedule: string;
137
- /** Maximum runtime in seconds for the slicer */
138
- slicerMaxRuntime: number;
139
- }
140
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,YAAY,EAAE,eAAe,EAAE,CAAC;AAEhC;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE1C;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE5C;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAGhC,qFAAqF;IACrF,aAAa,EAAE,MAAM,CAAC;IAEtB,gEAAgE;IAChE,MAAM,EAAE,MAAM,CAAC;IAEf,mDAAmD;IACnD,UAAU,EAAE,MAAM,CAAC;IAEnB,iDAAiD;IACjD,kBAAkB,EAAE,MAAM,CAAC;IAE3B,sCAAsC;IACtC,YAAY,EAAE,MAAM,CAAC;IAErB,+CAA+C;IAC/C,cAAc,EAAE,MAAM,EAAE,CAAC;IAEzB,gEAAgE;IAChE,cAAc,EAAE,MAAM,CAAC;IAEvB,qDAAqD;IACrD,UAAU,EAAE,MAAM,CAAC;IAInB,sCAAsC;IACtC,YAAY,EAAE,MAAM,CAAC;IAErB,oCAAoC;IACpC,gBAAgB,EAAE,MAAM,CAAC;IAEzB,sGAAsG;IACtG,kBAAkB,EAAE,MAAM,CAAC;IAE3B,qEAAqE;IACrE,UAAU,EAAE,MAAM,CAAC;IAInB,uCAAuC;IACvC,QAAQ,EAAE,QAAQ,CAAC;IAEnB,sCAAsC;IACtC,eAAe,EAAE,OAAO,CAAC;IAEzB,yFAAyF;IACzF,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEpC;;;;;OAKG;IACH,mBAAmB,EAAE,OAAO,CAAC;IAE7B;;;;;OAKG;IACH,WAAW,EAAE,WAAW,CAAC;IAEzB,yCAAyC;IACzC,aAAa,EAAE,mBAAmB,CAAC;IAEnC,qEAAqE;IACrE,WAAW,EAAE,MAAM,EAAE,CAAC;IAEtB,oCAAoC;IACpC,cAAc,EAAE,qBAAqB,CAAC;IAEtC,gFAAgF;IAChF,YAAY,EAAE,MAAM,CAAC;IAErB,oDAAoD;IACpD,aAAa,EAAE,oBAAoB,CAAC;IAEpC,8EAA8E;IAC9E,SAAS,EAAE,OAAO,CAAC;IAEnB,sCAAsC;IACtC,eAAe,EAAE,WAAW,CAAC;IAE7B,+BAA+B;IAC/B,EAAE,EAAE,SAAS,CAAC;IAEd,+BAA+B;IAC/B,KAAK,EAAE,YAAY,CAAC;IAEpB,6CAA6C;IAC7C,KAAK,CAAC,EAAE,eAAe,CAAC;CACzB;AAED,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,OAAO,GAAG,MAAM,CAAC;AAE1D,MAAM,WAAW,SAAS;IACxB,wCAAwC;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,qCAAqC;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,sFAAsF;IACtF,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,6CAA6C;IAC7C,SAAS,EAAE,WAAW,CAAC;IACvB,iEAAiE;IACjE,SAAS,EAAE,MAAM,CAAC;IAClB,uDAAuD;IACvD,qBAAqB,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,WAAW,YAAY;IAC3B,2CAA2C;IAC3C,OAAO,EAAE,OAAO,CAAC;IACjB,wCAAwC;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,CAAC;AAC3D,MAAM,MAAM,iBAAiB,GAAG,aAAa,GAAG,eAAe,GAAG,YAAY,GAAG,aAAa,GAAG,kBAAkB,GAAG,gBAAgB,GAAG,qBAAqB,GAAG,cAAc,CAAC;AAEhL;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;AAExD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,WAAW,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,iBAAiB,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,cAAc,EAAE,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,6CAA6C;IAC7C,OAAO,EAAE,OAAO,CAAC;IAEjB,6DAA6D;IAC7D,WAAW,EAAE,MAAM,CAAC;IAEpB,kDAAkD;IAClD,gBAAgB,EAAE,MAAM,CAAC;IAEzB,kFAAkF;IAClF,cAAc,EAAE,MAAM,CAAC;IAEvB,gDAAgD;IAChD,gBAAgB,EAAE,MAAM,CAAC;CAC1B"}
package/dist/src/types.js DELETED
@@ -1,5 +0,0 @@
1
- /**
2
- * TypeScript interfaces for Night Watch CLI configuration
3
- */
4
- export {};
5
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}