hungry-ghost-hive 0.3.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 (467) hide show
  1. package/LICENSE +111 -0
  2. package/README.md +352 -0
  3. package/dist/agents/base-agent.d.ts +63 -0
  4. package/dist/agents/base-agent.d.ts.map +1 -0
  5. package/dist/agents/base-agent.js +189 -0
  6. package/dist/agents/base-agent.js.map +1 -0
  7. package/dist/agents/index.d.ts +7 -0
  8. package/dist/agents/index.d.ts.map +1 -0
  9. package/dist/agents/index.js +7 -0
  10. package/dist/agents/index.js.map +1 -0
  11. package/dist/agents/intermediate.d.ts +15 -0
  12. package/dist/agents/intermediate.d.ts.map +1 -0
  13. package/dist/agents/intermediate.js +142 -0
  14. package/dist/agents/intermediate.js.map +1 -0
  15. package/dist/agents/junior.d.ts +15 -0
  16. package/dist/agents/junior.d.ts.map +1 -0
  17. package/dist/agents/junior.js +147 -0
  18. package/dist/agents/junior.js.map +1 -0
  19. package/dist/agents/qa.d.ts +23 -0
  20. package/dist/agents/qa.d.ts.map +1 -0
  21. package/dist/agents/qa.js +238 -0
  22. package/dist/agents/qa.js.map +1 -0
  23. package/dist/agents/senior.d.ts +18 -0
  24. package/dist/agents/senior.d.ts.map +1 -0
  25. package/dist/agents/senior.js +267 -0
  26. package/dist/agents/senior.js.map +1 -0
  27. package/dist/agents/tech-lead.d.ts +17 -0
  28. package/dist/agents/tech-lead.d.ts.map +1 -0
  29. package/dist/agents/tech-lead.js +274 -0
  30. package/dist/agents/tech-lead.js.map +1 -0
  31. package/dist/cli/commands/add-repo.d.ts +3 -0
  32. package/dist/cli/commands/add-repo.d.ts.map +1 -0
  33. package/dist/cli/commands/add-repo.js +84 -0
  34. package/dist/cli/commands/add-repo.js.map +1 -0
  35. package/dist/cli/commands/agents.d.ts +3 -0
  36. package/dist/cli/commands/agents.d.ts.map +1 -0
  37. package/dist/cli/commands/agents.js +214 -0
  38. package/dist/cli/commands/agents.js.map +1 -0
  39. package/dist/cli/commands/assign.d.ts +3 -0
  40. package/dist/cli/commands/assign.d.ts.map +1 -0
  41. package/dist/cli/commands/assign.js +81 -0
  42. package/dist/cli/commands/assign.js.map +1 -0
  43. package/dist/cli/commands/config.d.ts +3 -0
  44. package/dist/cli/commands/config.d.ts.map +1 -0
  45. package/dist/cli/commands/config.js +118 -0
  46. package/dist/cli/commands/config.js.map +1 -0
  47. package/dist/cli/commands/escalations.d.ts +3 -0
  48. package/dist/cli/commands/escalations.d.ts.map +1 -0
  49. package/dist/cli/commands/escalations.js +157 -0
  50. package/dist/cli/commands/escalations.js.map +1 -0
  51. package/dist/cli/commands/index.d.ts +17 -0
  52. package/dist/cli/commands/index.d.ts.map +1 -0
  53. package/dist/cli/commands/index.js +17 -0
  54. package/dist/cli/commands/index.js.map +1 -0
  55. package/dist/cli/commands/init.d.ts +3 -0
  56. package/dist/cli/commands/init.d.ts.map +1 -0
  57. package/dist/cli/commands/init.js +59 -0
  58. package/dist/cli/commands/init.js.map +1 -0
  59. package/dist/cli/commands/manager.d.ts +3 -0
  60. package/dist/cli/commands/manager.d.ts.map +1 -0
  61. package/dist/cli/commands/manager.js +775 -0
  62. package/dist/cli/commands/manager.js.map +1 -0
  63. package/dist/cli/commands/manager.test.d.ts +2 -0
  64. package/dist/cli/commands/manager.test.d.ts.map +1 -0
  65. package/dist/cli/commands/manager.test.js +45 -0
  66. package/dist/cli/commands/manager.test.js.map +1 -0
  67. package/dist/cli/commands/msg.d.ts +3 -0
  68. package/dist/cli/commands/msg.d.ts.map +1 -0
  69. package/dist/cli/commands/msg.js +190 -0
  70. package/dist/cli/commands/msg.js.map +1 -0
  71. package/dist/cli/commands/my-stories.d.ts +3 -0
  72. package/dist/cli/commands/my-stories.d.ts.map +1 -0
  73. package/dist/cli/commands/my-stories.js +174 -0
  74. package/dist/cli/commands/my-stories.js.map +1 -0
  75. package/dist/cli/commands/nuke.d.ts +3 -0
  76. package/dist/cli/commands/nuke.d.ts.map +1 -0
  77. package/dist/cli/commands/nuke.js +189 -0
  78. package/dist/cli/commands/nuke.js.map +1 -0
  79. package/dist/cli/commands/pr.d.ts +3 -0
  80. package/dist/cli/commands/pr.d.ts.map +1 -0
  81. package/dist/cli/commands/pr.js +488 -0
  82. package/dist/cli/commands/pr.js.map +1 -0
  83. package/dist/cli/commands/req.d.ts +3 -0
  84. package/dist/cli/commands/req.d.ts.map +1 -0
  85. package/dist/cli/commands/req.js +212 -0
  86. package/dist/cli/commands/req.js.map +1 -0
  87. package/dist/cli/commands/resume.d.ts +3 -0
  88. package/dist/cli/commands/resume.d.ts.map +1 -0
  89. package/dist/cli/commands/resume.js +114 -0
  90. package/dist/cli/commands/resume.js.map +1 -0
  91. package/dist/cli/commands/status.d.ts +3 -0
  92. package/dist/cli/commands/status.d.ts.map +1 -0
  93. package/dist/cli/commands/status.js +259 -0
  94. package/dist/cli/commands/status.js.map +1 -0
  95. package/dist/cli/commands/stories.d.ts +3 -0
  96. package/dist/cli/commands/stories.d.ts.map +1 -0
  97. package/dist/cli/commands/stories.js +111 -0
  98. package/dist/cli/commands/stories.js.map +1 -0
  99. package/dist/cli/commands/teams.d.ts +3 -0
  100. package/dist/cli/commands/teams.d.ts.map +1 -0
  101. package/dist/cli/commands/teams.js +137 -0
  102. package/dist/cli/commands/teams.js.map +1 -0
  103. package/dist/cli/dashboard/index.d.ts +5 -0
  104. package/dist/cli/dashboard/index.d.ts.map +1 -0
  105. package/dist/cli/dashboard/index.js +128 -0
  106. package/dist/cli/dashboard/index.js.map +1 -0
  107. package/dist/cli/dashboard/panels/activity.d.ts +5 -0
  108. package/dist/cli/dashboard/panels/activity.d.ts.map +1 -0
  109. package/dist/cli/dashboard/panels/activity.js +64 -0
  110. package/dist/cli/dashboard/panels/activity.js.map +1 -0
  111. package/dist/cli/dashboard/panels/agents.d.ts +5 -0
  112. package/dist/cli/dashboard/panels/agents.d.ts.map +1 -0
  113. package/dist/cli/dashboard/panels/agents.js +196 -0
  114. package/dist/cli/dashboard/panels/agents.js.map +1 -0
  115. package/dist/cli/dashboard/panels/escalations.d.ts +5 -0
  116. package/dist/cli/dashboard/panels/escalations.d.ts.map +1 -0
  117. package/dist/cli/dashboard/panels/escalations.js +93 -0
  118. package/dist/cli/dashboard/panels/escalations.js.map +1 -0
  119. package/dist/cli/dashboard/panels/merge-queue.d.ts +5 -0
  120. package/dist/cli/dashboard/panels/merge-queue.d.ts.map +1 -0
  121. package/dist/cli/dashboard/panels/merge-queue.js +57 -0
  122. package/dist/cli/dashboard/panels/merge-queue.js.map +1 -0
  123. package/dist/cli/dashboard/panels/pipeline.d.ts +5 -0
  124. package/dist/cli/dashboard/panels/pipeline.d.ts.map +1 -0
  125. package/dist/cli/dashboard/panels/pipeline.js +54 -0
  126. package/dist/cli/dashboard/panels/pipeline.js.map +1 -0
  127. package/dist/cli/dashboard/panels/stories.d.ts +5 -0
  128. package/dist/cli/dashboard/panels/stories.d.ts.map +1 -0
  129. package/dist/cli/dashboard/panels/stories.js +79 -0
  130. package/dist/cli/dashboard/panels/stories.js.map +1 -0
  131. package/dist/cli-runtimes/claude.d.ts +8 -0
  132. package/dist/cli-runtimes/claude.d.ts.map +1 -0
  133. package/dist/cli-runtimes/claude.js +27 -0
  134. package/dist/cli-runtimes/claude.js.map +1 -0
  135. package/dist/cli-runtimes/codex.d.ts +8 -0
  136. package/dist/cli-runtimes/codex.d.ts.map +1 -0
  137. package/dist/cli-runtimes/codex.js +27 -0
  138. package/dist/cli-runtimes/codex.js.map +1 -0
  139. package/dist/cli-runtimes/gemini.d.ts +8 -0
  140. package/dist/cli-runtimes/gemini.d.ts.map +1 -0
  141. package/dist/cli-runtimes/gemini.js +29 -0
  142. package/dist/cli-runtimes/gemini.js.map +1 -0
  143. package/dist/cli-runtimes/index.d.ts +25 -0
  144. package/dist/cli-runtimes/index.d.ts.map +1 -0
  145. package/dist/cli-runtimes/index.js +48 -0
  146. package/dist/cli-runtimes/index.js.map +1 -0
  147. package/dist/cli-runtimes/index.test.d.ts +2 -0
  148. package/dist/cli-runtimes/index.test.d.ts.map +1 -0
  149. package/dist/cli-runtimes/index.test.js +216 -0
  150. package/dist/cli-runtimes/index.test.js.map +1 -0
  151. package/dist/cli-runtimes/types.d.ts +27 -0
  152. package/dist/cli-runtimes/types.d.ts.map +1 -0
  153. package/dist/cli-runtimes/types.js +2 -0
  154. package/dist/cli-runtimes/types.js.map +1 -0
  155. package/dist/config/index.d.ts +3 -0
  156. package/dist/config/index.d.ts.map +1 -0
  157. package/dist/config/index.js +3 -0
  158. package/dist/config/index.js.map +1 -0
  159. package/dist/config/loader.d.ts +11 -0
  160. package/dist/config/loader.d.ts.map +1 -0
  161. package/dist/config/loader.js +72 -0
  162. package/dist/config/loader.js.map +1 -0
  163. package/dist/config/schema.d.ts +660 -0
  164. package/dist/config/schema.d.ts.map +1 -0
  165. package/dist/config/schema.js +217 -0
  166. package/dist/config/schema.js.map +1 -0
  167. package/dist/config/schema.test.d.ts +2 -0
  168. package/dist/config/schema.test.d.ts.map +1 -0
  169. package/dist/config/schema.test.js +123 -0
  170. package/dist/config/schema.test.js.map +1 -0
  171. package/dist/context-files/generator.d.ts +32 -0
  172. package/dist/context-files/generator.d.ts.map +1 -0
  173. package/dist/context-files/generator.js +120 -0
  174. package/dist/context-files/generator.js.map +1 -0
  175. package/dist/context-files/index.d.ts +38 -0
  176. package/dist/context-files/index.d.ts.map +1 -0
  177. package/dist/context-files/index.js +76 -0
  178. package/dist/context-files/index.js.map +1 -0
  179. package/dist/context-files/index.test.d.ts +2 -0
  180. package/dist/context-files/index.test.d.ts.map +1 -0
  181. package/dist/context-files/index.test.js +265 -0
  182. package/dist/context-files/index.test.js.map +1 -0
  183. package/dist/context-files/templates.d.ts +19 -0
  184. package/dist/context-files/templates.d.ts.map +1 -0
  185. package/dist/context-files/templates.js +266 -0
  186. package/dist/context-files/templates.js.map +1 -0
  187. package/dist/db/client.d.ts +95 -0
  188. package/dist/db/client.d.ts.map +1 -0
  189. package/dist/db/client.js +343 -0
  190. package/dist/db/client.js.map +1 -0
  191. package/dist/db/lock.d.ts +25 -0
  192. package/dist/db/lock.d.ts.map +1 -0
  193. package/dist/db/lock.js +56 -0
  194. package/dist/db/lock.js.map +1 -0
  195. package/dist/db/lock.test.d.ts +2 -0
  196. package/dist/db/lock.test.d.ts.map +1 -0
  197. package/dist/db/lock.test.js +73 -0
  198. package/dist/db/lock.test.js.map +1 -0
  199. package/dist/db/queries/agents.d.ts +31 -0
  200. package/dist/db/queries/agents.d.ts.map +1 -0
  201. package/dist/db/queries/agents.js +76 -0
  202. package/dist/db/queries/agents.js.map +1 -0
  203. package/dist/db/queries/escalations.d.ts +29 -0
  204. package/dist/db/queries/escalations.d.ts.map +1 -0
  205. package/dist/db/queries/escalations.js +105 -0
  206. package/dist/db/queries/escalations.js.map +1 -0
  207. package/dist/db/queries/heartbeat.d.ts +20 -0
  208. package/dist/db/queries/heartbeat.d.ts.map +1 -0
  209. package/dist/db/queries/heartbeat.js +61 -0
  210. package/dist/db/queries/heartbeat.js.map +1 -0
  211. package/dist/db/queries/index.d.ts +8 -0
  212. package/dist/db/queries/index.d.ts.map +1 -0
  213. package/dist/db/queries/index.js +8 -0
  214. package/dist/db/queries/index.js.map +1 -0
  215. package/dist/db/queries/logs.d.ts +21 -0
  216. package/dist/db/queries/logs.d.ts.map +1 -0
  217. package/dist/db/queries/logs.js +72 -0
  218. package/dist/db/queries/logs.js.map +1 -0
  219. package/dist/db/queries/messages.d.ts +17 -0
  220. package/dist/db/queries/messages.d.ts.map +1 -0
  221. package/dist/db/queries/messages.js +22 -0
  222. package/dist/db/queries/messages.js.map +1 -0
  223. package/dist/db/queries/pull-requests.d.ts +33 -0
  224. package/dist/db/queries/pull-requests.d.ts.map +1 -0
  225. package/dist/db/queries/pull-requests.js +130 -0
  226. package/dist/db/queries/pull-requests.js.map +1 -0
  227. package/dist/db/queries/requirements.d.ts +22 -0
  228. package/dist/db/queries/requirements.d.ts.map +1 -0
  229. package/dist/db/queries/requirements.js +53 -0
  230. package/dist/db/queries/requirements.js.map +1 -0
  231. package/dist/db/queries/stories.d.ts +42 -0
  232. package/dist/db/queries/stories.d.ts.map +1 -0
  233. package/dist/db/queries/stories.js +163 -0
  234. package/dist/db/queries/stories.js.map +1 -0
  235. package/dist/db/queries/teams.d.ts +14 -0
  236. package/dist/db/queries/teams.d.ts.map +1 -0
  237. package/dist/db/queries/teams.js +24 -0
  238. package/dist/db/queries/teams.js.map +1 -0
  239. package/dist/git/branches.d.ts +52 -0
  240. package/dist/git/branches.d.ts.map +1 -0
  241. package/dist/git/branches.js +133 -0
  242. package/dist/git/branches.js.map +1 -0
  243. package/dist/git/github.d.ts +75 -0
  244. package/dist/git/github.d.ts.map +1 -0
  245. package/dist/git/github.js +162 -0
  246. package/dist/git/github.js.map +1 -0
  247. package/dist/git/index.d.ts +4 -0
  248. package/dist/git/index.d.ts.map +1 -0
  249. package/dist/git/index.js +4 -0
  250. package/dist/git/index.js.map +1 -0
  251. package/dist/git/submodules.d.ts +47 -0
  252. package/dist/git/submodules.d.ts.map +1 -0
  253. package/dist/git/submodules.js +115 -0
  254. package/dist/git/submodules.js.map +1 -0
  255. package/dist/index.d.ts +3 -0
  256. package/dist/index.d.ts.map +1 -0
  257. package/dist/index.js +62 -0
  258. package/dist/index.js.map +1 -0
  259. package/dist/llm/anthropic.d.ts +18 -0
  260. package/dist/llm/anthropic.d.ts.map +1 -0
  261. package/dist/llm/anthropic.js +111 -0
  262. package/dist/llm/anthropic.js.map +1 -0
  263. package/dist/llm/index.d.ts +6 -0
  264. package/dist/llm/index.d.ts.map +1 -0
  265. package/dist/llm/index.js +24 -0
  266. package/dist/llm/index.js.map +1 -0
  267. package/dist/llm/openai.d.ts +18 -0
  268. package/dist/llm/openai.d.ts.map +1 -0
  269. package/dist/llm/openai.js +103 -0
  270. package/dist/llm/openai.js.map +1 -0
  271. package/dist/llm/provider.d.ts +38 -0
  272. package/dist/llm/provider.d.ts.map +1 -0
  273. package/dist/llm/provider.js +17 -0
  274. package/dist/llm/provider.js.map +1 -0
  275. package/dist/orchestrator/index.d.ts +4 -0
  276. package/dist/orchestrator/index.d.ts.map +1 -0
  277. package/dist/orchestrator/index.js +4 -0
  278. package/dist/orchestrator/index.js.map +1 -0
  279. package/dist/orchestrator/scaler.d.ts +42 -0
  280. package/dist/orchestrator/scaler.d.ts.map +1 -0
  281. package/dist/orchestrator/scaler.js +154 -0
  282. package/dist/orchestrator/scaler.js.map +1 -0
  283. package/dist/orchestrator/scheduler.d.ts +90 -0
  284. package/dist/orchestrator/scheduler.d.ts.map +1 -0
  285. package/dist/orchestrator/scheduler.js +1003 -0
  286. package/dist/orchestrator/scheduler.js.map +1 -0
  287. package/dist/orchestrator/scheduler.test.d.ts +2 -0
  288. package/dist/orchestrator/scheduler.test.d.ts.map +1 -0
  289. package/dist/orchestrator/scheduler.test.js +242 -0
  290. package/dist/orchestrator/scheduler.test.js.map +1 -0
  291. package/dist/orchestrator/workflow.d.ts +18 -0
  292. package/dist/orchestrator/workflow.d.ts.map +1 -0
  293. package/dist/orchestrator/workflow.js +106 -0
  294. package/dist/orchestrator/workflow.js.map +1 -0
  295. package/dist/state-detectors/claude.d.ts +33 -0
  296. package/dist/state-detectors/claude.d.ts.map +1 -0
  297. package/dist/state-detectors/claude.js +237 -0
  298. package/dist/state-detectors/claude.js.map +1 -0
  299. package/dist/state-detectors/claude.test.d.ts +2 -0
  300. package/dist/state-detectors/claude.test.d.ts.map +1 -0
  301. package/dist/state-detectors/claude.test.js +127 -0
  302. package/dist/state-detectors/claude.test.js.map +1 -0
  303. package/dist/state-detectors/codex.d.ts +34 -0
  304. package/dist/state-detectors/codex.d.ts.map +1 -0
  305. package/dist/state-detectors/codex.js +233 -0
  306. package/dist/state-detectors/codex.js.map +1 -0
  307. package/dist/state-detectors/codex.test.d.ts +2 -0
  308. package/dist/state-detectors/codex.test.d.ts.map +1 -0
  309. package/dist/state-detectors/codex.test.js +85 -0
  310. package/dist/state-detectors/codex.test.js.map +1 -0
  311. package/dist/state-detectors/factory.d.ts +22 -0
  312. package/dist/state-detectors/factory.d.ts.map +1 -0
  313. package/dist/state-detectors/factory.js +37 -0
  314. package/dist/state-detectors/factory.js.map +1 -0
  315. package/dist/state-detectors/factory.test.d.ts +2 -0
  316. package/dist/state-detectors/factory.test.d.ts.map +1 -0
  317. package/dist/state-detectors/factory.test.js +44 -0
  318. package/dist/state-detectors/factory.test.js.map +1 -0
  319. package/dist/state-detectors/gemini.d.ts +34 -0
  320. package/dist/state-detectors/gemini.d.ts.map +1 -0
  321. package/dist/state-detectors/gemini.js +236 -0
  322. package/dist/state-detectors/gemini.js.map +1 -0
  323. package/dist/state-detectors/gemini.test.d.ts +2 -0
  324. package/dist/state-detectors/gemini.test.d.ts.map +1 -0
  325. package/dist/state-detectors/gemini.test.js +93 -0
  326. package/dist/state-detectors/gemini.test.js.map +1 -0
  327. package/dist/state-detectors/index.d.ts +20 -0
  328. package/dist/state-detectors/index.d.ts.map +1 -0
  329. package/dist/state-detectors/index.js +21 -0
  330. package/dist/state-detectors/index.js.map +1 -0
  331. package/dist/state-detectors/types.d.ts +67 -0
  332. package/dist/state-detectors/types.d.ts.map +1 -0
  333. package/dist/state-detectors/types.js +28 -0
  334. package/dist/state-detectors/types.js.map +1 -0
  335. package/dist/tmux/index.d.ts +2 -0
  336. package/dist/tmux/index.d.ts.map +1 -0
  337. package/dist/tmux/index.js +2 -0
  338. package/dist/tmux/index.js.map +1 -0
  339. package/dist/tmux/manager.d.ts +45 -0
  340. package/dist/tmux/manager.d.ts.map +1 -0
  341. package/dist/tmux/manager.js +252 -0
  342. package/dist/tmux/manager.js.map +1 -0
  343. package/dist/utils/claude-code-state.d.ts +46 -0
  344. package/dist/utils/claude-code-state.d.ts.map +1 -0
  345. package/dist/utils/claude-code-state.js +252 -0
  346. package/dist/utils/claude-code-state.js.map +1 -0
  347. package/dist/utils/cli-builder.d.ts +19 -0
  348. package/dist/utils/cli-builder.d.ts.map +1 -0
  349. package/dist/utils/cli-builder.js +58 -0
  350. package/dist/utils/cli-builder.js.map +1 -0
  351. package/dist/utils/cli-commands.d.ts +27 -0
  352. package/dist/utils/cli-commands.d.ts.map +1 -0
  353. package/dist/utils/cli-commands.js +69 -0
  354. package/dist/utils/cli-commands.js.map +1 -0
  355. package/dist/utils/index.d.ts +3 -0
  356. package/dist/utils/index.d.ts.map +1 -0
  357. package/dist/utils/index.js +3 -0
  358. package/dist/utils/index.js.map +1 -0
  359. package/dist/utils/logger.d.ts +13 -0
  360. package/dist/utils/logger.d.ts.map +1 -0
  361. package/dist/utils/logger.js +77 -0
  362. package/dist/utils/logger.js.map +1 -0
  363. package/dist/utils/paths.d.ts +17 -0
  364. package/dist/utils/paths.d.ts.map +1 -0
  365. package/dist/utils/paths.js +33 -0
  366. package/dist/utils/paths.js.map +1 -0
  367. package/dist/utils/timeout.d.ts +25 -0
  368. package/dist/utils/timeout.d.ts.map +1 -0
  369. package/dist/utils/timeout.js +57 -0
  370. package/dist/utils/timeout.js.map +1 -0
  371. package/package.json +78 -0
  372. package/src/agents/base-agent.ts +255 -0
  373. package/src/agents/index.ts +6 -0
  374. package/src/agents/intermediate.ts +161 -0
  375. package/src/agents/junior.ts +166 -0
  376. package/src/agents/qa.ts +272 -0
  377. package/src/agents/senior.ts +307 -0
  378. package/src/agents/tech-lead.ts +324 -0
  379. package/src/cli/commands/add-repo.ts +89 -0
  380. package/src/cli/commands/agents.ts +247 -0
  381. package/src/cli/commands/assign.ts +86 -0
  382. package/src/cli/commands/config.ts +121 -0
  383. package/src/cli/commands/escalations.ts +179 -0
  384. package/src/cli/commands/index.ts +16 -0
  385. package/src/cli/commands/init.ts +66 -0
  386. package/src/cli/commands/manager.test.ts +52 -0
  387. package/src/cli/commands/manager.ts +916 -0
  388. package/src/cli/commands/msg.ts +232 -0
  389. package/src/cli/commands/my-stories.ts +198 -0
  390. package/src/cli/commands/nuke.ts +223 -0
  391. package/src/cli/commands/pr.ts +559 -0
  392. package/src/cli/commands/req.ts +231 -0
  393. package/src/cli/commands/resume.ts +129 -0
  394. package/src/cli/commands/status.ts +284 -0
  395. package/src/cli/commands/stories.ts +131 -0
  396. package/src/cli/commands/teams.ts +158 -0
  397. package/src/cli/dashboard/index.ts +141 -0
  398. package/src/cli/dashboard/panels/activity.ts +77 -0
  399. package/src/cli/dashboard/panels/agents.ts +244 -0
  400. package/src/cli/dashboard/panels/escalations.ts +109 -0
  401. package/src/cli/dashboard/panels/merge-queue.ts +65 -0
  402. package/src/cli/dashboard/panels/pipeline.ts +65 -0
  403. package/src/cli/dashboard/panels/stories.ts +87 -0
  404. package/src/cli-runtimes/claude.ts +31 -0
  405. package/src/cli-runtimes/codex.ts +31 -0
  406. package/src/cli-runtimes/gemini.ts +33 -0
  407. package/src/cli-runtimes/index.test.ts +261 -0
  408. package/src/cli-runtimes/index.ts +52 -0
  409. package/src/cli-runtimes/types.ts +30 -0
  410. package/src/config/index.ts +2 -0
  411. package/src/config/loader.ts +89 -0
  412. package/src/config/schema.test.ts +135 -0
  413. package/src/config/schema.ts +238 -0
  414. package/src/context-files/generator.ts +132 -0
  415. package/src/context-files/index.test.ts +323 -0
  416. package/src/context-files/index.ts +102 -0
  417. package/src/context-files/templates.ts +279 -0
  418. package/src/db/client.ts +475 -0
  419. package/src/db/lock.test.ts +93 -0
  420. package/src/db/lock.ts +74 -0
  421. package/src/db/migrations/001-initial.sql +121 -0
  422. package/src/db/migrations/005-add-agent-heartbeat.sql +4 -0
  423. package/src/db/queries/agents.ts +113 -0
  424. package/src/db/queries/escalations.ts +140 -0
  425. package/src/db/queries/heartbeat.ts +92 -0
  426. package/src/db/queries/index.ts +7 -0
  427. package/src/db/queries/logs.ts +136 -0
  428. package/src/db/queries/messages.ts +38 -0
  429. package/src/db/queries/pull-requests.ts +170 -0
  430. package/src/db/queries/requirements.ts +81 -0
  431. package/src/db/queries/stories.ts +223 -0
  432. package/src/db/queries/teams.ts +39 -0
  433. package/src/git/branches.ts +186 -0
  434. package/src/git/github.ts +247 -0
  435. package/src/git/index.ts +3 -0
  436. package/src/git/submodules.ts +141 -0
  437. package/src/index.ts +93 -0
  438. package/src/llm/anthropic.ts +134 -0
  439. package/src/llm/index.ts +26 -0
  440. package/src/llm/openai.ts +125 -0
  441. package/src/llm/provider.ts +60 -0
  442. package/src/orchestrator/index.ts +3 -0
  443. package/src/orchestrator/scaler.ts +201 -0
  444. package/src/orchestrator/scheduler.test.ts +288 -0
  445. package/src/orchestrator/scheduler.ts +1130 -0
  446. package/src/orchestrator/workflow.ts +137 -0
  447. package/src/state-detectors/claude.test.ts +149 -0
  448. package/src/state-detectors/claude.ts +256 -0
  449. package/src/state-detectors/codex.test.ts +100 -0
  450. package/src/state-detectors/codex.ts +252 -0
  451. package/src/state-detectors/factory.test.ts +51 -0
  452. package/src/state-detectors/factory.ts +40 -0
  453. package/src/state-detectors/gemini.test.ts +110 -0
  454. package/src/state-detectors/gemini.ts +255 -0
  455. package/src/state-detectors/index.ts +25 -0
  456. package/src/state-detectors/types.ts +80 -0
  457. package/src/tmux/index.ts +1 -0
  458. package/src/tmux/manager.ts +310 -0
  459. package/src/types/sql.js.d.ts +34 -0
  460. package/src/utils/claude-code-state.ts +281 -0
  461. package/src/utils/cli-builder.ts +78 -0
  462. package/src/utils/cli-commands.ts +84 -0
  463. package/src/utils/index.ts +2 -0
  464. package/src/utils/logger.ts +93 -0
  465. package/src/utils/paths.ts +49 -0
  466. package/src/utils/timeout.ts +84 -0
  467. package/tsconfig.json +25 -0
