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.
Files changed (128) hide show
  1. package/README.md +125 -88
  2. package/dist/api/client.d.ts +170 -0
  3. package/dist/api/client.d.ts.map +1 -0
  4. package/dist/api/client.js +513 -0
  5. package/dist/api/client.js.map +1 -0
  6. package/dist/api/endpoints.d.ts +112 -0
  7. package/dist/api/endpoints.d.ts.map +1 -0
  8. package/dist/api/endpoints.js +150 -0
  9. package/dist/api/endpoints.js.map +1 -0
  10. package/dist/api/types.d.ts +395 -0
  11. package/dist/api/types.d.ts.map +1 -0
  12. package/dist/api/types.js +7 -0
  13. package/dist/api/types.js.map +1 -0
  14. package/dist/auth/credentials.d.ts +73 -0
  15. package/dist/auth/credentials.d.ts.map +1 -0
  16. package/dist/auth/credentials.js +150 -0
  17. package/dist/auth/credentials.js.map +1 -0
  18. package/dist/auth/device.d.ts +58 -0
  19. package/dist/auth/device.d.ts.map +1 -0
  20. package/dist/auth/device.js +235 -0
  21. package/dist/auth/device.js.map +1 -0
  22. package/dist/auth/token.d.ts +55 -0
  23. package/dist/auth/token.d.ts.map +1 -0
  24. package/dist/auth/token.js +153 -0
  25. package/dist/auth/token.js.map +1 -0
  26. package/dist/cli.js +51 -1
  27. package/dist/cli.js.map +1 -1
  28. package/dist/commands/auto.d.ts.map +1 -1
  29. package/dist/commands/auto.js +321 -236
  30. package/dist/commands/auto.js.map +1 -1
  31. package/dist/commands/complete.d.ts +1 -0
  32. package/dist/commands/complete.d.ts.map +1 -1
  33. package/dist/commands/complete.js +30 -0
  34. package/dist/commands/complete.js.map +1 -1
  35. package/dist/commands/connect.d.ts +25 -0
  36. package/dist/commands/connect.d.ts.map +1 -0
  37. package/dist/commands/connect.js +305 -0
  38. package/dist/commands/connect.js.map +1 -0
  39. package/dist/commands/init.d.ts.map +1 -1
  40. package/dist/commands/init.js +5 -1
  41. package/dist/commands/init.js.map +1 -1
  42. package/dist/commands/login.d.ts +19 -0
  43. package/dist/commands/login.d.ts.map +1 -0
  44. package/dist/commands/login.js +119 -0
  45. package/dist/commands/login.js.map +1 -0
  46. package/dist/commands/logout.d.ts +15 -0
  47. package/dist/commands/logout.d.ts.map +1 -0
  48. package/dist/commands/logout.js +50 -0
  49. package/dist/commands/logout.js.map +1 -0
  50. package/dist/commands/next.d.ts +1 -0
  51. package/dist/commands/next.d.ts.map +1 -1
  52. package/dist/commands/next.js +41 -2
  53. package/dist/commands/next.js.map +1 -1
  54. package/dist/commands/project.d.ts +13 -0
  55. package/dist/commands/project.d.ts.map +1 -0
  56. package/dist/commands/project.js +92 -0
  57. package/dist/commands/project.js.map +1 -0
  58. package/dist/commands/session.d.ts +10 -2
  59. package/dist/commands/session.d.ts.map +1 -1
  60. package/dist/commands/session.js +80 -3
  61. package/dist/commands/session.js.map +1 -1
  62. package/dist/commands/status.d.ts +1 -0
  63. package/dist/commands/status.d.ts.map +1 -1
  64. package/dist/commands/status.js +51 -0
  65. package/dist/commands/status.js.map +1 -1
  66. package/dist/commands/sync.d.ts +33 -0
  67. package/dist/commands/sync.d.ts.map +1 -0
  68. package/dist/commands/sync.js +555 -0
  69. package/dist/commands/sync.js.map +1 -0
  70. package/dist/commands/work.d.ts +1 -0
  71. package/dist/commands/work.d.ts.map +1 -1
  72. package/dist/commands/work.js +22 -1
  73. package/dist/commands/work.js.map +1 -1
  74. package/dist/config/global.d.ts +54 -0
  75. package/dist/config/global.d.ts.map +1 -0
  76. package/dist/config/global.js +110 -0
  77. package/dist/config/global.js.map +1 -0
  78. package/dist/prompts/coding.d.ts +31 -0
  79. package/dist/prompts/coding.d.ts.map +1 -0
  80. package/dist/prompts/coding.js +228 -0
  81. package/dist/prompts/coding.js.map +1 -0
  82. package/dist/prompts/index.d.ts +10 -0
  83. package/dist/prompts/index.d.ts.map +1 -0
  84. package/dist/prompts/index.js +10 -0
  85. package/dist/prompts/index.js.map +1 -0
  86. package/dist/prompts/initializer.d.ts +20 -0
  87. package/dist/prompts/initializer.d.ts.map +1 -0
  88. package/dist/prompts/initializer.js +147 -0
  89. package/dist/prompts/initializer.js.map +1 -0
  90. package/dist/sdk/client.d.ts +67 -0
  91. package/dist/sdk/client.d.ts.map +1 -0
  92. package/dist/sdk/client.js +196 -0
  93. package/dist/sdk/client.js.map +1 -0
  94. package/dist/sdk/index.d.ts +8 -0
  95. package/dist/sdk/index.d.ts.map +1 -0
  96. package/dist/sdk/index.js +8 -0
  97. package/dist/sdk/index.js.map +1 -0
  98. package/dist/sdk/security.d.ts +43 -0
  99. package/dist/sdk/security.d.ts.map +1 -0
  100. package/dist/sdk/security.js +214 -0
  101. package/dist/sdk/security.js.map +1 -0
  102. package/dist/types.d.ts +64 -0
  103. package/dist/types.d.ts.map +1 -1
  104. package/dist/utils/connection.d.ts +126 -0
  105. package/dist/utils/connection.d.ts.map +1 -0
  106. package/dist/utils/connection.js +226 -0
  107. package/dist/utils/connection.js.map +1 -0
  108. package/dist/utils/initializerAgent.d.ts +0 -5
  109. package/dist/utils/initializerAgent.d.ts.map +1 -1
  110. package/dist/utils/initializerAgent.js +112 -31
  111. package/dist/utils/initializerAgent.js.map +1 -1
  112. package/dist/utils/messages.d.ts +76 -0
  113. package/dist/utils/messages.d.ts.map +1 -1
  114. package/dist/utils/messages.js +87 -1
  115. package/dist/utils/messages.js.map +1 -1
  116. package/dist/utils/output.d.ts +10 -0
  117. package/dist/utils/output.d.ts.map +1 -1
  118. package/dist/utils/output.js +31 -0
  119. package/dist/utils/output.js.map +1 -1
  120. package/dist/utils/prompt.d.ts +10 -0
  121. package/dist/utils/prompt.d.ts.map +1 -0
  122. package/dist/utils/prompt.js +22 -0
  123. package/dist/utils/prompt.js.map +1 -0
  124. package/dist/utils/sseClient.d.ts +183 -0
  125. package/dist/utils/sseClient.d.ts.map +1 -0
  126. package/dist/utils/sseClient.js +391 -0
  127. package/dist/utils/sseClient.js.map +1 -0
  128. package/package.json +3 -2
