@su-record/vibe 2.0.0 → 2.0.2

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 (69) hide show
  1. package/.claude/agents/explorer.md +48 -48
  2. package/.claude/agents/implementer.md +53 -53
  3. package/.claude/agents/searcher.md +54 -54
  4. package/.claude/agents/simplifier.md +119 -119
  5. package/.claude/agents/tester.md +49 -49
  6. package/.claude/commands/vibe.analyze.md +239 -239
  7. package/.claude/commands/vibe.continue.md +88 -88
  8. package/.claude/commands/vibe.diagram.md +178 -178
  9. package/.claude/commands/vibe.reason.md +306 -306
  10. package/.claude/commands/vibe.run.md +760 -760
  11. package/.claude/commands/vibe.spec.md +339 -339
  12. package/.claude/commands/vibe.tool.md +153 -153
  13. package/.claude/commands/vibe.ui.md +137 -137
  14. package/.claude/commands/vibe.verify.md +238 -238
  15. package/.claude/settings.json +152 -152
  16. package/.claude/settings.local.json +4 -57
  17. package/.vibe/config.json +9 -0
  18. package/.vibe/constitution.md +184 -184
  19. package/.vibe/rules/core/communication-guide.md +104 -104
  20. package/.vibe/rules/core/development-philosophy.md +52 -52
  21. package/.vibe/rules/core/quick-start.md +120 -120
  22. package/.vibe/rules/quality/bdd-contract-testing.md +388 -388
  23. package/.vibe/rules/quality/checklist.md +276 -276
  24. package/.vibe/rules/quality/testing-strategy.md +437 -437
  25. package/.vibe/rules/standards/anti-patterns.md +369 -369
  26. package/.vibe/rules/standards/code-structure.md +291 -291
  27. package/.vibe/rules/standards/complexity-metrics.md +312 -312
  28. package/.vibe/rules/standards/naming-conventions.md +198 -198
  29. package/.vibe/rules/tools/mcp-hi-ai-guide.md +665 -665
  30. package/.vibe/rules/tools/mcp-workflow.md +51 -51
  31. package/.vibe/setup.sh +31 -31
  32. package/CLAUDE.md +122 -122
  33. package/LICENSE +21 -21
  34. package/README.md +568 -568
  35. package/dist/cli/index.d.ts.map +1 -1
  36. package/dist/cli/index.js +391 -406
  37. package/dist/cli/index.js.map +1 -1
  38. package/dist/lib/MemoryManager.js +92 -92
  39. package/dist/lib/PythonParser.js +108 -108
  40. package/dist/lib/gemini-mcp.js +15 -15
  41. package/dist/lib/gemini-oauth.d.ts.map +1 -1
  42. package/dist/lib/gemini-oauth.js +41 -38
  43. package/dist/lib/gemini-oauth.js.map +1 -1
  44. package/dist/lib/gpt-mcp.js +17 -17
  45. package/dist/lib/gpt-oauth.d.ts.map +1 -1
  46. package/dist/lib/gpt-oauth.js +50 -45
  47. package/dist/lib/gpt-oauth.js.map +1 -1
  48. package/dist/tools/analytics/getUsageAnalytics.js +12 -12
  49. package/dist/tools/memory/createMemoryTimeline.js +10 -10
  50. package/dist/tools/memory/getMemoryGraph.js +12 -12
  51. package/dist/tools/memory/getSessionContext.js +9 -9
  52. package/dist/tools/memory/linkMemories.js +14 -14
  53. package/dist/tools/memory/listMemories.js +4 -4
  54. package/dist/tools/memory/recallMemory.js +4 -4
  55. package/dist/tools/memory/saveMemory.js +4 -4
  56. package/dist/tools/memory/searchMemoriesAdvanced.js +22 -22
  57. package/dist/tools/planning/generatePrd.js +46 -46
  58. package/dist/tools/prompt/enhancePromptGemini.js +160 -160
  59. package/dist/tools/reasoning/applyReasoningFramework.js +56 -56
  60. package/dist/tools/semantic/analyzeDependencyGraph.js +12 -12
  61. package/package.json +67 -67
  62. package/templates/constitution-template.md +184 -184
  63. package/templates/contract-backend-template.md +517 -517
  64. package/templates/contract-frontend-template.md +594 -594
  65. package/templates/feature-template.md +96 -96
  66. package/templates/hooks-template.json +103 -103
  67. package/templates/spec-template.md +199 -199
  68. package/dist/lib/vibe-mcp.d.ts.map +0 -1
  69. package/dist/lib/vibe-mcp.js.map +0 -1
