aiag-cli 1.0.0 → 1.2.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.
package/README.md CHANGED
@@ -44,16 +44,38 @@ aiag commit
44
44
 
45
45
  ## 명령어
46
46
 
47
- | 명령어 | 설명 |
48
- | -------------------- | --------------------------- |
49
- | `aiag init` | 현재 디렉토리에 AIAG 초기화 |
50
- | `aiag status` | 프로젝트 진행 상황 표시 |
51
- | `aiag next` | 다음 기능 추천 받기 |
52
- | `aiag test [id]` | 기능 테스트 실행 |
53
- | `aiag complete <id>` | 기능을 완료로 표시 |
54
- | `aiag commit` | 자동 메시지로 변경사항 커밋 |
55
- | `aiag session start` | 코딩 세션 시작 |
56
- | `aiag session end` | 현재 세션 종료 |
47
+ | 명령어 | 설명 |
48
+ | -------------------- | ----------------------------------- |
49
+ | `aiag init` | 현재 디렉토리에 AIAG 초기화 |
50
+ | `aiag status` | 프로젝트 진행 상황 표시 |
51
+ | `aiag next` | 다음 기능 추천 받기 |
52
+ | `aiag run <id>` | 특정 기능 구현 프롬프트 생성 |
53
+ | `aiag work [id]` | 단일 기능 작업 시작 (세션 + 프롬프트) |
54
+ | `aiag auto [count]` | 자동 연속 구현 모드 |
55
+ | `aiag test [id]` | 기능 테스트 실행 |
56
+ | `aiag complete <id>` | 기능을 완료로 표시 |
57
+ | `aiag commit` | 자동 메시지로 변경사항 커밋 |
58
+ | `aiag session start` | 코딩 세션 시작 |
59
+ | `aiag session end` | 현재 세션 종료 |
60
+
61
+ ### 작업 지시 명령어
62
+
63
+ ```bash
64
+ # 특정 기능의 구현 프롬프트 생성 (Claude Code에 붙여넣기용)
65
+ aiag run AUTH-001
66
+
67
+ # 단일 기능 작업 시작 (세션 컨텍스트 업데이트 + 프롬프트)
68
+ aiag work
69
+ aiag work AUTH-001
70
+
71
+ # 자동 연속 구현 (비대화형)
72
+ aiag auto # 기본 5개
73
+ aiag auto 10 # 10개 기능
74
+ aiag auto --dry-run # 시뮬레이션
75
+ aiag auto --loop # 무한 루프 (Ctrl+C로 중단)
76
+ aiag auto --resume # 진행 중인 작업부터 이어서 시작
77
+ aiag auto --loop --resume # 이어서 + 무한 루프
78
+ ```
57
79
 
58
80
  ## 디렉토리 구조
59
81
 
package/dist/cli.js CHANGED
@@ -7,6 +7,9 @@ import { test } from './commands/test.js';
7
7
  import { complete } from './commands/complete.js';
8
8
  import { commit } from './commands/commit.js';
9
9
  import { sessionStart, sessionEnd } from './commands/session.js';
10
+ import { run } from './commands/run.js';
11
+ import { work } from './commands/work.js';
12
+ import { auto } from './commands/auto.js';
10
13
  const program = new Command();
11
14
  program.name('aiag').description('AIAG CLI - Long-Running Agent Harness Tool').version('1.0.0');
12
15
  // aiag init
@@ -75,6 +78,36 @@ session
75
78
  .action(async () => {
76
79
  await sessionEnd();
77
80
  });
81
+ // aiag run <id> - 특정 기능 구현 지시 프롬프트 생성
82
+ program
83
+ .command('run <featureId>')
84
+ .description('Generate implementation prompt for a specific feature')
85
+ .option('--copy', 'Copy prompt to clipboard')
86
+ .action(async (featureId, options) => {
87
+ await run(featureId, options);
88
+ });
89
+ // aiag work [id] - 단일 기능 작업 시작
90
+ program
91
+ .command('work [featureId]')
92
+ .description('Start working on a feature (updates session context)')
93
+ .option('-c, --category <category>', 'Filter by category')
94
+ .option('-p, --priority <priority>', 'Filter by priority')
95
+ .action(async (featureId, options) => {
96
+ await work(featureId, options);
97
+ });
98
+ // aiag auto [count] - 자동 연속 구현
99
+ program
100
+ .command('auto [count]')
101
+ .description('Automatically implement multiple features (use --loop for infinite mode)')
102
+ .option('--loop', 'Run indefinitely until stopped (Ctrl+C)')
103
+ .option('--resume', 'Resume from in-progress feature in session_context.md')
104
+ .option('--until <featureId>', 'Stop when reaching this feature')
105
+ .option('-c, --category <category>', 'Filter by category')
106
+ .option('--dry-run', 'Show what would be done without making changes')
107
+ .option('--cooldown <seconds>', 'Seconds to wait between features', '5')
108
+ .action(async (count, options) => {
109
+ await auto(count, options);
110
+ });
78
111
  // Parse arguments
79
112
  program.parse();
