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
@@ -170,6 +170,82 @@ export declare const messages: {
170
170
  commandFailed: string;
171
171
  unknownError: string;
172
172
  };
173
+ login: {
174
+ header: string;
175
+ start: string;
176
+ requestingCode: string;
177
+ codeReceived: string;
178
+ userCode: string;
179
+ openBrowser: string;
180
+ browserOpening: string;
181
+ browserFailed: string;
182
+ waiting: string;
183
+ polling: string;
184
+ success: string;
185
+ email: string;
186
+ alreadyLoggedIn: string;
187
+ loggedInAs: string;
188
+ useForce: string;
189
+ timeout: string;
190
+ denied: string;
191
+ expired: string;
192
+ serverRequired: string;
193
+ invalidServer: string;
194
+ serverUnreachable: string;
195
+ promptServer: string;
196
+ };
197
+ logout: {
198
+ header: string;
199
+ success: string;
200
+ notLoggedIn: string;
201
+ confirm: string;
202
+ cancelled: string;
203
+ cleared: string;
204
+ serverNotified: string;
205
+ serverNotifyFailed: string;
206
+ };
207
+ config: {
208
+ header: string;
209
+ dirCreated: string;
210
+ saved: string;
211
+ loaded: string;
212
+ notFound: string;
213
+ };
214
+ connection: {
215
+ online: string;
216
+ offline: string;
217
+ checking: string;
218
+ };
219
+ connect: {
220
+ connecting: string;
221
+ connected: (name: string) => string;
222
+ syncCount: (count: number) => string;
223
+ notConnected: string;
224
+ invalidUrl: string;
225
+ alreadyConnected: (name: string) => string;
226
+ disconnected: (name: string) => string;
227
+ serverUnreachable: string;
228
+ projectNotFound: string;
229
+ accessDenied: string;
230
+ };
231
+ sync: {
232
+ syncing: string;
233
+ pullItem: (id: string) => string;
234
+ pushItem: (id: string) => string;
235
+ syncComplete: (count: number) => string;
236
+ syncConflict: (id: string) => string;
237
+ noChanges: string;
238
+ pendingSync: (count: number) => string;
239
+ };
240
+ api: {
241
+ serverConnected: string;
242
+ serverDisconnected: string;
243
+ sendingLog: string;
244
+ logSent: string;
245
+ claimSuccess: string;
246
+ completeSuccess: string;
247
+ syncFailed: string;
248
+ };
173
249
  };
