@cluesmith/codev 2.0.0-rc.3 → 2.0.0-rc.33

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 (315) hide show
  1. package/bin/porch.js +6 -35
  2. package/dashboard/dist/assets/index-CXwnJkPh.css +32 -0
  3. package/dashboard/dist/assets/index-D429K6qO.js +120 -0
  4. package/dashboard/dist/assets/index-D429K6qO.js.map +1 -0
  5. package/dashboard/dist/index.html +13 -0
  6. package/dist/agent-farm/cli.d.ts.map +1 -1
  7. package/dist/agent-farm/cli.js +74 -64
  8. package/dist/agent-farm/cli.js.map +1 -1
  9. package/dist/agent-farm/commands/architect.d.ts.map +1 -1
  10. package/dist/agent-farm/commands/architect.js +0 -2
  11. package/dist/agent-farm/commands/architect.js.map +1 -1
  12. package/dist/agent-farm/commands/attach.d.ts +13 -0
  13. package/dist/agent-farm/commands/attach.d.ts.map +1 -0
  14. package/dist/agent-farm/commands/attach.js +179 -0
  15. package/dist/agent-farm/commands/attach.js.map +1 -0
  16. package/dist/agent-farm/commands/cleanup.d.ts.map +1 -1
  17. package/dist/agent-farm/commands/cleanup.js +30 -3
  18. package/dist/agent-farm/commands/cleanup.js.map +1 -1
  19. package/dist/agent-farm/commands/consult.js +1 -1
  20. package/dist/agent-farm/commands/consult.js.map +1 -1
  21. package/dist/agent-farm/commands/index.d.ts +2 -2
  22. package/dist/agent-farm/commands/index.d.ts.map +1 -1
  23. package/dist/agent-farm/commands/index.js +2 -2
  24. package/dist/agent-farm/commands/index.js.map +1 -1
  25. package/dist/agent-farm/commands/{util.d.ts → shell.d.ts} +5 -5
  26. package/dist/agent-farm/commands/shell.d.ts.map +1 -0
  27. package/dist/agent-farm/commands/{util.js → shell.js} +23 -36
  28. package/dist/agent-farm/commands/shell.js.map +1 -0
  29. package/dist/agent-farm/commands/spawn.d.ts.map +1 -1
  30. package/dist/agent-farm/commands/spawn.js +455 -217
  31. package/dist/agent-farm/commands/spawn.js.map +1 -1
  32. package/dist/agent-farm/commands/start.d.ts.map +1 -1
  33. package/dist/agent-farm/commands/start.js +21 -74
  34. package/dist/agent-farm/commands/start.js.map +1 -1
  35. package/dist/agent-farm/commands/stop.d.ts.map +1 -1
  36. package/dist/agent-farm/commands/stop.js +79 -10
  37. package/dist/agent-farm/commands/stop.js.map +1 -1
  38. package/dist/agent-farm/commands/tower.d.ts.map +1 -1
  39. package/dist/agent-farm/commands/tower.js +2 -1
  40. package/dist/agent-farm/commands/tower.js.map +1 -1
  41. package/dist/agent-farm/db/index.d.ts.map +1 -1
  42. package/dist/agent-farm/db/index.js +15 -0
  43. package/dist/agent-farm/db/index.js.map +1 -1
  44. package/dist/agent-farm/db/schema.d.ts +1 -1
  45. package/dist/agent-farm/db/schema.d.ts.map +1 -1
  46. package/dist/agent-farm/db/schema.js +6 -3
  47. package/dist/agent-farm/db/schema.js.map +1 -1
  48. package/dist/agent-farm/db/types.d.ts +3 -0
  49. package/dist/agent-farm/db/types.d.ts.map +1 -1
  50. package/dist/agent-farm/db/types.js +3 -0
  51. package/dist/agent-farm/db/types.js.map +1 -1
  52. package/dist/agent-farm/hq-connector.d.ts +2 -2
  53. package/dist/agent-farm/hq-connector.js +2 -2
  54. package/dist/agent-farm/servers/dashboard-server.js +412 -131
  55. package/dist/agent-farm/servers/dashboard-server.js.map +1 -1
  56. package/dist/agent-farm/servers/tower-server.js +353 -16
  57. package/dist/agent-farm/servers/tower-server.js.map +1 -1
  58. package/dist/agent-farm/state.d.ts +4 -10
  59. package/dist/agent-farm/state.d.ts.map +1 -1
  60. package/dist/agent-farm/state.js +30 -31
  61. package/dist/agent-farm/state.js.map +1 -1
  62. package/dist/agent-farm/types.d.ts +48 -0
  63. package/dist/agent-farm/types.d.ts.map +1 -1
  64. package/dist/agent-farm/utils/config.d.ts.map +1 -1
  65. package/dist/agent-farm/utils/config.js +12 -11
  66. package/dist/agent-farm/utils/config.js.map +1 -1
  67. package/dist/agent-farm/utils/deps.d.ts.map +1 -1
  68. package/dist/agent-farm/utils/deps.js +0 -16
  69. package/dist/agent-farm/utils/deps.js.map +1 -1
  70. package/dist/agent-farm/utils/notifications.d.ts +30 -0
  71. package/dist/agent-farm/utils/notifications.d.ts.map +1 -0
  72. package/dist/agent-farm/utils/notifications.js +121 -0
  73. package/dist/agent-farm/utils/notifications.js.map +1 -0
  74. package/dist/agent-farm/utils/server-utils.d.ts +2 -1
  75. package/dist/agent-farm/utils/server-utils.d.ts.map +1 -1
  76. package/dist/agent-farm/utils/server-utils.js +11 -1
  77. package/dist/agent-farm/utils/server-utils.js.map +1 -1
  78. package/dist/agent-farm/utils/shell.d.ts +9 -22
  79. package/dist/agent-farm/utils/shell.d.ts.map +1 -1
  80. package/dist/agent-farm/utils/shell.js +34 -34
  81. package/dist/agent-farm/utils/shell.js.map +1 -1
  82. package/dist/agent-farm/utils/terminal-ports.d.ts +1 -1
  83. package/dist/agent-farm/utils/terminal-ports.js +1 -1
  84. package/dist/cli.d.ts.map +1 -1
  85. package/dist/cli.js +5 -54
  86. package/dist/cli.js.map +1 -1
  87. package/dist/commands/adopt.d.ts.map +1 -1
  88. package/dist/commands/adopt.js +39 -4
  89. package/dist/commands/adopt.js.map +1 -1
  90. package/dist/commands/consult/index.d.ts.map +1 -1
  91. package/dist/commands/consult/index.js +63 -3
  92. package/dist/commands/consult/index.js.map +1 -1
  93. package/dist/commands/doctor.d.ts.map +1 -1
  94. package/dist/commands/doctor.js +0 -15
  95. package/dist/commands/doctor.js.map +1 -1
  96. package/dist/commands/init.d.ts.map +1 -1
  97. package/dist/commands/init.js +31 -2
  98. package/dist/commands/init.js.map +1 -1
  99. package/dist/commands/porch/build-counter.d.ts +5 -0
  100. package/dist/commands/porch/build-counter.d.ts.map +1 -0
  101. package/dist/commands/porch/build-counter.js +5 -0
  102. package/dist/commands/porch/build-counter.js.map +1 -0
  103. package/dist/commands/porch/checks.d.ts +16 -29
  104. package/dist/commands/porch/checks.d.ts.map +1 -1
  105. package/dist/commands/porch/checks.js +90 -144
  106. package/dist/commands/porch/checks.js.map +1 -1
  107. package/dist/commands/porch/claude.d.ts +27 -0
  108. package/dist/commands/porch/claude.d.ts.map +1 -0
  109. package/dist/commands/porch/claude.js +107 -0
  110. package/dist/commands/porch/claude.js.map +1 -0
  111. package/dist/commands/porch/index.d.ts +21 -43
  112. package/dist/commands/porch/index.d.ts.map +1 -1
  113. package/dist/commands/porch/index.js +469 -753
  114. package/dist/commands/porch/index.js.map +1 -1
  115. package/dist/commands/porch/plan.d.ts +70 -0
  116. package/dist/commands/porch/plan.d.ts.map +1 -0
  117. package/dist/commands/porch/plan.js +190 -0
  118. package/dist/commands/porch/plan.js.map +1 -0
  119. package/dist/commands/porch/prompts.d.ts +19 -0
  120. package/dist/commands/porch/prompts.d.ts.map +1 -0
  121. package/dist/commands/porch/prompts.js +250 -0
  122. package/dist/commands/porch/prompts.js.map +1 -0
  123. package/dist/commands/porch/protocol.d.ts +59 -0
  124. package/dist/commands/porch/protocol.d.ts.map +1 -0
  125. package/dist/commands/porch/protocol.js +260 -0
  126. package/dist/commands/porch/protocol.js.map +1 -0
  127. package/dist/commands/porch/run.d.ts +40 -0
  128. package/dist/commands/porch/run.d.ts.map +1 -0
  129. package/dist/commands/porch/run.js +893 -0
  130. package/dist/commands/porch/run.js.map +1 -0
  131. package/dist/commands/porch/state.d.ts +23 -112
  132. package/dist/commands/porch/state.d.ts.map +1 -1
  133. package/dist/commands/porch/state.js +81 -685
  134. package/dist/commands/porch/state.js.map +1 -1
  135. package/dist/commands/porch/types.d.ts +72 -173
  136. package/dist/commands/porch/types.d.ts.map +1 -1
  137. package/dist/commands/porch/types.js +2 -1
  138. package/dist/commands/porch/types.js.map +1 -1
  139. package/dist/commands/update.d.ts.map +1 -1
  140. package/dist/commands/update.js +22 -0
  141. package/dist/commands/update.js.map +1 -1
  142. package/dist/lib/scaffold.d.ts +24 -0
  143. package/dist/lib/scaffold.d.ts.map +1 -1
  144. package/dist/lib/scaffold.js +78 -0
  145. package/dist/lib/scaffold.js.map +1 -1
  146. package/dist/terminal/index.d.ts +8 -0
  147. package/dist/terminal/index.d.ts.map +1 -0
  148. package/dist/terminal/index.js +5 -0
  149. package/dist/terminal/index.js.map +1 -0
  150. package/dist/terminal/pty-manager.d.ts +60 -0
  151. package/dist/terminal/pty-manager.d.ts.map +1 -0
  152. package/dist/terminal/pty-manager.js +334 -0
  153. package/dist/terminal/pty-manager.js.map +1 -0
  154. package/dist/terminal/pty-session.d.ts +79 -0
  155. package/dist/terminal/pty-session.d.ts.map +1 -0
  156. package/dist/terminal/pty-session.js +215 -0
  157. package/dist/terminal/pty-session.js.map +1 -0
  158. package/dist/terminal/ring-buffer.d.ts +27 -0
  159. package/dist/terminal/ring-buffer.d.ts.map +1 -0
  160. package/dist/terminal/ring-buffer.js +74 -0
  161. package/dist/terminal/ring-buffer.js.map +1 -0
  162. package/dist/terminal/ws-protocol.d.ts +27 -0
  163. package/dist/terminal/ws-protocol.d.ts.map +1 -0
  164. package/dist/terminal/ws-protocol.js +44 -0
  165. package/dist/terminal/ws-protocol.js.map +1 -0
  166. package/package.json +18 -3
  167. package/skeleton/DEPENDENCIES.md +3 -29
  168. package/skeleton/builders.md +1 -1
  169. package/skeleton/protocol-schema.json +282 -0
  170. package/skeleton/protocols/bugfix/builder-prompt.md +49 -0
  171. package/skeleton/protocols/bugfix/protocol.json +14 -2
  172. package/skeleton/protocols/experiment/builder-prompt.md +47 -0
  173. package/skeleton/protocols/experiment/protocol.json +101 -0
  174. package/skeleton/protocols/maintain/builder-prompt.md +41 -0
  175. package/skeleton/protocols/maintain/prompts/audit.md +111 -0
  176. package/skeleton/protocols/maintain/prompts/clean.md +91 -0
  177. package/skeleton/protocols/maintain/prompts/sync.md +113 -0
  178. package/skeleton/protocols/maintain/prompts/verify.md +110 -0
  179. package/skeleton/protocols/maintain/protocol.json +141 -0
  180. package/skeleton/protocols/maintain/protocol.md +13 -7
  181. package/skeleton/protocols/protocol-schema.json +53 -0
  182. package/skeleton/protocols/spider/builder-prompt.md +53 -0
  183. package/skeleton/protocols/spider/prompts/implement.md +208 -0
  184. package/skeleton/protocols/spider/prompts/plan.md +214 -0
  185. package/skeleton/protocols/spider/prompts/review.md +217 -0
  186. package/skeleton/protocols/spider/prompts/specify.md +192 -0
  187. package/skeleton/protocols/spider/protocol.json +96 -148
  188. package/skeleton/protocols/spider/protocol.md +26 -16
  189. package/skeleton/protocols/spider/templates/plan.md +14 -0
  190. package/skeleton/protocols/tick/builder-prompt.md +51 -0
  191. package/skeleton/protocols/tick/protocol.json +7 -2
  192. package/skeleton/resources/commands/agent-farm.md +25 -43
  193. package/skeleton/resources/commands/overview.md +6 -16
  194. package/skeleton/resources/workflow-reference.md +2 -2
  195. package/skeleton/roles/architect.md +152 -315
  196. package/skeleton/roles/builder.md +109 -218
  197. package/skeleton/templates/AGENTS.md +1 -1
  198. package/skeleton/templates/CLAUDE.md +1 -1
  199. package/skeleton/templates/cheatsheet.md +4 -2
  200. package/templates/dashboard/index.html +17 -43
  201. package/templates/dashboard/js/dialogs.js +7 -7
  202. package/templates/dashboard/js/files.js +2 -2
  203. package/templates/dashboard/js/main.js +3 -3
  204. package/templates/dashboard/js/projects.js +3 -3
  205. package/templates/dashboard/js/tabs.js +1 -1
  206. package/templates/dashboard/js/utils.js +22 -87
  207. package/templates/tower.html +474 -17
  208. package/dist/agent-farm/commands/kickoff.d.ts +0 -19
  209. package/dist/agent-farm/commands/kickoff.d.ts.map +0 -1
  210. package/dist/agent-farm/commands/kickoff.js +0 -323
  211. package/dist/agent-farm/commands/kickoff.js.map +0 -1
  212. package/dist/agent-farm/commands/rename.d.ts +0 -13
  213. package/dist/agent-farm/commands/rename.d.ts.map +0 -1
  214. package/dist/agent-farm/commands/rename.js +0 -33
  215. package/dist/agent-farm/commands/rename.js.map +0 -1
  216. package/dist/agent-farm/commands/tutorial.d.ts +0 -10
  217. package/dist/agent-farm/commands/tutorial.d.ts.map +0 -1
  218. package/dist/agent-farm/commands/tutorial.js +0 -49
  219. package/dist/agent-farm/commands/tutorial.js.map +0 -1
  220. package/dist/agent-farm/commands/util.d.ts.map +0 -1
  221. package/dist/agent-farm/commands/util.js.map +0 -1
  222. package/dist/agent-farm/tutorial/index.d.ts +0 -8
  223. package/dist/agent-farm/tutorial/index.d.ts.map +0 -1
  224. package/dist/agent-farm/tutorial/index.js +0 -8
  225. package/dist/agent-farm/tutorial/index.js.map +0 -1
  226. package/dist/agent-farm/tutorial/prompts.d.ts +0 -57
  227. package/dist/agent-farm/tutorial/prompts.d.ts.map +0 -1
  228. package/dist/agent-farm/tutorial/prompts.js +0 -147
  229. package/dist/agent-farm/tutorial/prompts.js.map +0 -1
  230. package/dist/agent-farm/tutorial/runner.d.ts +0 -52
  231. package/dist/agent-farm/tutorial/runner.d.ts.map +0 -1
  232. package/dist/agent-farm/tutorial/runner.js +0 -204
  233. package/dist/agent-farm/tutorial/runner.js.map +0 -1
  234. package/dist/agent-farm/tutorial/state.d.ts +0 -26
  235. package/dist/agent-farm/tutorial/state.d.ts.map +0 -1
  236. package/dist/agent-farm/tutorial/state.js +0 -89
  237. package/dist/agent-farm/tutorial/state.js.map +0 -1
  238. package/dist/agent-farm/tutorial/steps/first-spec.d.ts +0 -7
  239. package/dist/agent-farm/tutorial/steps/first-spec.d.ts.map +0 -1
  240. package/dist/agent-farm/tutorial/steps/first-spec.js +0 -136
  241. package/dist/agent-farm/tutorial/steps/first-spec.js.map +0 -1
  242. package/dist/agent-farm/tutorial/steps/implementation.d.ts +0 -7
  243. package/dist/agent-farm/tutorial/steps/implementation.d.ts.map +0 -1
  244. package/dist/agent-farm/tutorial/steps/implementation.js +0 -76
  245. package/dist/agent-farm/tutorial/steps/implementation.js.map +0 -1
  246. package/dist/agent-farm/tutorial/steps/index.d.ts +0 -10
  247. package/dist/agent-farm/tutorial/steps/index.d.ts.map +0 -1
  248. package/dist/agent-farm/tutorial/steps/index.js +0 -10
  249. package/dist/agent-farm/tutorial/steps/index.js.map +0 -1
  250. package/dist/agent-farm/tutorial/steps/planning.d.ts +0 -7
  251. package/dist/agent-farm/tutorial/steps/planning.d.ts.map +0 -1
  252. package/dist/agent-farm/tutorial/steps/planning.js +0 -143
  253. package/dist/agent-farm/tutorial/steps/planning.js.map +0 -1
  254. package/dist/agent-farm/tutorial/steps/review.d.ts +0 -7
  255. package/dist/agent-farm/tutorial/steps/review.d.ts.map +0 -1
  256. package/dist/agent-farm/tutorial/steps/review.js +0 -78
  257. package/dist/agent-farm/tutorial/steps/review.js.map +0 -1
  258. package/dist/agent-farm/tutorial/steps/setup.d.ts +0 -7
  259. package/dist/agent-farm/tutorial/steps/setup.d.ts.map +0 -1
  260. package/dist/agent-farm/tutorial/steps/setup.js +0 -126
  261. package/dist/agent-farm/tutorial/steps/setup.js.map +0 -1
  262. package/dist/agent-farm/tutorial/steps/welcome.d.ts +0 -7
  263. package/dist/agent-farm/tutorial/steps/welcome.d.ts.map +0 -1
  264. package/dist/agent-farm/tutorial/steps/welcome.js +0 -50
  265. package/dist/agent-farm/tutorial/steps/welcome.js.map +0 -1
  266. package/dist/commands/pcheck/cache.d.ts +0 -48
  267. package/dist/commands/pcheck/cache.d.ts.map +0 -1
  268. package/dist/commands/pcheck/cache.js +0 -170
  269. package/dist/commands/pcheck/cache.js.map +0 -1
  270. package/dist/commands/pcheck/evaluator.d.ts +0 -15
  271. package/dist/commands/pcheck/evaluator.d.ts.map +0 -1
  272. package/dist/commands/pcheck/evaluator.js +0 -246
  273. package/dist/commands/pcheck/evaluator.js.map +0 -1
  274. package/dist/commands/pcheck/index.d.ts +0 -12
  275. package/dist/commands/pcheck/index.d.ts.map +0 -1
  276. package/dist/commands/pcheck/index.js +0 -249
  277. package/dist/commands/pcheck/index.js.map +0 -1
  278. package/dist/commands/pcheck/parser.d.ts +0 -39
  279. package/dist/commands/pcheck/parser.d.ts.map +0 -1
  280. package/dist/commands/pcheck/parser.js +0 -155
  281. package/dist/commands/pcheck/parser.js.map +0 -1
  282. package/dist/commands/pcheck/types.d.ts +0 -82
  283. package/dist/commands/pcheck/types.d.ts.map +0 -1
  284. package/dist/commands/pcheck/types.js +0 -5
  285. package/dist/commands/pcheck/types.js.map +0 -1
  286. package/dist/commands/porch/consultation.d.ts +0 -56
  287. package/dist/commands/porch/consultation.d.ts.map +0 -1
  288. package/dist/commands/porch/consultation.js +0 -330
  289. package/dist/commands/porch/consultation.js.map +0 -1
  290. package/dist/commands/porch/notifications.d.ts +0 -99
  291. package/dist/commands/porch/notifications.d.ts.map +0 -1
  292. package/dist/commands/porch/notifications.js +0 -223
  293. package/dist/commands/porch/notifications.js.map +0 -1
  294. package/dist/commands/porch/plan-parser.d.ts +0 -38
  295. package/dist/commands/porch/plan-parser.d.ts.map +0 -1
  296. package/dist/commands/porch/plan-parser.js +0 -166
  297. package/dist/commands/porch/plan-parser.js.map +0 -1
  298. package/dist/commands/porch/protocol-loader.d.ts +0 -46
  299. package/dist/commands/porch/protocol-loader.d.ts.map +0 -1
  300. package/dist/commands/porch/protocol-loader.js +0 -249
  301. package/dist/commands/porch/protocol-loader.js.map +0 -1
  302. package/dist/commands/porch/signal-parser.d.ts +0 -88
  303. package/dist/commands/porch/signal-parser.d.ts.map +0 -1
  304. package/dist/commands/porch/signal-parser.js +0 -148
  305. package/dist/commands/porch/signal-parser.js.map +0 -1
  306. package/dist/commands/tower.d.ts +0 -16
  307. package/dist/commands/tower.d.ts.map +0 -1
  308. package/dist/commands/tower.js +0 -21
  309. package/dist/commands/tower.js.map +0 -1
  310. package/skeleton/config.json +0 -7
  311. package/skeleton/porch/protocols/bugfix.json +0 -85
  312. package/skeleton/porch/protocols/spider.json +0 -135
  313. package/skeleton/porch/protocols/tick.json +0 -76
  314. package/templates/dashboard/css/activity.css +0 -151
  315. package/templates/dashboard/js/activity.js +0 -112