80
113
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ interface AutoOptions {
2
+ until?: string;
3
+ category?: string;
4
+ dryRun?: boolean;
5
+ cooldown?: number;
6
+ loop?: boolean;
7
+ resume?: boolean;
8
+ }
9
+ /**
10
+ * aiag auto [count] - 자동 연속 구현 모드
11
+ * --loop: 무한 루프 모드 (Ctrl+C로 중단)
12
+ * --resume: 진행 중인 작업부터 이어서 시작
13
+ */
14
+ export declare function auto(count?: string, options?: AutoOptions): Promise<void>;
15
+ export {};
16
+ //# sourceMappingURL=auto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto.d.ts","sourceRoot":"","sources":["../../src/commands/auto.ts"],"names":[],"mappings":"AAkBA,UAAU,WAAW;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AASD;;;;GAIG;AACH,wBAAsB,IAAI,CAAC,KAAK,GAAE,MAAY,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2NxF"}
@@ -0,0 +1,391 @@
1
+ import { spawn } from 'child_process';
2
+ import * as fs from 'fs';
3
+ import * as path from 'path';
4
+ import { readFeatureList, writeFeatureList, getProgress } from '../utils/featureList.js';
5
+ import { appendToProgress } from '../utils/progress.js';
6
+ import { printHeader, printError, printSuccess, printWarning, printSection, colors, icons, } from '../utils/output.js';
7
+ import { PRIORITY_ORDER } from '../types.js';
8
+ /**
9
+ * aiag auto [count] - 자동 연속 구현 모드
10
+ * --loop: 무한 루프 모드 (Ctrl+C로 중단)
11
+ * --resume: 진행 중인 작업부터 이어서 시작
12
+ */
13
+ export async function auto(count = '5', options = {}) {
14
+ const baseDir = process.cwd();
15
+ const isLoopMode = options.loop === true;
16
+ const maxFeatures = isLoopMode ? Infinity : (parseInt(count, 10) || 5);
17
+ const cooldownMs = (options.cooldown || 5) * 1000;
18
+ const featureList = readFeatureList(baseDir);
19
+ if (!featureList) {
20
+ printError('No feature_list.json found. Run "aiag init" first.');
21
+ return;
22
+ }
23
+ // --resume 옵션: 진행 중인 작업 확인
24
+ let resumeFeature;
25
+ if (options.resume) {
26
+ resumeFeature = getInProgressFeature(baseDir, featureList);
27
+ if (resumeFeature) {
28
+ console.log(colors.info(`Resuming in-progress feature: ${resumeFeature.id}`));
29
+ console.log('');
30
+ }
31
+ }
32
+ const modeDescription = isLoopMode ? 'Loop Mode (Ctrl+C to stop)' : `Processing up to ${maxFeatures} features`;
33
+ printHeader(`AIAG Auto Mode - ${modeDescription}`);
34
+ if (options.dryRun) {
35
+ console.log(colors.warning('DRY RUN MODE - No changes will be made'));
36
+ console.log('');
37
+ }
38
+ const initialProgress = getProgress(baseDir);
39
+ const results = [];
40
+ const startTime = Date.now();
41
+ // Ctrl+C 핸들링 (loop 모드용)
42
+ let shouldStop = false;
43
+ const handleSignal = () => {
44
+ console.log('');
45
+ console.log(colors.warning('Stopping after current feature...'));
46
+ shouldStop = true;
47
+ };
48
+ if (isLoopMode) {
49
+ process.on('SIGINT', handleSignal);
50
+ process.on('SIGTERM', handleSignal);
51
+ }
52
+ // 자동화 시작 로그
53
+ const autoStartLog = `
54
+ ---
55
+
56
+ ## Auto Session: ${new Date().toISOString()}
57
+
58
+ ### Configuration
59
+ - Mode: ${isLoopMode ? 'loop (infinite)' : `batch (${maxFeatures})`}
60
+ - Resume: ${options.resume || false}
61
+ - Category filter: ${options.category || 'all'}
62
+ - Until feature: ${options.until || 'none'}
63
+ - Dry run: ${options.dryRun || false}
64
+
65
+ ### Processing Log
66
+ `;
67
+ appendToProgress(baseDir, autoStartLog);
68
+ let processedCount = 0;
69
+ let completedCount = 0;
70
+ let failedCount = 0;
71
+ let iterationCount = 0;
72
+ while (iterationCount < maxFeatures && !shouldStop) {
73
+ // 최신 feature list 다시 로드
74
+ const currentFeatureList = readFeatureList(baseDir);
75
+ if (!currentFeatureList)
76
+ break;
77
+ // 다음 기능 선택 (첫 번째 iteration에서 resume 체크)
78
+ let feature;
79
+ if (iterationCount === 0 && resumeFeature) {
80
+ feature = resumeFeature;
81
+ resumeFeature = undefined; // 한 번만 사용
82
+ }
83
+ else {
84
+ feature = selectNextFeature(currentFeatureList, options);
85
+ }
86
+ if (!feature) {
87
+ console.log('');
88
+ console.log(colors.success('🎉 No more features to process!'));
89
+ break;
90
+ }
91
+ // until 옵션 체크
92
+ if (options.until && feature.id === options.until) {
93
+ console.log('');
94
+ console.log(colors.info(`Reached target feature: ${options.until}`));
95
+ break;
96
+ }
97
+ iterationCount++;
98
+ processedCount++;
99
+ const featureStartTime = Date.now();
100
+ console.log('');
101
+ const progressDisplay = isLoopMode ? `#${iterationCount}` : `${iterationCount}/${maxFeatures}`;
102
+ console.log(colors.bold(`[${progressDisplay}] ${feature.id}: ${feature.description}`));
103
+ if (options.dryRun) {
104
+ console.log(` ${icons.arrow} Would implement...`);
105
+ console.log(` ${icons.arrow} Would test...`);
106
+ console.log(` ${icons.arrow} Would complete...`);
107
+ results.push({
108
+ featureId: feature.id,
109
+ status: 'skipped',
110
+ duration: 0,
111
+ });
112
+ continue;
113
+ }
114
+ try {
115
+ // 1. Claude Code로 구현 시도
116
+ console.log(` ${icons.arrow} Implementing...`);
117
+ const implementResult = await runClaudeCode(baseDir, feature);
118
+ if (!implementResult.success) {
119
+ throw new Error(implementResult.error || 'Implementation failed');
120
+ }
121
+ // 2. 테스트 실행
122
+ console.log(` ${icons.arrow} Testing...`);
123
+ const testResult = await runTest(baseDir, feature);
124
+ if (!testResult.success) {
125
+ throw new Error('Test failed');
126
+ }
127
+ console.log(` ${icons.success} Passed`);
128
+ // 3. 완료 처리
129
+ console.log(` ${icons.arrow} Completing...`);
130
+ await markComplete(baseDir, feature.id);
131
+ console.log(` ${icons.success} Done`);
132
+ // 4. 커밋
133
+ console.log(` ${icons.arrow} Committing...`);
134
+ const commitResult = await runCommit(baseDir, feature);
135
+ if (commitResult.success) {
136
+ console.log(` ${icons.success} ${commitResult.hash}`);
137
+ }
138
+ completedCount++;
139
+ results.push({
140
+ featureId: feature.id,
141
+ status: 'success',
142
+ duration: Date.now() - featureStartTime,
143
+ });
144
+ // progress.md에 기록
145
+ appendToProgress(baseDir, `- [x] ${feature.id}: Completed automatically\n`);
146
+ }
147
+ catch (error) {
148
+ failedCount++;
149
+ const errorMessage = error instanceof Error ? error.message : String(error);
150
+ console.log(` ${icons.error} Failed: ${errorMessage}`);
151
+ results.push({
152
+ featureId: feature.id,
153
+ status: 'failed',
154
+ error: errorMessage,
155
+ duration: Date.now() - featureStartTime,
156
+ });
157
+ // 롤백
158
+ console.log(` ${icons.arrow} Rolling back...`);
159
+ await rollback(baseDir);
160
+ // progress.md에 기록
161
+ appendToProgress(baseDir, `- [ ] ${feature.id}: Failed - ${errorMessage}\n`);
162
+ }
163
+ // 쿨다운 (다음 iteration이 있고 중단 요청이 없을 때만)
164
+ if (!shouldStop) {
165
+ await sleep(cooldownMs);
166
+ }
167
+ }
168
+ // 시그널 핸들러 제거
169
+ if (isLoopMode) {
170
+ process.off('SIGINT', handleSignal);
171
+ process.off('SIGTERM', handleSignal);
172
+ }
173
+ // 최종 결과 출력
174
+ const totalDuration = Date.now() - startTime;
175
+ const finalProgress = getProgress(baseDir);
176
+ printSection('Summary');
177
+ console.log('');
178
+ console.log(` ${colors.success('Completed:')} ${completedCount}`);
179
+ console.log(` ${colors.error('Failed:')} ${failedCount}`);
180
+ console.log(` ${colors.dim('Skipped:')} ${results.filter((r) => r.status === 'skipped').length}`);
181
+ console.log('');
182
+ console.log(` ${colors.dim('Progress:')} ${initialProgress.percentage}% → ${finalProgress.percentage}%`);
183
+ console.log(` ${colors.dim('Duration:')} ${formatDuration(totalDuration)}`);
184
+ console.log('');
185
+ // 최종 로그
186
+ const autoEndLog = `
187
+ ### Summary
188
+ - Processed: ${processedCount}
189
+ - Completed: ${completedCount}
190
+ - Failed: ${failedCount}
191
+ - Progress: ${initialProgress.percentage}% → ${finalProgress.percentage}%
192
+ - Duration: ${formatDuration(totalDuration)}
193
+
194
+ ---
195
+ `;
196
+ appendToProgress(baseDir, autoEndLog);
197
+ if (completedCount > 0) {
198
+ printSuccess(`Auto mode completed: ${completedCount} features implemented`);
199
+ }
200
+ else if (failedCount > 0) {
201
+ printWarning('Auto mode finished with failures');
202
+ }
203
+ }
204
+ /**
205
+ * session_context.md에서 진행 중인 작업을 찾아 반환
206
+ */
207
+ function getInProgressFeature(baseDir, featureList) {
208
+ const sessionContextPath = path.join(baseDir, '.aiag', 'session_context.md');
209
+ if (!fs.existsSync(sessionContextPath)) {
210
+ return undefined;
211
+ }
212
+ try {
213
+ const content = fs.readFileSync(sessionContextPath, 'utf-8');
214
+ // ID 추출: "- ID: FEATURE-001" 패턴
215
+ const idMatch = content.match(/- ID:\s*(\S+)/);
216
+ if (!idMatch)
217
+ return undefined;
218
+ const featureId = idMatch[1];
219
+ // 해당 feature가 아직 완료되지 않았는지 확인
220
+ const feature = featureList.features.find((f) => f.id === featureId);
221
+ if (feature && !feature.passes) {
222
+ return feature;
223
+ }
224
+ return undefined;
225
+ }
226
+ catch {
227
+ return undefined;
228
+ }
229
+ }
230
+ function selectNextFeature(featureList, options) {
231
+ let candidates = featureList.features.filter((f) => !f.passes);
232
+ // 카테고리 필터
233
+ if (options.category) {
234
+ candidates = candidates.filter((f) => f.category === options.category);
235
+ }
236
+ // 의존성 확인
237
+ candidates = candidates.filter((f) => {
238
+ if (!f.dependsOn || f.dependsOn.length === 0)
239
+ return true;
240
+ return f.dependsOn.every((depId) => {
241
+ const dep = featureList.features.find((df) => df.id === depId);
242
+ return dep?.passes === true;
243
+ });
244
+ });
245
+ // 우선순위로 정렬
246
+ candidates.sort((a, b) => PRIORITY_ORDER[a.priority] - PRIORITY_ORDER[b.priority]);
247
+ return candidates[0];
248
+ }
249
+ async function runClaudeCode(baseDir, feature) {
250
+ const prompt = generatePrompt(feature);
251
+ return new Promise((resolve) => {
252
+ const claude = spawn('claude', ['--print', prompt], {
253
+ cwd: baseDir,
254
+ shell: true,
255
+ stdio: ['pipe', 'pipe', 'pipe'],
256
+ });
257
+ let stdout = '';
258
+ let stderr = '';
259
+ claude.stdout?.on('data', (data) => {
260
+ stdout += data.toString();
261
+ });
262
+ claude.stderr?.on('data', (data) => {
263
+ stderr += data.toString();
264
+ });
265
+ claude.on('close', (code) => {
266
+ if (code === 0) {
267
+ resolve({ success: true });
268
+ }
269
+ else {
270
+ resolve({ success: false, error: stderr || 'Claude Code failed' });
271
+ }
272
+ });
273
+ claude.on('error', (err) => {
274
+ resolve({ success: false, error: err.message });
275
+ });
276
+ // 타임아웃 (5분)
277
+ setTimeout(() => {
278
+ claude.kill();
279
+ resolve({ success: false, error: 'Timeout' });
280
+ }, 5 * 60 * 1000);
281
+ });
282
+ }
283
+ async function runTest(baseDir, feature) {
284
+ const testCommand = feature.testCommand || 'bun test';
285
+ return new Promise((resolve) => {
286
+ const test = spawn(testCommand, [], {
287
+ cwd: baseDir,
288
+ shell: true,
289
+ stdio: ['pipe', 'pipe', 'pipe'],
290
+ });
291
+ test.on('close', (code) => {
292
+ resolve({ success: code === 0 });
293
+ });
294
+ test.on('error', () => {
295
+ resolve({ success: false });
296
+ });
297
+ // 타임아웃 (2분)
298
+ setTimeout(() => {
299
+ test.kill();
300
+ resolve({ success: false });
301
+ }, 2 * 60 * 1000);
302
+ });
303
+ }
304
+ async function markComplete(baseDir, featureId) {
305
+ const featureList = readFeatureList(baseDir);
306
+ if (!featureList)
307
+ return;
308
+ const feature = featureList.features.find((f) => f.id === featureId);
309
+ if (feature) {
310
+ feature.passes = true;
311
+ feature.lastTestedAt = new Date().toISOString();
312
+ feature.implementedBy = 'auto';
313
+ writeFeatureList(featureList, baseDir);
314
+ }
315
+ }
316
+ async function runCommit(baseDir, feature) {
317
+ return new Promise((resolve) => {
318
+ const message = `feat: ${feature.id} - ${feature.description} (auto)`;
319
+ const commit = spawn('git', ['add', '-A', '&&', 'git', 'commit', '-m', message], {
320
+ cwd: baseDir,
321
+ shell: true,
322
+ stdio: ['pipe', 'pipe', 'pipe'],
323
+ });
324
+ let stdout = '';
325
+ commit.stdout?.on('data', (data) => {
326
+ stdout += data.toString();
327
+ });
328
+ commit.on('close', (code) => {
329
+ if (code === 0) {
330
+ // 커밋 해시 추출
331
+ const hashMatch = stdout.match(/\[[\w-]+\s+([a-f0-9]+)\]/);
332
+ resolve({ success: true, hash: hashMatch?.[1] || 'committed' });
333
+ }
334
+ else {
335
+ resolve({ success: false });
336
+ }
337
+ });
338
+ commit.on('error', () => {
339
+ resolve({ success: false });
340
+ });
341
+ });
342
+ }
343
+ async function rollback(baseDir) {
344
+ return new Promise((resolve) => {
345
+ const rollback = spawn('git', ['checkout', '--', '.'], {
346
+ cwd: baseDir,
347
+ shell: true,
348
+ stdio: 'pipe',
349
+ });
350
+ rollback.on('close', () => {
351
+ resolve();
352
+ });
353
+ rollback.on('error', () => {
354
+ resolve();
355
+ });
356
+ });
357
+ }
358
+ function generatePrompt(feature) {
359
+ const lines = [
360
+ `${feature.id} feature를 구현해주세요.`,
361
+ '',
362
+ 'Acceptance Criteria:',
363
+ ...feature.acceptanceCriteria.map((c) => `- ${c}`),
364
+ '',
365
+ ];
366
+ if (feature.testCommand) {
367
+ lines.push(`테스트 명령어: ${feature.testCommand}`);
368
+ }
369
+ lines.push('');
370
+ lines.push('구현이 완료되면 테스트를 실행할 수 있도록 코드를 작성하세요.');
371
+ lines.push('테스트 실패 시 변경사항은 롤백됩니다.');
372
+ return lines.join('\n');
373
+ }
374
+ function sleep(ms) {
375
+ return new Promise((resolve) => setTimeout(resolve, ms));
376
+ }
377
+ function formatDuration(ms) {
378
+ const seconds = Math.floor(ms / 1000);
379
+ const minutes = Math.floor(seconds / 60);
380
+ const hours = Math.floor(minutes / 60);
381
+ if (hours > 0) {
382
+ return `${hours}h ${minutes % 60}m`;
383
+ }
384
+ else if (minutes > 0) {
385
+ return `${minutes}m ${seconds % 60}s`;
386
+ }
387
+ else {
388
+ return `${seconds}s`;
389
+ }
390
+ }
391
+ //# sourceMappingURL=auto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto.js","sourceRoot":"","sources":["../../src/commands/auto.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAkBA,UAAU,WAAW;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAID,wBAAsB,IAAI,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgLnE"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAkBA,UAAU,WAAW;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAID,wBAAsB,IAAI,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgPnE"}
@@ -147,6 +147,63 @@ echo "Run 'aiag next' to get next feature"
147
147
  : '# Coding Agent Template\n\n(See documentation for details)';