package/README.md CHANGED
@@ -1,18 +1,23 @@
1
1
  # aiag-cli
2
2
 
3
- AI 에이전트 하네스 CLI - Anthropic의 접근 방식을 기반으로 장기 실행 에이전트 개발 도구
3
+ AI 에이전트 하네스 CLI - Claude Agent SDK 기반 장기 실행 에이전트 개발 도구
4
+
5
+ [![npm version](https://badge.fury.io/js/aiag-cli.svg)](https://www.npmjs.com/package/aiag-cli)
6
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
4
7
 
5
8
  ## 개요
6
9
 
7
- `aiag-cli`는 Anthropic의 "Long-Running Agent" 아키텍처를 사용하여 AI 에이전트 개발 세션을 관리하는 커맨드라인 도구입니다. 다음 기능을 제공합니다:
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
- - **기능 추적**: 테스트 명령이 포함된 JSON 기반 기능 목록
13
- - **🆕 한국어 지원**: 모든 CLI 출력이 한국어로 제공
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
- ### 방법 1: PRD 기반 자동 초기화 (권장)
45
+ ### 1. PRD 기반 자동 초기화
30
46
 
31
47
  ```bash
32
- # 1. PRD(Product Requirements Document) 작성
33
- cat > PRD.md << 'EOF'
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
- # 2. AIAG 초기화 (한국어로 진행!)
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
- # 3. 상태 확인
67
+ # 상태 확인
59
68
  aiag status
69
+ ```
60
70
 
61
- # 4. 다음 작업할 기능 가져오기
62
- aiag next
71
+ ### 2. 자동 구현 모드 실행
72
+
73
+ ```bash
74
+ # 기본 5개 기능 자동 구현
75
+ aiag auto
63
76
 
64
- # 5. 구현 완료 표시
65
- aiag complete FEATURE-001
77
+ # 모든 기능 자동 구현 (무한 루프)
78
+ aiag auto --loop
66
79
 
67
- # 6. 변경사항 커밋
68
- aiag commit
80
+ # 상세 로그와 함께 실행
81
+ aiag auto --verbose
82
+
83
+ # 타임아웃 10분으로 설정
84
+ aiag auto --timeout 10
69
85
  ```
70
86
 
71
- ### 방법 2: 수동 초기화
87
+ ### 3. 결과 확인
72
88
 
73
89
  ```bash
74
- # 1. 최소 구조만 생성
75
- aiag init --minimal
76
-
77
- # 2. .aiag/feature_list.json 수동 편집
90
+ # 진행 상황 확인
91
+ aiag status
78
92
 
79
- # 3. 나머지는 동일...
93
+ # 웹페이지 열기 (macOS)
94
+ open index.html
80
95
  ```
81
96
 
82
97
  ## 명령어
83
98
 
84
- | 명령어 | 설명 |
85
- | -------------------- | ------------------------------------- |
86
- | `aiag init` | 현재 디렉토리에 AIAG 초기화 |
87
- | `aiag status` | 프로젝트 진행 상황 표시 |
88
- | `aiag next` | 다음 기능 추천 받기 |
89
- | `aiag work [id]` | 단일 기능 작업 시작 (세션 + 프롬프트) |
90
- | `aiag auto [count]` | 자동 연속 구현 모드 |
91
- | `aiag test [id]` | 기능 테스트 실행 |
92
- | `aiag complete <id>` | 기능을 완료로 표시 |
93
- | `aiag commit` | 자동 메시지로 변경사항 커밋 |
94
- | `aiag session start` | 코딩 세션 시작 |
95
- | `aiag session end` | 현재 세션 종료 |
96
-
97
- ### init 명령 옵션
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 기존 프로젝트 재초기화 (CLAUDE.md 백업 후 재생성)
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
- aiag work
113
- aiag work AUTH-001
114
-
115
- # 자동 연속 구현 (비대화형)
116
- aiag auto # 기본 5개
117
- aiag auto 10 # 10개 기능
118
- aiag auto --dry-run # 시뮬레이션
119
- aiag auto --loop # 무한 루프 (Ctrl+C로 중단)
120
- aiag auto --resume # 진행 중인 작업부터 이어서 시작
121
- aiag auto --loop --resume # 이어서 + 무한 루프
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": "CORE-001",
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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"}