174
250
  /**
175
251
  * 메시지 템플릿에 매개변수를 치환
@@ -1 +1 @@
1
- {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/utils/messages.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuNpB,CAAC;AAEF;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,GACtC,MAAM,CAKR;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAalD"}
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/utils/messages.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAqRC,MAAM;2BACL,MAAM;;;iCAGA,MAAM;6BAEV,MAAM;;;;;;;uBASZ,MAAM;uBACN,MAAM;8BACC,MAAM;2BACT,MAAM;;6BAEJ,MAAM;;;;;;;;;;;CAa9B,CAAC;AAEF;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,GACtC,MAAM,CAKR;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAalD"}
@@ -200,7 +200,93 @@ export const messages = {
200
200
  invalidJson: 'JSON 파싱 오류: {path}',
201
201
  commandFailed: '명령 실행 실패: {command}',
202
202
  unknownError: '알 수 없는 오류가 발생했습니다.',
203
- }
203
+ },
204
+ // ============================================
205
+ // 인증 관련 메시지 (Phase 3.4.1)
206
+ // ============================================
207
+ // Login 명령 메시지
208
+ login: {
209
+ header: '로그인',
210
+ start: '디바이스 인증을 시작합니다...',
211
+ requestingCode: '인증 코드 요청 중...',
212
+ codeReceived: '인증 코드를 받았습니다.',
213
+ userCode: '인증 코드',
214
+ openBrowser: '브라우저에서 다음 URL을 열어 인증을 완료하세요:',
215
+ browserOpening: '브라우저를 열고 있습니다...',
216
+ browserFailed: '브라우저를 자동으로 열 수 없습니다. 위 URL을 직접 열어주세요.',
217
+ waiting: '인증 대기 중... (Ctrl+C로 취소)',
218
+ polling: '인증 확인 중...',
219
+ success: '로그인 성공!',
220
+ email: '이메일',
221
+ alreadyLoggedIn: '이미 로그인되어 있습니다.',
222
+ loggedInAs: '현재 로그인: {email}',
223
+ useForce: '--force 옵션으로 다시 로그인할 수 있습니다.',
224
+ timeout: '인증 시간이 초과되었습니다. 다시 시도해주세요.',
225
+ denied: '인증이 거부되었습니다.',
226
+ expired: '인증 코드가 만료되었습니다. 다시 시도해주세요.',
227
+ serverRequired: '서버 URL이 필요합니다.',
228
+ invalidServer: '유효하지 않은 서버 URL입니다: {url}',
229
+ serverUnreachable: '서버에 연결할 수 없습니다: {url}',
230
+ promptServer: '서버 URL을 입력하세요 (예: https://aiag-adp.example.com)',
231
+ },
232
+ // Logout 명령 메시지
233
+ logout: {
234
+ header: '로그아웃',
235
+ success: '로그아웃 완료',
236
+ notLoggedIn: '로그인 상태가 아닙니다.',
237
+ confirm: '정말 로그아웃하시겠습니까?',
238
+ cancelled: '로그아웃이 취소되었습니다.',
239
+ cleared: '인증 정보가 삭제되었습니다.',
240
+ serverNotified: '서버에 로그아웃이 알림되었습니다.',
241
+ serverNotifyFailed: '서버 알림 실패 (로컬 인증 정보는 삭제됨)',
242
+ },
243
+ // 글로벌 설정 메시지
244
+ config: {
245
+ header: '설정',
246
+ dirCreated: '설정 디렉토리 생성됨: {path}',
247
+ saved: '설정이 저장되었습니다.',
248
+ loaded: '설정을 불러왔습니다.',
249
+ notFound: '설정 파일이 없습니다. 기본값을 사용합니다.',
250
+ },
251
+ // 연결 상태 메시지
252
+ connection: {
253
+ online: '서버 연결됨',
254
+ offline: '서버 연결 끊김 (로컬 모드)',
255
+ checking: '서버 연결 확인 중...',
256
+ },
257
+ // Connect 명령 메시지
258
+ connect: {
259
+ connecting: '프로젝트 연결 중...',
260
+ connected: (name) => `"${name}" 프로젝트에 연결되었습니다.`,
261
+ syncCount: (count) => `Feature ${count}개 동기화됨`,
262
+ notConnected: '연결된 프로젝트가 없습니다. `aiag connect <url>`을 실행하세요.',
263
+ invalidUrl: '유효하지 않은 프로젝트 URL입니다.',
264
+ alreadyConnected: (name) => `이미 "${name}" 프로젝트에 연결되어 있습니다.`,
265
+ disconnected: (name) => `"${name}" 프로젝트 연결이 해제되었습니다.`,
266
+ serverUnreachable: '서버에 연결할 수 없습니다.',
267
+ projectNotFound: '프로젝트를 찾을 수 없습니다.',
268
+ accessDenied: '이 프로젝트에 접근 권한이 없습니다.',
269
+ },
270
+ // Sync 명령 메시지
271
+ sync: {
272
+ syncing: '동기화 중...',
273
+ pullItem: (id) => `↓ ${id} 상태 업데이트 (서버 → 로컬)`,
274
+ pushItem: (id) => `↑ ${id} 상태 전송 (로컬 → 서버)`,
275
+ syncComplete: (count) => `동기화 완료 (${count}개 변경)`,
276
+ syncConflict: (id) => `⚠️ ${id} 충돌 발생`,
277
+ noChanges: '변경사항 없음',
278
+ pendingSync: (count) => `미동기화 항목: ${count}개`,
279
+ },
280
+ // API 메시지
281
+ api: {
282
+ serverConnected: '서버 연결됨',
283
+ serverDisconnected: '서버 연결 끊김 (로컬 모드)',
284
+ sendingLog: '로그 전송 중...',
285
+ logSent: '로그 전송됨',
286
+ claimSuccess: 'Feature 작업 시작 알림 전송됨',
287
+ completeSuccess: '완료 상태 서버 전송됨',
288
+ syncFailed: '서버 전송 실패 (다음 sync 시 전송됨)',
289
+ },
204
290
  };
205
291
  /**
206
292
  * 메시지 템플릿에 매개변수를 치환
@@ -1 +1 @@
1
- {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/utils/messages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/utils/messages.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,12 @@ export declare const colors: {
11
11
  cyan: import("chalk").ChalkInstance;
12
12
  dim: import("chalk").ChalkInstance;
13
13
  bold: import("chalk").ChalkInstance;
14
+ green: import("chalk").ChalkInstance;
15
+ red: import("chalk").ChalkInstance;
16
+ yellow: import("chalk").ChalkInstance;
17
+ blue: import("chalk").ChalkInstance;
18
+ gray: import("chalk").ChalkInstance;
19
+ white: import("chalk").ChalkInstance;
14
20
  };
15
21
  export declare const icons: {
16
22
  success: string;
@@ -91,4 +97,8 @@ export declare function printDivider(char?: string, length?: number): void;
91
97
  * Print empty lines
92
98
  */