@@ -0,0 +1,252 @@
1
+ /**
2
+ * Claude Code UI State Detection
3
+ *
4
+ * Provides robust state machine-based detection of Claude Code's UI state
5
+ * to determine when agents are blocked and need human intervention.
6
+ */
7
+ export var ClaudeCodeState;
8
+ (function (ClaudeCodeState) {
9
+ // Active states - Claude is actively working
10
+ ClaudeCodeState["THINKING"] = "thinking";
11
+ ClaudeCodeState["TOOL_RUNNING"] = "tool_running";
12
+ ClaudeCodeState["PROCESSING"] = "processing";
13
+ // Waiting states - idle at prompt, ready for input
14
+ ClaudeCodeState["IDLE_AT_PROMPT"] = "idle_at_prompt";
15
+ ClaudeCodeState["WORK_COMPLETE"] = "work_complete";
16
+ // Blocked states - requires human intervention
17
+ ClaudeCodeState["ASKING_QUESTION"] = "asking_question";
18
+ ClaudeCodeState["AWAITING_SELECTION"] = "awaiting_selection";
19
+ ClaudeCodeState["PLAN_APPROVAL"] = "plan_approval";
20
+ ClaudeCodeState["PERMISSION_REQUIRED"] = "permission_required";
21
+ ClaudeCodeState["USER_DECLINED"] = "user_declined";
22
+ // Unknown state
23
+ ClaudeCodeState["UNKNOWN"] = "unknown";
24
+ })(ClaudeCodeState || (ClaudeCodeState = {}));
25
+ /**
26
+ * Priority-based state indicators
27
+ * Higher priority patterns are checked first to handle overlapping indicators
28
+ */
29
+ const STATE_INDICATORS = [
30
+ // High priority: Active work states
31
+ {
32
+ state: ClaudeCodeState.THINKING,
33
+ patterns: [
34
+ /\(thinking\)/i,
35
+ /Concocting|Twisting|Considering|Analyzing/i,
36
+ ],
37
+ priority: 100,
38
+ },
39
+ {
40
+ state: ClaudeCodeState.TOOL_RUNNING,
41
+ patterns: [
42
+ /esc to interrupt/i,
43
+ /Running|Executing/i,
44
+ /\[.*\]\s+\d+%/i, // Progress bars
45
+ ],
46
+ priority: 100,
47
+ },
48
+ {
49
+ state: ClaudeCodeState.PROCESSING,
50
+ patterns: [
51
+ /Processing|Analyzing|Generating/i,
52
+ /Please wait/i,
53
+ ],
54
+ priority: 90,
55
+ },
56
+ // High priority: Blocked states requiring human intervention
57
+ {
58
+ state: ClaudeCodeState.AWAITING_SELECTION,
59
+ patterns: [
60
+ /Enter to select.*↑\/↓/i,
61
+ /Use arrows to navigate/i,
62
+ /Select an option/i,
63
+ ],
64
+ priority: 90,
65
+ },
66
+ {
67
+ state: ClaudeCodeState.ASKING_QUESTION,
68
+ patterns: [
69
+ /\?\s*$/m, // Line ending with question mark
70
+ /Please (choose|select|confirm)/i,
71
+ /Would you like to/i,
72
+ /Do you want to/i,
73
+ ],
74
+ priority: 85,
75
+ },
76
+ {
77
+ state: ClaudeCodeState.PLAN_APPROVAL,
78
+ patterns: [
79
+ /approve.*plan/i,
80
+ /review.*plan/i,
81
+ /proceed.*plan/i,
82
+ /ExitPlanMode/i,
83
+ ],
84
+ priority: 90,
85
+ },
86
+ {
87
+ state: ClaudeCodeState.PERMISSION_REQUIRED,
88
+ patterns: [
89
+ /permission.*required/i,
90
+ /authorize/i,
91
+ /Allow.*\[y\/n\]/i,
92
+ /Approve.*\[y\/n\]/i,
93
+ ],
94
+ priority: 90,
95
+ },
96
+ {
97
+ state: ClaudeCodeState.USER_DECLINED,
98
+ patterns: [
99
+ /declined/i,
100
+ /permission denied/i,
101
+ /User chose not to/i,
102
+ ],
103
+ priority: 85,
104
+ },
105
+ // Lower priority: Ready/idle states
106
+ {
107
+ state: ClaudeCodeState.WORK_COMPLETE,
108
+ patterns: [
109
+ /done|complete|finished/i,
110
+ /successfully/i,
111
+ /All.*tests passed/i,
112
+ ],
113
+ priority: 50,
114
+ },
115
+ {
116
+ state: ClaudeCodeState.IDLE_AT_PROMPT,
117
+ patterns: [
118
+ /^>\s*$/m, // Prompt alone on line
119
+ /Ready for input/i,
120
+ /What would you like/i,
121
+ ],
122
+ priority: 40,
123
+ },
124
+ ];
125
+ /**
126
+ * Detect the current Claude Code UI state from output text
127
+ *
128
+ * @param output - The text output from Claude Code's UI
129
+ * @returns Detection result with state, confidence, and flags
130
+ */
131
+ export function detectClaudeCodeState(output) {
132
+ // Sort indicators by priority (highest first)
133
+ const sortedIndicators = [...STATE_INDICATORS].sort((a, b) => b.priority - a.priority);
134
+ // Check each indicator in priority order
135
+ for (const indicator of sortedIndicators) {
136
+ for (const pattern of indicator.patterns) {
137
+ if (pattern.test(output)) {
138
+ const result = mapStateToWaitingStatus(indicator.state);
139
+ return {
140
+ ...result,
141
+ confidence: 0.9,
142
+ reason: `Detected pattern for ${indicator.state}`,
143
+ };
144
+ }
145
+ }
146
+ }
147
+ // No clear state detected
148
+ return {
149
+ state: ClaudeCodeState.UNKNOWN,
150
+ confidence: 0.3,
151
+ reason: 'No clear state indicators found',
152
+ isWaiting: false,
153
+ needsHuman: false,
154
+ };
155
+ }
156
+ /**
157
+ * Map a Claude Code state to waiting status flags
158
+ */
159
+ function mapStateToWaitingStatus(state) {
160
+ switch (state) {
161
+ // Active states - not waiting
162
+ case ClaudeCodeState.THINKING:
163
+ case ClaudeCodeState.TOOL_RUNNING:
164
+ case ClaudeCodeState.PROCESSING:
165
+ return {
166
+ state,
167
+ isWaiting: false,
168
+ needsHuman: false,
169
+ };
170
+ // Idle states - waiting but not blocked
171
+ case ClaudeCodeState.IDLE_AT_PROMPT:
172
+ case ClaudeCodeState.WORK_COMPLETE:
173
+ return {
174
+ state,
175
+ isWaiting: true,
176
+ needsHuman: false,
177
+ };
178
+ // Blocked states - waiting and needs human
179
+ case ClaudeCodeState.ASKING_QUESTION:
180
+ case ClaudeCodeState.AWAITING_SELECTION:
181
+ case ClaudeCodeState.PLAN_APPROVAL:
182
+ case ClaudeCodeState.PERMISSION_REQUIRED:
183
+ case ClaudeCodeState.USER_DECLINED:
184
+ return {
185
+ state,
186
+ isWaiting: true,
187
+ needsHuman: true,
188
+ };
189
+ // Unknown state - assume not waiting
190
+ case ClaudeCodeState.UNKNOWN:
191
+ default:
192
+ return {
193
+ state,
194
+ isWaiting: false,
195
+ needsHuman: false,
196
+ };
197
+ }
198
+ }
199
+ /**
200
+ * Get a human-readable description of a state
201
+ */
202
+ export function getStateDescription(state) {
203
+ switch (state) {
204
+ case ClaudeCodeState.THINKING:
205
+ return 'Claude is thinking';
206
+ case ClaudeCodeState.TOOL_RUNNING:
207
+ return 'A tool is running';
208
+ case ClaudeCodeState.PROCESSING:
209
+ return 'Processing request';
210
+ case ClaudeCodeState.IDLE_AT_PROMPT:
211
+ return 'Idle at prompt';
212
+ case ClaudeCodeState.WORK_COMPLETE:
213
+ return 'Work completed';
214
+ case ClaudeCodeState.ASKING_QUESTION:
215
+ return 'Asking a question - needs response';
216
+ case ClaudeCodeState.AWAITING_SELECTION:
217
+ return 'Awaiting user selection';
218
+ case ClaudeCodeState.PLAN_APPROVAL:
219
+ return 'Waiting for plan approval';
220
+ case ClaudeCodeState.PERMISSION_REQUIRED:
221
+ return 'Permission required';
222
+ case ClaudeCodeState.USER_DECLINED:
223
+ return 'User declined - blocked';
224
+ case ClaudeCodeState.UNKNOWN:
225
+ return 'Unknown state';
226
+ default:
227
+ return 'Unknown';
228
+ }
229
+ }
230
+ /**
231
+ * Check if a state represents active work (not waiting)
232
+ */
233
+ export function isActiveState(state) {
234
+ return [
235
+ ClaudeCodeState.THINKING,
236
+ ClaudeCodeState.TOOL_RUNNING,
237
+ ClaudeCodeState.PROCESSING,
238
+ ].includes(state);
239
+ }
240
+ /**
241
+ * Check if a state requires human intervention
242
+ */
243
+ export function isBlockedState(state) {
244
+ return [
245
+ ClaudeCodeState.ASKING_QUESTION,
246
+ ClaudeCodeState.AWAITING_SELECTION,
247
+ ClaudeCodeState.PLAN_APPROVAL,
248
+ ClaudeCodeState.PERMISSION_REQUIRED,
249
+ ClaudeCodeState.USER_DECLINED,
250
+ ].includes(state);
251
+ }
252
+ //# sourceMappingURL=claude-code-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-code-state.js","sourceRoot":"","sources":["../../src/utils/claude-code-state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * CLI Command Builder
3
+ * Generates appropriate CLI commands for spawning agents based on configured tool and model
4
+ */
5
+ import type { ModelsConfig } from '../config/schema.js';
6
+ export type AgentType = 'senior' | 'intermediate' | 'junior' | 'qa' | 'tech_lead';
7
+ export interface CLICommandConfig {
8
+ agentType: AgentType;
9
+ model: string;
10
+ cliTool?: string;
11
+ permissions?: 'dangerously-skip-permissions';
12
+ }
13
+ export declare function buildCLICommand(config: CLICommandConfig): string;
14
+ export declare function getModelForAgentType(agentType: AgentType, modelsConfig: ModelsConfig): string;
15
+ export declare function buildAgentSpawnCommand(agentType: AgentType, modelsConfig: ModelsConfig, options?: {
16
+ cliTool?: string;
17
+ skipPermissions?: boolean;
18
+ }): string;
19
+ //# sourceMappingURL=cli-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-builder.d.ts","sourceRoot":"","sources":["../../src/utils/cli-builder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,cAAc,GAAG,QAAQ,GAAG,IAAI,GAAG,WAAW,CAAC;AAElF,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,SAAS,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,8BAA8B,CAAC;CAC9C;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAYhE;AA6BD,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,GAAG,MAAM,CAM7F;AAED,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,YAAY,EAC1B,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,OAAO,CAAA;CAAE,GACxD,MAAM,CAQR"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * CLI Command Builder
3
+ * Generates appropriate CLI commands for spawning agents based on configured tool and model
4
+ */
5
+ export function buildCLICommand(config) {
6
+ const cliTool = config.cliTool || 'claude';
7
+ switch (cliTool) {
8
+ case 'claude':
9
+ return buildClaudeCLICommand(config.model, config.permissions);
10
+ case 'codex':
11
+ return buildCodexCLICommand(config.model, config.permissions);
12
+ case 'gemini':
13
+ return buildGeminiCLICommand(config.model, config.permissions);
14
+ default:
15
+ throw new Error(`Unknown CLI tool: ${cliTool}`);
16
+ }
17
+ }
18
+ function buildClaudeCLICommand(model, permissions) {
19
+ const parts = ['claude'];
20
+ if (permissions === 'dangerously-skip-permissions') {
21
+ parts.push('--dangerously-skip-permissions');
22
+ }
23
+ parts.push('--model', model);
24
+ return parts.join(' ');
25
+ }
26
+ function buildCodexCLICommand(model, permissions) {
27
+ const parts = ['codex'];
28
+ if (permissions === 'dangerously-skip-permissions') {
29
+ parts.push('--skip-permissions');
30
+ }
31
+ parts.push('--model', model);
32
+ return parts.join(' ');
33
+ }
34
+ function buildGeminiCLICommand(model, permissions) {
35
+ const parts = ['gemini'];
36
+ if (permissions === 'dangerously-skip-permissions') {
37
+ parts.push('--allow-unsafe-operations');
38
+ }
39
+ parts.push('--model', model);
40
+ return parts.join(' ');
41
+ }
42
+ export function getModelForAgentType(agentType, modelsConfig) {
43
+ const modelConfig = modelsConfig[agentType];
44
+ if (!modelConfig) {
45
+ throw new Error(`No model configuration found for agent type: ${agentType}`);
46
+ }
47
+ return modelConfig.model;
48
+ }
49
+ export function buildAgentSpawnCommand(agentType, modelsConfig, options) {
50
+ const model = getModelForAgentType(agentType, modelsConfig);
51
+ return buildCLICommand({
52
+ agentType,
53
+ model,
54
+ cliTool: options?.cliTool,
55
+ permissions: options?.skipPermissions ? 'dangerously-skip-permissions' : undefined,
56
+ });
57
+ }
58
+ //# sourceMappingURL=cli-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-builder.js","sourceRoot":"","sources":["../../src/utils/cli-builder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH,MAAM,UAAU,eAAe,CAAC,MAAwB;IACtD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,QAAQ,CAAC;IAC3C,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,QAAQ;YACX,OAAO,qBAAqB,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QACjE,KAAK,OAAO;YACV,OAAO,oBAAoB,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QAChE,KAAK,QAAQ;YACX,OAAO,qBAAqB,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QACjE;YACE,MAAM,IAAI,KAAK,CAAC,qBAAqB,OAAO,EAAE,CAAC,CAAC;IACpD,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAa,EAAE,WAAoB;IAChE,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,CAAC;IACzB,IAAI,WAAW,KAAK,8BAA8B,EAAE,CAAC;QACnD,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IAC/C,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC7B,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAa,EAAE,WAAoB;IAC/D,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC;IACxB,IAAI,WAAW,KAAK,8BAA8B,EAAE,CAAC;QACnD,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACnC,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC7B,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAa,EAAE,WAAoB;IAChE,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,CAAC;IACzB,IAAI,WAAW,KAAK,8BAA8B,EAAE,CAAC;QACnD,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IAC1C,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC7B,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,SAAoB,EAAE,YAA0B;IACnF,MAAM,WAAW,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IAC5C,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,gDAAgD,SAAS,EAAE,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,WAAW,CAAC,KAAK,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,SAAoB,EACpB,YAA0B,EAC1B,OAAyD;IAEzD,MAAM,KAAK,GAAG,oBAAoB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IAC5D,OAAO,eAAe,CAAC;QACrB,SAAS;QACT,KAAK;QACL,OAAO,EAAE,OAAO,EAAE,OAAO;QACzB,WAAW,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,SAAS;KACnF,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * CLI Command Builders for Multi-CLI Agent Support
3
+ * Provides CLI-aware command generation for manager communication with agents
4
+ */
5
+ export type CLITool = 'claude' | 'codex' | 'gemini';
6
+ /**
7
+ * Get available commands for a specific CLI tool
8
+ */
9
+ export declare function getAvailableCommands(cliTool: CLITool): {
10
+ getMyStories: (sessionName: string, includeAll?: boolean) => string;
11
+ claimStory: (storyId: string, sessionName: string) => string;
12
+ completeStory: (storyId: string) => string;
13
+ submitPR: (branch: string, storyId: string, sessionName: string, prUrl?: string) => string;
14
+ queueCheck: () => string;
15
+ msgSend: (recipient: string, message: string, sessionName: string) => string;
16
+ msgReply: (msgId: string, message: string, sessionName: string) => string;
17
+ };
18
+ /**
19
+ * Format a command as a tmux-compatible comment for Claude Code agents
20
+ * Claude Code agents read comments in the tmux pane and execute them
21
+ */
22
+ export declare function formatCommandForAgent(command: string): string;
23
+ /**
24
+ * Build a reminder message for stuck agents
25
+ */
26
+ export declare function buildAutoRecoveryReminder(sessionName: string, cliTool: CLITool): string;
27
+ //# sourceMappingURL=cli-commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-commands.d.ts","sourceRoot":"","sources":["../../src/utils/cli-commands.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEpD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG;IACtD,YAAY,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,OAAO,KAAK,MAAM,CAAC;IACpE,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7D,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3F,UAAU,EAAE,MAAM,MAAM,CAAC;IACzB,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7E,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,MAAM,CAAC;CAC3E,CAQA;AAiCD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAG7D;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAYvF"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * CLI Command Builders for Multi-CLI Agent Support
3
+ * Provides CLI-aware command generation for manager communication with agents
4
+ */
5
+ /**
6
+ * Get available commands for a specific CLI tool
7
+ */
8
+ export function getAvailableCommands(cliTool) {
9
+ switch (cliTool) {
10
+ case 'claude':
11
+ case 'codex':
12
+ case 'gemini':
13
+ default:
14
+ return buildClaudeCommands();
15
+ }
16
+ }
17
+ /**
18
+ * Build Claude/Hive CLI commands
19
+ */
20
+ function buildClaudeCommands() {
21
+ return {
22
+ getMyStories: (sessionName, includeAll) => {
23
+ const suffix = includeAll ? ' --all' : '';
24
+ return `hive my-stories ${sessionName}${suffix}`;
25
+ },
26
+ claimStory: (storyId, sessionName) => {
27
+ return `hive my-stories claim ${storyId} --session ${sessionName}`;
28
+ },
29
+ completeStory: (storyId) => {
30
+ return `hive my-stories complete ${storyId}`;
31
+ },
32
+ submitPR: (branch, storyId, sessionName, prUrl) => {
33
+ const prUrlPart = prUrl ? ` --pr-url ${prUrl}` : '';
34
+ return `hive pr submit -b ${branch} -s ${storyId} --from ${sessionName}${prUrlPart}`;
35
+ },
36
+ queueCheck: () => {
37
+ return 'hive pr queue';
38
+ },
39
+ msgSend: (recipient, message, sessionName) => {
40
+ return `hive msg send ${recipient} "${message}" --from ${sessionName}`;
41
+ },
42
+ msgReply: (msgId, message, sessionName) => {
43
+ return `hive msg reply ${msgId} "${message}" --from ${sessionName}`;
44
+ },
45
+ };
46
+ }
47
+ /**
48
+ * Format a command as a tmux-compatible comment for Claude Code agents
49
+ * Claude Code agents read comments in the tmux pane and execute them
50
+ */
51
+ export function formatCommandForAgent(command) {
52
+ // All CLI tools use comment format for agent communication
53
+ return `# ${command}`;
54
+ }
55
+ /**
56
+ * Build a reminder message for stuck agents
57
+ */
58
+ export function buildAutoRecoveryReminder(sessionName, cliTool) {
59
+ const commands = getAvailableCommands(cliTool);
60
+ const reminder = `# REMINDER: You are an autonomous agent. Don't wait for instructions.
61
+ # If you completed your task, check for more work:
62
+ ${formatCommandForAgent(commands.getMyStories(sessionName))}
63
+ # If no stories, check available work:
64
+ ${formatCommandForAgent(commands.getMyStories(sessionName, true))}
65
+ # If you created a PR, make sure to submit it:
66
+ # ${commands.submitPR('<branch>', '<story-id>', sessionName)}`;
67
+ return reminder;
68
+ }
69
+ //# sourceMappingURL=cli-commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-commands.js","sourceRoot":"","sources":["../../src/utils/cli-commands.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IASnD,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,QAAQ,CAAC;QACd,KAAK,OAAO,CAAC;QACb,KAAK,QAAQ,CAAC;QACd;YACE,OAAO,mBAAmB,EAAE,CAAC;IACjC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB;IAC1B,OAAO;QACL,YAAY,EAAE,CAAC,WAAmB,EAAE,UAAoB,EAAE,EAAE;YAC1D,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1C,OAAO,mBAAmB,WAAW,GAAG,MAAM,EAAE,CAAC;QACnD,CAAC;QACD,UAAU,EAAE,CAAC,OAAe,EAAE,WAAmB,EAAE,EAAE;YACnD,OAAO,yBAAyB,OAAO,cAAc,WAAW,EAAE,CAAC;QACrE,CAAC;QACD,aAAa,EAAE,CAAC,OAAe,EAAE,EAAE;YACjC,OAAO,4BAA4B,OAAO,EAAE,CAAC;QAC/C,CAAC;QACD,QAAQ,EAAE,CAAC,MAAc,EAAE,OAAe,EAAE,WAAmB,EAAE,KAAc,EAAE,EAAE;YACjF,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,aAAa,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpD,OAAO,qBAAqB,MAAM,OAAO,OAAO,WAAW,WAAW,GAAG,SAAS,EAAE,CAAC;QACvF,CAAC;QACD,UAAU,EAAE,GAAG,EAAE;YACf,OAAO,eAAe,CAAC;QACzB,CAAC;QACD,OAAO,EAAE,CAAC,SAAiB,EAAE,OAAe,EAAE,WAAmB,EAAE,EAAE;YACnE,OAAO,iBAAiB,SAAS,KAAK,OAAO,YAAY,WAAW,EAAE,CAAC;QACzE,CAAC;QACD,QAAQ,EAAE,CAAC,KAAa,EAAE,OAAe,EAAE,WAAmB,EAAE,EAAE;YAChE,OAAO,kBAAkB,KAAK,KAAK,OAAO,YAAY,WAAW,EAAE,CAAC;QACtE,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAe;IACnD,2DAA2D;IAC3D,OAAO,KAAK,OAAO,EAAE,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CAAC,WAAmB,EAAE,OAAgB;IAC7E,MAAM,QAAQ,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAE/C,MAAM,QAAQ,GAAG;;EAEjB,qBAAqB,CAAC,QAAQ,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;;EAEzD,qBAAqB,CAAC,QAAQ,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;;IAE7D,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,YAAY,EAAE,WAAW,CAAC,EAAE,CAAC;IAE7D,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './paths.js';
2
+ export * from './logger.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './paths.js';
2
+ export * from './logger.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC"}
@@ -0,0 +1,13 @@
1
+ export type LogLevel = 'debug' | 'info' | 'warn' | 'error';
2
+ export declare function setLogLevel(level: LogLevel): void;
3
+ export declare function getLogLevel(): LogLevel;
4
+ export declare function debug(message: string, ...args: unknown[]): void;
5
+ export declare function info(message: string, ...args: unknown[]): void;
6
+ export declare function success(message: string, ...args: unknown[]): void;
7
+ export declare function warn(message: string, ...args: unknown[]): void;
8
+ export declare function error(message: string, ...args: unknown[]): void;
9
+ export declare function highlight(text: string): string;
10
+ export declare function dim(text: string): string;
11
+ export declare function bold(text: string): string;
12
+ export declare function statusColor(status: string): string;
13
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAW3D,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAEjD;AAED,wBAAgB,WAAW,IAAI,QAAQ,CAEtC;AAUD,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAI/D;AAED,wBAAgB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAI9D;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAIjE;AAED,wBAAgB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAI9D;AAED,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAI/D;AAGD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED,wBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAExC;AAED,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEzC;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAoBlD"}
@@ -0,0 +1,77 @@
1
+ import chalk from 'chalk';
2
+ const LOG_LEVELS = {
3
+ debug: 0,
4
+ info: 1,
5
+ warn: 2,
6
+ error: 3,
7
+ };
8
+ let currentLevel = 'info';
9
+ export function setLogLevel(level) {
10
+ currentLevel = level;
11
+ }
12
+ export function getLogLevel() {
13
+ return currentLevel;
14
+ }
15
+ function shouldLog(level) {
16
+ return LOG_LEVELS[level] >= LOG_LEVELS[currentLevel];
17
+ }
18
+ function formatTimestamp() {
19
+ return new Date().toISOString().substring(11, 19);
20
+ }
21
+ export function debug(message, ...args) {
22
+ if (shouldLog('debug')) {
23
+ console.log(chalk.gray(`[${formatTimestamp()}] DEBUG:`), message, ...args);
24
+ }
25
+ }
26
+ export function info(message, ...args) {
27
+ if (shouldLog('info')) {
28
+ console.log(chalk.blue(`[${formatTimestamp()}]`), message, ...args);
29
+ }
30
+ }
31
+ export function success(message, ...args) {
32
+ if (shouldLog('info')) {
33
+ console.log(chalk.green(`[${formatTimestamp()}] ✓`), message, ...args);
34
+ }
35
+ }
36
+ export function warn(message, ...args) {
37
+ if (shouldLog('warn')) {
38
+ console.log(chalk.yellow(`[${formatTimestamp()}] ⚠`), message, ...args);
39
+ }
40
+ }
41
+ export function error(message, ...args) {
42
+ if (shouldLog('error')) {
43
+ console.error(chalk.red(`[${formatTimestamp()}] ✗`), message, ...args);
44
+ }
45
+ }
46
+ // Formatting helpers
47
+ export function highlight(text) {
48
+ return chalk.cyan(text);
49
+ }
50
+ export function dim(text) {
51
+ return chalk.gray(text);
52
+ }
53
+ export function bold(text) {
54
+ return chalk.bold(text);
55
+ }
56
+ export function statusColor(status) {
57
+ switch (status.toLowerCase()) {
58
+ case 'idle':
59
+ return chalk.gray(status);
60
+ case 'working':
61
+ case 'in_progress':
62
+ return chalk.yellow(status);
63
+ case 'blocked':
64
+ case 'qa_failed':
65
+ return chalk.red(status);
66
+ case 'completed':
67
+ case 'merged':
68
+ case 'qa':
69
+ return chalk.green(status);
70
+ case 'review':
71
+ case 'pr_submitted':
72
+ return chalk.blue(status);
73
+ default:
74
+ return status;
75
+ }
76
+ }
77
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ export declare const HIVE_DIR_NAME = ".hive";
2
+ export declare const REPOS_DIR_NAME = "repos";
3
+ export declare const AGENTS_DIR_NAME = "agents";
4
+ export declare const LOGS_DIR_NAME = "logs";
5
+ export interface HivePaths {
6
+ root: string;
7
+ hiveDir: string;
8
+ dbPath: string;
9
+ configPath: string;
10
+ agentsDir: string;
11
+ logsDir: string;
12
+ reposDir: string;
13
+ }
14
+ export declare function findHiveRoot(startDir?: string): string | null;
15
+ export declare function getHivePaths(rootDir: string): HivePaths;
16
+ export declare function isHiveWorkspace(dir: string): boolean;
17
+ //# sourceMappingURL=paths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/utils/paths.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,aAAa,UAAU,CAAC;AACrC,eAAO,MAAM,cAAc,UAAU,CAAC;AACtC,eAAO,MAAM,eAAe,WAAW,CAAC;AACxC,eAAO,MAAM,aAAa,SAAS,CAAC;AAEpC,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,YAAY,CAAC,QAAQ,GAAE,MAAsB,GAAG,MAAM,GAAG,IAAI,CAY5E;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAYvD;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEpD"}
@@ -0,0 +1,33 @@
1
+ import { existsSync } from 'fs';
2
+ import { join, resolve } from 'path';
3
+ export const HIVE_DIR_NAME = '.hive';
4
+ export const REPOS_DIR_NAME = 'repos';
5
+ export const AGENTS_DIR_NAME = 'agents';
6
+ export const LOGS_DIR_NAME = 'logs';
7
+ export function findHiveRoot(startDir = process.cwd()) {
8
+ let currentDir = resolve(startDir);
9
+ while (currentDir !== '/') {
10
+ const hiveDir = join(currentDir, HIVE_DIR_NAME);
11
+ if (existsSync(hiveDir)) {
12
+ return currentDir;
13
+ }
14
+ currentDir = resolve(currentDir, '..');
15
+ }
16
+ return null;
17
+ }
18
+ export function getHivePaths(rootDir) {
19
+ const hiveDir = join(rootDir, HIVE_DIR_NAME);
20
+ return {
21
+ root: rootDir,
22
+ hiveDir,
23
+ dbPath: join(hiveDir, 'hive.db'),
24
+ configPath: join(hiveDir, 'hive.config.yaml'),
25
+ agentsDir: join(hiveDir, AGENTS_DIR_NAME),
26
+ logsDir: join(hiveDir, LOGS_DIR_NAME),
27
+ reposDir: join(rootDir, REPOS_DIR_NAME),
28
+ };
29
+ }
30
+ export function isHiveWorkspace(dir) {
31
+ return existsSync(join(dir, HIVE_DIR_NAME));
32
+ }
33
+ //# sourceMappingURL=paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/utils/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAErC,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAAC;AACrC,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC;AACtC,MAAM,CAAC,MAAM,eAAe,GAAG,QAAQ,CAAC;AACxC,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC;AAYpC,MAAM,UAAU,YAAY,CAAC,WAAmB,OAAO,CAAC,GAAG,EAAE;IAC3D,IAAI,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEnC,OAAO,UAAU,KAAK,GAAG,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QAChD,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACxB,OAAO,UAAU,CAAC;QACpB,CAAC;QACD,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAE7C,OAAO;QACL,IAAI,EAAE,OAAO;QACb,OAAO;QACP,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC;QAChC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,kBAAkB,CAAC;QAC7C,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC;QACzC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC;QACrC,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC;KACxC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC;AAC9C,CAAC"}