@@ -1,323 +0,0 @@
1
- /**
2
- * Kickoff command - Start a new protocol-driven project
3
- *
4
- * This command combines:
5
- * 1. Creating a git worktree
6
- * 2. Initializing porch state
7
- * 3. Starting the porch loop in the builder
8
- */
9
- import { resolve, basename } from 'node:path';
10
- import { existsSync, readFileSync, writeFileSync, chmodSync, symlinkSync } from 'node:fs';
11
- import { readdir } from 'node:fs/promises';
12
- import { getConfig, ensureDirectories, getResolvedCommands } from '../utils/index.js';
13
- import { logger, fatal } from '../utils/logger.js';
14
- import { run, commandExists, findAvailablePort, spawnTtyd } from '../utils/shell.js';
15
- import { loadState, upsertBuilder } from '../state.js';
16
- import { loadRolePrompt } from '../utils/roles.js';
17
- /**
18
- * Get project name from config
19
- */
20
- function getProjectName(config) {
21
- return basename(config.projectRoot);
22
- }
23
- /**
24
- * Get tmux session name
25
- */
26
- function getSessionName(config, builderId) {
27
- return `builder-${getProjectName(config)}-${builderId}`;
28
- }
29
- /**
30
- * Find an available port
31
- */
32
- async function findFreePort(config) {
33
- const state = loadState();
34
- const usedPorts = new Set();
35
- for (const b of state.builders || []) {
36
- if (b.port)
37
- usedPorts.add(b.port);
38
- }
39
- let port = config.builderPortRange[0];
40
- while (usedPorts.has(port)) {
41
- port++;
42
- }
43
- return findAvailablePort(port);
44
- }
45
- /**
46
- * Find spec file by project ID
47
- */
48
- async function findSpecFile(codevDir, projectId) {
49
- const specsDir = resolve(codevDir, 'specs');
50
- if (!existsSync(specsDir)) {
51
- return null;
52
- }
53
- const files = await readdir(specsDir);
54
- for (const file of files) {
55
- if (file.startsWith(projectId) && file.endsWith('.md')) {
56
- return resolve(specsDir, file);
57
- }
58
- }
59
- for (const file of files) {
60
- if (file.startsWith(projectId + '-') && file.endsWith('.md')) {
61
- return resolve(specsDir, file);
62
- }
63
- }
64
- return null;
65
- }
66
- async function findPorchState(codevDir, projectId) {
67
- const projectsDir = resolve(codevDir, 'projects');
68
- if (!existsSync(projectsDir)) {
69
- return null;
70
- }
71
- const dirs = await readdir(projectsDir);
72
- for (const dir of dirs) {
73
- if (dir.startsWith(`${projectId}-`)) {
74
- const statusPath = resolve(projectsDir, dir, 'status.yaml');
75
- if (existsSync(statusPath)) {
76
- const content = readFileSync(statusPath, 'utf-8');
77
- // Simple YAML parsing for the fields we need
78
- const idMatch = content.match(/^id:\s*"?([^"\n]+)"?/m);
79
- const titleMatch = content.match(/^title:\s*"?([^"\n]+)"?/m);
80
- const protocolMatch = content.match(/^protocol:\s*"?([^"\n]+)"?/m);
81
- const stateMatch = content.match(/^state:\s*"?([^"\n]+)"?/m);
82
- if (idMatch && titleMatch) {
83
- return {
84
- id: idMatch[1],
85
- title: titleMatch[1],
86
- protocol: protocolMatch?.[1] || 'spider',
87
- state: stateMatch?.[1] || 'unknown',
88
- statusPath,
89
- };
90
- }
91
- }
92
- }
93
- }
94
- return null;
95
- }
96
- /**
97
- * Create git branch and worktree
98
- */
99
- async function createWorktree(config, branchName, worktreePath) {
100
- logger.info('Creating branch...');
101
- try {
102
- await run(`git branch ${branchName}`, { cwd: config.projectRoot });
103
- }
104
- catch {
105
- logger.debug('Branch may already exist');
106
- }
107
- logger.info('Creating worktree...');
108
- try {
109
- await run(`git worktree add "${worktreePath}" ${branchName}`, { cwd: config.projectRoot });
110
- }
111
- catch (error) {
112
- fatal(`Failed to create worktree: ${error}`);
113
- }
114
- // Symlink .env
115
- const rootEnvPath = resolve(config.projectRoot, '.env');
116
- const worktreeEnvPath = resolve(worktreePath, '.env');
117
- if (existsSync(rootEnvPath) && !existsSync(worktreeEnvPath)) {
118
- try {
119
- symlinkSync(rootEnvPath, worktreeEnvPath);
120
- logger.info('Linked .env from project root');
121
- }
122
- catch {
123
- logger.debug('Failed to symlink .env');
124
- }
125
- }
126
- }
127
- /**
128
- * Check dependencies
129
- */
130
- async function checkDependencies() {
131
- if (!(await commandExists('git'))) {
132
- fatal('git not found');
133
- }
134
- if (!(await commandExists('ttyd'))) {
135
- fatal('ttyd not found. Install with: brew install ttyd');
136
- }
137
- if (!(await commandExists('porch'))) {
138
- logger.warn('porch command not found in PATH. Falling back to codev porch.');
139
- }
140
- }
141
- /**
142
- * Get porch command (prefer standalone, fall back to codev porch)
143
- */
144
- async function getPorchCommand() {
145
- if (await commandExists('porch')) {
146
- return 'porch';
147
- }
148
- return 'codev porch';
149
- }
150
- /**
151
- * Kickoff a new protocol-driven project
152
- */
153
- export async function kickoff(options) {
154
- const { project: projectId, protocol: protocolName = 'spider', noRole, resume } = options;
155
- const config = getConfig();
156
- // Find spec file OR porch state
157
- const specFile = await findSpecFile(config.codevDir, projectId);
158
- const porchState = await findPorchState(config.codevDir, projectId);
159
- // Need either a spec or porch state to proceed
160
- if (!specFile && !porchState) {
161
- fatal(`No spec or porch state found for project: ${projectId}\n` +
162
- `Either create a spec file (codev/specs/${projectId}-*.md) or initialize porch:\n` +
163
- ` porch init ${protocolName} ${projectId} <project-name>`);
164
- }
165
- // Derive names from spec or porch state
166
- const specName = specFile ? basename(specFile, '.md') : `${projectId}-${porchState.title}`;
167
- const builderId = projectId;
168
- const safeName = specFile
169
- ? specName.toLowerCase().replace(/[^a-z0-9_-]/g, '-').replace(/-+/g, '-')
170
- : porchState.title.toLowerCase().replace(/[^a-z0-9_-]/g, '-').replace(/-+/g, '-');
171
- const branchName = `builder/${projectId}-${safeName}`;
172
- const worktreePath = resolve(config.buildersDir, builderId);
173
- // Check for plan file (only if spec exists)
174
- const planFile = specFile ? resolve(config.codevDir, 'plans', `${basename(specFile, '.md')}.md`) : null;
175
- const hasPlan = planFile ? existsSync(planFile) : false;
176
- // Check if porch state already exists
177
- const hasExistingState = !!porchState;
178
- logger.header(`Kickoff Builder ${builderId}`);
179
- logger.kv('Spec', specFile || '(to be created)');
180
- logger.kv('Protocol', (porchState?.protocol || protocolName).toUpperCase());
181
- logger.kv('Branch', branchName);
182
- logger.kv('Worktree', worktreePath);
183
- logger.kv('Porch State', hasExistingState ? 'exists (resume)' : 'new');
184
- await ensureDirectories(config);
185
- await checkDependencies();
186
- // Check if worktree already exists
187
- if (existsSync(worktreePath)) {
188
- if (resume) {
189
- logger.info('Resuming existing worktree');
190
- }
191
- else {
192
- fatal(`Worktree already exists at ${worktreePath}\nUse --resume to continue, or run: af cleanup --project ${projectId}`);
193
- }
194
- }
195
- else {
196
- await createWorktree(config, branchName, worktreePath);
197
- }
198
- const porchCmd = await getPorchCommand();
199
- // Initialize porch state if not resuming existing
200
- if (!hasExistingState && !resume) {
201
- logger.info('Initializing porch state...');
202
- try {
203
- await run(`${porchCmd} init ${protocolName} ${projectId} "${safeName}" --worktree "${worktreePath}"`, {
204
- cwd: config.projectRoot,
205
- });
206
- logger.success('Porch state initialized');
207
- }
208
- catch (error) {
209
- logger.warn(`Failed to initialize porch state: ${error}`);
210
- logger.info('Builder will start without porch orchestration');
211
- }
212
- }
213
- // Build the prompt
214
- const actualProtocol = porchState?.protocol || protocolName;
215
- const specRelPath = specFile ? `codev/specs/${basename(specFile)}` : `codev/specs/${projectId}-${safeName}.md`;
216
- const planRelPath = `codev/plans/${projectId}-${safeName}.md`;
217
- const protocolPath = `codev/protocols/${actualProtocol.toLowerCase()}/protocol.md`;
218
- let initialPrompt = `## Protocol
219
- Follow the ${actualProtocol.toUpperCase()} protocol STRICTLY: ${protocolPath}
220
- Read and internalize the protocol before starting any work.
221
-
222
- ## Porch Orchestration
223
- This builder is orchestrated by Porch. Check your current state with:
224
- porch status ${projectId}
225
-
226
- Current porch state: ${porchState?.state || 'initializing'}
227
-
228
- ## Task`;
229
- if (specFile) {
230
- initialPrompt += `
231
- Implement the feature specified in ${specRelPath}.`;
232
- if (hasPlan) {
233
- initialPrompt += ` Follow the implementation plan in ${planRelPath}.`;
234
- }
235
- initialPrompt += `
236
-
237
- Start by reading the protocol, spec${hasPlan ? ', and plan' : ''}, then begin implementation.`;
238
- }
239
- else {
240
- // No spec yet - builder starts from specify phase
241
- initialPrompt += `
242
- Project: ${porchState?.title || safeName}
243
-
244
- You are starting from the SPECIFY phase. Your first task is to:
245
- 1. Read the protocol (${protocolPath})
246
- 2. Understand what "${porchState?.title || safeName}" means
247
- 3. Create the specification file at ${specRelPath}
248
-
249
- The porch orchestrator will guide you through each phase. Follow the signals it expects.`;
250
- }
251
- const builderPrompt = `You are a Builder. Read codev/roles/builder.md for your full role definition.
252
-
253
- ${initialPrompt}`;
254
- // Load role
255
- const role = noRole ? null : loadRolePrompt(config, 'builder');
256
- const commands = getResolvedCommands();
257
- // Start builder session
258
- const port = await findFreePort(config);
259
- const sessionName = getSessionName(config, builderId);
260
- logger.info('Creating tmux session...');
261
- // Write prompt and role files
262
- const promptFile = resolve(worktreePath, '.builder-prompt.txt');
263
- writeFileSync(promptFile, builderPrompt);
264
- const scriptPath = resolve(worktreePath, '.builder-start.sh');
265
- let scriptContent;
266
- // Builder startup script runs porch, which orchestrates Claude sessions
267
- // The role file is written for reference but porch handles the actual invocations
268
- if (role) {
269
- const roleFile = resolve(worktreePath, '.builder-role.md');
270
- const roleWithPort = role.content.replace(/\{PORT\}/g, String(config.dashboardPort));
271
- writeFileSync(roleFile, roleWithPort);
272
- logger.info(`Loaded role (${role.source})`);
273
- }
274
- // Run porch as the main orchestrator
275
- // Porch will invoke Claude for each phase with appropriate context
276
- scriptContent = `#!/bin/bash
277
- cd "${worktreePath}"
278
- echo "Starting porch orchestrator for project ${projectId}..."
279
- echo "Protocol: ${protocolName.toUpperCase()}"
280
- echo ""
281
- exec ${porchCmd} run ${projectId}
282
- `;
283
- writeFileSync(scriptPath, scriptContent);
284
- chmodSync(scriptPath, '755');
285
- // Create tmux session
286
- await run(`tmux new-session -d -s "${sessionName}" -x 200 -y 50 -c "${worktreePath}" "${scriptPath}"`);
287
- await run(`tmux set-option -t "${sessionName}" status off`);
288
- await run('tmux set -g mouse on');
289
- await run('tmux set -g set-clipboard on');
290
- await run('tmux set -g allow-passthrough on');
291
- // Start ttyd
292
- logger.info('Starting builder terminal...');
293
- const customIndexPath = resolve(config.templatesDir, 'ttyd-index.html');
294
- const hasCustomIndex = existsSync(customIndexPath);
295
- const ttydProcess = spawnTtyd({
296
- port,
297
- sessionName,
298
- cwd: worktreePath,
299
- customIndexPath: hasCustomIndex ? customIndexPath : undefined,
300
- });
301
- if (!ttydProcess?.pid) {
302
- fatal('Failed to start ttyd process');
303
- }
304
- const builder = {
305
- id: builderId,
306
- name: specName,
307
- port,
308
- pid: ttydProcess.pid,
309
- status: 'spawning',
310
- phase: 'init',
311
- worktree: worktreePath,
312
- branch: branchName,
313
- tmuxSession: sessionName,
314
- type: 'spec',
315
- };
316
- upsertBuilder(builder);
317
- logger.blank();
318
- logger.success(`Builder ${builderId} kicked off!`);
319
- logger.kv('Terminal', `http://localhost:${port}`);
320
- logger.kv('Porch Status', `porch status ${projectId}`);
321
- logger.kv('Porch Run', `porch run ${projectId}`);
322
- }
323
- //# sourceMappingURL=kickoff.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"kickoff.js","sourceRoot":"","sources":["../../../src/agent-farm/commands/kickoff.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- /**
2
- * Rename command - rename a builder or utility terminal
3
- */
4
- interface RenameOptions {
5
- id: string;
6
- name: string;
7
- }
8
- /**
9
- * Rename a builder or utility terminal
10
- */
11
- export declare function rename(options: RenameOptions): void;
12
- export {};
13
- //# sourceMappingURL=rename.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rename.d.ts","sourceRoot":"","sources":["../../../src/agent-farm/commands/rename.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,UAAU,aAAa;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CA2BnD"}
@@ -1,33 +0,0 @@
1
- /**
2
- * Rename command - rename a builder or utility terminal
3
- */
4
- import { renameBuilder, renameUtil } from '../state.js';
5
- import { logger, fatal } from '../utils/logger.js';
6
- /**
7
- * Rename a builder or utility terminal
8
- */
9
- export function rename(options) {
10
- const { id, name } = options;
11
- if (!name.trim()) {
12
- fatal('Name cannot be empty');
13
- }
14
- // Try to rename as builder first
15
- const oldBuilderName = renameBuilder(id, name);
16
- if (oldBuilderName !== null) {
17
- logger.success(`Renamed builder "${id}"`);
18
- logger.kv('Old name', oldBuilderName);
19
- logger.kv('New name', name);
20
- return;
21
- }
22
- // Try to rename as util
23
- const oldUtilName = renameUtil(id, name);
24
- if (oldUtilName !== null) {
25
- logger.success(`Renamed utility "${id}"`);
26
- logger.kv('Old name', oldUtilName);
27
- logger.kv('New name', name);
28
- return;
29
- }
30
- // Not found
31
- fatal(`No builder or utility found with ID: ${id}`);
32
- }
33
- //# sourceMappingURL=rename.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rename.js","sourceRoot":"","sources":["../../../src/agent-farm/commands/rename.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAOnD;;GAEG;AACH,MAAM,UAAU,MAAM,CAAC,OAAsB;IAC3C,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IAE7B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QACjB,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAChC,CAAC;IAED,iCAAiC;IACjC,MAAM,cAAc,GAAG,aAAa,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAC/C,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;QAC5B,MAAM,CAAC,OAAO,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC;QAC1C,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QACtC,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAC5B,OAAO;IACT,CAAC;IAED,wBAAwB;IACxB,MAAM,WAAW,GAAG,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACzC,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QACzB,MAAM,CAAC,OAAO,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC;QAC1C,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QACnC,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAC5B,OAAO;IACT,CAAC;IAED,YAAY;IACZ,KAAK,CAAC,wCAAwC,EAAE,EAAE,CAAC,CAAC;AACtD,CAAC"}
@@ -1,10 +0,0 @@
1
- /**
2
- * Tutorial command handler
3
- * Interactive onboarding for new users
4
- */
5
- import type { TutorialOptions } from '../types.js';
6
- /**
7
- * Main tutorial command
8
- */
9
- export declare function tutorial(options: TutorialOptions): Promise<void>;
10
- //# sourceMappingURL=tutorial.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tutorial.d.ts","sourceRoot":"","sources":["../../../src/agent-farm/commands/tutorial.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAyBnD;;GAEG;AACH,wBAAsB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBtE"}
@@ -1,49 +0,0 @@
1
- /**
2
- * Tutorial command handler
3
- * Interactive onboarding for new users
4
- */
5
- import { logger } from '../utils/logger.js';
6
- import { resetTutorialState } from '../tutorial/state.js';
7
- import { runTutorial, showStatus, skipCurrentStep } from '../tutorial/runner.js';
8
- // Import all tutorial steps
9
- import { welcomeStep } from '../tutorial/steps/welcome.js';
10
- import { setupStep } from '../tutorial/steps/setup.js';
11
- import { firstSpecStep } from '../tutorial/steps/first-spec.js';
12
- import { planningStep } from '../tutorial/steps/planning.js';
13
- import { implementationStep } from '../tutorial/steps/implementation.js';
14
- import { reviewStep } from '../tutorial/steps/review.js';
15
- /**
16
- * All tutorial steps in order
17
- */
18
- const TUTORIAL_STEPS = [
19
- welcomeStep,
20
- setupStep,
21
- firstSpecStep,
22
- planningStep,
23
- implementationStep,
24
- reviewStep,
25
- ];
26
- /**
27
- * Main tutorial command
28
- */
29
- export async function tutorial(options) {
30
- // Handle --reset flag
31
- if (options.reset) {
32
- await resetTutorialState();
33
- logger.success('Tutorial progress reset. Run `af tutorial` to start fresh.');
34
- return;
35
- }
36
- // Handle --status flag
37
- if (options.status) {
38
- await showStatus(TUTORIAL_STEPS);
39
- return;
40
- }
41
- // Handle --skip flag
42
- if (options.skip) {
43
- await skipCurrentStep(TUTORIAL_STEPS);
44
- return;
45
- }
46
- // Default: run the tutorial
47
- await runTutorial(TUTORIAL_STEPS);
48
- }
49
- //# sourceMappingURL=tutorial.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tutorial.js","sourceRoot":"","sources":["../../../src/agent-farm/commands/tutorial.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,eAAe,EAAa,MAAM,uBAAuB,CAAC;AAE5F,4BAA4B;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAEzD;;GAEG;AACH,MAAM,cAAc,GAAW;IAC7B,WAAW;IACX,SAAS;IACT,aAAa;IACb,YAAY;IACZ,kBAAkB;IAClB,UAAU;CACX,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAwB;IACrD,sBAAsB;IACtB,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,kBAAkB,EAAE,CAAC;QAC3B,MAAM,CAAC,OAAO,CAAC,4DAA4D,CAAC,CAAC;QAC7E,OAAO;IACT,CAAC;IAED,uBAAuB;IACvB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,UAAU,CAAC,cAAc,CAAC,CAAC;QACjC,OAAO;IACT,CAAC;IAED,qBAAqB;IACrB,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,MAAM,eAAe,CAAC,cAAc,CAAC,CAAC;QACtC,OAAO;IACT,CAAC;IAED,4BAA4B;IAC5B,MAAM,WAAW,CAAC,cAAc,CAAC,CAAC;AACpC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/agent-farm/commands/util.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,UAAU,WAAW;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAuCD;;GAEG;AACH,wBAAsB,IAAI,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkEnE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/agent-farm/commands/util.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACjG,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAMjD;;;GAGG;AACH,KAAK,UAAU,eAAe,CAAC,IAAa;IAC1C,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;IAE1B,6BAA6B;IAC7B,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;IAE3C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,oBAAoB,aAAa,iBAAiB,EAAE;YAC/E,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC;SAC/B,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;YAChB,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAoC,CAAC;YACvE,MAAM,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;YAChD,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YAC/B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,4DAA4D;QAC5D,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACP,0BAA0B;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,UAAuB,EAAE;IAClD,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAE3B,2DAA2D;IAC3D,MAAM,eAAe,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO;IACT,CAAC;IAED,4BAA4B;IAC5B,iBAAiB;IACjB,IAAI,CAAC,CAAC,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QACnC,KAAK,CAAC,iDAAiD,CAAC,CAAC;IAC3D,CAAC;IAED,uBAAuB;IACvB,MAAM,EAAE,GAAG,cAAc,EAAE,CAAC;IAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,QAAQ,EAAE,EAAE,CAAC;IAE1C,sBAAsB;IACtB,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAE9D,yEAAyE;IACzE,MAAM,QAAQ,GAAG,mBAAmB,EAAE,CAAC;IACvC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;IAE7B,MAAM,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC;IAC3C,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACpB,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACxB,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAExB,aAAa;IACb,MAAM,QAAQ,GAAG;QACf,IAAI;QACJ,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC;QAClB,IAAI,EAAE,cAAc,IAAI,EAAE;QAC1B,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,4BAA4B,EAAG,qDAAqD;QAC1F,KAAK;KACN,CAAC;IAEF,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE;QAClD,GAAG,EAAE,MAAM,CAAC,WAAW;KACxB,CAAC,CAAC;IAEH,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;QACrB,KAAK,CAAC,mDAAmD,CAAC,CAAC;IAC7D,CAAC;IAED,qBAAqB;IACrB,MAAM,YAAY,GAAiB;QACjC,EAAE;QACF,IAAI;QACJ,IAAI;QACJ,GAAG,EAAE,WAAW,CAAC,GAAG;KACrB,CAAC;IAEF,OAAO,CAAC,YAAY,CAAC,CAAC;IAEtB,MAAM,CAAC,KAAK,EAAE,CAAC;IACf,MAAM,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;IAC5C,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,oBAAoB,IAAI,EAAE,CAAC,CAAC;IAElD,yCAAyC;IACzC,MAAM,GAAG,GAAG,oBAAoB,IAAI,EAAE,CAAC;IACvC,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,SAAS,cAAc;IACrB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1D,OAAO,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC;AAC1D,CAAC"}
@@ -1,8 +0,0 @@
1
- /**
2
- * Tutorial module exports
3
- */
4
- export * from './state.js';
5
- export * from './runner.js';
6
- export * from './prompts.js';
7
- export * from './steps/index.js';
8
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/agent-farm/tutorial/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC"}
@@ -1,8 +0,0 @@
1
- /**
2
- * Tutorial module exports
3
- */
4
- export * from './state.js';
5
- export * from './runner.js';
6
- export * from './prompts.js';
7
- export * from './steps/index.js';
8
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/agent-farm/tutorial/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC"}
@@ -1,57 +0,0 @@
1
- /**
2
- * Simple prompt utilities for the tutorial
3
- * Uses readline for interactive input
4
- */
5
- /**
6
- * Ask a yes/no confirmation question
7
- */
8
- export declare function confirm(message: string, defaultValue?: boolean): Promise<boolean>;
9
- /**
10
- * Ask for free-form text input
11
- */
12
- export declare function prompt(message: string, defaultValue?: string): Promise<string>;
13
- /**
14
- * Ask user to select from a list of options
15
- */
16
- export declare function select(message: string, options: string[]): Promise<string>;
17
- /**
18
- * Wait for user to press Enter to continue
19
- */
20
- export declare function pressEnter(message?: string): Promise<void>;
21
- /**
22
- * Print a section header
23
- */
24
- export declare function section(title: string): void;
25
- /**
26
- * Print content text (with proper wrapping)
27
- */
28
- export declare function content(text: string): void;
29
- /**
30
- * Print a bullet point
31
- */
32
- export declare function bullet(text: string): void;
33
- /**
34
- * Print a numbered step
35
- */
36
- export declare function step(num: number, text: string): void;
37
- /**
38
- * Print highlighted text (e.g., for commands)
39
- */
40
- export declare function highlight(text: string): void;
41
- /**
42
- * Print a success message
43
- */
44
- export declare function success(text: string): void;
45
- /**
46
- * Print a warning message
47
- */
48
- export declare function warn(text: string): void;
49
- /**
50
- * Print an info message
51
- */
52
- export declare function info(text: string): void;
53
- /**
54
- * Print a code block
55
- */
56
- export declare function code(text: string): void;
57
- //# sourceMappingURL=prompts.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../src/agent-farm/tutorial/prompts.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAeH;;GAEG;AACH,wBAAsB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,UAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAepF;AAED;;GAEG;AACH,wBAAsB,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAWpF;AAED;;GAEG;AACH,wBAAsB,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAoBhF;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,OAAO,SAA+B,GAAG,OAAO,CAAC,IAAI,CAAC,CAStF;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAM3C;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAE1C;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAEzC;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAEpD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAE5C;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAE1C;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAEvC;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAEvC;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAOvC"}