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.
Files changed (100) hide show
  1. package/README.md +72 -37
  2. package/dist/api/client.d.ts +9 -1
  3. package/dist/api/client.d.ts.map +1 -1
  4. package/dist/api/client.js +20 -0
  5. package/dist/api/client.js.map +1 -1
  6. package/dist/api/endpoints.d.ts +2 -0
  7. package/dist/api/endpoints.d.ts.map +1 -1
  8. package/dist/api/endpoints.js +2 -0
  9. package/dist/api/endpoints.js.map +1 -1
  10. package/dist/api/types.d.ts +34 -0
  11. package/dist/api/types.d.ts.map +1 -1
  12. package/dist/cli.js +60 -9
  13. package/dist/cli.js.map +1 -1
  14. package/dist/commands/commit.d.ts.map +1 -1
  15. package/dist/commands/commit.js +37 -1
  16. package/dist/commands/commit.js.map +1 -1
  17. package/dist/commands/complete.d.ts.map +1 -1
  18. package/dist/commands/complete.js +11 -1
  19. package/dist/commands/complete.js.map +1 -1
  20. package/dist/commands/feature.d.ts +11 -0
  21. package/dist/commands/feature.d.ts.map +1 -0
  22. package/dist/commands/feature.js +153 -0
  23. package/dist/commands/feature.js.map +1 -0
  24. package/dist/commands/init.d.ts +1 -1
  25. package/dist/commands/init.d.ts.map +1 -1
  26. package/dist/commands/init.js +29 -78
  27. package/dist/commands/init.js.map +1 -1
  28. package/dist/commands/prd.d.ts +12 -0
  29. package/dist/commands/prd.d.ts.map +1 -0
  30. package/dist/commands/prd.js +179 -0
  31. package/dist/commands/prd.js.map +1 -0
  32. package/dist/commands/session.d.ts +29 -0
  33. package/dist/commands/session.d.ts.map +1 -1
  34. package/dist/commands/session.js +270 -120
  35. package/dist/commands/session.js.map +1 -1
  36. package/dist/commands/sync.d.ts +10 -0
  37. package/dist/commands/sync.d.ts.map +1 -1
  38. package/dist/commands/sync.js +95 -2
  39. package/dist/commands/sync.js.map +1 -1
  40. package/dist/commands/work.d.ts.map +1 -1
  41. package/dist/commands/work.js +13 -1
  42. package/dist/commands/work.js.map +1 -1
  43. package/dist/prompts/index.d.ts +2 -0
  44. package/dist/prompts/index.d.ts.map +1 -1
  45. package/dist/prompts/index.js +2 -0
  46. package/dist/prompts/index.js.map +1 -1
  47. package/dist/prompts/prd.d.ts +28 -0
  48. package/dist/prompts/prd.d.ts.map +1 -0
  49. package/dist/prompts/prd.js +105 -0
  50. package/dist/prompts/prd.js.map +1 -0
  51. package/dist/skills/index.d.ts +12 -0
  52. package/dist/skills/index.d.ts.map +1 -0
  53. package/dist/skills/index.js +12 -0
  54. package/dist/skills/index.js.map +1 -0
  55. package/dist/skills/installer.d.ts +38 -0
  56. package/dist/skills/installer.d.ts.map +1 -0
  57. package/dist/skills/installer.js +153 -0
  58. package/dist/skills/installer.js.map +1 -0
  59. package/dist/skills/loader.d.ts +34 -0
  60. package/dist/skills/loader.d.ts.map +1 -0
  61. package/dist/skills/loader.js +134 -0
  62. package/dist/skills/loader.js.map +1 -0
  63. package/dist/skills/runner.d.ts +14 -0
  64. package/dist/skills/runner.d.ts.map +1 -0
  65. package/dist/skills/runner.js +238 -0
  66. package/dist/skills/runner.js.map +1 -0
  67. package/dist/types.d.ts +160 -0
  68. package/dist/types.d.ts.map +1 -1
  69. package/dist/utils/prd.d.ts +21 -0
  70. package/dist/utils/prd.d.ts.map +1 -1
  71. package/dist/utils/prd.js +69 -0
  72. package/dist/utils/prd.js.map +1 -1
  73. package/dist/utils/sessionManager.d.ts +63 -0
  74. package/dist/utils/sessionManager.d.ts.map +1 -0
  75. package/dist/utils/sessionManager.js +372 -0
  76. package/dist/utils/sessionManager.js.map +1 -0
  77. package/dist/utils/taskmasterConverter.d.ts +72 -0
  78. package/dist/utils/taskmasterConverter.d.ts.map +1 -0
  79. package/dist/utils/taskmasterConverter.js +401 -0
  80. package/dist/utils/taskmasterConverter.js.map +1 -0
  81. package/dist/utils/taskmasterParser.d.ts +35 -0
  82. package/dist/utils/taskmasterParser.d.ts.map +1 -0
  83. package/dist/utils/taskmasterParser.js +259 -0
  84. package/dist/utils/taskmasterParser.js.map +1 -0
  85. package/package.json +1 -1
  86. package/templates/skills/prd-taskmaster/.taskmaster/docs/prd.md +2571 -0
  87. package/templates/skills/prd-taskmaster/.taskmaster/scripts/execution-state.py +87 -0
  88. package/templates/skills/prd-taskmaster/.taskmaster/scripts/learn-accuracy.py +113 -0
  89. package/templates/skills/prd-taskmaster/.taskmaster/scripts/rollback.sh +71 -0
  90. package/templates/skills/prd-taskmaster/.taskmaster/scripts/security-audit.py +130 -0
  91. package/templates/skills/prd-taskmaster/.taskmaster/scripts/track-time.py +133 -0
  92. package/templates/skills/prd-taskmaster/LICENSE +21 -0
  93. package/templates/skills/prd-taskmaster/README.md +608 -0
  94. package/templates/skills/prd-taskmaster/SKILL.md +1258 -0
  95. package/templates/skills/prd-taskmaster/reference/taskmaster-integration-guide.md +645 -0
  96. package/templates/skills/prd-taskmaster/reference/validation-checklist.md +394 -0
  97. package/templates/skills/prd-taskmaster/scripts/setup-taskmaster.sh +112 -0
  98. package/templates/skills/prd-taskmaster/templates/CLAUDE.md.template +635 -0
  99. package/templates/skills/prd-taskmaster/templates/taskmaster-prd-comprehensive.md +983 -0
  100. 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
@@ -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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"}
@@ -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
@@ -1 +1 @@
1
- {"version":3,"file":"prd.d.ts","sourceRoot":"","sources":["../../src/utils/prd.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH;;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"}
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
@@ -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;AAE7B;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,QAAQ;IACR,iBAAiB;IACjB,aAAa;IACb,aAAa;IACb,sBAAsB;IACtB,sBAAsB;IACtB,cAAc;IACd,aAAa;IACb,sBAAsB;CACvB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,OAAO,CAAC,aAAsB,EAAE,UAAkB,OAAO,CAAC,GAAG,EAAE;IAC7E,iBAAiB;IACjB,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QACtD,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,iCAAiC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ;IACR,KAAK,MAAM,SAAS,IAAI,cAAc,EAAE,CAAC;QACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC/C,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,OAAO,CAAC,OAAe;IACrC,OAAO,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC3C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,MAAM,CAAC,UAAkB,OAAO,CAAC,GAAG,EAAE;IACpD,OAAO,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;AAC9C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,OAAe;IAOxC,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAE9B,OAAO;QACL,IAAI,EAAE,OAAO;QACb,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;QAC7C,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QACtC,YAAY,EAAE,KAAK,CAAC,KAAK;KAC1B,CAAC;AACJ,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"}