aiag-cli 1.8.0 → 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 (121) hide show
  1. package/README.md +125 -89
  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/login.d.ts +19 -0
  40. package/dist/commands/login.d.ts.map +1 -0
  41. package/dist/commands/login.js +119 -0
  42. package/dist/commands/login.js.map +1 -0
  43. package/dist/commands/logout.d.ts +15 -0
  44. package/dist/commands/logout.d.ts.map +1 -0
  45. package/dist/commands/logout.js +50 -0
  46. package/dist/commands/logout.js.map +1 -0
  47. package/dist/commands/next.d.ts +1 -0
  48. package/dist/commands/next.d.ts.map +1 -1
  49. package/dist/commands/next.js +41 -2
  50. package/dist/commands/next.js.map +1 -1
  51. package/dist/commands/project.d.ts +13 -0
  52. package/dist/commands/project.d.ts.map +1 -0
  53. package/dist/commands/project.js +92 -0
  54. package/dist/commands/project.js.map +1 -0
  55. package/dist/commands/session.d.ts +10 -2
  56. package/dist/commands/session.d.ts.map +1 -1
  57. package/dist/commands/session.js +80 -3
  58. package/dist/commands/session.js.map +1 -1
  59. package/dist/commands/status.d.ts +1 -0
  60. package/dist/commands/status.d.ts.map +1 -1
  61. package/dist/commands/status.js +51 -0
  62. package/dist/commands/status.js.map +1 -1
  63. package/dist/commands/sync.d.ts +33 -0
  64. package/dist/commands/sync.d.ts.map +1 -0
  65. package/dist/commands/sync.js +555 -0
  66. package/dist/commands/sync.js.map +1 -0
  67. package/dist/commands/work.d.ts +1 -0
  68. package/dist/commands/work.d.ts.map +1 -1
  69. package/dist/commands/work.js +22 -1
  70. package/dist/commands/work.js.map +1 -1
  71. package/dist/config/global.d.ts +54 -0
  72. package/dist/config/global.d.ts.map +1 -0
  73. package/dist/config/global.js +110 -0
  74. package/dist/config/global.js.map +1 -0
  75. package/dist/prompts/coding.d.ts +31 -0
  76. package/dist/prompts/coding.d.ts.map +1 -0
  77. package/dist/prompts/coding.js +228 -0
  78. package/dist/prompts/coding.js.map +1 -0
  79. package/dist/prompts/index.d.ts +10 -0
  80. package/dist/prompts/index.d.ts.map +1 -0
  81. package/dist/prompts/index.js +10 -0
  82. package/dist/prompts/index.js.map +1 -0
  83. package/dist/prompts/initializer.d.ts +20 -0
  84. package/dist/prompts/initializer.d.ts.map +1 -0
  85. package/dist/prompts/initializer.js +147 -0
  86. package/dist/prompts/initializer.js.map +1 -0
  87. package/dist/sdk/client.d.ts +67 -0
  88. package/dist/sdk/client.d.ts.map +1 -0
  89. package/dist/sdk/client.js +196 -0
  90. package/dist/sdk/client.js.map +1 -0
  91. package/dist/sdk/index.d.ts +8 -0
  92. package/dist/sdk/index.d.ts.map +1 -0
  93. package/dist/sdk/index.js +8 -0
  94. package/dist/sdk/index.js.map +1 -0
  95. package/dist/sdk/security.d.ts +43 -0
  96. package/dist/sdk/security.d.ts.map +1 -0
  97. package/dist/sdk/security.js +214 -0
  98. package/dist/sdk/security.js.map +1 -0
  99. package/dist/types.d.ts +64 -0
  100. package/dist/types.d.ts.map +1 -1
  101. package/dist/utils/connection.d.ts +126 -0
  102. package/dist/utils/connection.d.ts.map +1 -0
  103. package/dist/utils/connection.js +226 -0
  104. package/dist/utils/connection.js.map +1 -0
  105. package/dist/utils/messages.d.ts +76 -0
  106. package/dist/utils/messages.d.ts.map +1 -1
  107. package/dist/utils/messages.js +87 -1
  108. package/dist/utils/messages.js.map +1 -1
  109. package/dist/utils/output.d.ts +10 -0
  110. package/dist/utils/output.d.ts.map +1 -1
  111. package/dist/utils/output.js +31 -0
  112. package/dist/utils/output.js.map +1 -1
  113. package/dist/utils/prompt.d.ts +10 -0
  114. package/dist/utils/prompt.d.ts.map +1 -0
  115. package/dist/utils/prompt.js +22 -0
  116. package/dist/utils/prompt.js.map +1 -0
  117. package/dist/utils/sseClient.d.ts +183 -0
  118. package/dist/utils/sseClient.d.ts.map +1 -0
  119. package/dist/utils/sseClient.js +391 -0
  120. package/dist/utils/sseClient.js.map +1 -0
  121. package/package.json +3 -2
