@su-record/vibe 2.4.51 → 2.4.53

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 (107) hide show
  1. package/README.md +10 -12
  2. package/dist/cli/index.d.ts +0 -12
  3. package/dist/cli/index.d.ts.map +1 -1
  4. package/dist/cli/index.js +7 -30
  5. package/dist/cli/index.js.map +1 -1
  6. package/dist/cli/llm.d.ts +1 -1
  7. package/dist/cli/llm.d.ts.map +1 -1
  8. package/dist/cli/llm.js +30 -11
  9. package/dist/cli/llm.js.map +1 -1
  10. package/dist/cli/postinstall.d.ts +7 -0
  11. package/dist/cli/postinstall.d.ts.map +1 -0
  12. package/dist/cli/postinstall.js +136 -0
  13. package/dist/cli/postinstall.js.map +1 -0
  14. package/dist/cli/setup.d.ts.map +1 -1
  15. package/dist/cli/setup.js +12 -5
  16. package/dist/cli/setup.js.map +1 -1
  17. package/dist/lib/gemini-api.d.ts.map +1 -1
  18. package/dist/lib/gemini-api.js +14 -7
  19. package/dist/lib/gemini-api.js.map +1 -1
  20. package/dist/lib/gpt-api.d.ts.map +1 -1
  21. package/dist/lib/gpt-api.js +14 -7
  22. package/dist/lib/gpt-api.js.map +1 -1
  23. package/dist/tools/index.d.ts +0 -14
  24. package/dist/tools/index.d.ts.map +1 -1
  25. package/dist/tools/index.js +0 -19
  26. package/dist/tools/index.js.map +1 -1
  27. package/package.json +3 -7
  28. package/dist/tools/analytics/getUsageAnalytics.d.ts +0 -10
  29. package/dist/tools/analytics/getUsageAnalytics.d.ts.map +0 -1
  30. package/dist/tools/analytics/getUsageAnalytics.js +0 -246
  31. package/dist/tools/analytics/getUsageAnalytics.js.map +0 -1
  32. package/dist/tools/analytics/index.d.ts +0 -5
  33. package/dist/tools/analytics/index.d.ts.map +0 -1
  34. package/dist/tools/analytics/index.js +0 -5
  35. package/dist/tools/analytics/index.js.map +0 -1
  36. package/dist/tools/planning/analyzeRequirements.d.ts +0 -9
  37. package/dist/tools/planning/analyzeRequirements.d.ts.map +0 -1
  38. package/dist/tools/planning/analyzeRequirements.js +0 -171
  39. package/dist/tools/planning/analyzeRequirements.js.map +0 -1
  40. package/dist/tools/planning/createUserStories.d.ts +0 -9
  41. package/dist/tools/planning/createUserStories.d.ts.map +0 -1
  42. package/dist/tools/planning/createUserStories.js +0 -124
  43. package/dist/tools/planning/createUserStories.js.map +0 -1
  44. package/dist/tools/planning/featureRoadmap.d.ts +0 -10
  45. package/dist/tools/planning/featureRoadmap.d.ts.map +0 -1
  46. package/dist/tools/planning/featureRoadmap.js +0 -207
  47. package/dist/tools/planning/featureRoadmap.js.map +0 -1
  48. package/dist/tools/planning/generatePrd.d.ts +0 -11
  49. package/dist/tools/planning/generatePrd.d.ts.map +0 -1
  50. package/dist/tools/planning/generatePrd.js +0 -161
  51. package/dist/tools/planning/generatePrd.js.map +0 -1
  52. package/dist/tools/planning/index.d.ts +0 -8
  53. package/dist/tools/planning/index.d.ts.map +0 -1
  54. package/dist/tools/planning/index.js +0 -8
  55. package/dist/tools/planning/index.js.map +0 -1
  56. package/dist/tools/prompt/analyzePrompt.d.ts +0 -7
  57. package/dist/tools/prompt/analyzePrompt.d.ts.map +0 -1
  58. package/dist/tools/prompt/analyzePrompt.js +0 -150
  59. package/dist/tools/prompt/analyzePrompt.js.map +0 -1
  60. package/dist/tools/prompt/enhancePrompt.d.ts +0 -8
  61. package/dist/tools/prompt/enhancePrompt.d.ts.map +0 -1
  62. package/dist/tools/prompt/enhancePrompt.js +0 -110
  63. package/dist/tools/prompt/enhancePrompt.js.map +0 -1
  64. package/dist/tools/prompt/enhancePromptGemini.d.ts +0 -8
  65. package/dist/tools/prompt/enhancePromptGemini.d.ts.map +0 -1
  66. package/dist/tools/prompt/enhancePromptGemini.js +0 -332
  67. package/dist/tools/prompt/enhancePromptGemini.js.map +0 -1
  68. package/dist/tools/prompt/index.d.ts +0 -7
  69. package/dist/tools/prompt/index.d.ts.map +0 -1
  70. package/dist/tools/prompt/index.js +0 -7
  71. package/dist/tools/prompt/index.js.map +0 -1
  72. package/dist/tools/reasoning/applyReasoningFramework.d.ts +0 -8
  73. package/dist/tools/reasoning/applyReasoningFramework.d.ts.map +0 -1
  74. package/dist/tools/reasoning/applyReasoningFramework.js +0 -266
  75. package/dist/tools/reasoning/applyReasoningFramework.js.map +0 -1
  76. package/dist/tools/reasoning/index.d.ts +0 -5
  77. package/dist/tools/reasoning/index.d.ts.map +0 -1
  78. package/dist/tools/reasoning/index.js +0 -5
  79. package/dist/tools/reasoning/index.js.map +0 -1
  80. package/dist/tools/thinking/analyzeProblem.d.ts +0 -7
  81. package/dist/tools/thinking/analyzeProblem.d.ts.map +0 -1
  82. package/dist/tools/thinking/analyzeProblem.js +0 -55
  83. package/dist/tools/thinking/analyzeProblem.js.map +0 -1
  84. package/dist/tools/thinking/breakDownProblem.d.ts +0 -8
  85. package/dist/tools/thinking/breakDownProblem.d.ts.map +0 -1
  86. package/dist/tools/thinking/breakDownProblem.js +0 -145
  87. package/dist/tools/thinking/breakDownProblem.js.map +0 -1
  88. package/dist/tools/thinking/createThinkingChain.d.ts +0 -7
  89. package/dist/tools/thinking/createThinkingChain.d.ts.map +0 -1
  90. package/dist/tools/thinking/createThinkingChain.js +0 -44
  91. package/dist/tools/thinking/createThinkingChain.js.map +0 -1
  92. package/dist/tools/thinking/formatAsPlan.d.ts +0 -9
  93. package/dist/tools/thinking/formatAsPlan.d.ts.map +0 -1
  94. package/dist/tools/thinking/formatAsPlan.js +0 -78
  95. package/dist/tools/thinking/formatAsPlan.js.map +0 -1
  96. package/dist/tools/thinking/index.d.ts +0 -10
  97. package/dist/tools/thinking/index.d.ts.map +0 -1
  98. package/dist/tools/thinking/index.js +0 -10
  99. package/dist/tools/thinking/index.js.map +0 -1
  100. package/dist/tools/thinking/stepByStepAnalysis.d.ts +0 -8
  101. package/dist/tools/thinking/stepByStepAnalysis.d.ts.map +0 -1
  102. package/dist/tools/thinking/stepByStepAnalysis.js +0 -63
  103. package/dist/tools/thinking/stepByStepAnalysis.js.map +0 -1
  104. package/dist/tools/thinking/thinkAloudProcess.d.ts +0 -8
  105. package/dist/tools/thinking/thinkAloudProcess.d.ts.map +0 -1
  106. package/dist/tools/thinking/thinkAloudProcess.js +0 -80
  107. package/dist/tools/thinking/thinkAloudProcess.js.map +0 -1
