aiag-cli 1.7.1 → 2.1.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 +125 -88
- package/dist/api/client.d.ts +170 -0
- package/dist/api/client.d.ts.map +1 -0
- package/dist/api/client.js +513 -0
- package/dist/api/client.js.map +1 -0
- package/dist/api/endpoints.d.ts +112 -0
- package/dist/api/endpoints.d.ts.map +1 -0
- package/dist/api/endpoints.js +150 -0
- package/dist/api/endpoints.js.map +1 -0
- package/dist/api/types.d.ts +395 -0
- package/dist/api/types.d.ts.map +1 -0
- package/dist/api/types.js +7 -0
- package/dist/api/types.js.map +1 -0
- package/dist/auth/credentials.d.ts +73 -0
- package/dist/auth/credentials.d.ts.map +1 -0
- package/dist/auth/credentials.js +150 -0
- package/dist/auth/credentials.js.map +1 -0
- package/dist/auth/device.d.ts +58 -0
- package/dist/auth/device.d.ts.map +1 -0
- package/dist/auth/device.js +235 -0
- package/dist/auth/device.js.map +1 -0
- package/dist/auth/token.d.ts +55 -0
- package/dist/auth/token.d.ts.map +1 -0
- package/dist/auth/token.js +153 -0
- package/dist/auth/token.js.map +1 -0
- package/dist/cli.js +51 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/auto.d.ts.map +1 -1
- package/dist/commands/auto.js +321 -236
- package/dist/commands/auto.js.map +1 -1
- package/dist/commands/complete.d.ts +1 -0
- package/dist/commands/complete.d.ts.map +1 -1
- package/dist/commands/complete.js +30 -0
- package/dist/commands/complete.js.map +1 -1
- package/dist/commands/connect.d.ts +25 -0
- package/dist/commands/connect.d.ts.map +1 -0
- package/dist/commands/connect.js +305 -0
- package/dist/commands/connect.js.map +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +5 -1
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/login.d.ts +19 -0
- package/dist/commands/login.d.ts.map +1 -0
- package/dist/commands/login.js +119 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/logout.d.ts +15 -0
- package/dist/commands/logout.d.ts.map +1 -0
- package/dist/commands/logout.js +50 -0
- package/dist/commands/logout.js.map +1 -0
- package/dist/commands/next.d.ts +1 -0
- package/dist/commands/next.d.ts.map +1 -1
- package/dist/commands/next.js +41 -2
- package/dist/commands/next.js.map +1 -1
- package/dist/commands/project.d.ts +13 -0
- package/dist/commands/project.d.ts.map +1 -0
- package/dist/commands/project.js +92 -0
- package/dist/commands/project.js.map +1 -0
- package/dist/commands/session.d.ts +10 -2
- package/dist/commands/session.d.ts.map +1 -1
- package/dist/commands/session.js +80 -3
- package/dist/commands/session.js.map +1 -1
- package/dist/commands/status.d.ts +1 -0
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +51 -0
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/sync.d.ts +33 -0
- package/dist/commands/sync.d.ts.map +1 -0
- package/dist/commands/sync.js +555 -0
- package/dist/commands/sync.js.map +1 -0
- package/dist/commands/work.d.ts +1 -0
- package/dist/commands/work.d.ts.map +1 -1
- package/dist/commands/work.js +22 -1
- package/dist/commands/work.js.map +1 -1
- package/dist/config/global.d.ts +54 -0
- package/dist/config/global.d.ts.map +1 -0
- package/dist/config/global.js +110 -0
- package/dist/config/global.js.map +1 -0
- package/dist/prompts/coding.d.ts +31 -0
- package/dist/prompts/coding.d.ts.map +1 -0
- package/dist/prompts/coding.js +228 -0
- package/dist/prompts/coding.js.map +1 -0
- package/dist/prompts/index.d.ts +10 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +10 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/prompts/initializer.d.ts +20 -0
- package/dist/prompts/initializer.d.ts.map +1 -0
- package/dist/prompts/initializer.js +147 -0
- package/dist/prompts/initializer.js.map +1 -0
- package/dist/sdk/client.d.ts +67 -0
- package/dist/sdk/client.d.ts.map +1 -0
- package/dist/sdk/client.js +196 -0
- package/dist/sdk/client.js.map +1 -0
- package/dist/sdk/index.d.ts +8 -0
- package/dist/sdk/index.d.ts.map +1 -0
- package/dist/sdk/index.js +8 -0
- package/dist/sdk/index.js.map +1 -0
- package/dist/sdk/security.d.ts +43 -0
- package/dist/sdk/security.d.ts.map +1 -0
- package/dist/sdk/security.js +214 -0
- package/dist/sdk/security.js.map +1 -0
- package/dist/types.d.ts +64 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/connection.d.ts +126 -0
- package/dist/utils/connection.d.ts.map +1 -0
- package/dist/utils/connection.js +226 -0
- package/dist/utils/connection.js.map +1 -0
- package/dist/utils/initializerAgent.d.ts +0 -5
- package/dist/utils/initializerAgent.d.ts.map +1 -1
- package/dist/utils/initializerAgent.js +112 -31
- package/dist/utils/initializerAgent.js.map +1 -1
- package/dist/utils/messages.d.ts +76 -0
- package/dist/utils/messages.d.ts.map +1 -1
- package/dist/utils/messages.js +87 -1
- package/dist/utils/messages.js.map +1 -1
- package/dist/utils/output.d.ts +10 -0
- package/dist/utils/output.d.ts.map +1 -1
- package/dist/utils/output.js +31 -0
- package/dist/utils/output.js.map +1 -1
- package/dist/utils/prompt.d.ts +10 -0
- package/dist/utils/prompt.d.ts.map +1 -0
- package/dist/utils/prompt.js +22 -0
- package/dist/utils/prompt.js.map +1 -0
- package/dist/utils/sseClient.d.ts +183 -0
- package/dist/utils/sseClient.d.ts.map +1 -0
- package/dist/utils/sseClient.js +391 -0
- package/dist/utils/sseClient.js.map +1 -0
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -1,18 +1,23 @@
|
|
|
1
1
|
# aiag-cli
|
|
2
2
|
|
|
3
|
-
AI 에이전트 하네스 CLI -
|
|
3
|
+
AI 에이전트 하네스 CLI - Claude Agent SDK 기반 장기 실행 에이전트 개발 도구
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/aiag-cli)
|
|
6
|
+
[](https://opensource.org/licenses/MIT)
|
|
4
7
|
|
|
5
8
|
## 개요
|
|
6
9
|
|
|
7
|
-
`aiag-cli`는 Anthropic의 "Long-Running Agent"
|
|
10
|
+
`aiag-cli`는 Anthropic의 "Long-Running Agent" 아키텍처와 **Claude Agent SDK**를 사용하여 AI 에이전트 개발 세션을 관리하는 커맨드라인 도구입니다.
|
|
11
|
+
|
|
12
|
+
### 주요 기능
|
|
8
13
|
|
|
14
|
+
- **Claude Agent SDK 기반** (v2.0.0): 안정적인 SDK 직접 호출 방식
|
|
9
15
|
- **상태 외부화**: AI 메모리가 아닌 파일에 진행 상황 추적
|
|
16
|
+
- **자동 구현 모드**: `aiag auto`로 다중 기능 자동 구현
|
|
10
17
|
- **점진적 진행**: 테스트와 함께 한 번에 하나의 기능
|
|
11
18
|
- **세션 관리**: 명확한 시작/종료 시퀀스
|
|
12
|
-
-
|
|
13
|
-
-
|
|
14
|
-
- **🆕 PRD 기반 초기화**: PRD 문서로부터 자동으로 기능 목록 생성
|
|
15
|
-
- **🆕 CLAUDE.md 자동 생성**: Claude Code가 즉시 이해할 수 있는 프로젝트 지침 문서 자동 생성
|
|
19
|
+
- **PRD 기반 초기화**: PRD 문서로부터 기능 목록 자동 생성
|
|
20
|
+
- **aiag-adp 통합**: 웹 플랫폼과 양방향 동기화
|
|
16
21
|
|
|
17
22
|
## 설치
|
|
18
23
|
|
|
@@ -24,13 +29,24 @@ npm install -g aiag-cli
|
|
|
24
29
|
npx aiag-cli init
|
|
25
30
|
```
|
|
26
31
|
|
|
32
|
+
### 필수 요구사항
|
|
33
|
+
|
|
34
|
+
- Node.js >= 18.0.0
|
|
35
|
+
- Claude Code OAuth 토큰 (SDK 사용을 위해)
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
# Claude Code CLI 설치 및 토큰 발급
|
|
39
|
+
npm install -g @anthropic-ai/claude-code-cli
|
|
40
|
+
claude login
|
|
41
|
+
```
|
|
42
|
+
|
|
27
43
|
## 빠른 시작
|
|
28
44
|
|
|
29
|
-
###
|
|
45
|
+
### 1. PRD 기반 자동 초기화
|
|
30
46
|
|
|
31
47
|
```bash
|
|
32
|
-
#
|
|
33
|
-
cat >
|
|
48
|
+
# PRD 문서 작성
|
|
49
|
+
cat > prd.md << 'EOF'
|
|
34
50
|
# 프로젝트명
|
|
35
51
|
|
|
36
52
|
## 목표
|
|
@@ -43,90 +59,101 @@ cat > PRD.md << 'EOF'
|
|
|
43
59
|
|
|
44
60
|
## 제약사항
|
|
45
61
|
- 제약사항 1
|
|
46
|
-
- 제약사항 2
|
|
47
62
|
EOF
|
|
48
63
|
|
|
49
|
-
#
|
|
50
|
-
aiag init
|
|
51
|
-
|
|
52
|
-
# 자동으로 다음이 생성됩니다:
|
|
53
|
-
# - .aiag/feature_list.json (PRD로부터 자동 생성)
|
|
54
|
-
# - .aiag/progress.md (진행 기록)
|
|
55
|
-
# - CLAUDE.md (Claude Code 작업 지침)
|
|
56
|
-
# - .aiag/init.sh (환경 설정 스크립트)
|
|
64
|
+
# AIAG 초기화 (PRD 분석 및 feature_list 자동 생성)
|
|
65
|
+
aiag init --from-prd prd.md
|
|
57
66
|
|
|
58
|
-
#
|
|
67
|
+
# 상태 확인
|
|
59
68
|
aiag status
|
|
69
|
+
```
|
|
60
70
|
|
|
61
|
-
|
|
62
|
-
|
|
71
|
+
### 2. 자동 구현 모드 실행
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
# 기본 5개 기능 자동 구현
|
|
75
|
+
aiag auto
|
|
63
76
|
|
|
64
|
-
#
|
|
65
|
-
aiag
|
|
77
|
+
# 모든 기능 자동 구현 (무한 루프)
|
|
78
|
+
aiag auto --loop
|
|
66
79
|
|
|
67
|
-
#
|
|
68
|
-
aiag
|
|
80
|
+
# 상세 로그와 함께 실행
|
|
81
|
+
aiag auto --verbose
|
|
82
|
+
|
|
83
|
+
# 타임아웃 10분으로 설정
|
|
84
|
+
aiag auto --timeout 10
|
|
69
85
|
```
|
|
70
86
|
|
|
71
|
-
###
|
|
87
|
+
### 3. 결과 확인
|
|
72
88
|
|
|
73
89
|
```bash
|
|
74
|
-
#
|
|
75
|
-
aiag
|
|
76
|
-
|
|
77
|
-
# 2. .aiag/feature_list.json 수동 편집
|
|
90
|
+
# 진행 상황 확인
|
|
91
|
+
aiag status
|
|
78
92
|
|
|
79
|
-
#
|
|
93
|
+
# 웹페이지 열기 (macOS)
|
|
94
|
+
open index.html
|
|
80
95
|
```
|
|
81
96
|
|
|
82
97
|
## 명령어
|
|
83
98
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
|
87
|
-
|
|
|
88
|
-
| `aiag
|
|
89
|
-
| `aiag
|
|
90
|
-
| `aiag
|
|
91
|
-
| `aiag
|
|
92
|
-
| `aiag
|
|
93
|
-
| `aiag
|
|
94
|
-
| `aiag
|
|
95
|
-
| `aiag
|
|
96
|
-
|
|
97
|
-
###
|
|
99
|
+
### 핵심 명령어
|
|
100
|
+
|
|
101
|
+
| 명령어 | 설명 |
|
|
102
|
+
| -------------------- | --------------------------- |
|
|
103
|
+
| `aiag init` | 현재 디렉토리에 AIAG 초기화 |
|
|
104
|
+
| `aiag status` | 프로젝트 진행 상황 표시 |
|
|
105
|
+
| `aiag next` | 다음 기능 추천 받기 |
|
|
106
|
+
| `aiag work [id]` | 단일 기능 작업 시작 |
|
|
107
|
+
| `aiag auto [count]` | 자동 연속 구현 모드 |
|
|
108
|
+
| `aiag test [id]` | 기능 테스트 실행 |
|
|
109
|
+
| `aiag complete <id>` | 기능을 완료로 표시 |
|
|
110
|
+
| `aiag commit` | 자동 메시지로 변경사항 커밋 |
|
|
111
|
+
|
|
112
|
+
### 세션 명령어
|
|
113
|
+
|
|
114
|
+
| 명령어 | 설명 |
|
|
115
|
+
| -------------------- | -------------- |
|
|
116
|
+
| `aiag session start` | 코딩 세션 시작 |
|
|
117
|
+
| `aiag session end` | 현재 세션 종료 |
|
|
118
|
+
|
|
119
|
+
### 웹 플랫폼 연동 (aiag-adp)
|
|
120
|
+
|
|
121
|
+
| 명령어 | 설명 |
|
|
122
|
+
| -------------------- | ----------------------- |
|
|
123
|
+
| `aiag login` | 웹 플랫폼 로그인 |
|
|
124
|
+
| `aiag logout` | 로그아웃 |
|
|
125
|
+
| `aiag connect <url>` | 프로젝트 연결 |
|
|
126
|
+
| `aiag sync` | 기능 목록 양방향 동기화 |
|
|
127
|
+
|
|
128
|
+
### init 옵션
|
|
98
129
|
|
|
99
130
|
```bash
|
|
100
131
|
aiag init [options]
|
|
101
132
|
|
|
102
133
|
옵션:
|
|
103
|
-
-f, --force 기존 프로젝트 재초기화
|
|
134
|
+
-f, --force 기존 프로젝트 재초기화
|
|
104
135
|
--from-prd <file> 특정 PRD 파일 지정
|
|
105
136
|
--minimal PRD 분석 없이 최소 구조만 생성
|
|
106
137
|
```
|
|
107
138
|
|
|
108
|
-
###
|
|
139
|
+
### auto 옵션
|
|
109
140
|
|
|
110
141
|
```bash
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
aiag auto -v # 상세 로그 출력 (Claude Code 출력 포함)
|
|
123
|
-
aiag auto --timeout 15 # Claude Code 타임아웃 15분 설정
|
|
142
|
+
aiag auto [count] [options]
|
|
143
|
+
|
|
144
|
+
옵션:
|
|
145
|
+
--loop 무한 루프 모드 (Ctrl+C로 중단)
|
|
146
|
+
--until <featureId> 특정 기능에서 중단
|
|
147
|
+
-c, --category <cat> 카테고리 필터
|
|
148
|
+
--dry-run 시뮬레이션 (변경 없음)
|
|
149
|
+
--cooldown <seconds> 기능 간 대기 시간 (기본: 5)
|
|
150
|
+
--max-attempts <n> 최대 재시도 횟수 (기본: 3)
|
|
151
|
+
-v, --verbose 상세 로그 출력
|
|
152
|
+
--timeout <minutes> 타임아웃 (기본: 30분)
|
|
124
153
|
```
|
|
125
154
|
|
|
126
155
|
## 디렉토리 구조
|
|
127
156
|
|
|
128
|
-
`aiag init` 실행 후:
|
|
129
|
-
|
|
130
157
|
```
|
|
131
158
|
.aiag/
|
|
132
159
|
├── feature_list.json # 상태가 포함된 모든 기능
|
|
@@ -142,7 +169,7 @@ aiag auto --timeout 15 # Claude Code 타임아웃 15분 설정
|
|
|
142
169
|
|
|
143
170
|
```json
|
|
144
171
|
{
|
|
145
|
-
"id": "
|
|
172
|
+
"id": "FEAT-001",
|
|
146
173
|
"category": "core",
|
|
147
174
|
"priority": "critical",
|
|
148
175
|
"description": "기능 설명",
|
|
@@ -150,32 +177,11 @@ aiag auto --timeout 15 # Claude Code 타임아웃 15분 설정
|
|
|
150
177
|
"testCommand": "bun test",
|
|
151
178
|
"passes": false,
|
|
152
179
|
"lastTestedAt": null,
|
|
153
|
-
"implementedBy": null
|
|
180
|
+
"implementedBy": null,
|
|
181
|
+
"dependsOn": []
|
|
154
182
|
}
|
|
155
183
|
```
|
|
156
184
|
|
|
157
|
-
## 세션 워크플로우
|
|
158
|
-
|
|
159
|
-
### 세션 시작
|
|
160
|
-
|
|
161
|
-
```bash
|
|
162
|
-
aiag session start
|
|
163
|
-
# 1. 컨텍스트 확인을 위해 progress.md 확인
|
|
164
|
-
# 2. init.sh 실행
|
|
165
|
-
# 3. aiag next로 작업 찾기
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
### 세션 종료
|
|
169
|
-
|
|
170
|
-
```bash
|
|
171
|
-
aiag session end
|
|
172
|
-
# 체크리스트:
|
|
173
|
-
# □ 기능 완료 또는 클린 상태
|
|
174
|
-
# □ 모든 테스트 통과
|
|
175
|
-
# □ 변경사항 커밋됨
|
|
176
|
-
# □ progress.md 업데이트됨
|
|
177
|
-
```
|
|
178
|
-
|
|
179
185
|
## 카테고리
|
|
180
186
|
|
|
181
187
|
| 카테고리 | 설명 |
|
|
@@ -189,7 +195,7 @@ aiag session end
|
|
|
189
195
|
| `docs` | 문서화 |
|
|
190
196
|
| `devops` | 빌드/배포 |
|
|
191
197
|
|
|
192
|
-
## 우선순위
|
|
198
|
+
## 우선순위
|
|
193
199
|
|
|
194
200
|
1. **critical** - 다른 기능의 선행 조건
|
|
195
201
|
2. **high** - 핵심 사용자 가치
|
|
@@ -201,10 +207,41 @@ aiag session end
|
|
|
201
207
|
Anthropic의 Long-Running Agent 아키텍처 기반:
|
|
202
208
|
|
|
203
209
|
1. **하나의 기능 규칙** - 한 번에 하나의 기능만 작업
|
|
204
|
-
2. **완료 전 테스트** - passes: true 표시 전 항상 테스트
|
|
210
|
+
2. **완료 전 테스트** - `passes: true` 표시 전 항상 테스트
|
|
205
211
|
3. **클린 상태** - 코드를 절대 깨진 상태로 두지 않음
|
|
206
212
|
4. **진행 상황 문서화** - 매 세션마다 progress.md 업데이트
|
|
207
213
|
|
|
214
|
+
## 문서
|
|
215
|
+
|
|
216
|
+
- [빠른 시작 가이드](docs/quickstart-guide.md)
|
|
217
|
+
- [CLI 레퍼런스](docs/cli-reference.md)
|
|
218
|
+
- [워크플로우 가이드](docs/workflow-guide.md)
|
|
219
|
+
- [실용 사용 가이드](docs/practical-usage-guide.md)
|
|
220
|
+
|
|
221
|
+
## 변경 이력
|
|
222
|
+
|
|
223
|
+
### v2.0.0 (2024-12-22)
|
|
224
|
+
|
|
225
|
+
- **Breaking Change**: Claude Agent SDK로 완전 전환
|
|
226
|
+
- `--use-sdk` 옵션 제거 (SDK가 기본값)
|
|
227
|
+
- 안정성 및 타임아웃 관리 개선
|
|
228
|
+
- 보안 훅 (Bash 명령어 검증) 추가
|
|
229
|
+
- 비용 추적 기능 추가
|
|
230
|
+
|
|
231
|
+
### v1.9.0
|
|
232
|
+
|
|
233
|
+
- aiag-adp 웹 플랫폼 연동
|
|
234
|
+
- `login`, `logout`, `connect`, `sync` 명령어 추가
|
|
235
|
+
- SSE 실시간 스트리밍 지원
|
|
236
|
+
|
|
237
|
+
### v1.8.0
|
|
238
|
+
|
|
239
|
+
- `aiag auto` 자동 구현 모드 추가
|
|
240
|
+
- Claude Code 자동 실행
|
|
241
|
+
- 자동 재시도 및 실패 분석
|
|
242
|
+
|
|
243
|
+
[전체 변경 이력](CHANGELOG.md)
|
|
244
|
+
|
|
208
245
|
## Author
|
|
209
246
|
|
|
210
247
|
**주식회사 기반 (Giban Co., Ltd.)**
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HTTP 클라이언트
|
|
3
|
+
*
|
|
4
|
+
* aiag-adp 서버와 통신하는 API 클라이언트
|
|
5
|
+
*
|
|
6
|
+
* 기능:
|
|
7
|
+
* - Bearer 토큰 자동 첨부
|
|
8
|
+
* - 토큰 만료 시 자동 갱신
|
|
9
|
+
* - 연결 실패 시 로컬 모드 폴백
|
|
10
|
+
* - 재시도 로직
|
|
11
|
+
*/
|
|
12
|
+
import type { ProjectContext, ServerFeature, ServerProject, CreateProjectRequest, CreateProjectResponse, ClaimRequest, ClaimResponse, CompleteRequest, CompleteResponse, FeatureLogRequest, FeatureLogResponse, SessionStartRequest, SessionStartResponse, SessionEndRequest, SessionSummaryResponse, SyncRequest, SyncResponse, UserInfoResponse } from './types.js';
|
|
13
|
+
/**
|
|
14
|
+
* API 에러 클래스
|
|
15
|
+
*/
|
|
16
|
+
export declare class ApiError extends Error {
|
|
17
|
+
readonly code: string;
|
|
18
|
+
readonly status?: number | undefined;
|
|
19
|
+
readonly details?: Record<string, unknown> | undefined;
|
|
20
|
+
constructor(message: string, code: string, status?: number | undefined, details?: Record<string, unknown> | undefined);
|
|
21
|
+
static fromResponse(status: number, body: unknown): ApiError;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* 네트워크 에러 클래스
|
|
25
|
+
*/
|
|
26
|
+
export declare class NetworkError extends Error {
|
|
27
|
+
readonly originalError?: Error | undefined;
|
|
28
|
+
constructor(message: string, originalError?: Error | undefined);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* API 클라이언트 설정
|
|
32
|
+
*/
|
|
33
|
+
export interface ApiClientConfig {
|
|
34
|
+
serverUrl: string;
|
|
35
|
+
accessToken: string;
|
|
36
|
+
refreshToken?: string;
|
|
37
|
+
timeout?: number;
|
|
38
|
+
retries?: number;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* API 클라이언트
|
|
42
|
+
*/
|
|
43
|
+
export declare class ApiClient {
|
|
44
|
+
private serverUrl;
|
|
45
|
+
private accessToken;
|
|
46
|
+
private refreshToken?;
|
|
47
|
+
private timeout;
|
|
48
|
+
private retries;
|
|
49
|
+
private refreshPromise;
|
|
50
|
+
constructor(config: ApiClientConfig);
|
|
51
|
+
/**
|
|
52
|
+
* 토큰 업데이트
|
|
53
|
+
*/
|
|
54
|
+
updateTokens(accessToken: string, refreshToken?: string): void;
|
|
55
|
+
/**
|
|
56
|
+
* 서버 URL 반환
|
|
57
|
+
*/
|
|
58
|
+
getServerUrl(): string;
|
|
59
|
+
/**
|
|
60
|
+
* 기본 fetch 요청
|
|
61
|
+
*/
|
|
62
|
+
private request;
|
|
63
|
+
/**
|
|
64
|
+
* 토큰 갱신
|
|
65
|
+
*/
|
|
66
|
+
private refreshAccessToken;
|
|
67
|
+
private doRefreshToken;
|
|
68
|
+
private delay;
|
|
69
|
+
/**
|
|
70
|
+
* 프로젝트 정보 조회
|
|
71
|
+
*/
|
|
72
|
+
getProject(projectId: string): Promise<ServerProject>;
|
|
73
|
+
/**
|
|
74
|
+
* 프로젝트 생성
|
|
75
|
+
*/
|
|
76
|
+
createProject(request: CreateProjectRequest): Promise<CreateProjectResponse>;
|
|
77
|
+
/**
|
|
78
|
+
* 프로젝트 삭제
|
|
79
|
+
*/
|
|
80
|
+
deleteProject(projectId: string): Promise<void>;
|
|
81
|
+
/**
|
|
82
|
+
* 프로젝트 컨텍스트 조회 (전체 정보)
|
|
83
|
+
*/
|
|
84
|
+
getProjectContext(projectId: string): Promise<ProjectContext>;
|
|
85
|
+
/**
|
|
86
|
+
* 다음 Feature 조회
|
|
87
|
+
*/
|
|
88
|
+
getNextFeature(projectId: string): Promise<ServerFeature | null>;
|
|
89
|
+
/**
|
|
90
|
+
* Feature claim (작업 시작)
|
|
91
|
+
*/
|
|
92
|
+
claimFeature(featureId: string, request?: ClaimRequest): Promise<ClaimResponse>;
|
|
93
|
+
/**
|
|
94
|
+
* Feature unclaim (작업 취소)
|
|
95
|
+
*/
|
|
96
|
+
unclaimFeature(featureId: string): Promise<void>;
|
|
97
|
+
/**
|
|
98
|
+
* Feature 완료
|
|
99
|
+
*/
|
|
100
|
+
completeFeature(featureId: string, request: CompleteRequest): Promise<CompleteResponse>;
|
|
101
|
+
/**
|
|
102
|
+
* Feature 로그 전송
|
|
103
|
+
*/
|
|
104
|
+
sendLog(featureId: string, log: FeatureLogRequest): Promise<FeatureLogResponse>;
|
|
105
|
+
/**
|
|
106
|
+
* Feature 로그 조회
|
|
107
|
+
*/
|
|
108
|
+
getLogs(featureId: string): Promise<FeatureLogResponse[]>;
|
|
109
|
+
/**
|
|
110
|
+
* 세션 시작
|
|
111
|
+
*/
|
|
112
|
+
startSession(projectId: string, request?: SessionStartRequest): Promise<SessionStartResponse>;
|
|
113
|
+
/**
|
|
114
|
+
* 세션 종료
|
|
115
|
+
*/
|
|
116
|
+
endSession(sessionId: string, summary: SessionEndRequest): Promise<SessionSummaryResponse>;
|
|
117
|
+
/**
|
|
118
|
+
* 세션 목록 조회
|
|
119
|
+
*/
|
|
120
|
+
getSessions(projectId: string): Promise<SessionSummaryResponse[]>;
|
|
121
|
+
/**
|
|
122
|
+
* Feature 동기화
|
|
123
|
+
*/
|
|
124
|
+
syncFeatures(projectId: string, request: SyncRequest): Promise<SyncResponse>;
|
|
125
|
+
/**
|
|
126
|
+
* 서버 연결 확인
|
|
127
|
+
*/
|
|
128
|
+
checkHealth(): Promise<boolean>;
|
|
129
|
+
/**
|
|
130
|
+
* 인증 상태 확인
|
|
131
|
+
*/
|
|
132
|
+
checkAuth(): Promise<UserInfoResponse | null>;
|
|
133
|
+
/**
|
|
134
|
+
* SSE 스트림 URL 반환
|
|
135
|
+
*/
|
|
136
|
+
getStreamUrl(projectId: string): string;
|
|
137
|
+
/**
|
|
138
|
+
* 현재 액세스 토큰 반환 (SSE 클라이언트용)
|
|
139
|
+
*/
|
|
140
|
+
getAccessToken(): string;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* API 클라이언트 싱글톤 반환
|
|
144
|
+
* @returns ApiClient 또는 null (로그인되지 않은 경우)
|
|
145
|
+
*/
|
|
146
|
+
export declare function getApiClient(): ApiClient | null;
|
|
147
|
+
/**
|
|
148
|
+
* API 클라이언트 초기화 (인증 필요 시)
|
|
149
|
+
* @returns ApiClient 또는 null
|
|
150
|
+
*/
|
|
151
|
+
export declare function initApiClient(): Promise<ApiClient | null>;
|
|
152
|
+
/**
|
|
153
|
+
* API 클라이언트 재설정 (로그인 후 호출)
|
|
154
|
+
*/
|
|
155
|
+
export declare function resetApiClient(): void;
|
|
156
|
+
/**
|
|
157
|
+
* 새 API 클라이언트 생성 (로그인 시 사용)
|
|
158
|
+
*/
|
|
159
|
+
export declare function createApiClient(config: ApiClientConfig): ApiClient;
|
|
160
|
+
/**
|
|
161
|
+
* 서버 연결 상태 확인
|
|
162
|
+
*/
|
|
163
|
+
export declare function isServerReachable(serverUrl: string): Promise<boolean>;
|
|
164
|
+
/**
|
|
165
|
+
* 로컬 모드 폴백을 지원하는 API 호출 래퍼
|
|
166
|
+
*/
|
|
167
|
+
export declare function withServerFallback<T>(serverAction: () => Promise<T>, localFallback: () => T, options?: {
|
|
168
|
+
silent?: boolean;
|
|
169
|
+
}): Promise<T>;
|
|
170
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"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"}
|