package/README.md CHANGED
@@ -1,19 +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
- - **🆕 한국어 지원** (v1.7.0): 모든 CLI 출력이 한국어로 제공
14
- - **🆕 PRD 기반 초기화** (v1.7.0): PRD 문서로부터 기능 목록 생성
15
- - **🆕 CLAUDE.md 자동 생성** (v1.7.0): Claude Code가 즉시 이해할 수 있는 프로젝트 지침 문서 자동 생성
16
- - **✨ Claude Code 자동 실행** (v1.8.0): `aiag init` 실행 시 Claude Code가 자동으로 PRD 분석 및 feature_list.json 생성
19
+ - **PRD 기반 초기화**: PRD 문서로부터 기능 목록 자동 생성
20
+ - **aiag-adp 통합**: 플랫폼과 양방향 동기화
17
21
 
18
22
  ## 설치
19
23
 
@@ -25,13 +29,24 @@ npm install -g aiag-cli
25
29
  npx aiag-cli init
26
30
  ```
27
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
+
28
43
  ## 빠른 시작
29
44
 
30
- ### 방법 1: PRD 기반 자동 초기화 (권장)
45
+ ### 1. PRD 기반 자동 초기화
31
46
 
32
47
  ```bash
33
- # 1. PRD(Product Requirements Document) 작성
34
- cat > PRD.md << 'EOF'
48
+ # PRD 문서 작성
49
+ cat > prd.md << 'EOF'
35
50
  # 프로젝트명
36
51
 
37
52
  ## 목표
@@ -44,90 +59,101 @@ cat > PRD.md << 'EOF'
44
59
 
45
60
  ## 제약사항
46
61
  - 제약사항 1
47
- - 제약사항 2
48
62
  EOF
49
63
 
50
- # 2. AIAG 초기화 (한국어로 진행!)
51
- aiag init
52
-
53
- # 자동으로 다음이 생성됩니다:
54
- # - .aiag/feature_list.json (PRD로부터 자동 생성)
55
- # - .aiag/progress.md (진행 기록)
56
- # - CLAUDE.md (Claude Code 작업 지침)
57
- # - .aiag/init.sh (환경 설정 스크립트)
64
+ # AIAG 초기화 (PRD 분석 및 feature_list 자동 생성)
65
+ aiag init --from-prd prd.md
58
66
 
59
- # 3. 상태 확인
67
+ # 상태 확인
60
68
  aiag status
69
+ ```
61
70
 
62
- # 4. 다음 작업할 기능 가져오기
63
- aiag next
71
+ ### 2. 자동 구현 모드 실행
72
+
73
+ ```bash
74
+ # 기본 5개 기능 자동 구현
75
+ aiag auto
64
76
 
65
- # 5. 구현 완료 표시
66
- aiag complete FEATURE-001
77
+ # 모든 기능 자동 구현 (무한 루프)
78
+ aiag auto --loop
67
79
 
68
- # 6. 변경사항 커밋
69
- aiag commit
80
+ # 상세 로그와 함께 실행
81
+ aiag auto --verbose
82
+
83
+ # 타임아웃 10분으로 설정
84
+ aiag auto --timeout 10
70
85
  ```
71
86
 
72
- ### 방법 2: 수동 초기화
87
+ ### 3. 결과 확인
73
88
 
74
89
  ```bash
75
- # 1. 최소 구조만 생성
76
- aiag init --minimal
77
-
78
- # 2. .aiag/feature_list.json 수동 편집
90
+ # 진행 상황 확인
91
+ aiag status
79
92
 
80
- # 3. 나머지는 동일...
93
+ # 웹페이지 열기 (macOS)
94
+ open index.html
81
95
  ```
82
96
 
83
97
  ## 명령어
84
98
 
85
- | 명령어 | 설명 |
86
- | -------------------- | ------------------------------------- |
87
- | `aiag init` | 현재 디렉토리에 AIAG 초기화 |
88
- | `aiag status` | 프로젝트 진행 상황 표시 |
89
- | `aiag next` | 다음 기능 추천 받기 |
90
- | `aiag work [id]` | 단일 기능 작업 시작 (세션 + 프롬프트) |
91
- | `aiag auto [count]` | 자동 연속 구현 모드 |
92
- | `aiag test [id]` | 기능 테스트 실행 |
93
- | `aiag complete <id>` | 기능을 완료로 표시 |
94
- | `aiag commit` | 자동 메시지로 변경사항 커밋 |
95
- | `aiag session start` | 코딩 세션 시작 |
96
- | `aiag session end` | 현재 세션 종료 |
97
-
98
- ### 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 옵션
99
129
 
100
130
  ```bash
