@su-record/vibe 2.4.52 → 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 (97) 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/postinstall.d.ts +7 -0
  7. package/dist/cli/postinstall.d.ts.map +1 -0
  8. package/dist/cli/postinstall.js +136 -0
  9. package/dist/cli/postinstall.js.map +1 -0
  10. package/dist/cli/setup.d.ts.map +1 -1
  11. package/dist/cli/setup.js +12 -5
  12. package/dist/cli/setup.js.map +1 -1
  13. package/dist/tools/index.d.ts +0 -14
  14. package/dist/tools/index.d.ts.map +1 -1
  15. package/dist/tools/index.js +0 -19
  16. package/dist/tools/index.js.map +1 -1
  17. package/package.json +3 -7
  18. package/dist/tools/analytics/getUsageAnalytics.d.ts +0 -10
  19. package/dist/tools/analytics/getUsageAnalytics.d.ts.map +0 -1
  20. package/dist/tools/analytics/getUsageAnalytics.js +0 -246
  21. package/dist/tools/analytics/getUsageAnalytics.js.map +0 -1
  22. package/dist/tools/analytics/index.d.ts +0 -5
  23. package/dist/tools/analytics/index.d.ts.map +0 -1
  24. package/dist/tools/analytics/index.js +0 -5
  25. package/dist/tools/analytics/index.js.map +0 -1
  26. package/dist/tools/planning/analyzeRequirements.d.ts +0 -9
  27. package/dist/tools/planning/analyzeRequirements.d.ts.map +0 -1
  28. package/dist/tools/planning/analyzeRequirements.js +0 -171
  29. package/dist/tools/planning/analyzeRequirements.js.map +0 -1
  30. package/dist/tools/planning/createUserStories.d.ts +0 -9
  31. package/dist/tools/planning/createUserStories.d.ts.map +0 -1
  32. package/dist/tools/planning/createUserStories.js +0 -124
  33. package/dist/tools/planning/createUserStories.js.map +0 -1
  34. package/dist/tools/planning/featureRoadmap.d.ts +0 -10
  35. package/dist/tools/planning/featureRoadmap.d.ts.map +0 -1
  36. package/dist/tools/planning/featureRoadmap.js +0 -207
  37. package/dist/tools/planning/featureRoadmap.js.map +0 -1
  38. package/dist/tools/planning/generatePrd.d.ts +0 -11
  39. package/dist/tools/planning/generatePrd.d.ts.map +0 -1
  40. package/dist/tools/planning/generatePrd.js +0 -161
  41. package/dist/tools/planning/generatePrd.js.map +0 -1
  42. package/dist/tools/planning/index.d.ts +0 -8
  43. package/dist/tools/planning/index.d.ts.map +0 -1
  44. package/dist/tools/planning/index.js +0 -8
  45. package/dist/tools/planning/index.js.map +0 -1
  46. package/dist/tools/prompt/analyzePrompt.d.ts +0 -7
  47. package/dist/tools/prompt/analyzePrompt.d.ts.map +0 -1
  48. package/dist/tools/prompt/analyzePrompt.js +0 -150
  49. package/dist/tools/prompt/analyzePrompt.js.map +0 -1
  50. package/dist/tools/prompt/enhancePrompt.d.ts +0 -8
  51. package/dist/tools/prompt/enhancePrompt.d.ts.map +0 -1
  52. package/dist/tools/prompt/enhancePrompt.js +0 -110
  53. package/dist/tools/prompt/enhancePrompt.js.map +0 -1
  54. package/dist/tools/prompt/enhancePromptGemini.d.ts +0 -8
  55. package/dist/tools/prompt/enhancePromptGemini.d.ts.map +0 -1
  56. package/dist/tools/prompt/enhancePromptGemini.js +0 -332
  57. package/dist/tools/prompt/enhancePromptGemini.js.map +0 -1
  58. package/dist/tools/prompt/index.d.ts +0 -7
  59. package/dist/tools/prompt/index.d.ts.map +0 -1
  60. package/dist/tools/prompt/index.js +0 -7
  61. package/dist/tools/prompt/index.js.map +0 -1
  62. package/dist/tools/reasoning/applyReasoningFramework.d.ts +0 -8
  63. package/dist/tools/reasoning/applyReasoningFramework.d.ts.map +0 -1
  64. package/dist/tools/reasoning/applyReasoningFramework.js +0 -266
  65. package/dist/tools/reasoning/applyReasoningFramework.js.map +0 -1
  66. package/dist/tools/reasoning/index.d.ts +0 -5
  67. package/dist/tools/reasoning/index.d.ts.map +0 -1
  68. package/dist/tools/reasoning/index.js +0 -5
  69. package/dist/tools/reasoning/index.js.map +0 -1
  70. package/dist/tools/thinking/analyzeProblem.d.ts +0 -7
  71. package/dist/tools/thinking/analyzeProblem.d.ts.map +0 -1
  72. package/dist/tools/thinking/analyzeProblem.js +0 -55
  73. package/dist/tools/thinking/analyzeProblem.js.map +0 -1
  74. package/dist/tools/thinking/breakDownProblem.d.ts +0 -8
  75. package/dist/tools/thinking/breakDownProblem.d.ts.map +0 -1
  76. package/dist/tools/thinking/breakDownProblem.js +0 -145
  77. package/dist/tools/thinking/breakDownProblem.js.map +0 -1
  78. package/dist/tools/thinking/createThinkingChain.d.ts +0 -7
  79. package/dist/tools/thinking/createThinkingChain.d.ts.map +0 -1
  80. package/dist/tools/thinking/createThinkingChain.js +0 -44
  81. package/dist/tools/thinking/createThinkingChain.js.map +0 -1
  82. package/dist/tools/thinking/formatAsPlan.d.ts +0 -9
  83. package/dist/tools/thinking/formatAsPlan.d.ts.map +0 -1
  84. package/dist/tools/thinking/formatAsPlan.js +0 -78
  85. package/dist/tools/thinking/formatAsPlan.js.map +0 -1
  86. package/dist/tools/thinking/index.d.ts +0 -10
  87. package/dist/tools/thinking/index.d.ts.map +0 -1
  88. package/dist/tools/thinking/index.js +0 -10
  89. package/dist/tools/thinking/index.js.map +0 -1
  90. package/dist/tools/thinking/stepByStepAnalysis.d.ts +0 -8
  91. package/dist/tools/thinking/stepByStepAnalysis.d.ts.map +0 -1
  92. package/dist/tools/thinking/stepByStepAnalysis.js +0 -63
  93. package/dist/tools/thinking/stepByStepAnalysis.js.map +0 -1
  94. package/dist/tools/thinking/thinkAloudProcess.d.ts +0 -8
  95. package/dist/tools/thinking/thinkAloudProcess.d.ts.map +0 -1
  96. package/dist/tools/thinking/thinkAloudProcess.js +0 -80
  97. package/dist/tools/thinking/thinkAloudProcess.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@su-record/vibe",
