@cluesmith/codev 2.0.0-rc.24 → 2.0.0-rc.25

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 (128) hide show
  1. package/dist/agent-farm/cli.d.ts.map +1 -1
  2. package/dist/agent-farm/cli.js +52 -52
  3. package/dist/agent-farm/cli.js.map +1 -1
  4. package/dist/agent-farm/commands/consult.js +1 -1
  5. package/dist/agent-farm/commands/consult.js.map +1 -1
  6. package/dist/agent-farm/commands/index.d.ts +1 -2
  7. package/dist/agent-farm/commands/index.d.ts.map +1 -1
  8. package/dist/agent-farm/commands/index.js +1 -2
  9. package/dist/agent-farm/commands/index.js.map +1 -1
  10. package/dist/agent-farm/commands/{util.d.ts → shell.d.ts} +4 -4
  11. package/dist/agent-farm/commands/shell.d.ts.map +1 -0
  12. package/dist/agent-farm/commands/{util.js → shell.js} +4 -4
  13. package/dist/agent-farm/commands/shell.js.map +1 -0
  14. package/dist/agent-farm/commands/spawn.d.ts.map +1 -1
  15. package/dist/agent-farm/commands/spawn.js +361 -66
  16. package/dist/agent-farm/commands/spawn.js.map +1 -1
  17. package/dist/agent-farm/commands/start.js +5 -4
  18. package/dist/agent-farm/commands/start.js.map +1 -1
  19. package/dist/agent-farm/commands/tower.d.ts.map +1 -1
  20. package/dist/agent-farm/commands/tower.js +2 -1
  21. package/dist/agent-farm/commands/tower.js.map +1 -1
  22. package/dist/agent-farm/hq-connector.d.ts +2 -2
  23. package/dist/agent-farm/hq-connector.js +2 -2
  24. package/dist/agent-farm/servers/dashboard-server.js +153 -6
  25. package/dist/agent-farm/servers/dashboard-server.js.map +1 -1
  26. package/dist/agent-farm/servers/tower-server.js +374 -0
  27. package/dist/agent-farm/servers/tower-server.js.map +1 -1
  28. package/dist/agent-farm/types.d.ts +38 -0
  29. package/dist/agent-farm/types.d.ts.map +1 -1
  30. package/dist/agent-farm/utils/notifications.d.ts +30 -0
  31. package/dist/agent-farm/utils/notifications.d.ts.map +1 -0
  32. package/dist/agent-farm/utils/notifications.js +121 -0
  33. package/dist/agent-farm/utils/notifications.js.map +1 -0
  34. package/dist/agent-farm/utils/server-utils.d.ts +2 -1
  35. package/dist/agent-farm/utils/server-utils.d.ts.map +1 -1
  36. package/dist/agent-farm/utils/server-utils.js +11 -1
  37. package/dist/agent-farm/utils/server-utils.js.map +1 -1
  38. package/dist/agent-farm/utils/shell.d.ts +1 -0
  39. package/dist/agent-farm/utils/shell.d.ts.map +1 -1
  40. package/dist/agent-farm/utils/shell.js +2 -0
  41. package/dist/agent-farm/utils/shell.js.map +1 -1
  42. package/dist/cli.d.ts.map +1 -1
  43. package/dist/cli.js +0 -37
  44. package/dist/cli.js.map +1 -1
  45. package/dist/commands/adopt.js +3 -3
  46. package/dist/commands/adopt.js.map +1 -1
  47. package/dist/commands/init.js +1 -1
  48. package/dist/commands/porch/run.d.ts.map +1 -1
  49. package/dist/commands/porch/run.js +5 -0
  50. package/dist/commands/porch/run.js.map +1 -1
  51. package/package.json +3 -1
  52. package/skeleton/protocol-schema.json +282 -0
  53. package/skeleton/protocols/bugfix/builder-prompt.md +49 -0
  54. package/skeleton/protocols/bugfix/protocol.json +13 -1
  55. package/skeleton/protocols/experiment/builder-prompt.md +47 -0
  56. package/skeleton/protocols/experiment/protocol.json +101 -0
  57. package/skeleton/protocols/maintain/builder-prompt.md +41 -0
  58. package/skeleton/protocols/maintain/protocol.json +114 -0
  59. package/skeleton/protocols/protocol-schema.json +53 -0
  60. package/skeleton/protocols/spider/builder-prompt.md +53 -0
  61. package/skeleton/protocols/spider/protocol.json +7 -1
  62. package/skeleton/protocols/tick/builder-prompt.md +51 -0
  63. package/skeleton/protocols/tick/protocol.json +6 -1
  64. package/skeleton/resources/commands/agent-farm.md +23 -41
  65. package/skeleton/resources/commands/overview.md +5 -5
  66. package/skeleton/resources/workflow-reference.md +2 -2
  67. package/skeleton/roles/architect.md +49 -33
  68. package/skeleton/roles/builder.md +77 -108
  69. package/skeleton/templates/cheatsheet.md +4 -2
  70. package/templates/tower.html +455 -14
  71. package/dist/agent-farm/commands/kickoff.d.ts +0 -20
  72. package/dist/agent-farm/commands/kickoff.d.ts.map +0 -1
  73. package/dist/agent-farm/commands/kickoff.js +0 -343
  74. package/dist/agent-farm/commands/kickoff.js.map +0 -1
  75. package/dist/agent-farm/commands/tutorial.d.ts +0 -10
  76. package/dist/agent-farm/commands/tutorial.d.ts.map +0 -1
  77. package/dist/agent-farm/commands/tutorial.js +0 -49
  78. package/dist/agent-farm/commands/tutorial.js.map +0 -1
  79. package/dist/agent-farm/commands/util.d.ts.map +0 -1
  80. package/dist/agent-farm/commands/util.js.map +0 -1
  81. package/dist/agent-farm/tutorial/index.d.ts +0 -8
  82. package/dist/agent-farm/tutorial/index.d.ts.map +0 -1
  83. package/dist/agent-farm/tutorial/index.js +0 -8
  84. package/dist/agent-farm/tutorial/index.js.map +0 -1
  85. package/dist/agent-farm/tutorial/prompts.d.ts +0 -57
  86. package/dist/agent-farm/tutorial/prompts.d.ts.map +0 -1
  87. package/dist/agent-farm/tutorial/prompts.js +0 -147
  88. package/dist/agent-farm/tutorial/prompts.js.map +0 -1
  89. package/dist/agent-farm/tutorial/runner.d.ts +0 -52
  90. package/dist/agent-farm/tutorial/runner.d.ts.map +0 -1
  91. package/dist/agent-farm/tutorial/runner.js +0 -204
  92. package/dist/agent-farm/tutorial/runner.js.map +0 -1
  93. package/dist/agent-farm/tutorial/state.d.ts +0 -26
  94. package/dist/agent-farm/tutorial/state.d.ts.map +0 -1
  95. package/dist/agent-farm/tutorial/state.js +0 -89
  96. package/dist/agent-farm/tutorial/state.js.map +0 -1
  97. package/dist/agent-farm/tutorial/steps/first-spec.d.ts +0 -7
  98. package/dist/agent-farm/tutorial/steps/first-spec.d.ts.map +0 -1
  99. package/dist/agent-farm/tutorial/steps/first-spec.js +0 -136
  100. package/dist/agent-farm/tutorial/steps/first-spec.js.map +0 -1
  101. package/dist/agent-farm/tutorial/steps/implementation.d.ts +0 -7
  102. package/dist/agent-farm/tutorial/steps/implementation.d.ts.map +0 -1
  103. package/dist/agent-farm/tutorial/steps/implementation.js +0 -76
  104. package/dist/agent-farm/tutorial/steps/implementation.js.map +0 -1
  105. package/dist/agent-farm/tutorial/steps/index.d.ts +0 -10
  106. package/dist/agent-farm/tutorial/steps/index.d.ts.map +0 -1
  107. package/dist/agent-farm/tutorial/steps/index.js +0 -10
  108. package/dist/agent-farm/tutorial/steps/index.js.map +0 -1
  109. package/dist/agent-farm/tutorial/steps/planning.d.ts +0 -7
  110. package/dist/agent-farm/tutorial/steps/planning.d.ts.map +0 -1
  111. package/dist/agent-farm/tutorial/steps/planning.js +0 -143
  112. package/dist/agent-farm/tutorial/steps/planning.js.map +0 -1
  113. package/dist/agent-farm/tutorial/steps/review.d.ts +0 -7
  114. package/dist/agent-farm/tutorial/steps/review.d.ts.map +0 -1
  115. package/dist/agent-farm/tutorial/steps/review.js +0 -78
  116. package/dist/agent-farm/tutorial/steps/review.js.map +0 -1
  117. package/dist/agent-farm/tutorial/steps/setup.d.ts +0 -7
  118. package/dist/agent-farm/tutorial/steps/setup.d.ts.map +0 -1
  119. package/dist/agent-farm/tutorial/steps/setup.js +0 -126
  120. package/dist/agent-farm/tutorial/steps/setup.js.map +0 -1
  121. package/dist/agent-farm/tutorial/steps/welcome.d.ts +0 -7
  122. package/dist/agent-farm/tutorial/steps/welcome.d.ts.map +0 -1
  123. package/dist/agent-farm/tutorial/steps/welcome.js +0 -50
  124. package/dist/agent-farm/tutorial/steps/welcome.js.map +0 -1
  125. package/dist/commands/tower.d.ts +0 -16
  126. package/dist/commands/tower.d.ts.map +0 -1
  127. package/dist/commands/tower.js +0 -21
  128. package/dist/commands/tower.js.map +0 -1