93
99
  export declare function printEmptyLine(count?: number): void;
100
+ /**
101
+ * Print a box with title and content
102
+ */
103
+ export declare function printBox(title: string, lines: string[]): void;
94
104
  //# sourceMappingURL=output.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/utils/output.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEpE;;GAEG;AAGH,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC;AAE/C,eAAO,MAAM,MAAM;;;;;;;;CAQlB,CAAC;AAEF,eAAO,MAAM,KAAK;;;;;;;;;;;CAWjB,CAAC;AAEF;;GAEG;AACH,wBAAgB,WAAW,CACzB,UAAU,EAAE,MAAM,EAClB,KAAK,GAAE,MAAW,EAClB,MAAM,GAAE,MAAY,EACpB,KAAK,GAAE,MAAY,GAClB,MAAM,CAQR;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,MAAM,EAAE,OAAO,CAAC;CACjB,GAAG,MAAM,CAiBT;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAa3E;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAI/C;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAGhD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAElD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEhD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAElD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE/C;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEvE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,GAAG,IAAI,CAMjG;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,IAAI,CAOnG;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,GAAE,MAAY,EAAE,MAAM,GAAE,MAAW,GAAG,IAAI,CAE1E;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,GAAE,MAAU,GAAG,IAAI,CAItD"}