148
148
  fs.writeFileSync(path.join(baseDir, AIAG_DIR, 'templates', 'coding.md'), codingTemplate);
149
149
  console.log(` ${icons.success} .aiag/templates/`);
150
+ // Create .vscode/settings.json
151
+ const vscodeDir = path.join(baseDir, '.vscode');
152
+ const vscodeSettingsPath = path.join(vscodeDir, 'settings.json');
153
+ if (!fs.existsSync(vscodeDir)) {
154
+ fs.mkdirSync(vscodeDir, { recursive: true });
155
+ }
156
+ // 기존 settings.json이 있으면 병합, 없으면 새로 생성
157
+ let vscodeSettings = {};
158
+ if (fs.existsSync(vscodeSettingsPath)) {
159
+ try {
160
+ const existingContent = fs.readFileSync(vscodeSettingsPath, 'utf-8');
161
+ vscodeSettings = JSON.parse(existingContent);
162
+ }
163
+ catch {
164
+ // 파싱 실패 시 기존 파일 백업
165
+ fs.copyFileSync(vscodeSettingsPath, `${vscodeSettingsPath}.backup`);
166
+ console.log(` ${icons.warning} Backed up existing settings.json`);
167
+ }
168
+ }
169
+ // AIAG 관련 설정 추가
170
+ const aiagVscodeSettings = {
171
+ // Claude Code 필수 설정
172
+ 'claudeCode.allowDangerouslySkipPermissions': true,
173
+ 'claudeCode.initialPermissionMode': 'bypassPermissions',
174
+ 'claudeCode.useTerminal': false,
175
+ // 파일 설정
176
+ 'files.associations': {
177
+ '*.aiag': 'json',
178
+ 'feature_list.json': 'json',
179
+ },
180
+ 'files.exclude': {
181
+ '**/.aiag/templates': false,
182
+ },
183
+ 'search.exclude': {
184
+ '**/node_modules': true,
185
+ '**/dist': true,
186
+ },
187
+ 'editor.formatOnSave': true,
188
+ '[json]': {
189
+ 'editor.defaultFormatter': 'esbenp.prettier-vscode',
190
+ 'editor.tabSize': 2,
191
+ },
192
+ '[markdown]': {
193
+ 'editor.wordWrap': 'on',
194
+ },
195
+ };
196
+ // 기존 설정과 병합 (AIAG 설정 우선)
197
+ vscodeSettings = { ...vscodeSettings, ...aiagVscodeSettings };
198
+ // files.associations는 깊은 병합
199
+ if (typeof vscodeSettings['files.associations'] === 'object') {
200
+ vscodeSettings['files.associations'] = {
201
+ ...vscodeSettings['files.associations'],
202
+ ...aiagVscodeSettings['files.associations'],
203
+ };
204
+ }
205
+ fs.writeFileSync(vscodeSettingsPath, JSON.stringify(vscodeSettings, null, 2));
206
+ console.log(` ${icons.success} .vscode/settings.json`);
150
207
  console.log('');