@@ -35,114 +35,114 @@ function getPythonCommand() {
35
35
  const PYTHON_CMD = getPythonCommand();
36
36
  export class PythonParser {
37
37
  static cleanupRegistered = false;
38
- static pythonScript = `
39
- import ast
40
- import sys
41
- import json
42
-
43
- def analyze_code(code):
44
- try:
45
- tree = ast.parse(code)
46
- symbols = []
47
-
48
- for node in ast.walk(tree):
49
- if isinstance(node, ast.FunctionDef):
50
- symbols.append({
51
- 'name': node.name,
52
- 'kind': 'function',
53
- 'line': node.lineno,
54
- 'column': node.col_offset,
55
- 'endLine': node.end_lineno,
56
- 'docstring': ast.get_docstring(node)
57
- })
58
- elif isinstance(node, ast.ClassDef):
59
- symbols.append({
60
- 'name': node.name,
61
- 'kind': 'class',
62
- 'line': node.lineno,
63
- 'column': node.col_offset,
64
- 'endLine': node.end_lineno,
65
- 'docstring': ast.get_docstring(node)
66
- })
67
- elif isinstance(node, ast.Assign):
68
- for target in node.targets:
69
- if isinstance(target, ast.Name):
70
- symbols.append({
71
- 'name': target.id,
72
- 'kind': 'variable',
73
- 'line': node.lineno,
74
- 'column': node.col_offset
75
- })
76
- elif isinstance(node, ast.Import) or isinstance(node, ast.ImportFrom):
77
- for alias in node.names:
78
- symbols.append({
79
- 'name': alias.name,
80
- 'kind': 'import',
81
- 'line': node.lineno,
82
- 'column': node.col_offset
83
- })
84
-
85
- return {'success': True, 'symbols': symbols}
86
- except SyntaxError as e:
87
- return {'success': False, 'error': str(e)}
88
- except Exception as e:
89
- return {'success': False, 'error': str(e)}
90
-
91
- def calculate_complexity(code):
92
- try:
93
- tree = ast.parse(code)
94
-
95
- def cyclomatic_complexity(node):
96
- complexity = 1
97
- for child in ast.walk(node):
98
- if isinstance(child, (ast.If, ast.For, ast.While, ast.And, ast.Or, ast.ExceptHandler)):
99
- complexity += 1
100
- elif isinstance(child, ast.BoolOp):
101
- complexity += len(child.values) - 1
102
- return complexity
103
-
104
- functions = []
105
- classes = []
106
- total_complexity = 1
107
-
108
- for node in ast.walk(tree):
109
- if isinstance(node, ast.FunctionDef):
110
- func_complexity = cyclomatic_complexity(node)
111
- functions.append({
112
- 'name': node.name,
113
- 'complexity': func_complexity,
114
- 'line': node.lineno
115
- })
116
- total_complexity += func_complexity
117
- elif isinstance(node, ast.ClassDef):
118
- method_count = sum(1 for n in node.body if isinstance(n, ast.FunctionDef))
119
- classes.append({
120
- 'name': node.name,
121
- 'methods': method_count,
122
- 'line': node.lineno
123
- })
124
-
125
- return {
126
- 'success': True,
127
- 'cyclomaticComplexity': total_complexity,
128
- 'functions': functions,
129
- 'classes': classes
130
- }
131
- except Exception as e:
132
- return {'success': False, 'error': str(e)}
133
-
134
- if __name__ == '__main__':
135
- code = sys.stdin.read()
136
- action = sys.argv[1] if len(sys.argv) > 1 else 'symbols'
137
-
138
- if action == 'symbols':
139
- result = analyze_code(code)
140
- elif action == 'complexity':
141
- result = calculate_complexity(code)
142
- else:
143
- result = {'success': False, 'error': 'Unknown action'}
144
-
145
- print(json.dumps(result))
38
+ static pythonScript = `
39
+ import ast
40
+ import sys
41
+ import json
42
+
43
+ def analyze_code(code):
44
+ try:
45
+ tree = ast.parse(code)
46
+ symbols = []
47
+
48
+ for node in ast.walk(tree):
49
+ if isinstance(node, ast.FunctionDef):
50
+ symbols.append({
51
+ 'name': node.name,
52
+ 'kind': 'function',
53
+ 'line': node.lineno,
54
+ 'column': node.col_offset,
55
+ 'endLine': node.end_lineno,
56
+ 'docstring': ast.get_docstring(node)
57
+ })
58
+ elif isinstance(node, ast.ClassDef):
59
+ symbols.append({
60
+ 'name': node.name,
61
+ 'kind': 'class',
62
+ 'line': node.lineno,
63
+ 'column': node.col_offset,
64
+ 'endLine': node.end_lineno,
65
+ 'docstring': ast.get_docstring(node)
66
+ })
67
+ elif isinstance(node, ast.Assign):
68
+ for target in node.targets:
69
+ if isinstance(target, ast.Name):
70
+ symbols.append({
71
+ 'name': target.id,
72
+ 'kind': 'variable',
73
+ 'line': node.lineno,
74
+ 'column': node.col_offset
75
+ })
76
+ elif isinstance(node, ast.Import) or isinstance(node, ast.ImportFrom):
77
+ for alias in node.names:
78
+ symbols.append({
79
+ 'name': alias.name,
80
+ 'kind': 'import',
81
+ 'line': node.lineno,
82
+ 'column': node.col_offset
83
+ })
84
+
85
+ return {'success': True, 'symbols': symbols}
86
+ except SyntaxError as e:
87
+ return {'success': False, 'error': str(e)}
88
+ except Exception as e:
89
+ return {'success': False, 'error': str(e)}
90
+
91
+ def calculate_complexity(code):
92
+ try:
93
+ tree = ast.parse(code)
94
+
95
+ def cyclomatic_complexity(node):
96
+ complexity = 1
97
+ for child in ast.walk(node):
98
+ if isinstance(child, (ast.If, ast.For, ast.While, ast.And, ast.Or, ast.ExceptHandler)):
99
+ complexity += 1
100
+ elif isinstance(child, ast.BoolOp):
101
+ complexity += len(child.values) - 1
102
+ return complexity
103
+
104
+ functions = []
105
+ classes = []
106
+ total_complexity = 1
107
+
108
+ for node in ast.walk(tree):
109
+ if isinstance(node, ast.FunctionDef):
110
+ func_complexity = cyclomatic_complexity(node)
111
+ functions.append({
112
+ 'name': node.name,
113
+ 'complexity': func_complexity,
114
+ 'line': node.lineno
115
+ })
116
+ total_complexity += func_complexity
117
+ elif isinstance(node, ast.ClassDef):
118
+ method_count = sum(1 for n in node.body if isinstance(n, ast.FunctionDef))
119
+ classes.append({
120
+ 'name': node.name,
121
+ 'methods': method_count,
122
+ 'line': node.lineno
123
+ })
124
+
125
+ return {
126
+ 'success': True,
127
+ 'cyclomaticComplexity': total_complexity,
128
+ 'functions': functions,
129
+ 'classes': classes
130
+ }
131
+ except Exception as e:
132
+ return {'success': False, 'error': str(e)}
133
+
134
+ if __name__ == '__main__':
135
+ code = sys.stdin.read()
136
+ action = sys.argv[1] if len(sys.argv) > 1 else 'symbols'
137
+
138
+ if action == 'symbols':
139
+ result = analyze_code(code)
140
+ elif action == 'complexity':
141
+ result = calculate_complexity(code)
142
+ else:
143
+ result = {'success': False, 'error': 'Unknown action'}
144
+
145
+ print(json.dumps(result))
146
146
  `;
147
147
  // Singleton Python script path to avoid recreating it
148
148
  static scriptPath = null;
@@ -161,12 +161,12 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
161
161
  }
162
162
  case 'gemini_analyze_code': {
163
163
  const { code, language, focus } = args;
164
- const sysPrompt = `You are an expert code reviewer. Analyze the given ${language || 'code'} and provide detailed feedback focusing on: ${focus || 'all aspects including performance, security, readability, and best practices'}.
165
-
166
- Respond in Korean and provide:
167
- 1. 코드 요약
168
- 2. 주요 이슈 (있다면)
169
- 3. 개선 제안
164
+ const sysPrompt = `You are an expert code reviewer. Analyze the given ${language || 'code'} and provide detailed feedback focusing on: ${focus || 'all aspects including performance, security, readability, and best practices'}.
165
+
166
+ Respond in Korean and provide:
167
+ 1. 코드 요약
168
+ 2. 주요 이슈 (있다면)
169
+ 3. 개선 제안
170
170
  4. 전체 품질 점수 (1-10)`;
171
171
  const result = await geminiApi.chat({
172
172
  model: 'gemini-2.5-flash',
@@ -186,15 +186,15 @@ Respond in Korean and provide:
186
186
  }
187
187
  case 'gemini_review_ui': {
188
188
  const { description, context } = args;
189
- const sysPrompt = `You are a UI/UX expert. Review the given UI description and provide detailed feedback.
190
-
191
- ${context ? `Project context: ${context}` : ''}
192
-
193
- Respond in Korean and provide:
194
- 1. UI 구조 평가
195
- 2. UX 개선점
196
- 3. 접근성 체크
197
- 4. 모범 사례 비교
189
+ const sysPrompt = `You are a UI/UX expert. Review the given UI description and provide detailed feedback.
190
+
191
+ ${context ? `Project context: ${context}` : ''}
192
+
193
+ Respond in Korean and provide:
194
+ 1. UI 구조 평가
195
+ 2. UX 개선점
196
+ 3. 접근성 체크
197
+ 4. 모범 사례 비교
198
198
  5. 구체적인 개선 제안`;
199
199
  const result = await geminiApi.chat({
200
200
  model: 'gemini-2.5-flash',
@@ -1 +1 @@
1
- {"version":3,"file":"gemini-oauth.d.ts","sourceRoot":"","sources":["../../src/lib/gemini-oauth.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA6BH,UAAU,sBAAsB;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAgBD,UAAU,eAAe;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,gBAAgB;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA0CD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,GAAE,MAAW,GAAG,sBAAsB,CAmBrF;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAoDnG;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAsCzE;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CA4BvF;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,OAAO,CAAC,iBAAiB,CAAC,CA0J3D;AAED;;GAEG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAwBrE"}
1
+ {"version":3,"file":"gemini-oauth.d.ts","sourceRoot":"","sources":["../../src/lib/gemini-oauth.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA6BH,UAAU,sBAAsB;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAgBD,UAAU,eAAe;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,gBAAgB;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA0CD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,GAAE,MAAW,GAAG,sBAAsB,CAmBrF;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAoDnG;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAsCzE;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CA4BvF;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,OAAO,CAAC,iBAAiB,CAAC,CA6J3D;AAED;;GAEG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAwBrE"}
@@ -192,12 +192,15 @@ export function startOAuthFlow() {
192
192
  timeoutId = null;
193
193
  }
194
194
  if (server) {
195
- server.close(() => {
196
- // 서버 완전히 종료 후 프로세스 종료 허용
197
- });
195
+ // closeAllConnections 먼저 호출하여 활성 연결 종료
198
196
  if ('closeAllConnections' in server) {
199
197
  server.closeAllConnections();
200
198
  }
199
+ // 약간의 지연 후 서버 종료 (libuv 핸들 충돌 방지)
200
+ setImmediate(() => {
201
+ server?.close(() => { });
202
+ server = null;
203
+ });
201
204
  }
202
205
  };
203
206
  // 콜백 서버 시작
@@ -209,15 +212,15 @@ export function startOAuthFlow() {
209
212
  const error = url.searchParams.get('error');
210
213
  if (error) {
211
214
  res.writeHead(400, { 'Content-Type': 'text/html; charset=utf-8' });
212
- res.end(`
213
- <html>
214
- <head><title>인증 실패</title></head>
215
- <body style="font-family: sans-serif; text-align: center; padding-top: 50px;">
216
- <h1>인증 실패</h1>
217
- <p>오류: ${error}</p>
218
- <p>이 창을 닫고 다시 시도해주세요.</p>
219
- </body>
220
- </html>
215
+ res.end(`
216
+ <html>
217
+ <head><title>인증 실패</title></head>
218
+ <body style="font-family: sans-serif; text-align: center; padding-top: 50px;">
219
+ <h1>인증 실패</h1>
220
+ <p>오류: ${error}</p>
221
+ <p>이 창을 닫고 다시 시도해주세요.</p>
222
+ </body>
223
+ </html>
221
224
  `);
222
225
  if (!isResolved) {
223
226
  isResolved = true;
@@ -228,14 +231,14 @@ export function startOAuthFlow() {
228
231
  }
229
232
  if (!code || !state) {
230
233
  res.writeHead(400, { 'Content-Type': 'text/html; charset=utf-8' });
231
- res.end(`
232
- <html>
233
- <head><title>인증 실패</title></head>
234
- <body style="font-family: sans-serif; text-align: center; padding-top: 50px;">
235
- <h1>인증 실패</h1>
236
- <p>필수 파라미터가 없습니다.</p>
237
- </body>
238
- </html>
234
+ res.end(`
235
+ <html>
236
+ <head><title>인증 실패</title></head>
237
+ <body style="font-family: sans-serif; text-align: center; padding-top: 50px;">
238
+ <h1>인증 실패</h1>
239
+ <p>필수 파라미터가 없습니다.</p>
240
+ </body>
241
+ </html>
239
242
  `);
240
243
  if (!isResolved) {
241
244
  isResolved = true;
@@ -247,16 +250,16 @@ export function startOAuthFlow() {
247
250
  try {
248
251
  const tokens = await exchangeCodeForTokens(code, state);
249
252
  res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' });
250
- res.end(`
251
- <html>
252
- <head><title>인증 성공</title></head>
253
- <body style="font-family: sans-serif; text-align: center; padding-top: 50px;">
254
- <h1>인증 성공!</h1>
255
- <p>${tokens.email}로 로그인되었습니다.</p>
256
- <p>이 창을 닫아도 됩니다.</p>
257
- <script>setTimeout(() => window.close(), 2000);</script>
258
- </body>
259
- </html>
253
+ res.end(`
254
+ <html>
255
+ <head><title>인증 성공</title></head>
256
+ <body style="font-family: sans-serif; text-align: center; padding-top: 50px;">
257
+ <h1>인증 성공!</h1>
258
+ <p>${tokens.email}로 로그인되었습니다.</p>
259
+ <p>이 창을 닫아도 됩니다.</p>
260
+ <script>setTimeout(() => window.close(), 2000);</script>
261
+ </body>
262
+ </html>
260
263
  `);
261
264
  if (!isResolved) {
262
265
  isResolved = true;
@@ -266,14 +269,14 @@ export function startOAuthFlow() {
266
269
  }
267
270
  catch (err) {
268
271
  res.writeHead(500, { 'Content-Type': 'text/html; charset=utf-8' });
269
- res.end(`
270
- <html>
271
- <head><title>인증 실패</title></head>
272
- <body style="font-family: sans-serif; text-align: center; padding-top: 50px;">
273
- <h1>인증 실패</h1>
274
- <p>${err.message}</p>
275
- </body>
276
- </html>
272
+ res.end(`
273
+ <html>
274
+ <head><title>인증 실패</title></head>
275
+ <body style="font-family: sans-serif; text-align: center; padding-top: 50px;">
276
+ <h1>인증 실패</h1>
277
+ <p>${err.message}</p>
278
+ </body>
279
+ </html>
277
280
  `);
278
281
  if (!isResolved) {
279
282
  isResolved = true;
@@ -1 +1 @@
1
- {"version":3,"file":"gemini-oauth.js","sourceRoot":"","sources":["../../src/lib/gemini-oauth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gemini-oauth.js","sourceRoot":"","sources":["../../src/lib/gemini-oauth.ts"],"names":[],"mappings":"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"}
@@ -159,15 +159,15 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
159
159
  }
160
160
  case 'gpt_analyze_architecture': {
161
161
  const { code, context } = args;
162
- const sysPrompt = `You are a senior software architect. Analyze the given code or architecture and provide detailed insights.
163
-
164
- ${context ? `Project context: ${context}` : ''}
165
-
166
- Respond in Korean and provide:
167
- 1. 아키텍처 요약
168
- 2. 강점
169
- 3. 잠재적 문제점
170
- 4. 개선 제안
162
+ const sysPrompt = `You are a senior software architect. Analyze the given code or architecture and provide detailed insights.
163
+
164
+ ${context ? `Project context: ${context}` : ''}
165
+
166
+ Respond in Korean and provide:
167
+ 1. 아키텍처 요약
168
+ 2. 강점
169
+ 3. 잠재적 문제점
170
+ 4. 개선 제안
171
171
  5. 확장성 평가`;
172
172
  const result = await gptApi.chat({
173
173
  model: 'gpt-5.2',
@@ -187,14 +187,14 @@ Respond in Korean and provide:
187
187
  }
188
188
  case 'gpt_debug': {
189
189
  const { code, error, language } = args;
190
- const sysPrompt = `You are an expert debugger. Analyze the given ${language || 'code'} and identify bugs.
191
-
192
- ${error ? `Error/Symptom: ${error}` : ''}
193
-
194
- Respond in Korean and provide:
195
- 1. 버그 식별
196
- 2. 원인 분석
197
- 3. 수정된 코드
190
+ const sysPrompt = `You are an expert debugger. Analyze the given ${language || 'code'} and identify bugs.
191
+
192
+ ${error ? `Error/Symptom: ${error}` : ''}
193
+
194
+ Respond in Korean and provide:
195
+ 1. 버그 식별
196
+ 2. 원인 분석
197
+ 3. 수정된 코드
198
198
  4. 예방 방법`;
199
199
  const result = await gptApi.chat({
200
200
  model: 'gpt-5.2-codex',
@@ -1 +1 @@
1
- {"version":3,"file":"gpt-oauth.d.ts","sourceRoot":"","sources":["../../src/lib/gpt-oauth.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAwBH,UAAU,sBAAsB;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AASD,UAAU,eAAe;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,gBAAgB;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,UAAU;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAyBD;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAU1D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAIlE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAgB7D;AASD;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,sBAAsB,CAsB/D;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAwChG;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CA2BvF;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC,CA+KrD;AAED;;GAEG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,gBAAgB,CAAC,CA6BrE"}
1
+ {"version":3,"file":"gpt-oauth.d.ts","sourceRoot":"","sources":["../../src/lib/gpt-oauth.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAwBH,UAAU,sBAAsB;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AASD,UAAU,eAAe;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,gBAAgB;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,UAAU;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAyBD;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAU1D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAIlE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAgB7D;AASD;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,sBAAsB,CAsB/D;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAwChG;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CA2BvF;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC,CAoLrD;AAED;;GAEG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,gBAAgB,CAAC,CA6BrE"}
@@ -180,10 +180,15 @@ export function startOAuthFlow() {
180
180
  timeoutId = null;
181
181
  }
182
182
  if (server) {
183
- server.close(() => { });
183
+ // closeAllConnections 먼저 호출하여 활성 연결 종료
184
184
  if ('closeAllConnections' in server) {
185
185
  server.closeAllConnections();
186
186
  }
187
+ // 약간의 지연 후 서버 종료 (libuv 핸들 충돌 방지)
188
+ setImmediate(() => {
189
+ server?.close(() => { });
190
+ server = null;
191
+ });
187
192
  }
188
193
  };
189
194
  // 콜백 서버 시작 (포트 1455 - Codex CLI와 동일)
@@ -196,16 +201,16 @@ export function startOAuthFlow() {
196
201
  const errorDescription = url.searchParams.get('error_description');
197
202
  if (error) {
198
203
  res.writeHead(400, { 'Content-Type': 'text/html; charset=utf-8' });
199
- res.end(`
200
- <html>
201
- <head><title>인증 실패</title></head>
202
- <body style="font-family: sans-serif; text-align: center; padding-top: 50px;">
203
- <h1>인증 실패</h1>
204
- <p>오류: ${error}</p>
205
- <p>${errorDescription || ''}</p>
206
- <p>이 창을 닫고 다시 시도해주세요.</p>
207
- </body>
208
- </html>
204
+ res.end(`
205
+ <html>
206
+ <head><title>인증 실패</title></head>
207
+ <body style="font-family: sans-serif; text-align: center; padding-top: 50px;">
208
+ <h1>인증 실패</h1>
209
+ <p>오류: ${error}</p>
210
+ <p>${errorDescription || ''}</p>
211
+ <p>이 창을 닫고 다시 시도해주세요.</p>
212
+ </body>
213
+ </html>
209
214
  `);
210
215
  if (!isResolved) {
211
216
  isResolved = true;
@@ -217,14 +222,14 @@ export function startOAuthFlow() {
217
222
  // state 검증
218
223
  if (state !== auth.state) {
219
224
  res.writeHead(400, { 'Content-Type': 'text/html; charset=utf-8' });
220
- res.end(`
221
- <html>
222
- <head><title>인증 실패</title></head>
223
- <body style="font-family: sans-serif; text-align: center; padding-top: 50px;">
224
- <h1>인증 실패</h1>
225
- <p>State 불일치 - CSRF 공격 가능성</p>
226
- </body>
227
- </html>
225
+ res.end(`
226
+ <html>
227
+ <head><title>인증 실패</title></head>
228
+ <body style="font-family: sans-serif; text-align: center; padding-top: 50px;">
229
+ <h1>인증 실패</h1>
230
+ <p>State 불일치 - CSRF 공격 가능성</p>
231
+ </body>
232
+ </html>
228
233
  `);
229
234
  if (!isResolved) {
230
235
  isResolved = true;
@@ -235,14 +240,14 @@ export function startOAuthFlow() {
235
240
  }
236
241
  if (!code) {
237
242
  res.writeHead(400, { 'Content-Type': 'text/html; charset=utf-8' });
238
- res.end(`
239
- <html>
240
- <head><title>인증 실패</title></head>
241
- <body style="font-family: sans-serif; text-align: center; padding-top: 50px;">
242
- <h1>인증 실패</h1>
243
- <p>Authorization code가 없습니다.</p>
244
- </body>
245
- </html>
243
+ res.end(`
244
+ <html>
245
+ <head><title>인증 실패</title></head>
246
+ <body style="font-family: sans-serif; text-align: center; padding-top: 50px;">
247
+ <h1>인증 실패</h1>
248
+ <p>Authorization code가 없습니다.</p>
249
+ </body>
250
+ </html>
246
251
  `);
247
252
  if (!isResolved) {
248
253
  isResolved = true;
@@ -254,16 +259,16 @@ export function startOAuthFlow() {
254
259
  try {
255
260
  const tokens = await exchangeCodeForTokens(code, auth.verifier);
256
261
  res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' });
257
- res.end(`
258
- <html>
259
- <head><title>인증 성공</title></head>
260
- <body style="font-family: sans-serif; text-align: center; padding-top: 50px;">
261
- <h1>인증 성공!</h1>
262
- <p>${tokens.email}로 로그인되었습니다.</p>
263
- <p>이 창을 닫아도 됩니다.</p>
264
- <script>setTimeout(() => window.close(), 2000);</script>
265
- </body>
266
- </html>
262
+ res.end(`
263
+ <html>
264
+ <head><title>인증 성공</title></head>
265
+ <body style="font-family: sans-serif; text-align: center; padding-top: 50px;">
266
+ <h1>인증 성공!</h1>
267
+ <p>${tokens.email}로 로그인되었습니다.</p>
268
+ <p>이 창을 닫아도 됩니다.</p>
269
+ <script>setTimeout(() => window.close(), 2000);</script>
270
+ </body>
271
+ </html>
267
272
  `);
268
273
  if (!isResolved) {
269
274
  isResolved = true;
@@ -273,14 +278,14 @@ export function startOAuthFlow() {
273
278
  }
274
279
  catch (err) {
275
280
  res.writeHead(500, { 'Content-Type': 'text/html; charset=utf-8' });
276
- res.end(`
277
- <html>
278
- <head><title>인증 실패</title></head>
279
- <body style="font-family: sans-serif; text-align: center; padding-top: 50px;">
280
- <h1>인증 실패</h1>
281
- <p>${err.message}</p>
282
- </body>
283
- </html>
281
+ res.end(`
282
+ <html>
283
+ <head><title>인증 실패</title></head>
284
+ <body style="font-family: sans-serif; text-align: center; padding-top: 50px;">
285
+ <h1>인증 실패</h1>
286
+ <p>${err.message}</p>
287
+ </body>
288
+ </html>
284
289
  `);
285
290
  if (!isResolved) {
286
291
  isResolved = true;