1
+ {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/utils/output.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEpE;;GAEG;AAGH,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC;AAE/C,eAAO,MAAM,MAAM;;;;;;;;;;;;;;CAelB,CAAC;AAEF,eAAO,MAAM,KAAK;;;;;;;;;;;CAWjB,CAAC;AAEF;;GAEG;AACH,wBAAgB,WAAW,CACzB,UAAU,EAAE,MAAM,EAClB,KAAK,GAAE,MAAW,EAClB,MAAM,GAAE,MAAY,EACpB,KAAK,GAAE,MAAY,GAClB,MAAM,CAQR;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,MAAM,EAAE,OAAO,CAAC;CACjB,GAAG,MAAM,CAiBT;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAa3E;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAI/C;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAGhD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAElD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEhD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAElD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE/C;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEvE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,GAAG,IAAI,CAMjG;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,IAAI,CAOnG;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,GAAE,MAAY,EAAE,MAAM,GAAE,MAAW,GAAG,IAAI,CAE1E;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,GAAE,MAAU,GAAG,IAAI,CAItD;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAoB7D"}
@@ -13,6 +13,13 @@ export const colors = {
13
13
  cyan: chalk.cyan,
14
14
  dim: chalk.dim,
15
15
  bold: chalk.bold,
16
+ // 추가 컬러 (Phase 3.4.2)
17
+ green: chalk.green,
18
+ red: chalk.red,
19
+ yellow: chalk.yellow,
20
+ blue: chalk.blue,
21
+ gray: chalk.gray,
22
+ white: chalk.white,
16
23
  };
17
24
  export const icons = {
18
25
  success: chalk.green('✓'),
@@ -151,4 +158,28 @@ export function printEmptyLine(count = 1) {
151
158
  console.log('');
152
159
  }
153
160
  }
161
+ /**
162
+ * Print a box with title and content
163
+ */
164
+ export function printBox(title, lines) {
165
+ const maxLength = Math.max(title.length + 4, ...lines.map((line) => stripAnsi(line).length + 4));
166
+ const topBorder = '┌' + '─'.repeat(maxLength) + '┐';
167
+ const bottomBorder = '└' + '─'.repeat(maxLength) + '┘';
168
+ console.log(colors.dim(topBorder));
169
+ console.log(colors.dim('│ ') + colors.bold(title) + ' '.repeat(maxLength - title.length - 2) + colors.dim(' │'));
170
+ console.log(colors.dim('│' + '─'.repeat(maxLength) + '│'));
171
+ for (const line of lines) {
172
+ const strippedLength = stripAnsi(line).length;
173
+ const padding = maxLength - strippedLength - 2;
174
+ console.log(colors.dim('│ ') + line + ' '.repeat(Math.max(0, padding)) + colors.dim(' │'));
175
+ }
176
+ console.log(colors.dim(bottomBorder));
177
+ }
178
+ /**
179
+ * Strip ANSI codes from string (for length calculation)
180
+ */
181
+ function stripAnsi(str) {
182
+ // eslint-disable-next-line no-control-regex
183
+ return str.replace(/\x1B\[[0-?]*[ -/]*[@-~]/g, '');
184
+ }
154
185
  //# sourceMappingURL=output.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/utils/output.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/utils/output.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * 사용자 입력 프롬프트 유틸리티
3
+ */
4
+ /**
5
+ * 사용자에게 확인 프롬프트 표시
6
+ * @param message 표시할 메시지
7
+ * @returns 사용자가 y/yes를 입력하면 true
8
+ */
9
+ export declare function confirmPrompt(message: string): Promise<boolean>;
10
+ //# sourceMappingURL=prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/utils/prompt.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAYrE"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * 사용자 입력 프롬프트 유틸리티
3
+ */
4
+ import readline from 'readline';
5
+ /**
6
+ * 사용자에게 확인 프롬프트 표시
7
+ * @param message 표시할 메시지
8
+ * @returns 사용자가 y/yes를 입력하면 true
9
+ */
10
+ export async function confirmPrompt(message) {
11
+ const rl = readline.createInterface({
12
+ input: process.stdin,
13
+ output: process.stdout,
14
+ });
15
+ return new Promise((resolve) => {
16
+ rl.question(`${message} (y/N): `, (answer) => {
17
+ rl.close();
18
+ resolve(answer.toLowerCase() === 'y' || answer.toLowerCase() === 'yes');
19
+ });
20
+ });
21
+ }
22
+ //# sourceMappingURL=prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/utils/prompt.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAe;IACjD,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;QAClC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IAEH,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,EAAE,CAAC,QAAQ,CAAC,GAAG,OAAO,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE;YAC3C,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,IAAI,MAAM,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,183 @@
1
+ /**
2
+ * SSE (Server-Sent Events) 클라이언트
3
+ *
4
+ * aiag-adp 서버로부터 실시간 로그 및 이벤트를 수신
5
+ *
6
+ * 기능:
7
+ * - 서버 이벤트 실시간 수신
8
+ * - 자동 재연결 (백오프 알고리즘)
9
+ * - 하트비트 감지
10
+ * - 이벤트 타입별 핸들러 등록
11
+ */
12
+ import { EventEmitter } from 'events';
13
+ import type { SSEEvent, SSEFeatureEvent, SSESessionEvent, SSEAgentEvent, SSELogEvent, SSEErrorEvent, SSEHeartbeatEvent, SSEConnectedEvent } from '../api/types.js';
14
+ /**
15
+ * SSE 클라이언트 설정
16
+ */
17
+ export interface SSEClientConfig {
18
+ /** 서버 URL */
19
+ serverUrl: string;
20
+ /** 프로젝트 ID */
21
+ projectId: string;
22
+ /** 액세스 토큰 */
23
+ accessToken: string;
24
+ /** 자동 재연결 여부 (기본: true) */
25
+ autoReconnect?: boolean;
26
+ /** 최대 재연결 시도 횟수 (기본: 10) */
27
+ maxReconnectAttempts?: number;
28
+ /** 기본 재연결 대기 시간 (ms, 기본: 1000) */
29
+ baseReconnectDelay?: number;
30
+ /** 최대 재연결 대기 시간 (ms, 기본: 30000) */
31
+ maxReconnectDelay?: number;
32
+ /** 하트비트 타임아웃 (ms, 기본: 60000) */
33
+ heartbeatTimeout?: number;
34
+ }
35
+ /**
36
+ * SSE 클라이언트 상태
37
+ */
38
+ export type SSEClientState = 'disconnected' | 'connecting' | 'connected' | 'reconnecting' | 'closed';
39
+ /**
40
+ * SSE 클라이언트
41
+ *
42
+ * @example
43
+ * ```ts
44
+ * const client = new SSEClient({
45
+ * serverUrl: 'http://localhost:3000',
46
+ * projectId: 'abc123',
47
+ * accessToken: 'token...',
48
+ * });
49
+ *
50
+ * client.on('feature_completed', (event) => {
51
+ * console.log('Feature completed:', event.featureLocalId);
52
+ * });
53
+ *
54
+ * client.on('log', (event) => {
55
+ * console.log(`[${event.level}] ${event.message}`);
56
+ * });
57
+ *
58
+ * await client.connect();
59
+ * ```
60
+ */
61
+ export declare class SSEClient extends EventEmitter {
62
+ private config;
63
+ private state;
64
+ private abortController;
65
+ private reconnectAttempts;
66
+ private reconnectTimeoutId;
67
+ private heartbeatTimeoutId;
68
+ private lastEventId;
69
+ private connectionId;
70
+ constructor(config: SSEClientConfig);
71
+ /**
72
+ * 현재 상태 반환
73
+ */
74
+ getState(): SSEClientState;
75
+ /**
76
+ * 연결 ID 반환
77
+ */
78
+ getConnectionId(): string | null;
79
+ /**
80
+ * SSE 스트림에 연결
81
+ */
82
+ connect(): Promise<void>;
83
+ /**
84
+ * SSE 스트림 연결 해제
85
+ */
86
+ disconnect(): void;
87
+ /**
88
+ * 실제 연결 시작
89
+ */
90
+ private startConnection;
91
+ /**
92
+ * 스트림 데이터 읽기
93
+ */
94
+ private readStream;
95
+ /**
96
+ * 메시지 처리
97
+ */
98
+ private handleMessage;
99
+ /**
100
+ * 연결됨 이벤트 처리
101
+ */
102
+ private handleConnectedEvent;
103
+ /**
104
+ * 하트비트 이벤트 처리
105
+ */
106
+ private handleHeartbeatEvent;
107
+ /**
108
+ * 재연결 스케줄링
109
+ */
110
+ private scheduleReconnect;
111
+ /**
112
+ * 하트비트 타이머 시작
113
+ */
114
+ private startHeartbeatTimer;
115
+ /**
116
+ * 하트비트 타이머 리셋
117
+ */
118
+ private resetHeartbeatTimer;
119
+ /**
120
+ * 하트비트 타이머 중지
121
+ */
122
+ private stopHeartbeatTimer;
123
+ /**
124
+ * 상태 변경
125
+ */
126
+ private setState;
127
+ /**
128
+ * 리소스 정리
129
+ */
130
+ private cleanup;
131
+ /**
132
+ * 설정 업데이트
133
+ */
134
+ updateConfig(config: Partial<SSEClientConfig>): void;
135
+ }
136
+ export interface SSEClientEventMap {
137
+ connected: SSEConnectedEvent;
138
+ disconnected: {
139
+ reason: string;
140
+ };
141
+ reconnecting: {
142
+ attempt: number;
143
+ maxAttempts: number;
144
+ delay: number;
145
+ };
146
+ max_reconnect_attempts: {
147
+ attempts: number;
148
+ };
149
+ state_change: {
150
+ previous: SSEClientState;
151
+ current: SSEClientState;
152
+ };
153
+ heartbeat: SSEHeartbeatEvent;
154
+ heartbeat_timeout: void;
155
+ feature_claimed: SSEFeatureEvent;
156
+ feature_progress: SSEFeatureEvent;
157
+ feature_completed: SSEFeatureEvent;
158
+ feature_failed: SSEFeatureEvent;
159
+ session_started: SSESessionEvent;
160
+ session_ended: SSESessionEvent;
161
+ agent_connected: SSEAgentEvent;
162
+ agent_disconnected: SSEAgentEvent;
163
+ log: SSELogEvent;
164
+ error: SSEErrorEvent | {
165
+ type: string;
166
+ message: string;
167
+ error?: unknown;
168
+ };
169
+ event: SSEEvent;
170
+ parse_error: {
171
+ data: string;
172
+ error: unknown;
173
+ };
174
+ }
175
+ /**
176
+ * SSE 클라이언트 생성 및 연결
177
+ */
178
+ export declare function createSSEClient(config: SSEClientConfig): Promise<SSEClient>;
179
+ /**
180
+ * SSE 이벤트를 콘솔에 포맷팅하여 출력하는 헬퍼
181
+ */
182
+ export declare function formatSSEEvent(event: SSEEvent): string;
183
+ //# sourceMappingURL=sseClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sseClient.d.ts","sourceRoot":"","sources":["../../src/utils/sseClient.ts"],"names":[],"mappings":"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"}