@@ -1,246 +0,0 @@
1
- // v2.0 - Get usage analytics and telemetry
2
- import { MemoryManager } from '../../lib/MemoryManager.js';
3
- export const getUsageAnalyticsDefinition = {
4
- name: 'get_usage_analytics',
5
- description: `도구 사용 분석 및 통계를 조회합니다.
6
-
7
- 키워드: 분석, 통계, 사용량, analytics, statistics, usage
8
-
9
- **제공 정보:**
10
- - 메모리 사용 통계
11
- - 카테고리별 분포
12
- - 시간별 사용 패턴
13
- - 그래프 관계 통계
14
-
15
- 사용 예시:
16
- - "사용 통계 보여줘"
17
- - "메모리 분석"`,
18
- inputSchema: {
19
- type: 'object',
20
- properties: {
21
- type: {
22
- type: 'string',
23
- description: '분석 유형',
24
- enum: ['memory', 'graph', 'all']
25
- },
26
- timeRange: {
27
- type: 'string',
28
- description: '시간 범위',
29
- enum: ['1d', '7d', '30d', 'all']
30
- },
31
- detailed: {
32
- type: 'boolean',
33
- description: '상세 정보 포함 여부 (기본값: false)'
34
- }
35
- }
36
- },
37
- annotations: {
38
- title: 'Get Usage Analytics',
39
- audience: ['user', 'assistant'],
40
- readOnlyHint: true,
41
- destructiveHint: false,
42
- idempotentHint: true,
43
- openWorldHint: false
44
- }
45
- };
46
- export async function getUsageAnalytics(args) {
47
- try {
48
- const { type = 'all', timeRange = 'all', detailed = false } = args;
49
- const memoryManager = MemoryManager.getInstance();
50
- let output = '## Hi-AI 사용 분석\n\n';
51
- // Memory statistics
52
- if (type === 'memory' || type === 'all') {
53
- output += await generateMemoryStats(memoryManager, timeRange, detailed);
54
- }
55
- // Graph statistics
56
- if (type === 'graph' || type === 'all') {
57
- output += await generateGraphStats(memoryManager, detailed);
58
- }
59
- // System info
60
- output += `---\n### 시스템 정보\n\n`;
61
- output += `- **Hi-AI 버전**: 2.0.0\n`;
62
- output += `- **분석 시간**: ${new Date().toLocaleString('ko-KR')}\n`;
63
- output += `- **시간 범위**: ${getTimeRangeLabel(timeRange)}\n`;
64
- return {
65
- content: [{
66
- type: 'text',
67
- text: output
68
- }]
69
- };
70
- }
71
- catch (error) {
72
- return {
73
- content: [{
74
- type: 'text',
75
- text: `✗ 분석 오류: ${error instanceof Error ? error.message : '알 수 없는 오류'}`
76
- }]
77
- };
78
- }
79
- }
80
- async function generateMemoryStats(memoryManager, timeRange, detailed) {
81
- const stats = memoryManager.getStats();
82
- const allMemories = memoryManager.list();
83
- let output = '### 메모리 통계\n\n';
84
- output += `- **총 메모리 수**: ${stats.total}개\n`;
85
- output += `- **카테고리 수**: ${Object.keys(stats.byCategory).length}개\n\n`;
86
- // Category distribution
87
- output += `#### 카테고리별 분포\n\n`;
88
- const sortedCategories = Object.entries(stats.byCategory)
89
- .sort((a, b) => b[1] - a[1]);
90
- for (const [category, count] of sortedCategories) {
91
- const percentage = ((count / stats.total) * 100).toFixed(1);
92
- const bar = '█'.repeat(Math.round(count / stats.total * 20));
93
- output += `- **${category}**: ${count}개 (${percentage}%) ${bar}\n`;
94
- }
95
- output += '\n';
96
- // Time analysis
97
- if (allMemories.length > 0) {
98
- output += `#### 시간 분석\n\n`;
99
- const now = new Date();
100
- const filterDate = getFilterDate(timeRange);
101
- const recentMemories = filterDate
102
- ? allMemories.filter(m => new Date(m.timestamp) >= filterDate)
103
- : allMemories;
104
- // Group by day
105
- const byDay = {};
106
- for (const memory of recentMemories) {
107
- const day = memory.timestamp.substring(0, 10);
108
- byDay[day] = (byDay[day] || 0) + 1;
109
- }
110
- const sortedDays = Object.entries(byDay)
111
- .sort((a, b) => b[0].localeCompare(a[0]))
112
- .slice(0, 7);
113
- if (sortedDays.length > 0) {
114
- output += `**최근 일별 활동**:\n`;
115
- for (const [day, count] of sortedDays) {
116
- const bar = '▓'.repeat(Math.min(count, 20));
117
- output += `- ${day}: ${count}개 ${bar}\n`;
118
- }
119
- output += '\n';
120
- }
121
- // Priority distribution
122
- const priorityCounts = {};
123
- for (const memory of allMemories) {
124
- const priority = memory.priority || 0;
125
- priorityCounts[priority] = (priorityCounts[priority] || 0) + 1;
126
- }
127
- if (Object.keys(priorityCounts).length > 1) {
128
- output += `**우선순위 분포**:\n`;
129
- for (const [priority, count] of Object.entries(priorityCounts).sort((a, b) => Number(b[0]) - Number(a[0]))) {
130
- output += `- 우선순위 ${priority}: ${count}개\n`;
131
- }
132
- output += '\n';
133
- }
134
- }
135
- // Detailed info
136
- if (detailed && allMemories.length > 0) {
137
- output += `#### 상세 정보\n\n`;
138
- // Most recently accessed
139
- const byAccess = [...allMemories]
140
- .sort((a, b) => new Date(b.lastAccessed).getTime() - new Date(a.lastAccessed).getTime())
141
- .slice(0, 5);
142
- output += `**최근 접근한 메모리**:\n`;
143
- for (const memory of byAccess) {
144
- output += `- \`${memory.key}\` (${formatDate(memory.lastAccessed)})\n`;
145
- }
146
- output += '\n';
147
- // Oldest memories
148
- const oldest = [...allMemories]
149
- .sort((a, b) => new Date(a.timestamp).getTime() - new Date(b.timestamp).getTime())
150
- .slice(0, 5);
151
- output += `**가장 오래된 메모리**:\n`;
152
- for (const memory of oldest) {
153
- output += `- \`${memory.key}\` (${formatDate(memory.timestamp)})\n`;
154
- }
155
- output += '\n';
156
- }
157
- return output;
158
- }
159
- async function generateGraphStats(memoryManager, detailed) {
160
- const graph = memoryManager.getMemoryGraph();
161
- let output = '### 지식 그래프 통계\n\n';
162
- output += `- **노드 수**: ${graph.nodes.length}개\n`;
163
- output += `- **관계 수**: ${graph.edges.length}개\n`;
164
- output += `- **클러스터 수**: ${graph.clusters.length}개\n\n`;
165
- if (graph.edges.length > 0) {
166
- // Relation type distribution
167
- const relationTypes = {};
168
- for (const edge of graph.edges) {
169
- relationTypes[edge.relationType] = (relationTypes[edge.relationType] || 0) + 1;
170
- }
171
- output += `#### 관계 유형 분포\n\n`;
172
- for (const [type, count] of Object.entries(relationTypes).sort((a, b) => b[1] - a[1])) {
173
- output += `- **${type}**: ${count}개\n`;
174
- }
175
- output += '\n';
176
- // Average connections per node
177
- const avgConnections = (graph.edges.length * 2 / graph.nodes.length).toFixed(2);
178
- output += `- **평균 연결 수**: ${avgConnections}개/노드\n`;
179
- // Most connected nodes
180
- const connectionCount = {};
181
- for (const edge of graph.edges) {
182
- connectionCount[edge.sourceKey] = (connectionCount[edge.sourceKey] || 0) + 1;
183
- connectionCount[edge.targetKey] = (connectionCount[edge.targetKey] || 0) + 1;
184
- }
185
- const topConnected = Object.entries(connectionCount)
186
- .sort((a, b) => b[1] - a[1])
187
- .slice(0, 5);
188
- if (topConnected.length > 0) {
189
- output += `\n**가장 많이 연결된 노드**:\n`;
190
- for (const [key, count] of topConnected) {
191
- output += `- \`${key}\`: ${count}개 연결\n`;
192
- }
193
- output += '\n';
194
- }
195
- }
196
- // Cluster info
197
- if (graph.clusters.length > 0 && detailed) {
198
- output += `#### 클러스터 상세\n\n`;
199
- for (let i = 0; i < Math.min(graph.clusters.length, 5); i++) {
200
- const cluster = graph.clusters[i];
201
- output += `**클러스터 ${i + 1}** (${cluster.length}개 노드):\n`;
202
- output += `- ${cluster.slice(0, 5).join(', ')}`;
203
- if (cluster.length > 5) {
204
- output += ` ... 외 ${cluster.length - 5}개`;
205
- }
206
- output += '\n';
207
- }
208
- output += '\n';
209
- }
210
- return output;
211
- }
212
- function getFilterDate(timeRange) {
213
- const now = new Date();
214
- switch (timeRange) {
215
- case '1d':
216
- return new Date(now.getTime() - 24 * 60 * 60 * 1000);
217
- case '7d':
218
- return new Date(now.getTime() - 7 * 24 * 60 * 60 * 1000);
219
- case '30d':
220
- return new Date(now.getTime() - 30 * 24 * 60 * 60 * 1000);
221
- default:
222
- return null;
223
- }
224
- }
225
- function getTimeRangeLabel(timeRange) {
226
- switch (timeRange) {
227
- case '1d':
228
- return '최근 24시간';
229
- case '7d':
230
- return '최근 7일';
231
- case '30d':
232
- return '최근 30일';
233
- default:
234
- return '전체';
235
- }
236
- }
237
- function formatDate(dateString) {
238
- try {
239
- const date = new Date(dateString);
240
- return date.toLocaleDateString('ko-KR');
241
- }
242
- catch { /* ignore: optional operation */
243
- return dateString;
244
- }
245
- }
246
- //# sourceMappingURL=getUsageAnalytics.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getUsageAnalytics.js","sourceRoot":"","sources":["../../../src/tools/analytics/getUsageAnalytics.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAG3C,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,MAAM,CAAC,MAAM,2BAA2B,GAAmB;IACzD,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EAAE;;;;;;;;;;;;WAYJ;IACT,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,OAAO;gBACpB,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC;aACjC;YACD,SAAS,EAAE;gBACT,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,OAAO;gBACpB,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC;aACjC;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,0BAA0B;aACxC;SACF;KACF;IACD,WAAW,EAAE;QACX,KAAK,EAAE,qBAAqB;QAC5B,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC;QAC/B,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,KAAK;QACtB,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,KAAK;KACrB;CACF,CAAC;AAQF,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAA2B;IACjE,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,GAAG,KAAK,EAAE,SAAS,GAAG,KAAK,EAAE,QAAQ,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC;QACnE,MAAM,aAAa,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC;QAElD,IAAI,MAAM,GAAG,oBAAoB,CAAC;QAElC,oBAAoB;QACpB,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;YACxC,MAAM,IAAI,MAAM,mBAAmB,CAAC,aAAa,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC1E,CAAC;QAED,mBAAmB;QACnB,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;YACvC,MAAM,IAAI,MAAM,kBAAkB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QAC9D,CAAC;QAED,cAAc;QACd,MAAM,IAAI,qBAAqB,CAAC;QAChC,MAAM,IAAI,yBAAyB,CAAC;QACpC,MAAM,IAAI,gBAAgB,IAAI,IAAI,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC;QACjE,MAAM,IAAI,gBAAgB,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC;QAE3D,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,MAAM;iBACb,CAAC;SACH,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,YAAY,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,EAAE;iBACzE,CAAC;SACH,CAAC;IACJ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,aAA4B,EAC5B,SAAiB,EACjB,QAAiB;IAEjB,MAAM,KAAK,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC;IACvC,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC;IAEzC,IAAI,MAAM,GAAG,gBAAgB,CAAC;IAC9B,MAAM,IAAI,kBAAkB,KAAK,CAAC,KAAK,KAAK,CAAC;IAC7C,MAAM,IAAI,iBAAiB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,OAAO,CAAC;IAEvE,wBAAwB;IACxB,MAAM,IAAI,mBAAmB,CAAC;IAC9B,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC;SACtD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE/B,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,gBAAgB,EAAE,CAAC;QACjD,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC5D,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC;QAC7D,MAAM,IAAI,OAAO,QAAQ,OAAO,KAAK,MAAM,UAAU,MAAM,GAAG,IAAI,CAAC;IACrE,CAAC;IACD,MAAM,IAAI,IAAI,CAAC;IAEf,gBAAgB;IAChB,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,gBAAgB,CAAC;QAE3B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;QAE5C,MAAM,cAAc,GAAG,UAAU;YAC/B,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC;YAC9D,CAAC,CAAC,WAAW,CAAC;QAEhB,eAAe;QACf,MAAM,KAAK,GAA2B,EAAE,CAAC;QACzC,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE,CAAC;YACpC,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9C,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACrC,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;aACrC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACxC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAEf,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,iBAAiB,CAAC;YAC5B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,UAAU,EAAE,CAAC;gBACtC,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;gBAC5C,MAAM,IAAI,KAAK,GAAG,KAAK,KAAK,KAAK,GAAG,IAAI,CAAC;YAC3C,CAAC;YACD,MAAM,IAAI,IAAI,CAAC;QACjB,CAAC;QAED,wBAAwB;QACxB,MAAM,cAAc,GAA2B,EAAE,CAAC;QAClD,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;YACtC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACjE,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,gBAAgB,CAAC;YAC3B,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3G,MAAM,IAAI,UAAU,QAAQ,KAAK,KAAK,KAAK,CAAC;YAC9C,CAAC;YACD,MAAM,IAAI,IAAI,CAAC;QACjB,CAAC;IACH,CAAC;IAED,gBAAgB;IAChB,IAAI,QAAQ,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,gBAAgB,CAAC;QAE3B,yBAAyB;QACzB,MAAM,QAAQ,GAAG,CAAC,GAAG,WAAW,CAAC;aAC9B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC;aACvF,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAEf,MAAM,IAAI,mBAAmB,CAAC;QAC9B,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC9B,MAAM,IAAI,OAAO,MAAM,CAAC,GAAG,OAAO,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC;QACzE,CAAC;QACD,MAAM,IAAI,IAAI,CAAC;QAEf,kBAAkB;QAClB,MAAM,MAAM,GAAG,CAAC,GAAG,WAAW,CAAC;aAC5B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;aACjF,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAEf,MAAM,IAAI,mBAAmB,CAAC;QAC9B,KAAK,MAAM,MAAM,IAAI,MAAM,EAAE,CAAC;YAC5B,MAAM,IAAI,OAAO,MAAM,CAAC,GAAG,OAAO,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;QACtE,CAAC;QACD,MAAM,IAAI,IAAI,CAAC;IACjB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,aAA4B,EAC5B,QAAiB;IAEjB,MAAM,KAAK,GAAG,aAAa,CAAC,cAAc,EAAE,CAAC;IAE7C,IAAI,MAAM,GAAG,mBAAmB,CAAC;IACjC,MAAM,IAAI,eAAe,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;IACjD,MAAM,IAAI,eAAe,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;IACjD,MAAM,IAAI,iBAAiB,KAAK,CAAC,QAAQ,CAAC,MAAM,OAAO,CAAC;IAExD,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,6BAA6B;QAC7B,MAAM,aAAa,GAA2B,EAAE,CAAC;QACjD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAC/B,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACjF,CAAC;QAED,MAAM,IAAI,mBAAmB,CAAC;QAC9B,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACtF,MAAM,IAAI,OAAO,IAAI,OAAO,KAAK,KAAK,CAAC;QACzC,CAAC;QACD,MAAM,IAAI,IAAI,CAAC;QAEf,+BAA+B;QAC/B,MAAM,cAAc,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAChF,MAAM,IAAI,kBAAkB,cAAc,QAAQ,CAAC;QAEnD,uBAAuB;QACvB,MAAM,eAAe,GAA2B,EAAE,CAAC;QACnD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAC/B,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAC7E,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC/E,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC;aACjD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;aAC3B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAEf,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,uBAAuB,CAAC;YAClC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,YAAY,EAAE,CAAC;gBACxC,MAAM,IAAI,OAAO,GAAG,OAAO,KAAK,QAAQ,CAAC;YAC3C,CAAC;YACD,MAAM,IAAI,IAAI,CAAC;QACjB,CAAC;IACH,CAAC;IAED,eAAe;IACf,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,EAAE,CAAC;QAC1C,MAAM,IAAI,kBAAkB,CAAC;QAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5D,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAClC,MAAM,IAAI,UAAU,CAAC,GAAG,CAAC,OAAO,OAAO,CAAC,MAAM,UAAU,CAAC;YACzD,MAAM,IAAI,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAChD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,MAAM,IAAI,UAAU,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC;YAC5C,CAAC;YACD,MAAM,IAAI,IAAI,CAAC;QACjB,CAAC;QACD,MAAM,IAAI,IAAI,CAAC;IACjB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,aAAa,CAAC,SAAiB;IACtC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IAEvB,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,IAAI;YACP,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QACvD,KAAK,IAAI;YACP,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAC3D,KAAK,KAAK;YACR,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAC5D;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,SAAiB;IAC1C,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,IAAI;YACP,OAAO,SAAS,CAAC;QACnB,KAAK,IAAI;YACP,OAAO,OAAO,CAAC;QACjB,KAAK,KAAK;YACR,OAAO,QAAQ,CAAC;QAClB;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,UAAkB;IACpC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC,CAAC,gCAAgC;QACxC,OAAO,UAAU,CAAC;IACpB,CAAC;AACH,CAAC"}
@@ -1,5 +0,0 @@
1
- /**
2
- * Analytics Tools - 사용 분석
3
- */
4
- export { getUsageAnalytics } from './getUsageAnalytics.js';
5
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/analytics/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -1,5 +0,0 @@
1
- /**
2
- * Analytics Tools - 사용 분석
3
- */
4
- export { getUsageAnalytics } from './getUsageAnalytics.js';
5
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/analytics/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -1,9 +0,0 @@
1
- import { ToolResult, ToolDefinition } from '../../types/tool.js';
2
- export declare const analyzeRequirementsDefinition: ToolDefinition;
3
- export declare function analyzeRequirements(args: {
4
- requirements: string;
5
- stakeholders?: string;
6
- constraints?: string;
7
- analysisMethod?: string;
8
- }): Promise<ToolResult>;
9
- //# sourceMappingURL=analyzeRequirements.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"analyzeRequirements.d.ts","sourceRoot":"","sources":["../../../src/tools/planning/analyzeRequirements.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAejE,eAAO,MAAM,6BAA6B,EAAE,cAqB3C,CAAC;AAEF,wBAAsB,mBAAmB,CAAC,IAAI,EAAE;IAC9C,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,GAAG,OAAO,CAAC,UAAU,CAAC,CA6JtB"}
@@ -1,171 +0,0 @@
1
- // Planning tool - completely independent
2
- export const analyzeRequirementsDefinition = {
3
- name: 'analyze_requirements',
4
- description: '요구사항 분석|필요한 것들|requirements analysis|what we need|analyze requirements|필수 기능 - Analyze project requirements',
5
- inputSchema: {
6
- type: 'object',
7
- properties: {
8
- requirements: { type: 'string', description: 'List of requirements to analyze' },
9
- stakeholders: { type: 'string', description: 'Project stakeholders (e.g., users, admins, developers)' },
10
- constraints: { type: 'string', description: 'Project constraints (timeline, budget, technical)' },
11
- analysisMethod: { type: 'string', description: 'Analysis method', enum: ['moscow', 'kano', 'value-effort'], default: 'moscow' }
12
- },
13
- required: ['requirements']
14
- },
15
- annotations: {
16
- title: 'Analyze Requirements',
17
- audience: ['user', 'assistant'],
18
- readOnlyHint: true,
19
- destructiveHint: false,
20
- idempotentHint: true,
21
- openWorldHint: false
22
- }
23
- };
24
- export async function analyzeRequirements(args) {
25
- const { requirements, stakeholders = 'end users, product owner, development team', constraints = 'standard timeline and budget constraints', analysisMethod = 'moscow' } = args;
26
- // Parse requirements
27
- const requirementList = requirements.split(/[,\n]/).map(r => r.trim()).filter(r => r.length > 0);
28
- const stakeholderList = stakeholders.split(',').map(s => s.trim());
29
- const analyzedRequirements = requirementList.map((req, index) => {
30
- const reqId = `REQ-${String(index + 1).padStart(3, '0')}`;
31
- // Determine requirement type
32
- let type = 'functional';
33
- if (req.toLowerCase().includes('performance') || req.toLowerCase().includes('security') || req.toLowerCase().includes('scalability')) {
34
- type = 'non-functional';
35
- }
36
- else if (req.toLowerCase().includes('business') || req.toLowerCase().includes('revenue') || req.toLowerCase().includes('cost')) {
37
- type = 'business';
38
- }
39
- else if (req.toLowerCase().includes('infrastructure') || req.toLowerCase().includes('architecture') || req.toLowerCase().includes('database')) {
40
- type = 'technical';
41
- }
42
- // Determine priority using MoSCoW
43
- let priority = 'should-have';
44
- if (req.toLowerCase().includes('critical') || req.toLowerCase().includes('essential') || req.toLowerCase().includes('required')) {
45
- priority = 'must-have';
46
- }
47
- else if (req.toLowerCase().includes('important') || req.toLowerCase().includes('needed')) {
48
- priority = 'should-have';
49
- }
50
- else if (req.toLowerCase().includes('nice') || req.toLowerCase().includes('optional') || req.toLowerCase().includes('enhancement')) {
51
- priority = 'could-have';
52
- }
53
- else if (req.toLowerCase().includes('future') || req.toLowerCase().includes('later') || req.toLowerCase().includes('v2')) {
54
- priority = 'wont-have';
55
- }
56
- // Assess complexity
57
- let complexity = 'medium';
58
- if (req.length > 100 || req.toLowerCase().includes('complex') || req.toLowerCase().includes('integration') || req.toLowerCase().includes('advanced')) {
59
- complexity = 'high';
60
- }
61
- else if (req.length < 50 || req.toLowerCase().includes('simple') || req.toLowerCase().includes('basic')) {
62
- complexity = 'low';
63
- }
64
- // Assess risk
65
- let risk = 'low';
66
- if (req.toLowerCase().includes('external') || req.toLowerCase().includes('third-party') || req.toLowerCase().includes('new technology')) {
67
- risk = 'high';
68
- }
69
- else if (req.toLowerCase().includes('integration') || req.toLowerCase().includes('performance') || complexity === 'high') {
70
- risk = 'medium';
71
- }
72
- // Estimate effort
73
- let estimatedEffort = '3-5 days';
74
- if (complexity === 'high') {
75
- estimatedEffort = '1-3 weeks';
76
- }
77
- else if (complexity === 'low') {
78
- estimatedEffort = '1-2 days';
79
- }
80
- // Determine relevant stakeholders
81
- const relevantStakeholders = stakeholderList.filter(stakeholder => {
82
- if (type === 'business' && stakeholder.toLowerCase().includes('owner'))
83
- return true;
84
- if (type === 'technical' && stakeholder.toLowerCase().includes('developer'))
85
- return true;
86
- if (type === 'functional' && stakeholder.toLowerCase().includes('user'))
87
- return true;
88
- return true; // Include all by default
89
- });
90
- return {
91
- id: reqId,
92
- title: req.length > 50 ? req.substring(0, 47) + '...' : req,
93
- description: req,
94
- type,
95
- priority,
96
- complexity,
97
- risk,
98
- dependencies: [],
99
- estimatedEffort,
100
- stakeholders: relevantStakeholders
101
- };
102
- });
103
- const analysis = {
104
- action: 'analyze_requirements',
105
- method: analysisMethod,
106
- totalRequirements: analyzedRequirements.length,
107
- requirements: analyzedRequirements,
108
- priorityBreakdown: {
109
- mustHave: analyzedRequirements.filter(r => r.priority === 'must-have').length,
110
- shouldHave: analyzedRequirements.filter(r => r.priority === 'should-have').length,
111
- couldHave: analyzedRequirements.filter(r => r.priority === 'could-have').length,
112
- wontHave: analyzedRequirements.filter(r => r.priority === 'wont-have').length
113
- },
114
- typeBreakdown: {
115
- functional: analyzedRequirements.filter(r => r.type === 'functional').length,
116
- nonFunctional: analyzedRequirements.filter(r => r.type === 'non-functional').length,
117
- business: analyzedRequirements.filter(r => r.type === 'business').length,
118
- technical: analyzedRequirements.filter(r => r.type === 'technical').length
119
- },
120
- riskAssessment: {
121
- high: analyzedRequirements.filter(r => r.risk === 'high').length,
122
- medium: analyzedRequirements.filter(r => r.risk === 'medium').length,
123
- low: analyzedRequirements.filter(r => r.risk === 'low').length
124
- },
125
- recommendations: [
126
- 'Focus on Must-Have requirements for MVP',
127
- 'Validate high-risk requirements early',
128
- 'Consider Should-Have items for post-MVP releases',
129
- 'Review Could-Have items based on resource availability',
130
- 'Plan technical requirements to support functional ones'
131
- ],
132
- constraints: constraints,
133
- status: 'success'
134
- };
135
- // Format output
136
- let formattedOutput = `# Requirements Analysis\n\n`;
137
- formattedOutput += `**Analysis Method:** ${analysisMethod.toUpperCase()} \n`;
138
- formattedOutput += `**Total Requirements:** ${analysis.totalRequirements} \n`;
139
- formattedOutput += `**Constraints:** ${constraints}\n\n`;
140
- formattedOutput += `## Priority Breakdown (MoSCoW)\n`;
141
- formattedOutput += `- **Must Have:** ${analysis.priorityBreakdown.mustHave}\n`;
142
- formattedOutput += `- **Should Have:** ${analysis.priorityBreakdown.shouldHave}\n`;
143
- formattedOutput += `- **Could Have:** ${analysis.priorityBreakdown.couldHave}\n`;
144
- formattedOutput += `- **Won't Have:** ${analysis.priorityBreakdown.wontHave}\n\n`;
145
- formattedOutput += `## Risk Assessment\n`;
146
- formattedOutput += `- **High Risk:** ${analysis.riskAssessment.high} requirements\n`;
147
- formattedOutput += `- **Medium Risk:** ${analysis.riskAssessment.medium} requirements\n`;
148
- formattedOutput += `- **Low Risk:** ${analysis.riskAssessment.low} requirements\n\n`;
149
- formattedOutput += `## Detailed Requirements\n\n`;
150
- // Group by priority
151
- const priorities = ['must-have', 'should-have', 'could-have', 'wont-have'];
152
- priorities.forEach(priority => {
153
- const reqsForPriority = analyzedRequirements.filter(r => r.priority === priority);
154
- if (reqsForPriority.length > 0) {
155
- formattedOutput += `### ${priority.toUpperCase().replace('-', ' ')} (${reqsForPriority.length})\n\n`;
156
- reqsForPriority.forEach(req => {
157
- formattedOutput += `**${req.id}:** ${req.title} \n`;
158
- formattedOutput += `*Type:* ${req.type} | *Complexity:* ${req.complexity} | *Risk:* ${req.risk} | *Effort:* ${req.estimatedEffort} \n`;
159
- formattedOutput += `*Stakeholders:* ${req.stakeholders.join(', ')}\n\n`;
160
- });
161
- }
162
- });
163
- formattedOutput += `## Recommendations\n`;
164
- analysis.recommendations.forEach(rec => {
165
- formattedOutput += `- ${rec}\n`;
166
- });
167
- return {
168
- content: [{ type: 'text', text: formattedOutput }]
169
- };
170
- }
171
- //# sourceMappingURL=analyzeRequirements.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"analyzeRequirements.js","sourceRoot":"","sources":["../../../src/tools/planning/analyzeRequirements.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- import { ToolResult, ToolDefinition } from '../../types/tool.js';
2
- export declare const createUserStoriesDefinition: ToolDefinition;
3
- export declare function createUserStories(args: {
4
- features: string;
5
- userTypes?: string;
6
- priority?: string;
7
- includeAcceptanceCriteria?: boolean;
8
- }): Promise<ToolResult>;
9
- //# sourceMappingURL=createUserStories.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createUserStories.d.ts","sourceRoot":"","sources":["../../../src/tools/planning/createUserStories.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAejE,eAAO,MAAM,2BAA2B,EAAE,cAqBzC,CAAC;AAEF,wBAAsB,iBAAiB,CAAC,IAAI,EAAE;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACrC,GAAG,OAAO,CAAC,UAAU,CAAC,CA+GtB"}
@@ -1,124 +0,0 @@
1
- // Planning tool - completely independent
2
- export const createUserStoriesDefinition = {
3
- name: 'create_user_stories',
4
- description: '스토리|사용자 스토리|user story|user stories|as a user - Generate user stories from requirements',
5
- inputSchema: {
6
- type: 'object',
7
- properties: {
8
- features: { type: 'string', description: 'List of features or requirements to convert to user stories' },
9
- userTypes: { type: 'string', description: 'Types of users (e.g., admin, customer, guest)' },
10
- priority: { type: 'string', description: 'Default priority level', enum: ['high', 'medium', 'low'] },
11
- includeAcceptanceCriteria: { type: 'boolean', description: 'Include acceptance criteria for each story' }
12
- },
13
- required: ['features']
14
- },
15
- annotations: {
16
- title: 'Create User Stories',
17
- audience: ['user', 'assistant'],
18
- readOnlyHint: true,
19
- destructiveHint: false,
20
- idempotentHint: true,
21
- openWorldHint: false
22
- }
23
- };
24
- export async function createUserStories(args) {
25
- const { features, userTypes = 'user, admin, guest', priority = 'medium', includeAcceptanceCriteria = true } = args;
26
- // Parse features into individual items
27
- const featureList = features.split(/[,\n]/).map(f => f.trim()).filter(f => f.length > 0);
28
- const userTypeList = userTypes.split(',').map(u => u.trim());
29
- const userStories = featureList.map((feature, index) => {
30
- const storyId = `US-${String(index + 1).padStart(3, '0')}`;
31
- // Determine user type based on feature content
32
- let selectedUserType = userTypeList[0];
33
- if (feature.toLowerCase().includes('admin') || feature.toLowerCase().includes('manage')) {
34
- selectedUserType = userTypeList.find(u => u.toLowerCase().includes('admin')) || selectedUserType;
35
- }
36
- else if (feature.toLowerCase().includes('guest') || feature.toLowerCase().includes('browse')) {
37
- selectedUserType = userTypeList.find(u => u.toLowerCase().includes('guest')) || selectedUserType;
38
- }
39
- // Extract functionality and benefit
40
- const functionality = feature;
41
- let benefit = 'to achieve my goals efficiently';
42
- // Try to infer benefit from common patterns
43
- if (feature.toLowerCase().includes('search'))
44
- benefit = 'to find relevant information quickly';
45
- else if (feature.toLowerCase().includes('save') || feature.toLowerCase().includes('store'))
46
- benefit = 'to preserve my data for future use';
47
- else if (feature.toLowerCase().includes('share'))
48
- benefit = 'to collaborate with others effectively';
49
- else if (feature.toLowerCase().includes('track') || feature.toLowerCase().includes('monitor'))
50
- benefit = 'to stay informed about important changes';
51
- else if (feature.toLowerCase().includes('customize') || feature.toLowerCase().includes('configure'))
52
- benefit = 'to tailor the experience to my needs';
53
- // Generate acceptance criteria
54
- const acceptanceCriteria = includeAcceptanceCriteria ? [
55
- `Given I am a ${selectedUserType}, when I access the ${functionality.toLowerCase()} feature, then it should be available and functional`,
56
- `When I use the ${functionality.toLowerCase()} feature, then it should provide clear feedback about the action`,
57
- `The ${functionality.toLowerCase()} feature should handle errors gracefully and provide helpful messages`,
58
- `The feature should be accessible and usable across different devices and browsers`
59
- ] : [];
60
- // Determine priority based on feature content
61
- let storyPriority = priority;
62
- if (feature.toLowerCase().includes('critical') || feature.toLowerCase().includes('security') || feature.toLowerCase().includes('login')) {
63
- storyPriority = 'high';
64
- }
65
- else if (feature.toLowerCase().includes('nice to have') || feature.toLowerCase().includes('optional')) {
66
- storyPriority = 'low';
67
- }
68
- // Estimate effort based on complexity
69
- let estimatedEffort = '3-5 days';
70
- if (feature.length > 100 || feature.toLowerCase().includes('complex') || feature.toLowerCase().includes('integration')) {
71
- estimatedEffort = '1-2 weeks';
72
- }
73
- else if (feature.length < 30 || feature.toLowerCase().includes('simple') || feature.toLowerCase().includes('basic')) {
74
- estimatedEffort = '1-2 days';
75
- }
76
- return {
77
- id: storyId,
78
- title: `${selectedUserType} - ${functionality}`,
79
- story: `As a ${selectedUserType}, I want to ${functionality.toLowerCase()}, so that ${benefit}.`,
80
- userType: selectedUserType,
81
- functionality,
82
- benefit,
83
- acceptanceCriteria,
84
- priority: storyPriority,
85
- estimatedEffort,
86
- dependencies: []
87
- };
88
- });
89
- const result = {
90
- action: 'create_user_stories',
91
- totalStories: userStories.length,
92
- userTypes: userTypeList,
93
- stories: userStories,
94
- summary: {
95
- high: userStories.filter(s => s.priority === 'high').length,
96
- medium: userStories.filter(s => s.priority === 'medium').length,
97
- low: userStories.filter(s => s.priority === 'low').length,
98
- estimatedTotalEffort: `${userStories.length * 3}-${userStories.length * 7} days`
99
- },
100
- status: 'success'
101
- };
102
- // Format output
103
- let formattedOutput = `# User Stories\n\n**Total Stories:** ${result.totalStories} \n**Priority Breakdown:** ${result.summary.high} High, ${result.summary.medium} Medium, ${result.summary.low} Low \n**Estimated Effort:** ${result.summary.estimatedTotalEffort}\n\n`;
104
- userStories.forEach((story, index) => {
105
- formattedOutput += `## ${story.id}: ${story.title}\n\n`;
106
- formattedOutput += `**Story:** ${story.story}\n\n`;
107
- formattedOutput += `**Priority:** ${story.priority.toUpperCase()} \n`;
108
- formattedOutput += `**Estimated Effort:** ${story.estimatedEffort}\n\n`;
109
- if (story.acceptanceCriteria.length > 0) {
110
- formattedOutput += `**Acceptance Criteria:**\n`;
111
- story.acceptanceCriteria.forEach((criteria, i) => {
112
- formattedOutput += `${i + 1}. ${criteria}\n`;
113
- });
114
- formattedOutput += '\n';
115
- }
116
- if (index < userStories.length - 1) {
117
- formattedOutput += '---\n\n';
118
- }
119
- });
120
- return {
121
- content: [{ type: 'text', text: formattedOutput }]
122
- };
123
- }
124
- //# sourceMappingURL=createUserStories.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createUserStories.js","sourceRoot":"","sources":["../../../src/tools/planning/createUserStories.ts"],"names":[],"mappings":"AAAA,yCAAyC;AAiBzC,MAAM,CAAC,MAAM,2BAA2B,GAAmB;IACzD,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EAAE,yFAAyF;IACtG,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6DAA6D,EAAE;YACxG,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,+CAA+C,EAAE;YAC3F,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wBAAwB,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE;YACpG,yBAAyB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,4CAA4C,EAAE;SAC1G;QACD,QAAQ,EAAE,CAAC,UAAU,CAAC;KACvB;IACD,WAAW,EAAE;QACX,KAAK,EAAE,qBAAqB;QAC5B,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC;QAC/B,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,KAAK;QACtB,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,KAAK;KACrB;CACF,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAKvC;IACC,MAAM,EACJ,QAAQ,EACR,SAAS,GAAG,oBAAoB,EAChC,QAAQ,GAAG,QAAQ,EACnB,yBAAyB,GAAG,IAAI,EACjC,GAAG,IAAI,CAAC;IAET,uCAAuC;IACvC,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACzF,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAE7D,MAAM,WAAW,GAAgB,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;QAClE,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;QAE3D,+CAA+C;QAC/C,IAAI,gBAAgB,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QACvC,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxF,gBAAgB,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,gBAAgB,CAAC;QACnG,CAAC;aAAM,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/F,gBAAgB,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,gBAAgB,CAAC;QACnG,CAAC;QAED,oCAAoC;QACpC,MAAM,aAAa,GAAG,OAAO,CAAC;QAC9B,IAAI,OAAO,GAAG,iCAAiC,CAAC;QAEhD,4CAA4C;QAC5C,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAAE,OAAO,GAAG,sCAAsC,CAAC;aAC1F,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,OAAO,GAAG,oCAAoC,CAAC;aACtI,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,OAAO,GAAG,wCAAwC,CAAC;aAChG,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;YAAE,OAAO,GAAG,0CAA0C,CAAC;aAC/I,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;YAAE,OAAO,GAAG,sCAAsC,CAAC;QAEtJ,+BAA+B;QAC/B,MAAM,kBAAkB,GAAG,yBAAyB,CAAC,CAAC,CAAC;YACrD,gBAAgB,gBAAgB,uBAAuB,aAAa,CAAC,WAAW,EAAE,sDAAsD;YACxI,kBAAkB,aAAa,CAAC,WAAW,EAAE,kEAAkE;YAC/G,OAAO,aAAa,CAAC,WAAW,EAAE,uEAAuE;YACzG,mFAAmF;SACpF,CAAC,CAAC,CAAC,EAAE,CAAC;QAEP,8CAA8C;QAC9C,IAAI,aAAa,GAA8B,QAAe,CAAC;QAC/D,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACxI,aAAa,GAAG,MAAM,CAAC;QACzB,CAAC;aAAM,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACxG,aAAa,GAAG,KAAK,CAAC;QACxB,CAAC;QAED,sCAAsC;QACtC,IAAI,eAAe,GAAG,UAAU,CAAC;QACjC,IAAI,OAAO,CAAC,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;YACvH,eAAe,GAAG,WAAW,CAAC;QAChC,CAAC;aAAM,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACtH,eAAe,GAAG,UAAU,CAAC;QAC/B,CAAC;QAED,OAAO;YACL,EAAE,EAAE,OAAO;YACX,KAAK,EAAE,GAAG,gBAAgB,MAAM,aAAa,EAAE;YAC/C,KAAK,EAAE,QAAQ,gBAAgB,eAAe,aAAa,CAAC,WAAW,EAAE,aAAa,OAAO,GAAG;YAChG,QAAQ,EAAE,gBAAgB;YAC1B,aAAa;YACb,OAAO;YACP,kBAAkB;YAClB,QAAQ,EAAE,aAAa;YACvB,eAAe;YACf,YAAY,EAAE,EAAE;SACjB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG;QACb,MAAM,EAAE,qBAAqB;QAC7B,YAAY,EAAE,WAAW,CAAC,MAAM;QAChC,SAAS,EAAE,YAAY;QACvB,OAAO,EAAE,WAAW;QACpB,OAAO,EAAE;YACP,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,MAAM;YAC3D,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,MAAM;YAC/D,GAAG,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,KAAK,CAAC,CAAC,MAAM;YACzD,oBAAoB,EAAE,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,OAAO;SACjF;QACD,MAAM,EAAE,SAAS;KAClB,CAAC;IAEF,gBAAgB;IAChB,IAAI,eAAe,GAAG,wCAAwC,MAAM,CAAC,YAAY,+BAA+B,MAAM,CAAC,OAAO,CAAC,IAAI,UAAU,MAAM,CAAC,OAAO,CAAC,MAAM,YAAY,MAAM,CAAC,OAAO,CAAC,GAAG,iCAAiC,MAAM,CAAC,OAAO,CAAC,oBAAoB,MAAM,CAAC;IAE3Q,WAAW,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACnC,eAAe,IAAI,MAAM,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,KAAK,MAAM,CAAC;QACxD,eAAe,IAAI,cAAc,KAAK,CAAC,KAAK,MAAM,CAAC;QACnD,eAAe,IAAI,iBAAiB,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QACvE,eAAe,IAAI,yBAAyB,KAAK,CAAC,eAAe,MAAM,CAAC;QAExE,IAAI,KAAK,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxC,eAAe,IAAI,4BAA4B,CAAC;YAChD,KAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE;gBAC/C,eAAe,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,CAAC;YAC/C,CAAC,CAAC,CAAC;YACH,eAAe,IAAI,IAAI,CAAC;QAC1B,CAAC;QAED,IAAI,KAAK,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,eAAe,IAAI,SAAS,CAAC;QAC/B,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;KACnD,CAAC;AACJ,CAAC"}