151
208
  printSuccess('AIAG initialized successfully!');
152
209
  console.log('');
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ interface RunOptions {
2
+ copy?: boolean;
3
+ }
4
+ /**
5
+ * aiag run <id> - 특정 기능 구현 지시 프롬프트 생성
6
+ */
7
+ export declare function run(featureId: string, options?: RunOptions): Promise<void>;
8
+ export {};
9
+ //# sourceMappingURL=run.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"AAUA,UAAU,UAAU;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,wBAAsB,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,UAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAqCpF"}
@@ -0,0 +1,91 @@
1
+ import { readFeatureList } from '../utils/featureList.js';
2
+ import { printHeader, printError, printSection, colors, icons, } from '../utils/output.js';
3
+ /**
4
+ * aiag run <id> - 특정 기능 구현 지시 프롬프트 생성
5
+ */
6
+ export async function run(featureId, options = {}) {
7
+ const baseDir = process.cwd();
8
+ try {
9
+ const featureList = readFeatureList(baseDir);
10
+ if (!featureList) {
11
+ printError('No feature_list.json found. Run "aiag init" first.');
12
+ return;
13
+ }
14
+ const feature = featureList.features.find((f) => f.id === featureId);
15
+ if (!feature) {
16
+ printError(`Feature not found: ${featureId}`);
17
+ console.log('');
18
+ console.log(colors.dim('Available features:'));
19
+ featureList.features
20
+ .filter((f) => !f.passes)
21
+ .slice(0, 5)
22
+ .forEach((f) => {
23
+ console.log(` ${icons.bullet} ${f.id}: ${f.description}`);
24
+ });
25
+ return;
26
+ }
27
+ if (feature.passes) {
28
+ printError(`Feature ${featureId} is already completed.`);
29
+ return;
30
+ }
31
+ printHeader(`Run Feature: ${featureId}`);
32
+ printFeatureDetails(feature);
33
+ printImplementationPrompt(feature);
34
+ }
35
+ catch (error) {
36
+ printError(`Failed to run: ${error}`);
37
+ process.exit(1);
38
+ }
39
+ }
40
+ function printFeatureDetails(feature) {
41
+ console.log('');
42
+ console.log(colors.bold(feature.description));
43
+ console.log('');
44
+ console.log(`${colors.dim('Category:')} ${feature.category} ${colors.dim('Priority:')} ${feature.priority}`);
45
+ console.log('');
46
+ if (feature.acceptanceCriteria.length > 0) {
47
+ console.log(colors.dim('Acceptance Criteria:'));
48
+ feature.acceptanceCriteria.forEach((criteria, index) => {
49
+ console.log(` ${index + 1}. ${criteria}`);
50
+ });
51
+ console.log('');
52
+ }
53
+ if (feature.testCommand) {
54
+ console.log(`${colors.dim('Test Command:')} ${colors.info(feature.testCommand)}`);
55
+ console.log('');
56
+ }
57
+ if (feature.dependsOn && feature.dependsOn.length > 0) {
58
+ console.log(`${colors.dim('Dependencies:')} ${feature.dependsOn.join(', ')}`);
59
+ console.log('');
60
+ }
61
+ }
62
+ function printImplementationPrompt(feature) {
63
+ printSection('Claude Code Prompt');
64
+ console.log(colors.dim('─'.repeat(50)));
65
+ console.log('');
66
+ const prompt = generatePrompt(feature);
67
+ console.log(prompt);
68
+ console.log('');
69
+ console.log(colors.dim('─'.repeat(50)));
70
+ console.log('');
71
+ console.log(colors.dim('위 프롬프트를 Claude Code에 붙여넣어 구현을 시작하세요.'));
72
+ }
73
+ function generatePrompt(feature) {
74
+ const lines = [
75
+ `${feature.id} feature를 구현해주세요.`,
76
+ '',
77
+ 'Acceptance Criteria:',
78
+ ...feature.acceptanceCriteria.map((c) => `- ${c}`),
79
+ '',
80
+ ];
81
+ if (feature.testCommand) {
82
+ lines.push(`테스트 명령어: ${feature.testCommand}`);
83
+ lines.push('');
84
+ }
85
+ lines.push('완료 후:');
86
+ lines.push(`1. \`aiag test ${feature.id}\`로 테스트 실행`);
87
+ lines.push(`2. 통과하면 \`aiag complete ${feature.id}\` 실행`);
88
+ lines.push('3. `aiag commit`으로 커밋');
89
+ return lines.join('\n');
90
+ }
91
+ //# sourceMappingURL=run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ interface WorkOptions {
2
+ category?: string;
3
+ priority?: string;
4
+ }
5
+ /**
6
+ * aiag work [id] - 단일 기능 작업 시작 (세션 컨텍스트 업데이트 + 프롬프트 생성)
7
+ */
8
+ export declare function work(featureId?: string, options?: WorkOptions): Promise<void>;
9
+ export {};
10
+ //# sourceMappingURL=work.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"work.d.ts","sourceRoot":"","sources":["../../src/commands/work.ts"],"names":[],"mappings":"AAeA,UAAU,WAAW;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,wBAAsB,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmDvF"}
@@ -0,0 +1,173 @@
1
+ import * as fs from 'fs';
2
+ import * as path from 'path';
3
+ import { readFeatureList } from '../utils/featureList.js';
4
+ import { appendToProgress } from '../utils/progress.js';
5
+ import { printHeader, printError, printSection, colors, icons, getPriorityColor, } from '../utils/output.js';
6
+ import { PRIORITY_ORDER } from '../types.js';
7
+ /**
8
+ * aiag work [id] - 단일 기능 작업 시작 (세션 컨텍스트 업데이트 + 프롬프트 생성)
9
+ */
10
+ export async function work(featureId, options = {}) {
11
+ const baseDir = process.cwd();
12
+ try {
13
+ const featureList = readFeatureList(baseDir);
14
+ if (!featureList) {
15
+ printError('No feature_list.json found. Run "aiag init" first.');
16
+ return;
17
+ }
18
+ let feature;
19
+ if (featureId) {
20
+ // 특정 ID 지정
21
+ feature = featureList.features.find((f) => f.id === featureId);
22
+ if (!feature) {
23
+ printError(`Feature not found: ${featureId}`);
24
+ return;
25
+ }
26
+ if (feature.passes) {
27
+ printError(`Feature ${featureId} is already completed.`);
28
+ return;
29
+ }
30
+ }
31
+ else {
32
+ // 자동 선택 (next 로직)
33
+ feature = selectNextFeature(featureList, options);
34
+ if (!feature) {
35
+ printHeader('No Work Available');
36
+ console.log('');
37
+ console.log(colors.success('🎉 All features are completed!'));
38
+ return;
39
+ }
40
+ }
41
+ // 세션 컨텍스트 업데이트
42
+ updateSessionContext(baseDir, feature.id, feature.description);
43
+ // progress.md에 작업 시작 기록
44
+ const workStartLog = `\n### Work Started: ${feature.id}\n- Time: ${new Date().toISOString()}\n- Feature: ${feature.description}\n`;
45
+ appendToProgress(baseDir, workStartLog);
46
+ // 출력
47
+ printWorkHeader(feature, featureList);
48
+ printAcceptanceCriteria(feature);
49
+ printDependencies(feature, featureList);
50
+ printImplementationPrompt(feature);
51
+ printNextSteps(feature);
52
+ }
53
+ catch (error) {
54
+ printError(`Failed to start work: ${error}`);
55
+ process.exit(1);
56
+ }
57
+ }
58
+ function selectNextFeature(featureList, options) {
59
+ let candidates = featureList.features.filter((f) => !f.passes);
60
+ // 카테고리 필터
61
+ if (options.category) {
62
+ candidates = candidates.filter((f) => f.category === options.category);
63
+ }
64
+ // 우선순위 필터
65
+ if (options.priority) {
66
+ candidates = candidates.filter((f) => f.priority === options.priority);
67
+ }
68
+ // 의존성 확인 및 정렬
69
+ candidates = candidates.filter((f) => {
70
+ if (!f.dependsOn || f.dependsOn.length === 0)
71
+ return true;
72
+ return f.dependsOn.every((depId) => {
73
+ const dep = featureList.features.find((df) => df.id === depId);
74
+ return dep?.passes === true;
75
+ });
76
+ });
77
+ // 우선순위로 정렬
78
+ candidates.sort((a, b) => PRIORITY_ORDER[a.priority] - PRIORITY_ORDER[b.priority]);
79
+ return candidates[0];
80
+ }
81
+ function printWorkHeader(feature, featureList) {
82
+ const completed = featureList.features.filter((f) => f.passes).length;
83
+ const total = featureList.features.length;
84
+ const percentage = Math.round((completed / total) * 100);
85
+ console.log('');
86
+ console.log(colors.bold('═'.repeat(50)));
87
+ console.log(colors.bold(` AIAG Work: ${feature.id}`));
88
+ console.log(colors.bold('═'.repeat(50)));
89
+ console.log('');
90
+ console.log(colors.bold(feature.description));
91
+ console.log('');
92
+ const priorityColor = getPriorityColor(feature.priority);
93
+ console.log(`${colors.dim('Category:')} ${feature.category} ${colors.dim('Priority:')} ${priorityColor(feature.priority)}`);
94
+ console.log(`${colors.dim('Progress:')} ${completed}/${total} (${percentage}%)`);
95
+ console.log('');
96
+ }
97
+ function printAcceptanceCriteria(feature) {
98
+ if (feature.acceptanceCriteria.length === 0)
99
+ return;
100
+ printSection('Acceptance Criteria');
101
+ feature.acceptanceCriteria.forEach((criteria, index) => {
102
+ console.log(` ${icons.checkbox.unchecked} ${index + 1}. ${criteria}`);
103
+ });
104
+ console.log('');
105
+ }
106
+ function printDependencies(feature, featureList) {
107
+ if (!feature.dependsOn || feature.dependsOn.length === 0)
108
+ return;
109
+ printSection('Dependencies');
110
+ feature.dependsOn.forEach((depId) => {
111
+ const dep = featureList.features.find((f) => f.id === depId);
112
+ if (dep) {
113
+ const icon = dep.passes ? icons.success : icons.error;
114
+ console.log(` ${icon} ${depId}: ${dep.description}`);
115
+ }
116
+ });
117
+ console.log('');
118
+ }
119
+ function printImplementationPrompt(feature) {
120
+ printSection('Claude Code Prompt');
121
+ console.log(colors.dim('─'.repeat(50)));
122
+ console.log('');
123
+ const prompt = generatePrompt(feature);
124
+ console.log(prompt);
125
+ console.log('');
126
+ console.log(colors.dim('─'.repeat(50)));
127
+ }
128
+ function generatePrompt(feature) {
129
+ const lines = [
130
+ `${feature.id} feature를 구현해주세요.`,
131
+ '',
132
+ 'Acceptance Criteria:',
133
+ ...feature.acceptanceCriteria.map((c) => `- ${c}`),
134
+ '',
135
+ ];
136
+ if (feature.testCommand) {
137
+ lines.push(`테스트 명령어: ${feature.testCommand}`);
138
+ lines.push('');
139
+ }
140
+ lines.push('완료 후:');
141
+ lines.push(`1. \`aiag test ${feature.id}\`로 테스트 실행`);
142
+ lines.push(`2. 통과하면 \`aiag complete ${feature.id}\` 실행`);
143
+ lines.push('3. `aiag commit`으로 커밋');
144
+ return lines.join('\n');
145
+ }
146
+ function printNextSteps(feature) {
147
+ console.log('');
148
+ printSection('Next Steps');
149
+ console.log(` 1. 위 프롬프트를 Claude Code에 붙여넣기`);
150
+ console.log(` 2. 구현 완료 후: ${colors.info(`aiag test ${feature.id}`)}`);
151
+ console.log(` 3. 테스트 통과 후: ${colors.info(`aiag complete ${feature.id}`)}`);
152
+ console.log(` 4. 커밋: ${colors.info('aiag commit')}`);
153
+ console.log('');
154
+ }
155
+ function updateSessionContext(baseDir, featureId, description) {
156
+ const sessionContextPath = path.join(baseDir, '.aiag', 'session_context.md');
157
+ const content = `# Current Session Context
158
+
159
+ ## Active Feature
160
+ - ID: ${featureId}
161
+ - Description: ${description}
162
+ - Status: In Progress
163
+
164
+ ## Environment Status
165
+ - Last checked: ${new Date().toISOString()}
166
+ - Status: Working
167
+
168
+ ## Notes
169
+ - Started work on ${featureId}
170
+ `;
171
+ fs.writeFileSync(sessionContextPath, content, 'utf-8');
172
+ }
173
+ //# sourceMappingURL=work.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"work.js","sourceRoot":"","sources":["../../src/commands/work.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -9,4 +9,7 @@ export { test } from './commands/test.js';
9
9
  export { complete } from './commands/complete.js';
