aiag-cli 2.2.3 → 2.4.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 +72 -37
- package/dist/api/client.d.ts +9 -1
- package/dist/api/client.d.ts.map +1 -1
- package/dist/api/client.js +20 -0
- package/dist/api/client.js.map +1 -1
- package/dist/api/endpoints.d.ts +2 -0
- package/dist/api/endpoints.d.ts.map +1 -1
- package/dist/api/endpoints.js +2 -0
- package/dist/api/endpoints.js.map +1 -1
- package/dist/api/types.d.ts +34 -0
- package/dist/api/types.d.ts.map +1 -1
- package/dist/cli.js +60 -9
- package/dist/cli.js.map +1 -1
- package/dist/commands/commit.d.ts.map +1 -1
- package/dist/commands/commit.js +37 -1
- package/dist/commands/commit.js.map +1 -1
- package/dist/commands/complete.d.ts.map +1 -1
- package/dist/commands/complete.js +11 -1
- package/dist/commands/complete.js.map +1 -1
- package/dist/commands/feature.d.ts +11 -0
- package/dist/commands/feature.d.ts.map +1 -0
- package/dist/commands/feature.js +153 -0
- package/dist/commands/feature.js.map +1 -0
- package/dist/commands/init.d.ts +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +29 -78
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/prd.d.ts +12 -0
- package/dist/commands/prd.d.ts.map +1 -0
- package/dist/commands/prd.js +179 -0
- package/dist/commands/prd.js.map +1 -0
- package/dist/commands/session.d.ts +29 -0
- package/dist/commands/session.d.ts.map +1 -1
- package/dist/commands/session.js +270 -120
- package/dist/commands/session.js.map +1 -1
- package/dist/commands/sync.d.ts +10 -0
- package/dist/commands/sync.d.ts.map +1 -1
- package/dist/commands/sync.js +95 -2
- package/dist/commands/sync.js.map +1 -1
- package/dist/commands/work.d.ts.map +1 -1
- package/dist/commands/work.js +13 -1
- package/dist/commands/work.js.map +1 -1
- package/dist/prompts/index.d.ts +2 -0
- package/dist/prompts/index.d.ts.map +1 -1
- package/dist/prompts/index.js +2 -0
- package/dist/prompts/index.js.map +1 -1
- package/dist/prompts/prd.d.ts +28 -0
- package/dist/prompts/prd.d.ts.map +1 -0
- package/dist/prompts/prd.js +105 -0
- package/dist/prompts/prd.js.map +1 -0
- package/dist/skills/index.d.ts +12 -0
- package/dist/skills/index.d.ts.map +1 -0
- package/dist/skills/index.js +12 -0
- package/dist/skills/index.js.map +1 -0
- package/dist/skills/installer.d.ts +38 -0
- package/dist/skills/installer.d.ts.map +1 -0
- package/dist/skills/installer.js +153 -0
- package/dist/skills/installer.js.map +1 -0
- package/dist/skills/loader.d.ts +34 -0
- package/dist/skills/loader.d.ts.map +1 -0
- package/dist/skills/loader.js +134 -0
- package/dist/skills/loader.js.map +1 -0
- package/dist/skills/runner.d.ts +14 -0
- package/dist/skills/runner.d.ts.map +1 -0
- package/dist/skills/runner.js +238 -0
- package/dist/skills/runner.js.map +1 -0
- package/dist/types.d.ts +160 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/prd.d.ts +21 -0
- package/dist/utils/prd.d.ts.map +1 -1
- package/dist/utils/prd.js +69 -0
- package/dist/utils/prd.js.map +1 -1
- package/dist/utils/sessionManager.d.ts +63 -0
- package/dist/utils/sessionManager.d.ts.map +1 -0
- package/dist/utils/sessionManager.js +372 -0
- package/dist/utils/sessionManager.js.map +1 -0
- package/dist/utils/taskmasterConverter.d.ts +72 -0
- package/dist/utils/taskmasterConverter.d.ts.map +1 -0
- package/dist/utils/taskmasterConverter.js +401 -0
- package/dist/utils/taskmasterConverter.js.map +1 -0
- package/dist/utils/taskmasterParser.d.ts +35 -0
- package/dist/utils/taskmasterParser.d.ts.map +1 -0
- package/dist/utils/taskmasterParser.js +259 -0
- package/dist/utils/taskmasterParser.js.map +1 -0
- package/package.json +1 -1
- package/templates/skills/prd-taskmaster/.taskmaster/docs/prd.md +2571 -0
- package/templates/skills/prd-taskmaster/.taskmaster/scripts/execution-state.py +87 -0
- package/templates/skills/prd-taskmaster/.taskmaster/scripts/learn-accuracy.py +113 -0
- package/templates/skills/prd-taskmaster/.taskmaster/scripts/rollback.sh +71 -0
- package/templates/skills/prd-taskmaster/.taskmaster/scripts/security-audit.py +130 -0
- package/templates/skills/prd-taskmaster/.taskmaster/scripts/track-time.py +133 -0
- package/templates/skills/prd-taskmaster/LICENSE +21 -0
- package/templates/skills/prd-taskmaster/README.md +608 -0
- package/templates/skills/prd-taskmaster/SKILL.md +1258 -0
- package/templates/skills/prd-taskmaster/reference/taskmaster-integration-guide.md +645 -0
- package/templates/skills/prd-taskmaster/reference/validation-checklist.md +394 -0
- package/templates/skills/prd-taskmaster/scripts/setup-taskmaster.sh +112 -0
- package/templates/skills/prd-taskmaster/templates/CLAUDE.md.template +635 -0
- package/templates/skills/prd-taskmaster/templates/taskmaster-prd-comprehensive.md +983 -0
- package/templates/skills/prd-taskmaster/templates/taskmaster-prd-minimal.md +103 -0
package/dist/types.d.ts
CHANGED
|
@@ -114,4 +114,164 @@ export interface ApiError {
|
|
|
114
114
|
message: string;
|
|
115
115
|
details?: Record<string, unknown>;
|
|
116
116
|
}
|
|
117
|
+
/**
|
|
118
|
+
* PRD 포맷 유형
|
|
119
|
+
* - taskmaster: prd-taskmaster가 생성한 구조화된 PRD
|
|
120
|
+
* - generic: 일반 PRD (Claude Agent로 파싱)
|
|
121
|
+
*/
|
|
122
|
+
export type PrdFormat = 'taskmaster' | 'generic';
|
|
123
|
+
/**
|
|
124
|
+
* prd-taskmaster 우선순위
|
|
125
|
+
*/
|
|
126
|
+
export type TaskmasterPriority = 'P0' | 'P1' | 'P2';
|
|
127
|
+
/**
|
|
128
|
+
* Task Breakdown Hint (작업 분해 힌트)
|
|
129
|
+
*/
|
|
130
|
+
export interface TaskHint {
|
|
131
|
+
description: string;
|
|
132
|
+
complexity: 'Small' | 'Medium' | 'Large';
|
|
133
|
+
estimatedHours: number;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* prd-taskmaster 요구사항 블록
|
|
137
|
+
* PRD에서 파싱된 개별 요구사항
|
|
138
|
+
*/
|
|
139
|
+
export interface TaskmasterRequirement {
|
|
140
|
+
id: string;
|
|
141
|
+
title: string;
|
|
142
|
+
priority: TaskmasterPriority;
|
|
143
|
+
description: string;
|
|
144
|
+
acceptanceCriteria: string[];
|
|
145
|
+
taskBreakdown: TaskHint[];
|
|
146
|
+
dependencies: string[];
|
|
147
|
+
technicalSpec?: string;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Taskmaster → Feature 변환 옵션
|
|
151
|
+
*/
|
|
152
|
+
export interface TaskmasterConversionOptions {
|
|
153
|
+
splitTasks: boolean;
|
|
154
|
+
inferCategory: boolean;
|
|
155
|
+
generateTestCommands: boolean;
|
|
156
|
+
projectName?: string;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* PRD 파싱 결과
|
|
160
|
+
*/
|
|
161
|
+
export interface ParsedPrd {
|
|
162
|
+
format: PrdFormat;
|
|
163
|
+
requirements: TaskmasterRequirement[];
|
|
164
|
+
metadata?: {
|
|
165
|
+
projectName?: string;
|
|
166
|
+
version?: string;
|
|
167
|
+
techStack?: string[];
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* 스킬 메타데이터 (SKILL.md frontmatter에서 파싱)
|
|
172
|
+
*/
|
|
173
|
+
export interface SkillMetadata {
|
|
174
|
+
name: string;
|
|
175
|
+
description: string;
|
|
176
|
+
allowedTools: string[];
|
|
177
|
+
version?: string;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* 로딩된 스킬 정보
|
|
181
|
+
*/
|
|
182
|
+
export interface LoadedSkill extends SkillMetadata {
|
|
183
|
+
content: string;
|
|
184
|
+
path: string;
|
|
185
|
+
templates?: string[];
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* 스킬 설치 결과
|
|
189
|
+
*/
|
|
190
|
+
export interface SkillInstallResult {
|
|
191
|
+
status: 'installed' | 'updated' | 'skipped' | 'failed';
|
|
192
|
+
path: string;
|
|
193
|
+
version?: string;
|
|
194
|
+
error?: string;
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* 스킬 실행 옵션
|
|
198
|
+
*/
|
|
199
|
+
export interface SkillRunOptions {
|
|
200
|
+
workingDirectory: string;
|
|
201
|
+
template?: 'minimal' | 'comprehensive';
|
|
202
|
+
verbose?: boolean;
|
|
203
|
+
timeout?: number;
|
|
204
|
+
dryRun?: boolean;
|
|
205
|
+
onProgress?: (message: string) => void;
|
|
206
|
+
existingDocContent?: string;
|
|
207
|
+
existingDocPath?: string;
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* 스킬 실행 결과
|
|
211
|
+
*/
|
|
212
|
+
export interface SkillRunResult {
|
|
213
|
+
success: boolean;
|
|
214
|
+
result?: string;
|
|
215
|
+
error?: string;
|
|
216
|
+
sessionId?: string;
|
|
217
|
+
numTurns?: number;
|
|
218
|
+
durationMs?: number;
|
|
219
|
+
costUsd?: number;
|
|
220
|
+
filesCreated?: string[];
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* PRD 명령어 옵션
|
|
224
|
+
*/
|
|
225
|
+
export interface PrdCommandOptions {
|
|
226
|
+
from?: string;
|
|
227
|
+
output?: string;
|
|
228
|
+
template?: 'minimal' | 'comprehensive';
|
|
229
|
+
skipValidation?: boolean;
|
|
230
|
+
dryRun?: boolean;
|
|
231
|
+
verbose?: boolean;
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Feature 명령어 옵션
|
|
235
|
+
*/
|
|
236
|
+
export interface FeatureCommandOptions {
|
|
237
|
+
from?: string;
|
|
238
|
+
format?: PrdFormat;
|
|
239
|
+
output?: string;
|
|
240
|
+
validate?: boolean;
|
|
241
|
+
dryRun?: boolean;
|
|
242
|
+
verbose?: boolean;
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* 커밋 기록
|
|
246
|
+
*/
|
|
247
|
+
export interface SessionCommitRecord {
|
|
248
|
+
hash: string;
|
|
249
|
+
message: string;
|
|
250
|
+
timestamp: string;
|
|
251
|
+
featureId?: string;
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* 현재 세션 상태
|
|
255
|
+
* 저장 위치: .aiag/current_session.json
|
|
256
|
+
*/
|
|
257
|
+
export interface SessionState {
|
|
258
|
+
id: string;
|
|
259
|
+
startedAt: string;
|
|
260
|
+
lastActivityAt: string;
|
|
261
|
+
featuresWorked: string[];
|
|
262
|
+
featuresCompleted: string[];
|
|
263
|
+
commits: SessionCommitRecord[];
|
|
264
|
+
initialProgress: number;
|
|
265
|
+
mode: 'manual' | 'auto';
|
|
266
|
+
serverId?: string;
|
|
267
|
+
projectId?: string;
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* 세션 활동 유형
|
|
271
|
+
*/
|
|
272
|
+
export type SessionActivityType = 'work_started' | 'completed' | 'commit';
|
|
273
|
+
/**
|
|
274
|
+
* 세션 종료 사유
|
|
275
|
+
*/
|
|
276
|
+
export type SessionCloseReason = 'timeout' | 'manual' | 'auto-complete' | 'new-session';
|
|
117
277
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/prd.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* PRD (Product Requirements Document) 관리 유틸리티
|
|
3
3
|
*/
|
|
4
|
+
import type { PrdFormat } from '../types.js';
|
|
4
5
|
/**
|
|
5
6
|
* PRD 파일 검색 우선순위 목록
|
|
6
7
|
*/
|
|
@@ -36,4 +37,24 @@ export declare function getPrdInfo(prdPath: string): {
|
|
|
36
37
|
sizeKB: string;
|
|
37
38
|
lastModified: Date;
|
|
38
39
|
};
|
|
40
|
+
/**
|
|
41
|
+
* PRD 포맷을 감지합니다
|
|
42
|
+
* prd-taskmaster가 생성한 구조화된 PRD인지 일반 PRD인지 판단
|
|
43
|
+
*
|
|
44
|
+
* @param content PRD 파일 내용
|
|
45
|
+
* @returns 'taskmaster' | 'generic'
|
|
46
|
+
*/
|
|
47
|
+
export declare function detectPrdFormat(content: string): PrdFormat;
|
|
48
|
+
/**
|
|
49
|
+
* PRD 포맷을 감지하고 상세 정보를 반환합니다
|
|
50
|
+
*
|
|
51
|
+
* @param content PRD 파일 내용
|
|
52
|
+
* @returns 포맷 정보와 매칭 점수
|
|
53
|
+
*/
|
|
54
|
+
export declare function detectPrdFormatWithDetails(content: string): {
|
|
55
|
+
format: PrdFormat;
|
|
56
|
+
matchCount: number;
|
|
57
|
+
totalPatterns: number;
|
|
58
|
+
confidence: 'high' | 'medium' | 'low';
|
|
59
|
+
};
|
|
39
60
|
//# sourceMappingURL=prd.d.ts.map
|
package/dist/utils/prd.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prd.d.ts","sourceRoot":"","sources":["../../src/utils/prd.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"prd.d.ts","sourceRoot":"","sources":["../../src/utils/prd.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C;;GAEG;AACH,eAAO,MAAM,cAAc,UAU1B,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,MAAsB,GAAG,MAAM,GAAG,IAAI,CAoB9F;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,OAAO,GAAE,MAAsB,GAAG,OAAO,CAE/D;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,IAAI,CAAC;CACpB,CAWA;AA0BD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAY1D;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG;IAC3D,MAAM,EAAE,SAAS,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;CACvC,CAwBA"}
|
package/dist/utils/prd.js
CHANGED
|
@@ -74,4 +74,73 @@ export function getPrdInfo(prdPath) {
|
|
|
74
74
|
lastModified: stats.mtime,
|
|
75
75
|
};
|
|
76
76
|
}
|
|
77
|
+
/**
|
|
78
|
+
* prd-taskmaster 포맷 감지 패턴
|
|
79
|
+
* 이 패턴들이 충분히 매칭되면 taskmaster 포맷으로 판단
|
|
80
|
+
*/
|
|
81
|
+
const TASKMASTER_PATTERNS = [
|
|
82
|
+
/## Functional Requirements/i, // 기능 요구사항 섹션
|
|
83
|
+
/### Must Have \(P0\)/i, // P0 우선순위 섹션
|
|
84
|
+
/### Should Have \(P1\)/i, // P1 우선순위 섹션
|
|
85
|
+
/### Nice to Have \(P2\)/i, // P2 우선순위 섹션
|
|
86
|
+
/#### REQ-\d{3}:/, // 요구사항 ID 패턴
|
|
87
|
+
/\*\*Acceptance Criteria:\*\*/i, // 완료 조건 섹션
|
|
88
|
+
/\*\*Task Breakdown.*:\*\*/i, // 작업 분해 섹션
|
|
89
|
+
/\*\*Dependencies:\*\*/i, // 의존성 섹션
|
|
90
|
+
/- \[ \]/, // 체크리스트 항목
|
|
91
|
+
];
|
|
92
|
+
/**
|
|
93
|
+
* 필수 패턴 (이것들이 모두 있어야 taskmaster로 판단)
|
|
94
|
+
*/
|
|
95
|
+
const REQUIRED_PATTERNS = [
|
|
96
|
+
/#### REQ-\d{3}:/, // 요구사항 ID 필수
|
|
97
|
+
/\*\*Acceptance Criteria:\*\*/i, // 완료 조건 필수
|
|
98
|
+
];
|
|
99
|
+
/**
|
|
100
|
+
* PRD 포맷을 감지합니다
|
|
101
|
+
* prd-taskmaster가 생성한 구조화된 PRD인지 일반 PRD인지 판단
|
|
102
|
+
*
|
|
103
|
+
* @param content PRD 파일 내용
|
|
104
|
+
* @returns 'taskmaster' | 'generic'
|
|
105
|
+
*/
|
|
106
|
+
export function detectPrdFormat(content) {
|
|
107
|
+
// 필수 패턴이 모두 존재해야 함
|
|
108
|
+
const hasAllRequired = REQUIRED_PATTERNS.every(pattern => pattern.test(content));
|
|
109
|
+
if (!hasAllRequired) {
|
|
110
|
+
return 'generic';
|
|
111
|
+
}
|
|
112
|
+
// 선택 패턴 매칭 점수 계산 (최소 4개 이상이면 taskmaster로 판단)
|
|
113
|
+
const matchCount = TASKMASTER_PATTERNS.filter(pattern => pattern.test(content)).length;
|
|
114
|
+
const threshold = 4;
|
|
115
|
+
return matchCount >= threshold ? 'taskmaster' : 'generic';
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* PRD 포맷을 감지하고 상세 정보를 반환합니다
|
|
119
|
+
*
|
|
120
|
+
* @param content PRD 파일 내용
|
|
121
|
+
* @returns 포맷 정보와 매칭 점수
|
|
122
|
+
*/
|
|
123
|
+
export function detectPrdFormatWithDetails(content) {
|
|
124
|
+
const matchCount = TASKMASTER_PATTERNS.filter(pattern => pattern.test(content)).length;
|
|
125
|
+
const hasAllRequired = REQUIRED_PATTERNS.every(pattern => pattern.test(content));
|
|
126
|
+
const totalPatterns = TASKMASTER_PATTERNS.length;
|
|
127
|
+
let format = 'generic';
|
|
128
|
+
let confidence = 'low';
|
|
129
|
+
if (hasAllRequired) {
|
|
130
|
+
if (matchCount >= 7) {
|
|
131
|
+
format = 'taskmaster';
|
|
132
|
+
confidence = 'high';
|
|
133
|
+
}
|
|
134
|
+
else if (matchCount >= 4) {
|
|
135
|
+
format = 'taskmaster';
|
|
136
|
+
confidence = 'medium';
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
return {
|
|
140
|
+
format,
|
|
141
|
+
matchCount,
|
|
142
|
+
totalPatterns,
|
|
143
|
+
confidence,
|
|
144
|
+
};
|
|
145
|
+
}
|
|
77
146
|
//# sourceMappingURL=prd.js.map
|
package/dist/utils/prd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prd.js","sourceRoot":"","sources":["../../src/utils/prd.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"prd.js","sourceRoot":"","sources":["../../src/utils/prd.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 암시적 세션 관리 모듈
|
|
3
|
+
*
|
|
4
|
+
* 세션 라이프사이클:
|
|
5
|
+
* 1. 시작: work, auto 명령 실행 시 자동 생성 (서버 연동 시 서버에도 알림)
|
|
6
|
+
* 2. 활동 기록: work, complete, commit 실행 시 자동 기록
|
|
7
|
+
* 3. 종료: 24시간 비활성 후 새 명령 실행 시 자동 종료 (서버에도 요약 전송)
|
|
8
|
+
*
|
|
9
|
+
* 서버 연동:
|
|
10
|
+
* - aiag-adp 서버에 연결된 경우, 세션 시작/종료 시 서버와 동기화
|
|
11
|
+
* - 서버 연결 실패 시에도 로컬 세션은 정상 작동
|
|
12
|
+
*/
|
|
13
|
+
import type { SessionState, SessionActivityType, SessionCloseReason } from '../types.js';
|
|
14
|
+
/**
|
|
15
|
+
* 현재 세션 로드
|
|
16
|
+
*/
|
|
17
|
+
export declare function loadSessionState(baseDir: string): SessionState | null;
|
|
18
|
+
/**
|
|
19
|
+
* 세션 종료 처리 (progress.md에 요약 기록 + 서버 알림)
|
|
20
|
+
*/
|
|
21
|
+
export declare function finalizeSession(baseDir: string, session: SessionState, reason: SessionCloseReason): void;
|
|
22
|
+
/**
|
|
23
|
+
* 세션 확보 (없으면 생성, 만료되었으면 갱신)
|
|
24
|
+
*
|
|
25
|
+
* @param baseDir 프로젝트 루트 디렉토리
|
|
26
|
+
* @param mode 세션 모드 (manual: 수동 작업, auto: 자동 모드)
|
|
27
|
+
* @returns 현재 세션 상태
|
|
28
|
+
*/
|
|
29
|
+
export declare function ensureSession(baseDir: string, mode?: 'manual' | 'auto'): SessionState;
|
|
30
|
+
/**
|
|
31
|
+
* 활동 기록
|
|
32
|
+
*
|
|
33
|
+
* @param baseDir 프로젝트 루트 디렉토리
|
|
34
|
+
* @param type 활동 유형
|
|
35
|
+
* @param data 활동 데이터
|
|
36
|
+
*/
|
|
37
|
+
export declare function recordActivity(baseDir: string, type: SessionActivityType, data: {
|
|
38
|
+
featureId?: string;
|
|
39
|
+
commitHash?: string;
|
|
40
|
+
commitMessage?: string;
|
|
41
|
+
}): void;
|
|
42
|
+
/**
|
|
43
|
+
* 세션 강제 종료
|
|
44
|
+
*
|
|
45
|
+
* @param baseDir 프로젝트 루트 디렉토리
|
|
46
|
+
* @param reason 종료 사유
|
|
47
|
+
* @returns 종료된 세션 (없었으면 null)
|
|
48
|
+
*/
|
|
49
|
+
export declare function closeSession(baseDir: string, reason?: SessionCloseReason): SessionState | null;
|
|
50
|
+
/**
|
|
51
|
+
* 현재 세션 존재 여부 확인
|
|
52
|
+
*/
|
|
53
|
+
export declare function hasActiveSession(baseDir: string): boolean;
|
|
54
|
+
/**
|
|
55
|
+
* 세션 통계 조회
|
|
56
|
+
*/
|
|
57
|
+
export declare function getSessionStats(baseDir: string): {
|
|
58
|
+
active: boolean;
|
|
59
|
+
session: SessionState | null;
|
|
60
|
+
duration: string | null;
|
|
61
|
+
progressDelta: number | null;
|
|
62
|
+
};
|
|
63
|
+
//# sourceMappingURL=sessionManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessionManager.d.ts","sourceRoot":"","sources":["../../src/utils/sessionManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AASH,OAAO,KAAK,EACV,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAEnB,MAAM,aAAa,CAAC;AAiBrB;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAarE;AA6MD;;GAEG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,kBAAkB,GACzB,IAAI,CAyDN;AAMD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,QAAQ,GAAG,MAAiB,GACjC,YAAY,CAiBd;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,mBAAmB,EACzB,IAAI,EAAE;IACJ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GACA,IAAI,CA+BN;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,kBAA6B,GACpC,YAAY,GAAG,IAAI,CASrB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAGzD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG;IAChD,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;IAC7B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B,CAyBA"}
|