@@ -1,343 +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, symlinkSync, writeFileSync, mkdirSync } from 'node:fs';
11
- import { readdir } from 'node:fs/promises';
12
- import { getConfig, ensureDirectories } 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
- /**
17
- * Get project name from config
18
- */
19
- function getProjectName(config) {
20
- return basename(config.projectRoot);
21
- }
22
- /**
23
- * Get tmux session name
24
- */
25
- function getSessionName(config, builderId) {
26
- return `builder-${getProjectName(config)}-${builderId}`;
27
- }
28
- /**
29
- * Find an available port
30
- */
31
- async function findFreePort(config) {
32
- const state = loadState();
33
- const usedPorts = new Set();
34
- for (const b of state.builders || []) {
35
- if (b.port)
36
- usedPorts.add(b.port);
37
- }
38
- let port = config.builderPortRange[0];
39
- while (usedPorts.has(port)) {
40
- port++;
41
- }
42
- return findAvailablePort(port);
43
- }
44
- /**
45
- * Find spec file by project ID
46
- */
47
- async function findSpecFile(codevDir, projectId) {
48
- const specsDir = resolve(codevDir, 'specs');
49
- if (!existsSync(specsDir)) {
50
- return null;
51
- }
52
- const files = await readdir(specsDir);
53
- for (const file of files) {
54
- if (file.startsWith(projectId) && file.endsWith('.md')) {
55
- return resolve(specsDir, file);
56
- }
57
- }
58
- for (const file of files) {
59
- if (file.startsWith(projectId + '-') && file.endsWith('.md')) {
60
- return resolve(specsDir, file);
61
- }
62
- }
63
- return null;
64
- }
65
- async function findPorchState(codevDir, projectId) {
66
- const projectsDir = resolve(codevDir, 'projects');
67
- if (!existsSync(projectsDir)) {
68
- return null;
69
- }
70
- const dirs = await readdir(projectsDir);
71
- for (const dir of dirs) {
72
- if (dir.startsWith(`${projectId}-`)) {
73
- const statusPath = resolve(projectsDir, dir, 'status.yaml');
74
- if (existsSync(statusPath)) {
75
- const content = readFileSync(statusPath, 'utf-8');
76
- // Simple YAML parsing for the fields we need
77
- const idMatch = content.match(/^id:\s*"?([^"\n]+)"?/m);
78
- const titleMatch = content.match(/^title:\s*"?([^"\n]+)"?/m);
79
- const protocolMatch = content.match(/^protocol:\s*"?([^"\n]+)"?/m);
80
- const stateMatch = content.match(/^state:\s*"?([^"\n]+)"?/m);
81
- if (idMatch && titleMatch) {
82
- return {
83
- id: idMatch[1],
84
- title: titleMatch[1],
85
- protocol: protocolMatch?.[1] || 'spider',
86
- state: stateMatch?.[1] || 'unknown',
87
- statusPath,
88
- };
89
- }
90
- }
91
- }
92
- }
93
- return null;
94
- }
95
- /**
96
- * Create git branch and worktree
97
- */
98
- async function createWorktree(config, branchName, worktreePath) {
99
- logger.info('Creating branch...');
100
- try {
101
- await run(`git branch ${branchName}`, { cwd: config.projectRoot });
102
- }
103
- catch {
104
- logger.debug('Branch may already exist');
105
- }
106
- logger.info('Creating worktree...');
107
- try {
108
- await run(`git worktree add "${worktreePath}" ${branchName}`, { cwd: config.projectRoot });
109
- }
110
- catch (error) {
111
- fatal(`Failed to create worktree: ${error}`);
112
- }
113
- // Symlink .env
114
- const rootEnvPath = resolve(config.projectRoot, '.env');
115
- const worktreeEnvPath = resolve(worktreePath, '.env');
116
- if (existsSync(rootEnvPath) && !existsSync(worktreeEnvPath)) {
117
- try {
118
- symlinkSync(rootEnvPath, worktreeEnvPath);
119
- logger.info('Linked .env from project root');
120
- }
121
- catch {
122
- logger.debug('Failed to symlink .env');
123
- }
124
- }
125
- }
126
- /**
127
- * Check dependencies
128
- */
129
- async function checkDependencies() {
130
- if (!(await commandExists('git'))) {
131
- fatal('git not found');
132
- }
133
- if (!(await commandExists('ttyd'))) {
134
- fatal('ttyd not found. Install with: brew install ttyd');
135
- }
136
- if (!(await commandExists('porch'))) {
137
- logger.warn('porch command not found in PATH. Falling back to codev porch.');
138
- }
139
- }
140
- /**
141
- * Get porch command
142
- * When running from the codev source repo, use the local build for latest fixes
143
- */
144
- async function getPorchCommand(config) {
145
- // Check if we're in the codev source repo - use local build
146
- const localPorch = resolve(config.projectRoot, 'packages/codev/bin/porch.js');
147
- if (existsSync(localPorch)) {
148
- return `node "${localPorch}"`;
149
- }
150
- if (await commandExists('porch')) {
151
- return 'porch';
152
- }
153
- return 'codev porch';
154
- }
155
- /**
156
- * Kickoff a new protocol-driven project
157
- */
158
- export async function kickoff(options) {
159
- const { project: projectId, title, protocol: protocolName = 'spider', resume } = options;
160
- const config = getConfig();
161
- // Find spec file OR porch state
162
- const specFile = await findSpecFile(config.codevDir, projectId);
163
- let porchState = await findPorchState(config.codevDir, projectId);
164
- // Need either a spec, porch state, or title to proceed
165
- if (!specFile && !porchState && !title) {
166
- fatal(`No spec or porch state found for project: ${projectId}\n` +
167
- `Either:\n` +
168
- ` 1. Create a spec file (codev/specs/${projectId}-*.md)\n` +
169
- ` 2. Provide a title: af kickoff -p ${projectId} --title "feature-name"\n` +
170
- ` 3. Initialize porch manually: porch init ${protocolName} ${projectId} <project-name>`);
171
- }
172
- // Derive the project title from spec, porch state, or provided title
173
- const projectTitle = specFile
174
- ? basename(specFile, '.md').replace(/^\d+-/, '') // Strip leading number from spec filename
175
- : porchState?.title || title;
176
- // Derive names from spec or porch state or title
177
- const specName = specFile ? basename(specFile, '.md') : `${projectId}-${projectTitle}`;
178
- const builderId = projectId;
179
- const safeName = projectTitle.toLowerCase().replace(/[^a-z0-9_-]/g, '-').replace(/-+/g, '-');
180
- const actualProtocol = porchState?.protocol || protocolName;
181
- // Use worktrees/ directory with protocol-prefixed naming per spec 0073
182
- const worktreesDir = resolve(config.projectRoot, 'worktrees');
183
- const worktreeName = `${actualProtocol.toLowerCase()}_${projectId}_${safeName}`;
184
- const branchName = `builder/${projectId}-${safeName}`;
185
- const worktreePath = resolve(worktreesDir, worktreeName);
186
- // Check if porch state already exists
187
- const hasExistingState = !!porchState;
188
- logger.header(`Kickoff Builder ${builderId}`);
189
- logger.kv('Spec', specFile || '(to be created)');
190
- logger.kv('Protocol', (porchState?.protocol || protocolName).toUpperCase());
191
- logger.kv('Branch', branchName);
192
- logger.kv('Worktree', worktreePath);
193
- logger.kv('Porch State', hasExistingState ? 'exists (resume)' : 'new');
194
- await ensureDirectories(config);
195
- await checkDependencies();
196
- // Ensure worktrees directory exists
197
- if (!existsSync(worktreesDir)) {
198
- const { mkdir } = await import('node:fs/promises');
199
- await mkdir(worktreesDir, { recursive: true });
200
- }
201
- // Check if worktree already exists
202
- if (existsSync(worktreePath)) {
203
- if (resume) {
204
- logger.info('Resuming existing worktree');
205
- }
206
- else {
207
- fatal(`Worktree already exists at ${worktreePath}\nUse --resume to continue, or run: af cleanup --project ${projectId}`);
208
- }
209
- }
210
- else {
211
- await createWorktree(config, branchName, worktreePath);
212
- }
213
- const porchCmd = await getPorchCommand(config);
214
- // Initialize porch state if not resuming existing
215
- // IMPORTANT: Run from worktree so state is created there, not in main project
216
- if (!hasExistingState && !resume) {
217
- logger.info('Initializing porch state...');
218
- try {
219
- await run(`${porchCmd} init ${protocolName} ${projectId} "${safeName}"`, {
220
- cwd: worktreePath,
221
- });
222
- logger.success('Porch state initialized');
223
- }
224
- catch (error) {
225
- logger.warn(`Failed to initialize porch state: ${error}`);
226
- logger.info('Builder will start without porch orchestration');
227
- }
228
- }
229
- // Start builder session
230
- const port = await findFreePort(config);
231
- const sessionName = getSessionName(config, builderId);
232
- // Create .af directory for launch scripts
233
- const afDir = resolve(worktreePath, '.af');
234
- if (!existsSync(afDir)) {
235
- mkdirSync(afDir, { recursive: true });
236
- }
237
- // Create the builder role that instructs Claude to run porch
238
- const builderRole = `You are a Builder agent working on project ${projectId}.
239
-
240
- Your job is to execute the porch protocol loop until completion.
241
-
242
- ## Instructions
243
-
244
- Run this command repeatedly until the protocol is complete:
245
-
246
- \`\`\`bash
247
- ${porchCmd} run ${projectId} --single-iteration
248
- \`\`\`
249
-
250
- The \`--single-iteration\` flag runs ONE build-verify cycle then exits. This gives the architect visibility into each iteration's output.
251
-
252
- After each run:
253
- 1. If porch prints "🎉 PROTOCOL COMPLETE" - you're done, exit
254
- 2. If porch is waiting for a gate approval - wait for the architect to approve
255
- 3. If porch exits with code 10 (AWAITING_INPUT) - inner Claude needs answers
256
- 4. If porch prints "[--single-iteration] ... Exiting" - review the output, then run the command again
257
- 5. Otherwise - run the command again
258
-
259
- ## Reviewing Output Between Iterations
260
-
261
- After each iteration, **briefly review** what happened:
262
- - What phase are we in?
263
- - Did reviewers approve or request changes?
264
- - What feedback was given?
265
- - Is there anything blocking progress?
266
-
267
- Then continue with the next iteration unless blocked.
268
-
269
- ## Handling AWAITING_INPUT (exit code 10)
270
-
271
- When porch exits with code 10, it means the protocol needs human input (clarifying questions).
272
-
273
- **CRITICAL: Do NOT answer these questions yourself.** You are an AI - you must not make up answers to questions intended for humans.
274
-
275
- Instead:
276
- 1. Report that you are BLOCKED waiting for human input
277
- 2. Display the question clearly so the architect can see it
278
- 3. Wait for the architect to provide answers via \`af send\` or PR comments
279
-
280
- The architect will run:
281
- \`\`\`bash
282
- ${porchCmd} run ${projectId} --answer '{"response": "Human's answer here..."}'
283
- \`\`\`
284
-
285
- Do NOT run this command yourself with made-up answers.
286
-
287
- Keep running the porch loop. Do not stop until the protocol is complete or you hit a gate that requires approval.`;
288
- const rolePath = resolve(afDir, 'builder-role.md');
289
- writeFileSync(rolePath, builderRole);
290
- // Create launch script that starts Claude with the builder role and initial task
291
- const initialTask = `Run the porch protocol loop now: ${porchCmd} run ${projectId}`;
292
- const launchScript = resolve(afDir, 'launch.sh');
293
- writeFileSync(launchScript, `#!/bin/bash
294
- cd "${worktreePath}"
295
- exec claude --dangerously-skip-permissions --append-system-prompt "$(cat '${rolePath}')" "${initialTask}"
296
- `, { mode: 0o755 });
297
- logger.info('Creating tmux session...');
298
- // Create tmux session running the launch script (starts Claude automatically)
299
- await run(`tmux new-session -d -s "${sessionName}" -x 200 -y 50 -c "${worktreePath}" "${launchScript}"`);
300
- await run(`tmux set-option -t "${sessionName}" status off`);
301
- await run('tmux set -g mouse on');
302
- await run('tmux set -g set-clipboard on');
303
- await run('tmux set -g allow-passthrough on');
304
- // Copy selection to clipboard when mouse is released (pbcopy for macOS)
305
- await run('tmux bind-key -T copy-mode MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "pbcopy"');
306
- await run('tmux bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "pbcopy"');
307
- // Small delay to ensure tmux session is fully initialized before ttyd attaches
308
- await new Promise(resolve => setTimeout(resolve, 500));
309
- // Start ttyd
310
- logger.info('Starting builder terminal...');
311
- const customIndexPath = resolve(config.templatesDir, 'ttyd-index.html');
312
- const hasCustomIndex = existsSync(customIndexPath);
313
- const ttydProcess = spawnTtyd({
314
- port,
315
- sessionName,
316
- cwd: worktreePath,
317
- customIndexPath: hasCustomIndex ? customIndexPath : undefined,
318
- });
319
- if (!ttydProcess?.pid) {
320
- fatal('Failed to start ttyd process');
321
- }
322
- const builder = {
323
- id: builderId,
324
- name: specName,
325
- port,
326
- pid: ttydProcess.pid,
327
- status: 'spawning',
328
- phase: 'init',
329
- worktree: worktreePath,
330
- branch: branchName,
331
- tmuxSession: sessionName,
332
- type: 'spec',
333
- };
334
- upsertBuilder(builder);
335
- logger.blank();
336
- logger.success(`Builder ${builderId} started!`);
337
- logger.kv('Terminal', `http://localhost:${port}`);
338
- logger.kv('Worktree', worktreePath);
339
- logger.blank();
340
- logger.info('Claude is running the porch protocol loop.');
341
- logger.info('Watch the terminal or check status with: af status');
342
- }
343
- //# 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,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":"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"}
@@ -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"}