10
10
  export { commit } from './commands/commit.js';
11
11
  export { sessionStart, sessionEnd } from './commands/session.js';
12
+ export { run } from './commands/run.js';
13
+ export { work } from './commands/work.js';
14
+ export { auto } from './commands/auto.js';
12
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,YAAY,CAAC;AAC3B,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAElC,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,YAAY,CAAC;AAC3B,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAElC,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC"}
package/dist/index.js CHANGED
@@ -10,4 +10,7 @@ export { test } from './commands/test.js';
10
10
  export { complete } from './commands/complete.js';
11
11
  export { commit } from './commands/commit.js';
12
12
  export { sessionStart, sessionEnd } from './commands/session.js';
13
+ export { run } from './commands/run.js';
14
+ export { work } from './commands/work.js';
15
+ export { auto } from './commands/auto.js';
13
16
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAE1B,cAAc,YAAY,CAAC;AAC3B,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAElC,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAE1B,cAAc,YAAY,CAAC;AAC3B,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAElC,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC"}
@@ -24,6 +24,10 @@ export declare function appendSession(session: {
24
24
  * Update the "Last Updated" date in progress.md
25
25
  */
26
26
  export declare function updateLastUpdated(baseDir?: string): boolean;
27
+ /**
28
+ * Append raw content to progress.md
29
+ */
30
+ export declare function appendToProgress(baseDir: string, content: string): boolean;
27
31
  /**
28
32
  * Create initial progress.md
29
33
  */
@@ -1 +1 @@
1
- {"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../src/utils/progress.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,GAAE,MAAsB,GAAG,MAAM,CAEvE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,GAAE,MAAsB,GAAG,MAAM,GAAG,IAAI,CAa3E;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,GAAE,MAAsB,GAAG,MAAM,GAAG,IAAI,CAe7E;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE;IACP,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB,EACD,OAAO,GAAE,MAAsB,GAC9B,OAAO,CAiDT;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,MAAsB,GAAG,OAAO,CAoB1E;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,MAAsB,GAC9B,OAAO,CA+CT"}
1
+ {"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../src/utils/progress.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,GAAE,MAAsB,GAAG,MAAM,CAEvE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,GAAE,MAAsB,GAAG,MAAM,GAAG,IAAI,CAa3E;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,GAAE,MAAsB,GAAG,MAAM,GAAG,IAAI,CAe7E;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE;IACP,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB,EACD,OAAO,GAAE,MAAsB,GAC9B,OAAO,CAiDT;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,MAAsB,GAAG,OAAO,CAoB1E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAc1E;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,MAAsB,GAC9B,OAAO,CA+CT"}
@@ -112,6 +112,23 @@ export function updateLastUpdated(baseDir = process.cwd()) {
112
112
  return false;
113
113
  }
114
114
  }
115
+ /**
116
+ * Append raw content to progress.md
117
+ */
118
+ export function appendToProgress(baseDir, content) {
119
+ const filePath = getProgressPath(baseDir);
120
+ if (!fs.existsSync(filePath)) {
121
+ return false;
122
+ }
123
+ try {
124
+ fs.appendFileSync(filePath, content, 'utf-8');
125
+ return true;
126
+ }
127
+ catch (error) {
128
+ console.error('Error appending to progress.md:', error);
129
+ return false;
130
+ }
131
+ }
115
132
  /**
116
133
  * Create initial progress.md
117
134
  */
@@ -1 +1 @@
1
- {"version":3,"file":"progress.js","sourceRoot":"","sources":["../../src/utils/progress.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"progress.js","sourceRoot":"","sources":["../../src/utils/progress.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aiag-cli",
3
- "version": "1.0.0",
3
+ "version": "1.2.0",
4
4
  "description": "AI Agent Harness CLI - Long-running agent development tool based on Anthropic's approach",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",