101
131
  aiag init [options]
102
132
 
103
133
  옵션:
104
- -f, --force 기존 프로젝트 재초기화 (CLAUDE.md 백업 후 재생성)
134
+ -f, --force 기존 프로젝트 재초기화
105
135
  --from-prd <file> 특정 PRD 파일 지정
106
136
  --minimal PRD 분석 없이 최소 구조만 생성
107
137
  ```
108
138
 
109
- ### 작업 지시 명령어
139
+ ### auto 옵션
110
140
 
111
141
  ```bash
112
- # 단일 기능 작업 시작 (세션 컨텍스트 업데이트 + 프롬프트)
113
- aiag work
114
- aiag work AUTH-001
115
-
116
- # 자동 연속 구현 (비대화형)
117
- aiag auto # 기본 5개
118
- aiag auto 10 # 10개 기능
119
- aiag auto --dry-run # 시뮬레이션
120
- aiag auto --loop # 무한 루프 (Ctrl+C로 중단)
121
- aiag auto --resume # 진행 중인 작업부터 이어서 시작
122
- aiag auto --loop --resume # 이어서 + 무한 루프
123
- aiag auto -v # 상세 로그 출력 (Claude Code 출력 포함)
124
- 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분)
125
153
  ```
126
154
 
127
155
  ## 디렉토리 구조
128
156
 
129
- `aiag init` 실행 후:
130
-
131
157
  ```
132
158
  .aiag/
133
159
  ├── feature_list.json # 상태가 포함된 모든 기능
@@ -143,7 +169,7 @@ aiag auto --timeout 15 # Claude Code 타임아웃 15분 설정
143
169
 
144
170
  ```json
145
171
  {
146
- "id": "CORE-001",
172
+ "id": "FEAT-001",
147
173
  "category": "core",
148
174
  "priority": "critical",
149
175
  "description": "기능 설명",
@@ -151,32 +177,11 @@ aiag auto --timeout 15 # Claude Code 타임아웃 15분 설정
151
177
  "testCommand": "bun test",
152
178
  "passes": false,
153
179
  "lastTestedAt": null,
154
- "implementedBy": null
180
+ "implementedBy": null,
181
+ "dependsOn": []
155
182
  }
156
183
  ```
157
184
 
158
- ## 세션 워크플로우
159
-
160
- ### 세션 시작
161
-
162
- ```bash
163
- aiag session start
164
- # 1. 컨텍스트 확인을 위해 progress.md 확인
165
- # 2. init.sh 실행
166
- # 3. aiag next로 작업 찾기
167
- ```
168
-
169
- ### 세션 종료
170
-
171
- ```bash
172
- aiag session end
173
- # 체크리스트:
174
- # □ 기능 완료 또는 클린 상태
175
- # □ 모든 테스트 통과
176
- # □ 변경사항 커밋됨
177
- # □ progress.md 업데이트됨
178
- ```
179
-
180
185
  ## 카테고리
181
186
 
182
187
  | 카테고리 | 설명 |
@@ -190,7 +195,7 @@ aiag session end
190
195
  | `docs` | 문서화 |
191
196
  | `devops` | 빌드/배포 |
192
197
 
193
- ## 우선순위 레벨
198
+ ## 우선순위
194
199
 
195
200
  1. **critical** - 다른 기능의 선행 조건
196
201
  2. **high** - 핵심 사용자 가치
@@ -202,10 +207,41 @@ aiag session end
202
207
  Anthropic의 Long-Running Agent 아키텍처 기반:
203
208
 
204
209
  1. **하나의 기능 규칙** - 한 번에 하나의 기능만 작업
205
- 2. **완료 전 테스트** - passes: true 표시 전 항상 테스트
210
+ 2. **완료 전 테스트** - `passes: true` 표시 전 항상 테스트
206
211
  3. **클린 상태** - 코드를 절대 깨진 상태로 두지 않음
207
212
  4. **진행 상황 문서화** - 매 세션마다 progress.md 업데이트
208
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
+
209
245
  ## Author
210
246
 
211
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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"}