@cluesmith/codev 1.1.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 (245) hide show
  1. package/bin/af.js +8 -0
  2. package/bin/codev.js +4 -0
  3. package/bin/consult.js +7 -0
  4. package/dist/agent-farm/cli.d.ts +11 -0
  5. package/dist/agent-farm/cli.d.ts.map +1 -0
  6. package/dist/agent-farm/cli.js +359 -0
  7. package/dist/agent-farm/cli.js.map +1 -0
  8. package/dist/agent-farm/commands/cleanup.d.ts +12 -0
  9. package/dist/agent-farm/commands/cleanup.d.ts.map +1 -0
  10. package/dist/agent-farm/commands/cleanup.js +154 -0
  11. package/dist/agent-farm/commands/cleanup.js.map +1 -0
  12. package/dist/agent-farm/commands/db.d.ts +38 -0
  13. package/dist/agent-farm/commands/db.d.ts.map +1 -0
  14. package/dist/agent-farm/commands/db.js +133 -0
  15. package/dist/agent-farm/commands/db.js.map +1 -0
  16. package/dist/agent-farm/commands/index.d.ts +11 -0
  17. package/dist/agent-farm/commands/index.d.ts.map +1 -0
  18. package/dist/agent-farm/commands/index.js +11 -0
  19. package/dist/agent-farm/commands/index.js.map +1 -0
  20. package/dist/agent-farm/commands/open.d.ts +15 -0
  21. package/dist/agent-farm/commands/open.d.ts.map +1 -0
  22. package/dist/agent-farm/commands/open.js +118 -0
  23. package/dist/agent-farm/commands/open.js.map +1 -0
  24. package/dist/agent-farm/commands/rename.d.ts +13 -0
  25. package/dist/agent-farm/commands/rename.d.ts.map +1 -0
  26. package/dist/agent-farm/commands/rename.js +33 -0
  27. package/dist/agent-farm/commands/rename.js.map +1 -0
  28. package/dist/agent-farm/commands/send.d.ts +9 -0
  29. package/dist/agent-farm/commands/send.d.ts.map +1 -0
  30. package/dist/agent-farm/commands/send.js +282 -0
  31. package/dist/agent-farm/commands/send.js.map +1 -0
  32. package/dist/agent-farm/commands/spawn.d.ts +15 -0
  33. package/dist/agent-farm/commands/spawn.d.ts.map +1 -0
  34. package/dist/agent-farm/commands/spawn.js +575 -0
  35. package/dist/agent-farm/commands/spawn.js.map +1 -0
  36. package/dist/agent-farm/commands/start.d.ts +9 -0
  37. package/dist/agent-farm/commands/start.d.ts.map +1 -0
  38. package/dist/agent-farm/commands/start.js +175 -0
  39. package/dist/agent-farm/commands/start.js.map +1 -0
  40. package/dist/agent-farm/commands/status.d.ts +8 -0
  41. package/dist/agent-farm/commands/status.d.ts.map +1 -0
  42. package/dist/agent-farm/commands/status.js +123 -0
  43. package/dist/agent-farm/commands/status.js.map +1 -0
  44. package/dist/agent-farm/commands/stop.d.ts +8 -0
  45. package/dist/agent-farm/commands/stop.d.ts.map +1 -0
  46. package/dist/agent-farm/commands/stop.js +76 -0
  47. package/dist/agent-farm/commands/stop.js.map +1 -0
  48. package/dist/agent-farm/commands/tower.d.ts +19 -0
  49. package/dist/agent-farm/commands/tower.d.ts.map +1 -0
  50. package/dist/agent-farm/commands/tower.js +125 -0
  51. package/dist/agent-farm/commands/tower.js.map +1 -0
  52. package/dist/agent-farm/commands/tutorial.d.ts +10 -0
  53. package/dist/agent-farm/commands/tutorial.d.ts.map +1 -0
  54. package/dist/agent-farm/commands/tutorial.js +49 -0
  55. package/dist/agent-farm/commands/tutorial.js.map +1 -0
  56. package/dist/agent-farm/commands/util.d.ts +15 -0
  57. package/dist/agent-farm/commands/util.d.ts.map +1 -0
  58. package/dist/agent-farm/commands/util.js +108 -0
  59. package/dist/agent-farm/commands/util.js.map +1 -0
  60. package/dist/agent-farm/db/errors.d.ts +17 -0
  61. package/dist/agent-farm/db/errors.d.ts.map +1 -0
  62. package/dist/agent-farm/db/errors.js +46 -0
  63. package/dist/agent-farm/db/errors.js.map +1 -0
  64. package/dist/agent-farm/db/index.d.ts +41 -0
  65. package/dist/agent-farm/db/index.d.ts.map +1 -0
  66. package/dist/agent-farm/db/index.js +168 -0
  67. package/dist/agent-farm/db/index.js.map +1 -0
  68. package/dist/agent-farm/db/migrate.d.ts +15 -0
  69. package/dist/agent-farm/db/migrate.d.ts.map +1 -0
  70. package/dist/agent-farm/db/migrate.js +137 -0
  71. package/dist/agent-farm/db/migrate.js.map +1 -0
  72. package/dist/agent-farm/db/schema.d.ts +16 -0
  73. package/dist/agent-farm/db/schema.d.ts.map +1 -0
  74. package/dist/agent-farm/db/schema.js +103 -0
  75. package/dist/agent-farm/db/schema.js.map +1 -0
  76. package/dist/agent-farm/db/types.d.ts +87 -0
  77. package/dist/agent-farm/db/types.d.ts.map +1 -0
  78. package/dist/agent-farm/db/types.js +65 -0
  79. package/dist/agent-farm/db/types.js.map +1 -0
  80. package/dist/agent-farm/index.d.ts +7 -0
  81. package/dist/agent-farm/index.d.ts.map +1 -0
  82. package/dist/agent-farm/index.js +373 -0
  83. package/dist/agent-farm/index.js.map +1 -0
  84. package/dist/agent-farm/servers/annotate-server.d.ts +9 -0
  85. package/dist/agent-farm/servers/annotate-server.d.ts.map +1 -0
  86. package/dist/agent-farm/servers/annotate-server.js +136 -0
  87. package/dist/agent-farm/servers/annotate-server.js.map +1 -0
  88. package/dist/agent-farm/servers/dashboard-server.d.ts +9 -0
  89. package/dist/agent-farm/servers/dashboard-server.d.ts.map +1 -0
  90. package/dist/agent-farm/servers/dashboard-server.js +939 -0
  91. package/dist/agent-farm/servers/dashboard-server.js.map +1 -0
  92. package/dist/agent-farm/servers/tower-server.d.ts +9 -0
  93. package/dist/agent-farm/servers/tower-server.d.ts.map +1 -0
  94. package/dist/agent-farm/servers/tower-server.js +463 -0
  95. package/dist/agent-farm/servers/tower-server.js.map +1 -0
  96. package/dist/agent-farm/state.d.ts +93 -0
  97. package/dist/agent-farm/state.d.ts.map +1 -0
  98. package/dist/agent-farm/state.js +253 -0
  99. package/dist/agent-farm/state.js.map +1 -0
  100. package/dist/agent-farm/tutorial/index.d.ts +8 -0
  101. package/dist/agent-farm/tutorial/index.d.ts.map +1 -0
  102. package/dist/agent-farm/tutorial/index.js +8 -0
  103. package/dist/agent-farm/tutorial/index.js.map +1 -0
  104. package/dist/agent-farm/tutorial/prompts.d.ts +57 -0
  105. package/dist/agent-farm/tutorial/prompts.d.ts.map +1 -0
  106. package/dist/agent-farm/tutorial/prompts.js +147 -0
  107. package/dist/agent-farm/tutorial/prompts.js.map +1 -0
  108. package/dist/agent-farm/tutorial/runner.d.ts +52 -0
  109. package/dist/agent-farm/tutorial/runner.d.ts.map +1 -0
  110. package/dist/agent-farm/tutorial/runner.js +204 -0
  111. package/dist/agent-farm/tutorial/runner.js.map +1 -0
  112. package/dist/agent-farm/tutorial/state.d.ts +26 -0
  113. package/dist/agent-farm/tutorial/state.d.ts.map +1 -0
  114. package/dist/agent-farm/tutorial/state.js +89 -0
  115. package/dist/agent-farm/tutorial/state.js.map +1 -0
  116. package/dist/agent-farm/tutorial/steps/first-spec.d.ts +7 -0
  117. package/dist/agent-farm/tutorial/steps/first-spec.d.ts.map +1 -0
  118. package/dist/agent-farm/tutorial/steps/first-spec.js +136 -0
  119. package/dist/agent-farm/tutorial/steps/first-spec.js.map +1 -0
  120. package/dist/agent-farm/tutorial/steps/implementation.d.ts +7 -0
  121. package/dist/agent-farm/tutorial/steps/implementation.d.ts.map +1 -0
  122. package/dist/agent-farm/tutorial/steps/implementation.js +76 -0
  123. package/dist/agent-farm/tutorial/steps/implementation.js.map +1 -0
  124. package/dist/agent-farm/tutorial/steps/index.d.ts +10 -0
  125. package/dist/agent-farm/tutorial/steps/index.d.ts.map +1 -0
  126. package/dist/agent-farm/tutorial/steps/index.js +10 -0
  127. package/dist/agent-farm/tutorial/steps/index.js.map +1 -0
  128. package/dist/agent-farm/tutorial/steps/planning.d.ts +7 -0
  129. package/dist/agent-farm/tutorial/steps/planning.d.ts.map +1 -0
  130. package/dist/agent-farm/tutorial/steps/planning.js +143 -0
  131. package/dist/agent-farm/tutorial/steps/planning.js.map +1 -0
  132. package/dist/agent-farm/tutorial/steps/review.d.ts +7 -0
  133. package/dist/agent-farm/tutorial/steps/review.d.ts.map +1 -0
  134. package/dist/agent-farm/tutorial/steps/review.js +78 -0
  135. package/dist/agent-farm/tutorial/steps/review.js.map +1 -0
  136. package/dist/agent-farm/tutorial/steps/setup.d.ts +7 -0
  137. package/dist/agent-farm/tutorial/steps/setup.d.ts.map +1 -0
  138. package/dist/agent-farm/tutorial/steps/setup.js +126 -0
  139. package/dist/agent-farm/tutorial/steps/setup.js.map +1 -0
  140. package/dist/agent-farm/tutorial/steps/welcome.d.ts +7 -0
  141. package/dist/agent-farm/tutorial/steps/welcome.d.ts.map +1 -0
  142. package/dist/agent-farm/tutorial/steps/welcome.js +50 -0
  143. package/dist/agent-farm/tutorial/steps/welcome.js.map +1 -0
  144. package/dist/agent-farm/types.d.ts +131 -0
  145. package/dist/agent-farm/types.d.ts.map +1 -0
  146. package/dist/agent-farm/types.js +5 -0
  147. package/dist/agent-farm/types.js.map +1 -0
  148. package/dist/agent-farm/utils/config.d.ts +27 -0
  149. package/dist/agent-farm/utils/config.d.ts.map +1 -0
  150. package/dist/agent-farm/utils/config.js +242 -0
  151. package/dist/agent-farm/utils/config.js.map +1 -0
  152. package/dist/agent-farm/utils/deps.d.ts +51 -0
  153. package/dist/agent-farm/utils/deps.d.ts.map +1 -0
  154. package/dist/agent-farm/utils/deps.js +194 -0
  155. package/dist/agent-farm/utils/deps.js.map +1 -0
  156. package/dist/agent-farm/utils/index.d.ts +6 -0
  157. package/dist/agent-farm/utils/index.d.ts.map +1 -0
  158. package/dist/agent-farm/utils/index.js +6 -0
  159. package/dist/agent-farm/utils/index.js.map +1 -0
  160. package/dist/agent-farm/utils/logger.d.ts +31 -0
  161. package/dist/agent-farm/utils/logger.d.ts.map +1 -0
  162. package/dist/agent-farm/utils/logger.js +58 -0
  163. package/dist/agent-farm/utils/logger.js.map +1 -0
  164. package/dist/agent-farm/utils/orphan-handler.d.ts +27 -0
  165. package/dist/agent-farm/utils/orphan-handler.d.ts.map +1 -0
  166. package/dist/agent-farm/utils/orphan-handler.js +127 -0
  167. package/dist/agent-farm/utils/orphan-handler.js.map +1 -0
  168. package/dist/agent-farm/utils/port-registry.d.ts +58 -0
  169. package/dist/agent-farm/utils/port-registry.d.ts.map +1 -0
  170. package/dist/agent-farm/utils/port-registry.js +149 -0
  171. package/dist/agent-farm/utils/port-registry.js.map +1 -0
  172. package/dist/agent-farm/utils/shell.d.ts +45 -0
  173. package/dist/agent-farm/utils/shell.d.ts.map +1 -0
  174. package/dist/agent-farm/utils/shell.js +120 -0
  175. package/dist/agent-farm/utils/shell.js.map +1 -0
  176. package/dist/cli.d.ts +10 -0
  177. package/dist/cli.d.ts.map +1 -0
  178. package/dist/cli.js +160 -0
  179. package/dist/cli.js.map +1 -0
  180. package/dist/commands/adopt.d.ts +12 -0
  181. package/dist/commands/adopt.d.ts.map +1 -0
  182. package/dist/commands/adopt.js +178 -0
  183. package/dist/commands/adopt.js.map +1 -0
  184. package/dist/commands/consult/index.d.ts +17 -0
  185. package/dist/commands/consult/index.d.ts.map +1 -0
  186. package/dist/commands/consult/index.js +405 -0
  187. package/dist/commands/consult/index.js.map +1 -0
  188. package/dist/commands/doctor.d.ts +10 -0
  189. package/dist/commands/doctor.d.ts.map +1 -0
  190. package/dist/commands/doctor.js +346 -0
  191. package/dist/commands/doctor.js.map +1 -0
  192. package/dist/commands/init.d.ts +12 -0
  193. package/dist/commands/init.d.ts.map +1 -0
  194. package/dist/commands/init.js +167 -0
  195. package/dist/commands/init.js.map +1 -0
  196. package/dist/commands/tower.d.ts +16 -0
  197. package/dist/commands/tower.d.ts.map +1 -0
  198. package/dist/commands/tower.js +21 -0
  199. package/dist/commands/tower.js.map +1 -0
  200. package/dist/commands/update.d.ts +13 -0
  201. package/dist/commands/update.d.ts.map +1 -0
  202. package/dist/commands/update.js +137 -0
  203. package/dist/commands/update.js.map +1 -0
  204. package/dist/lib/templates.d.ts +57 -0
  205. package/dist/lib/templates.d.ts.map +1 -0
  206. package/dist/lib/templates.js +205 -0
  207. package/dist/lib/templates.js.map +1 -0
  208. package/package.json +55 -0
  209. package/templates/AGENTS.md +49 -0
  210. package/templates/CLAUDE.md +47 -0
  211. package/templates/DEPENDENCIES.md +344 -0
  212. package/templates/agents/architecture-documenter.md +189 -0
  213. package/templates/agents/codev-updater.md +276 -0
  214. package/templates/agents/spider-protocol-updater.md +118 -0
  215. package/templates/annotate.html +903 -0
  216. package/templates/bin/agent-farm +18 -0
  217. package/templates/bin/annotate-server.js +140 -0
  218. package/templates/bin/codev-doctor +335 -0
  219. package/templates/builders.md +30 -0
  220. package/templates/config.json +7 -0
  221. package/templates/dashboard-split.html +1679 -0
  222. package/templates/dashboard.html +149 -0
  223. package/templates/plans/.gitkeep +0 -0
  224. package/templates/protocols/experiment/protocol.md +229 -0
  225. package/templates/protocols/experiment/templates/notes.md +97 -0
  226. package/templates/protocols/maintain/protocol.md +235 -0
  227. package/templates/protocols/spider/protocol.md +639 -0
  228. package/templates/protocols/spider/templates/plan.md +169 -0
  229. package/templates/protocols/spider/templates/review.md +207 -0
  230. package/templates/protocols/spider/templates/spec.md +140 -0
  231. package/templates/protocols/spider-solo/protocol.md +619 -0
  232. package/templates/protocols/spider-solo/templates/plan.md +169 -0
  233. package/templates/protocols/spider-solo/templates/review.md +207 -0
  234. package/templates/protocols/spider-solo/templates/spec.md +140 -0
  235. package/templates/protocols/tick/protocol.md +250 -0
  236. package/templates/protocols/tick/templates/plan.md +67 -0
  237. package/templates/protocols/tick/templates/review.md +90 -0
  238. package/templates/protocols/tick/templates/spec.md +61 -0
  239. package/templates/reviews/.gitkeep +0 -0
  240. package/templates/roles/architect.md +230 -0
  241. package/templates/roles/builder.md +175 -0
  242. package/templates/roles/consultant.md +27 -0
  243. package/templates/specs/.gitkeep +0 -0
  244. package/templates/templates/projectlist.md +129 -0
  245. package/templates/tower.html +1032 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"send.js","sourceRoot":"","sources":["../../../src/agent-farm/commands/send.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEtD,MAAM,aAAa,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,sBAAsB;AAEvD;;GAEG;AACH,SAAS,sBAAsB,CAAC,OAAe,EAAE,WAAoB,EAAE,MAAe,KAAK;IACzF,IAAI,OAAO,GAAG,OAAO,CAAC;IACtB,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,IAAI,8BAA8B,GAAG,WAAW,GAAG,OAAO,CAAC;IACpE,CAAC;IAED,IAAI,GAAG,EAAE,CAAC;QACR,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,iEAAiE;IACjE,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,OAAO,gCAAgC,SAAS;EAChD,OAAO;gCACuB,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAAC,SAAiB,EAAE,OAAe,EAAE,WAAoB,EAAE,MAAe,KAAK;IAC1G,IAAI,OAAO,GAAG,OAAO,CAAC;IACtB,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,IAAI,8BAA8B,GAAG,WAAW,GAAG,OAAO,CAAC;IACpE,CAAC;IAED,IAAI,GAAG,EAAE,CAAC;QACR,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,2DAA2D;IAC3D,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,OAAO,gBAAgB,SAAS,cAAc,SAAS;EACvD,OAAO;gCACuB,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,aAAa,CAC1B,SAAiB,EACjB,OAAe,EACf,OAAoB;IAEpB,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;IAC1B,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;IAE/D,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,WAAW,SAAS,qDAAqD,CAAC,CAAC;IAC7F,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,WAAW,SAAS,gCAAgC,CAAC,CAAC;IACxE,CAAC;IAED,wBAAwB;IACxB,IAAI,CAAC;QACH,MAAM,GAAG,CAAC,wBAAwB,OAAO,CAAC,WAAW,eAAe,CAAC,CAAC;IACxE,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CACb,iBAAiB,OAAO,CAAC,WAAW,kEAAkE,CACvG,CAAC;IACJ,CAAC;IAED,+DAA+D;IAC/D,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACtB,MAAM,GAAG,CAAC,sBAAsB,OAAO,CAAC,WAAW,OAAO,CAAC,CAAC;QAC5D,mCAAmC;QACnC,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,iCAAiC;IACjC,IAAI,WAA+B,CAAC;IACpC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,mBAAmB,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACrD,CAAC;QACD,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,UAAU,CAAC,MAAM,GAAG,aAAa,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CACb,mBAAmB,UAAU,CAAC,MAAM,eAAe,aAAa,gBAAgB,CACjF,CAAC;QACJ,CAAC;QACD,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,qBAAqB;IACrB,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IAEnF,gEAAgE;IAChE,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,iBAAiB,UAAU,EAAE,MAAM,CAAC,CAAC;IACrE,aAAa,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;IAE1C,IAAI,CAAC;QACH,kCAAkC;QAClC,MAAM,UAAU,GAAG,aAAa,SAAS,EAAE,CAAC;QAC5C,MAAM,GAAG,CAAC,wBAAwB,UAAU,MAAM,QAAQ,GAAG,CAAC,CAAC;QAC/D,MAAM,GAAG,CAAC,yBAAyB,UAAU,SAAS,OAAO,CAAC,WAAW,GAAG,CAAC,CAAC;QAE9E,uBAAuB;QACvB,MAAM,GAAG,CAAC,0BAA0B,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;YAC5D,qDAAqD;QACvD,CAAC,CAAC,CAAC;QAEH,2CAA2C;QAC3C,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACrB,MAAM,GAAG,CAAC,sBAAsB,OAAO,CAAC,WAAW,SAAS,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,WAAW,SAAS,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;IACvE,CAAC;YAAS,CAAC;QACT,qBAAqB;QACrB,IAAI,CAAC;YACH,UAAU,CAAC,QAAQ,CAAC,CAAC;QACvB,CAAC;QAAC,MAAM,CAAC;YACP,wBAAwB;QAC1B,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,eAAe,CAC5B,aAAqB,EACrB,OAAe,EACf,OAAoB;IAEpB,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IAEjC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IAED,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IAED,wBAAwB;IACxB,IAAI,CAAC;QACH,MAAM,GAAG,CAAC,wBAAwB,SAAS,CAAC,WAAW,eAAe,CAAC,CAAC;IAC1E,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CACb,iBAAiB,SAAS,CAAC,WAAW,oEAAoE,CAC3G,CAAC;IACJ,CAAC;IAED,+DAA+D;IAC/D,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACtB,MAAM,GAAG,CAAC,sBAAsB,SAAS,CAAC,WAAW,OAAO,CAAC,CAAC;QAC9D,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,iCAAiC;IACjC,IAAI,WAA+B,CAAC;IACpC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,mBAAmB,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACrD,CAAC;QACD,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,UAAU,CAAC,MAAM,GAAG,aAAa,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CACb,mBAAmB,UAAU,CAAC,MAAM,eAAe,aAAa,gBAAgB,CACjF,CAAC;QACJ,CAAC;QACD,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,oCAAoC;IACpC,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IAEhG,6BAA6B;IAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,eAAe,UAAU,EAAE,MAAM,CAAC,CAAC;IACnE,aAAa,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;IAE1C,IAAI,CAAC;QACH,kCAAkC;QAClC,MAAM,UAAU,GAAG,WAAW,aAAa,EAAE,CAAC;QAC9C,MAAM,GAAG,CAAC,wBAAwB,UAAU,MAAM,QAAQ,GAAG,CAAC,CAAC;QAC/D,MAAM,GAAG,CAAC,yBAAyB,UAAU,SAAS,SAAS,CAAC,WAAW,GAAG,CAAC,CAAC;QAEhF,uBAAuB;QACvB,MAAM,GAAG,CAAC,0BAA0B,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAEnE,2CAA2C;QAC3C,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACrB,MAAM,GAAG,CAAC,sBAAsB,SAAS,CAAC,WAAW,SAAS,CAAC,CAAC;QAClE,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,0BAA0B,aAAa,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;IAC1F,CAAC;YAAS,CAAC;QACT,IAAI,CAAC;YACH,UAAU,CAAC,QAAQ,CAAC,CAAC;QACvB,CAAC;QAAC,MAAM,CAAC;YACP,wBAAwB;QAC1B,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,SAAS,CACtB,OAAe,EACf,OAAoB;IAEpB,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;IAC1B,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,EAAc,EAAE,MAAM,EAAE,EAAc,EAAE,CAAC;IAEjE,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QACzC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACrC,IAAI,CAAC;YACH,MAAM,aAAa,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YAClD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,qBAAqB,OAAO,CAAC,EAAE,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC3G,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,SAAS;IACtB,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QACxC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;AACxD,CAAC;AAED;;;GAGG;AACH,SAAS,sBAAsB;IAC7B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,2CAA2C;IAC3C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAC/C,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,OAAoB;IAC7C,wBAAwB;IACxB,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAC9B,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAE9B,+EAA+E;IAC/E,IAAI,OAAO,CAAC,GAAG,IAAI,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;QACvC,OAAO,GAAG,OAAO,CAAC;QAClB,OAAO,GAAG,SAAS,CAAC;IACtB,CAAC;IAED,sCAAsC;IACtC,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;QACpB,OAAO,GAAG,MAAM,SAAS,EAAE,CAAC;IAC9B,CAAC;IAED,kBAAkB;IAClB,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,KAAK,CAAC,oFAAoF,CAAC,CAAC;IAC9F,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC7B,KAAK,CAAC,iFAAiF,CAAC,CAAC;IAC3F,CAAC;IAED,IAAI,OAAO,CAAC,GAAG,IAAI,OAAO,EAAE,CAAC;QAC3B,KAAK,CAAC,8CAA8C,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;IAErC,gCAAgC;IAChC,MAAM,iBAAiB,GAAG,OAAO,EAAE,WAAW,EAAE,KAAK,WAAW,IAAI,OAAO,EAAE,WAAW,EAAE,KAAK,MAAM,CAAC;IAEtG,IAAI,iBAAiB,EAAE,CAAC;QACtB,wCAAwC;QACxC,MAAM,gBAAgB,GAAG,sBAAsB,EAAE,CAAC;QAClD,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,KAAK,CAAC,oGAAoG,CAAC,CAAC;QAC9G,CAAC;QAED,IAAI,CAAC;YACH,MAAM,eAAe,CAAC,gBAAgB,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YAC1D,MAAM,CAAC,OAAO,CAAC,0CAA0C,gBAAgB,EAAE,CAAC,CAAC;QAC/E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;SAAM,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QACvB,4BAA4B;QAC5B,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAElD,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,CAAC,OAAO,CAAC,WAAW,OAAO,CAAC,IAAI,CAAC,MAAM,gBAAgB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1F,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,CAAC,KAAK,CAAC,cAAc,OAAO,CAAC,MAAM,CAAC,MAAM,gBAAgB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/F,CAAC;IACH,CAAC;SAAM,CAAC;QACN,2BAA2B;QAC3B,IAAI,CAAC;YACH,MAAM,aAAa,CAAC,OAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YAChD,MAAM,CAAC,OAAO,CAAC,2BAA2B,OAAO,EAAE,CAAC,CAAC;QACvD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Spawn command - creates a new builder in various modes
3
+ *
4
+ * Modes:
5
+ * - spec: --project/-p Spawn for a spec file (existing behavior)
6
+ * - task: --task Spawn with an ad-hoc task description
7
+ * - protocol: --protocol Spawn to run a protocol (cleanup, experiment, etc.)
8
+ * - shell: --shell Bare Claude session (no prompt, no worktree)
9
+ */
10
+ import type { SpawnOptions } from '../types.js';
11
+ /**
12
+ * Spawn a new builder
13
+ */
14
+ export declare function spawn(options: SpawnOptions): Promise<void>;
15
+ //# sourceMappingURL=spawn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spawn.d.ts","sourceRoot":"","sources":["../../../src/agent-farm/commands/spawn.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EAAE,YAAY,EAAgC,MAAM,aAAa,CAAC;AA0qB9E;;GAEG;AACH,wBAAsB,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBhE"}
@@ -0,0 +1,575 @@
1
+ /**
2
+ * Spawn command - creates a new builder in various modes
3
+ *
4
+ * Modes:
5
+ * - spec: --project/-p Spawn for a spec file (existing behavior)
6
+ * - task: --task Spawn with an ad-hoc task description
7
+ * - protocol: --protocol Spawn to run a protocol (cleanup, experiment, etc.)
8
+ * - shell: --shell Bare Claude session (no prompt, no worktree)
9
+ */
10
+ import { resolve, basename } from 'node:path';
11
+ import { existsSync, readFileSync, writeFileSync, chmodSync, readdirSync } from 'node:fs';
12
+ import { readdir } from 'node:fs/promises';
13
+ import { getConfig, ensureDirectories, getResolvedCommands } from '../utils/index.js';
14
+ import { logger, fatal } from '../utils/logger.js';
15
+ import { run, spawnDetached, commandExists, findAvailablePort } from '../utils/shell.js';
16
+ import { loadState, upsertBuilder } from '../state.js';
17
+ /**
18
+ * Generate a short 4-character base64-encoded ID
19
+ * Uses URL-safe base64 (a-z, A-Z, 0-9, -, _) for filesystem-safe IDs
20
+ */
21
+ function generateShortId() {
22
+ // Generate random 24-bit number and base64 encode to 4 chars
23
+ const num = Math.floor(Math.random() * 0xFFFFFF);
24
+ const bytes = new Uint8Array([num >> 16, (num >> 8) & 0xFF, num & 0xFF]);
25
+ return btoa(String.fromCharCode(...bytes))
26
+ .replace(/\+/g, '-')
27
+ .replace(/\//g, '_')
28
+ .replace(/=/g, '')
29
+ .substring(0, 4);
30
+ }
31
+ /**
32
+ * Validate spawn options - ensure exactly one mode is selected
33
+ */
34
+ function validateSpawnOptions(options) {
35
+ const modes = [
36
+ options.project,
37
+ options.task,
38
+ options.protocol,
39
+ options.shell,
40
+ options.worktree,
41
+ ].filter(Boolean);
42
+ if (modes.length === 0) {
43
+ fatal('Must specify one of: --project (-p), --task, --protocol, --shell, --worktree\n\nRun "af spawn --help" for examples.');
44
+ }
45
+ if (modes.length > 1) {
46
+ fatal('Flags --project, --task, --protocol, --shell, --worktree are mutually exclusive');
47
+ }
48
+ if (options.files && !options.task) {
49
+ fatal('--files requires --task');
50
+ }
51
+ }
52
+ /**
53
+ * Determine the spawn mode from options
54
+ */
55
+ function getSpawnMode(options) {
56
+ if (options.project)
57
+ return 'spec';
58
+ if (options.task)
59
+ return 'task';
60
+ if (options.protocol)
61
+ return 'protocol';
62
+ if (options.shell)
63
+ return 'shell';
64
+ if (options.worktree)
65
+ return 'worktree';
66
+ throw new Error('No mode specified');
67
+ }
68
+ /**
69
+ * Find and load a role file - tries local codev/roles/ first, falls back to bundled
70
+ */
71
+ function loadRolePrompt(config, roleName) {
72
+ // Try local project first
73
+ const localPath = resolve(config.codevDir, 'roles', `${roleName}.md`);
74
+ if (existsSync(localPath)) {
75
+ return { content: readFileSync(localPath, 'utf-8'), source: 'local' };
76
+ }
77
+ // Fall back to bundled
78
+ const bundledPath = resolve(config.bundledRolesDir, `${roleName}.md`);
79
+ if (existsSync(bundledPath)) {
80
+ return { content: readFileSync(bundledPath, 'utf-8'), source: 'bundled' };
81
+ }
82
+ return null;
83
+ }
84
+ /**
85
+ * Load a protocol-specific role if it exists
86
+ */
87
+ function loadProtocolRole(config, protocolName) {
88
+ const protocolRolePath = resolve(config.codevDir, 'protocols', protocolName, 'role.md');
89
+ if (existsSync(protocolRolePath)) {
90
+ return { content: readFileSync(protocolRolePath, 'utf-8'), source: 'protocol' };
91
+ }
92
+ // Fall back to builder role
93
+ return loadRolePrompt(config, 'builder');
94
+ }
95
+ /**
96
+ * Find a spec file by project ID
97
+ */
98
+ async function findSpecFile(codevDir, projectId) {
99
+ const specsDir = resolve(codevDir, 'specs');
100
+ if (!existsSync(specsDir)) {
101
+ return null;
102
+ }
103
+ const files = await readdir(specsDir);
104
+ // Try exact match first (e.g., "0001-feature.md")
105
+ for (const file of files) {
106
+ if (file.startsWith(projectId) && file.endsWith('.md')) {
107
+ return resolve(specsDir, file);
108
+ }
109
+ }
110
+ // Try partial match (e.g., just "0001")
111
+ for (const file of files) {
112
+ if (file.startsWith(projectId + '-') && file.endsWith('.md')) {
113
+ return resolve(specsDir, file);
114
+ }
115
+ }
116
+ return null;
117
+ }
118
+ /**
119
+ * Validate that a protocol exists
120
+ */
121
+ function validateProtocol(config, protocolName) {
122
+ const protocolDir = resolve(config.codevDir, 'protocols', protocolName);
123
+ const protocolFile = resolve(protocolDir, 'protocol.md');
124
+ if (!existsSync(protocolDir)) {
125
+ // List available protocols
126
+ const protocolsDir = resolve(config.codevDir, 'protocols');
127
+ let available = '';
128
+ if (existsSync(protocolsDir)) {
129
+ const dirs = readdirSync(protocolsDir, { withFileTypes: true })
130
+ .filter((d) => d.isDirectory())
131
+ .map((d) => d.name);
132
+ if (dirs.length > 0) {
133
+ available = `\n\nAvailable protocols: ${dirs.join(', ')}`;
134
+ }
135
+ }
136
+ fatal(`Protocol not found: ${protocolName}${available}`);
137
+ }
138
+ if (!existsSync(protocolFile)) {
139
+ fatal(`Protocol ${protocolName} exists but has no protocol.md file`);
140
+ }
141
+ }
142
+ /**
143
+ * Check for required dependencies
144
+ */
145
+ async function checkDependencies() {
146
+ if (!(await commandExists('git'))) {
147
+ fatal('git not found');
148
+ }
149
+ if (!(await commandExists('ttyd'))) {
150
+ fatal('ttyd not found. Install with: brew install ttyd');
151
+ }
152
+ }
153
+ /**
154
+ * Find an available port, avoiding ports already in use by other builders
155
+ */
156
+ async function findFreePort(config) {
157
+ const state = loadState();
158
+ const usedPorts = new Set();
159
+ for (const b of state.builders || []) {
160
+ if (b.port)
161
+ usedPorts.add(b.port);
162
+ }
163
+ let port = config.builderPortRange[0];
164
+ while (usedPorts.has(port)) {
165
+ port++;
166
+ }
167
+ return findAvailablePort(port);
168
+ }
169
+ /**
170
+ * Create git branch and worktree
171
+ */
172
+ async function createWorktree(config, branchName, worktreePath) {
173
+ logger.info('Creating branch...');
174
+ try {
175
+ await run(`git branch ${branchName}`, { cwd: config.projectRoot });
176
+ }
177
+ catch (error) {
178
+ // Branch might already exist, that's OK
179
+ logger.debug(`Branch creation: ${error}`);
180
+ }
181
+ logger.info('Creating worktree...');
182
+ try {
183
+ await run(`git worktree add "${worktreePath}" ${branchName}`, { cwd: config.projectRoot });
184
+ }
185
+ catch (error) {
186
+ fatal(`Failed to create worktree: ${error}`);
187
+ }
188
+ }
189
+ /**
190
+ * Start tmux session and ttyd for a builder
191
+ */
192
+ async function startBuilderSession(config, builderId, worktreePath, baseCmd, prompt, roleContent, roleSource) {
193
+ const port = await findFreePort(config);
194
+ const sessionName = `builder-${builderId}`;
195
+ logger.info('Creating tmux session...');
196
+ // Write initial prompt to a file for reference
197
+ const promptFile = resolve(worktreePath, '.builder-prompt.txt');
198
+ writeFileSync(promptFile, prompt);
199
+ // Build the start script with role if provided
200
+ const scriptPath = resolve(worktreePath, '.builder-start.sh');
201
+ let scriptContent;
202
+ if (roleContent) {
203
+ // Write role to a file and use $(cat) to avoid shell escaping issues
204
+ // Pass the initial prompt via stdin (file redirection) instead of command argument
205
+ const roleFile = resolve(worktreePath, '.builder-role.md');
206
+ writeFileSync(roleFile, roleContent);
207
+ logger.info(`Loaded role (${roleSource})`);
208
+ scriptContent = `#!/bin/bash
209
+ exec ${baseCmd} --append-system-prompt "$(cat '${roleFile}')" < '${promptFile}'
210
+ `;
211
+ }
212
+ else {
213
+ scriptContent = `#!/bin/bash
214
+ exec ${baseCmd} < '${promptFile}'
215
+ `;
216
+ }
217
+ writeFileSync(scriptPath, scriptContent);
218
+ chmodSync(scriptPath, '755');
219
+ // Create tmux session running the script
220
+ await run(`tmux new-session -d -s "${sessionName}" -x 200 -y 50 -c "${worktreePath}" "${scriptPath}"`);
221
+ // Enable mouse scrolling in tmux
222
+ await run('tmux set -g mouse on');
223
+ await run('tmux set -g set-clipboard on');
224
+ await run('tmux set -g allow-passthrough on');
225
+ // Copy selection to clipboard when mouse is released (pbcopy for macOS)
226
+ await run('tmux bind-key -T copy-mode MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "pbcopy"');
227
+ await run('tmux bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "pbcopy"');
228
+ // Start ttyd connecting to the tmux session
229
+ logger.info('Starting builder terminal...');
230
+ const customIndexPath = resolve(config.templatesDir, 'ttyd-index.html');
231
+ const ttydArgs = [
232
+ '-W',
233
+ '-p', String(port),
234
+ '-t', 'theme={"background":"#000000"}',
235
+ '-t', 'rightClickSelectsWord=true', // Enable word selection on right-click for better UX
236
+ ];
237
+ if (existsSync(customIndexPath)) {
238
+ ttydArgs.push('-I', customIndexPath);
239
+ logger.info('Using custom terminal with file click support');
240
+ }
241
+ ttydArgs.push('tmux', 'attach-session', '-t', sessionName);
242
+ const ttydProcess = spawnDetached('ttyd', ttydArgs, {
243
+ cwd: worktreePath,
244
+ });
245
+ if (!ttydProcess.pid) {
246
+ fatal('Failed to start ttyd process for builder');
247
+ }
248
+ return { port, pid: ttydProcess.pid, sessionName };
249
+ }
250
+ /**
251
+ * Start a shell session (no worktree, just tmux + ttyd)
252
+ */
253
+ async function startShellSession(config, shellId, baseCmd) {
254
+ const port = await findFreePort(config);
255
+ const sessionName = `shell-${shellId}`;
256
+ logger.info('Creating tmux session...');
257
+ // Shell mode: just launch Claude with no prompt
258
+ await run(`tmux new-session -d -s "${sessionName}" -x 200 -y 50 -c "${config.projectRoot}" "${baseCmd}"`);
259
+ // Enable mouse scrolling in tmux
260
+ await run('tmux set -g mouse on');
261
+ await run('tmux set -g set-clipboard on');
262
+ await run('tmux set -g allow-passthrough on');
263
+ // Copy selection to clipboard when mouse is released (pbcopy for macOS)
264
+ await run('tmux bind-key -T copy-mode MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "pbcopy"');
265
+ await run('tmux bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "pbcopy"');
266
+ // Start ttyd
267
+ logger.info('Starting shell terminal...');
268
+ const customIndexPath = resolve(config.templatesDir, 'ttyd-index.html');
269
+ const ttydArgs = [
270
+ '-W',
271
+ '-p', String(port),
272
+ '-t', 'theme={"background":"#000000"}',
273
+ '-t', 'rightClickSelectsWord=true', // Enable word selection on right-click for better UX
274
+ ];
275
+ if (existsSync(customIndexPath)) {
276
+ ttydArgs.push('-I', customIndexPath);
277
+ }
278
+ ttydArgs.push('tmux', 'attach-session', '-t', sessionName);
279
+ const ttydProcess = spawnDetached('ttyd', ttydArgs, {
280
+ cwd: config.projectRoot,
281
+ });
282
+ if (!ttydProcess.pid) {
283
+ fatal('Failed to start ttyd process for shell');
284
+ }
285
+ return { port, pid: ttydProcess.pid, sessionName };
286
+ }
287
+ // =============================================================================
288
+ // Mode-specific spawn implementations
289
+ // =============================================================================
290
+ /**
291
+ * Spawn builder for a spec (existing behavior)
292
+ */
293
+ async function spawnSpec(options, config) {
294
+ const projectId = options.project;
295
+ const specFile = await findSpecFile(config.codevDir, projectId);
296
+ if (!specFile) {
297
+ fatal(`Spec not found for project: ${projectId}`);
298
+ }
299
+ const specName = basename(specFile, '.md');
300
+ const builderId = projectId;
301
+ const safeName = specName.toLowerCase().replace(/[^a-z0-9_-]/g, '-').replace(/-+/g, '-');
302
+ const branchName = `builder/${safeName}`;
303
+ const worktreePath = resolve(config.buildersDir, builderId);
304
+ // Check for corresponding plan file
305
+ const planFile = resolve(config.codevDir, 'plans', `${specName}.md`);
306
+ const hasPlan = existsSync(planFile);
307
+ logger.header(`Spawning Builder ${builderId} (spec)`);
308
+ logger.kv('Spec', specFile);
309
+ logger.kv('Branch', branchName);
310
+ logger.kv('Worktree', worktreePath);
311
+ await ensureDirectories(config);
312
+ await checkDependencies();
313
+ await createWorktree(config, branchName, worktreePath);
314
+ // Build the prompt
315
+ const specRelPath = `codev/specs/${specName}.md`;
316
+ const planRelPath = `codev/plans/${specName}.md`;
317
+ let initialPrompt = `Implement the feature specified in ${specRelPath}.`;
318
+ if (hasPlan) {
319
+ initialPrompt += ` Follow the implementation plan in ${planRelPath}.`;
320
+ }
321
+ initialPrompt += ` Start by reading the spec${hasPlan ? ' and plan' : ''}, then begin implementation.`;
322
+ const builderPrompt = `You are a Builder. Read codev/roles/builder.md for your full role definition. ${initialPrompt}`;
323
+ // Load role
324
+ const role = options.noRole ? null : loadRolePrompt(config, 'builder');
325
+ const commands = getResolvedCommands();
326
+ const { port, pid, sessionName } = await startBuilderSession(config, builderId, worktreePath, commands.builder, builderPrompt, role?.content ?? null, role?.source ?? null);
327
+ const builder = {
328
+ id: builderId,
329
+ name: specName,
330
+ port,
331
+ pid,
332
+ status: 'spawning',
333
+ phase: 'init',
334
+ worktree: worktreePath,
335
+ branch: branchName,
336
+ tmuxSession: sessionName,
337
+ type: 'spec',
338
+ };
339
+ upsertBuilder(builder);
340
+ logger.blank();
341
+ logger.success(`Builder ${builderId} spawned!`);
342
+ logger.kv('Terminal', `http://localhost:${port}`);
343
+ }
344
+ /**
345
+ * Spawn builder for an ad-hoc task
346
+ */
347
+ async function spawnTask(options, config) {
348
+ const taskText = options.task;
349
+ const shortId = generateShortId();
350
+ const builderId = `task-${shortId}`;
351
+ const branchName = `builder/task-${shortId}`;
352
+ const worktreePath = resolve(config.buildersDir, builderId);
353
+ logger.header(`Spawning Builder ${builderId} (task)`);
354
+ logger.kv('Task', taskText.substring(0, 60) + (taskText.length > 60 ? '...' : ''));
355
+ logger.kv('Branch', branchName);
356
+ logger.kv('Worktree', worktreePath);
357
+ if (options.files && options.files.length > 0) {
358
+ logger.kv('Files', options.files.join(', '));
359
+ }
360
+ await ensureDirectories(config);
361
+ await checkDependencies();
362
+ await createWorktree(config, branchName, worktreePath);
363
+ // Build the prompt
364
+ let prompt = taskText;
365
+ if (options.files && options.files.length > 0) {
366
+ prompt += `\n\nRelevant files to consider:\n${options.files.map(f => `- ${f}`).join('\n')}`;
367
+ }
368
+ const builderPrompt = `You are a Builder. Read codev/roles/builder.md for your full role definition. ${prompt}`;
369
+ // Load role
370
+ const role = options.noRole ? null : loadRolePrompt(config, 'builder');
371
+ const commands = getResolvedCommands();
372
+ const { port, pid, sessionName } = await startBuilderSession(config, builderId, worktreePath, commands.builder, builderPrompt, role?.content ?? null, role?.source ?? null);
373
+ const builder = {
374
+ id: builderId,
375
+ name: `Task: ${taskText.substring(0, 30)}${taskText.length > 30 ? '...' : ''}`,
376
+ port,
377
+ pid,
378
+ status: 'spawning',
379
+ phase: 'init',
380
+ worktree: worktreePath,
381
+ branch: branchName,
382
+ tmuxSession: sessionName,
383
+ type: 'task',
384
+ taskText,
385
+ };
386
+ upsertBuilder(builder);
387
+ logger.blank();
388
+ logger.success(`Builder ${builderId} spawned!`);
389
+ logger.kv('Terminal', `http://localhost:${port}`);
390
+ }
391
+ /**
392
+ * Spawn builder to run a protocol
393
+ */
394
+ async function spawnProtocol(options, config) {
395
+ const protocolName = options.protocol;
396
+ validateProtocol(config, protocolName);
397
+ const shortId = generateShortId();
398
+ const builderId = `${protocolName}-${shortId}`;
399
+ const branchName = `builder/${protocolName}-${shortId}`;
400
+ const worktreePath = resolve(config.buildersDir, builderId);
401
+ logger.header(`Spawning Builder ${builderId} (protocol)`);
402
+ logger.kv('Protocol', protocolName);
403
+ logger.kv('Branch', branchName);
404
+ logger.kv('Worktree', worktreePath);
405
+ await ensureDirectories(config);
406
+ await checkDependencies();
407
+ await createWorktree(config, branchName, worktreePath);
408
+ // Build the prompt
409
+ const prompt = `You are running the ${protocolName} protocol. Start by reading codev/protocols/${protocolName}/protocol.md and follow its instructions.`;
410
+ // Load protocol-specific role or fall back to builder role
411
+ const role = options.noRole ? null : loadProtocolRole(config, protocolName);
412
+ const commands = getResolvedCommands();
413
+ const { port, pid, sessionName } = await startBuilderSession(config, builderId, worktreePath, commands.builder, prompt, role?.content ?? null, role?.source ?? null);
414
+ const builder = {
415
+ id: builderId,
416
+ name: `Protocol: ${protocolName}`,
417
+ port,
418
+ pid,
419
+ status: 'spawning',
420
+ phase: 'init',
421
+ worktree: worktreePath,
422
+ branch: branchName,
423
+ tmuxSession: sessionName,
424
+ type: 'protocol',
425
+ protocolName,
426
+ };
427
+ upsertBuilder(builder);
428
+ logger.blank();
429
+ logger.success(`Builder ${builderId} spawned!`);
430
+ logger.kv('Terminal', `http://localhost:${port}`);
431
+ }
432
+ /**
433
+ * Spawn a bare shell session (no worktree, no prompt)
434
+ */
435
+ async function spawnShell(options, config) {
436
+ const shortId = generateShortId();
437
+ const shellId = `shell-${shortId}`;
438
+ logger.header(`Spawning Shell ${shellId}`);
439
+ await ensureDirectories(config);
440
+ await checkDependencies();
441
+ const commands = getResolvedCommands();
442
+ const { port, pid, sessionName } = await startShellSession(config, shortId, commands.builder);
443
+ // Shell sessions are tracked as builders with type 'shell'
444
+ // They don't have worktrees or branches
445
+ const builder = {
446
+ id: shellId,
447
+ name: 'Shell session',
448
+ port,
449
+ pid,
450
+ status: 'spawning',
451
+ phase: 'interactive',
452
+ worktree: '',
453
+ branch: '',
454
+ tmuxSession: sessionName,
455
+ type: 'shell',
456
+ };
457
+ upsertBuilder(builder);
458
+ logger.blank();
459
+ logger.success(`Shell ${shellId} spawned!`);
460
+ logger.kv('Terminal', `http://localhost:${port}`);
461
+ }
462
+ /**
463
+ * Spawn a worktree session (has worktree/branch, but no initial prompt)
464
+ * Use case: Small features without spec/plan, like quick fixes
465
+ */
466
+ async function spawnWorktree(options, config) {
467
+ const shortId = generateShortId();
468
+ const builderId = `worktree-${shortId}`;
469
+ const branchName = `builder/worktree-${shortId}`;
470
+ const worktreePath = resolve(config.buildersDir, builderId);
471
+ logger.header(`Spawning Worktree ${builderId}`);
472
+ logger.kv('Branch', branchName);
473
+ logger.kv('Worktree', worktreePath);
474
+ await ensureDirectories(config);
475
+ await checkDependencies();
476
+ await createWorktree(config, branchName, worktreePath);
477
+ // Load builder role
478
+ const role = options.noRole ? null : loadRolePrompt(config, 'builder');
479
+ const commands = getResolvedCommands();
480
+ // Worktree mode: launch Claude with no prompt, but in the worktree directory
481
+ const port = await findFreePort(config);
482
+ const sessionName = `builder-${builderId}`;
483
+ logger.info('Creating tmux session...');
484
+ // Build launch script (with role if provided) to avoid shell escaping issues
485
+ const scriptPath = resolve(worktreePath, '.builder-start.sh');
486
+ let scriptContent;
487
+ if (role) {
488
+ const roleFile = resolve(worktreePath, '.builder-role.md');
489
+ writeFileSync(roleFile, role.content);
490
+ logger.info(`Loaded role (${role.source})`);
491
+ scriptContent = `#!/bin/bash
492
+ exec ${commands.builder} --append-system-prompt "$(cat '${roleFile}')"
493
+ `;
494
+ }
495
+ else {
496
+ scriptContent = `#!/bin/bash
497
+ exec ${commands.builder}
498
+ `;
499
+ }
500
+ writeFileSync(scriptPath, scriptContent, { mode: 0o755 });
501
+ // Create tmux session running the launch script
502
+ await run(`tmux new-session -d -s "${sessionName}" -x 200 -y 50 -c "${worktreePath}" "${scriptPath}"`);
503
+ // Enable mouse scrolling in tmux
504
+ await run('tmux set -g mouse on');
505
+ await run('tmux set -g set-clipboard on');
506
+ await run('tmux set -g allow-passthrough on');
507
+ // Copy selection to clipboard when mouse is released (pbcopy for macOS)
508
+ await run('tmux bind-key -T copy-mode MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "pbcopy"');
509
+ await run('tmux bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "pbcopy"');
510
+ // Start ttyd
511
+ logger.info('Starting worktree terminal...');
512
+ const customIndexPath = resolve(config.codevDir, 'templates', 'ttyd-index.html');
513
+ const ttydArgs = [
514
+ '-W',
515
+ '-p', String(port),
516
+ '-t', 'theme={"background":"#000000"}',
517
+ '-t', 'rightClickSelectsWord=true', // Enable word selection on right-click for better UX
518
+ ];
519
+ if (existsSync(customIndexPath)) {
520
+ ttydArgs.push('-I', customIndexPath);
521
+ logger.info('Using custom terminal with file click support');
522
+ }
523
+ ttydArgs.push('tmux', 'attach-session', '-t', sessionName);
524
+ const ttydProcess = spawnDetached('ttyd', ttydArgs, {
525
+ cwd: worktreePath,
526
+ });
527
+ if (!ttydProcess.pid) {
528
+ fatal('Failed to start ttyd process for worktree');
529
+ }
530
+ const builder = {
531
+ id: builderId,
532
+ name: 'Worktree session',
533
+ port,
534
+ pid: ttydProcess.pid,
535
+ status: 'spawning',
536
+ phase: 'interactive',
537
+ worktree: worktreePath,
538
+ branch: branchName,
539
+ tmuxSession: sessionName,
540
+ type: 'worktree',
541
+ };
542
+ upsertBuilder(builder);
543
+ logger.blank();
544
+ logger.success(`Worktree ${builderId} spawned!`);
545
+ logger.kv('Terminal', `http://localhost:${port}`);
546
+ }
547
+ // =============================================================================
548
+ // Main entry point
549
+ // =============================================================================
550
+ /**
551
+ * Spawn a new builder
552
+ */
553
+ export async function spawn(options) {
554
+ validateSpawnOptions(options);
555
+ const config = getConfig();
556
+ const mode = getSpawnMode(options);
557
+ switch (mode) {
558
+ case 'spec':
559
+ await spawnSpec(options, config);
560
+ break;
561
+ case 'task':
562
+ await spawnTask(options, config);
563
+ break;
564
+ case 'protocol':
565
+ await spawnProtocol(options, config);
566
+ break;
567
+ case 'shell':
568
+ await spawnShell(options, config);
569
+ break;
570
+ case 'worktree':
571
+ await spawnWorktree(options, config);
572
+ break;
573
+ }
574
+ }
575
+ //# sourceMappingURL=spawn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spawn.js","sourceRoot":"","sources":["../../../src/agent-farm/commands/spawn.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Start command - launches the architect dashboard
3
+ */
4
+ import type { StartOptions } from '../types.js';
5
+ /**
6
+ * Start the architect dashboard
7
+ */
8
+ export declare function start(options?: StartOptions): Promise<void>;
9
+ //# sourceMappingURL=start.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../src/agent-farm/commands/start.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAkB,MAAM,aAAa,CAAC;AA2BhE;;GAEG;AACH,wBAAsB,KAAK,CAAC,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0IrE"}