3
- "version": "2.4.52",
3
+ "version": "2.4.53",
4
4
  "description": "Vibe - Claude Code exclusive SPEC-driven AI coding framework with 35+ integrated tools",
5
5
  "type": "module",
6
6
  "main": "dist/cli/index.js",
@@ -10,13 +10,8 @@
10
10
  "./tools/memory": "./dist/tools/memory/index.js",
11
11
  "./tools/convention": "./dist/tools/convention/index.js",
12
12
  "./tools/semantic": "./dist/tools/semantic/index.js",
13
- "./tools/thinking": "./dist/tools/thinking/index.js",
14
- "./tools/planning": "./dist/tools/planning/index.js",
15
- "./tools/prompt": "./dist/tools/prompt/index.js",
16
13
  "./tools/ui": "./dist/tools/ui/index.js",
17
14
  "./tools/time": "./dist/tools/time/index.js",
18
- "./tools/reasoning": "./dist/tools/reasoning/index.js",
19
- "./tools/analytics": "./dist/tools/analytics/index.js",
20
15
  "./orchestrator": "./dist/orchestrator/index.js",
21
16
  "./lib/gpt": "./dist/lib/gpt-api.js",
22
17
  "./lib/gemini": "./dist/lib/gemini-api.js"
@@ -29,7 +24,8 @@
29
24
  "dev": "tsc --watch",
30
25
  "test": "vitest run",
31
26
  "test:watch": "vitest",
32
- "prepublishOnly": "npm run build"
27
+ "prepublishOnly": "npm run build",
28
+ "postinstall": "node dist/cli/postinstall.js"
33
29
  },
34
30
  "keywords": [
35
31
  "ai",
@@ -1,10 +0,0 @@
1
- import { ToolResult, ToolDefinition } from '../../types/tool.js';
2
- export declare const getUsageAnalyticsDefinition: ToolDefinition;
3
- interface GetUsageAnalyticsArgs {
4
- type?: 'memory' | 'graph' | 'all';
5
- timeRange?: '1d' | '7d' | '30d' | 'all';
6
- detailed?: boolean;
7
- }
8
- export declare function getUsageAnalytics(args: GetUsageAnalyticsArgs): Promise<ToolResult>;
9
- export {};
10
- //# sourceMappingURL=getUsageAnalytics.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getUsageAnalytics.d.ts","sourceRoot":"","sources":["../../../src/tools/analytics/getUsageAnalytics.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAc,MAAM,qBAAqB,CAAC;AAG7E,eAAO,MAAM,2BAA2B,EAAE,cA0CzC,CAAC;AAEF,UAAU,qBAAqB;IAC7B,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,KAAK,CAAC;IAClC,SAAS,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,CAAC;IACxC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC,CAqCxF"}
@@ -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":"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"}
@@ -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"}