vibe-coding-mcp 2.12.0 → 2.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/CHANGELOG.md +74 -0
  2. package/LICENSE +21 -0
  3. package/README.md +205 -291
  4. package/SECURITY.md +65 -0
  5. package/dist/core/mcpServerFactory.d.ts +30 -0
  6. package/dist/core/mcpServerFactory.js +136 -0
  7. package/dist/core/mcpServerFactory.js.map +1 -0
  8. package/dist/core/prompts.d.ts +42 -0
  9. package/dist/core/prompts.js +158 -0
  10. package/dist/core/prompts.js.map +1 -0
  11. package/dist/core/resources.d.ts +47 -0
  12. package/dist/core/resources.js +99 -0
  13. package/dist/core/resources.js.map +1 -0
  14. package/dist/core/toolRegistry.d.ts +55 -0
  15. package/dist/core/toolRegistry.js +185 -0
  16. package/dist/core/toolRegistry.js.map +1 -0
  17. package/dist/index.d.ts +12 -0
  18. package/dist/index.js +88 -147
  19. package/dist/index.js.map +1 -1
  20. package/dist/stdio.d.ts +7 -1
  21. package/dist/stdio.js +15 -137
  22. package/dist/stdio.js.map +1 -1
  23. package/package.json +11 -4
  24. package/dist/__tests__/collectCodeContext.test.d.ts +0 -2
  25. package/dist/__tests__/collectCodeContext.test.d.ts.map +0 -1
  26. package/dist/__tests__/collectCodeContext.test.js +0 -139
  27. package/dist/__tests__/collectCodeContext.test.js.map +0 -1
  28. package/dist/__tests__/createSessionLog.test.d.ts +0 -2
  29. package/dist/__tests__/createSessionLog.test.d.ts.map +0 -1
  30. package/dist/__tests__/createSessionLog.test.js +0 -130
  31. package/dist/__tests__/createSessionLog.test.js.map +0 -1
  32. package/dist/__tests__/exportSession.test.d.ts +0 -2
  33. package/dist/__tests__/exportSession.test.d.ts.map +0 -1
  34. package/dist/__tests__/exportSession.test.js +0 -180
  35. package/dist/__tests__/exportSession.test.js.map +0 -1
  36. package/dist/__tests__/generateDevDocument.test.d.ts +0 -2
  37. package/dist/__tests__/generateDevDocument.test.d.ts.map +0 -1
  38. package/dist/__tests__/generateDevDocument.test.js +0 -174
  39. package/dist/__tests__/generateDevDocument.test.js.map +0 -1
  40. package/dist/__tests__/git.test.d.ts +0 -2
  41. package/dist/__tests__/git.test.d.ts.map +0 -1
  42. package/dist/__tests__/git.test.js +0 -282
  43. package/dist/__tests__/git.test.js.map +0 -1
  44. package/dist/__tests__/normalizeForPlatform.test.d.ts +0 -2
  45. package/dist/__tests__/normalizeForPlatform.test.d.ts.map +0 -1
  46. package/dist/__tests__/normalizeForPlatform.test.js +0 -171
  47. package/dist/__tests__/normalizeForPlatform.test.js.map +0 -1
  48. package/dist/__tests__/projectProfile.test.d.ts +0 -2
  49. package/dist/__tests__/projectProfile.test.d.ts.map +0 -1
  50. package/dist/__tests__/projectProfile.test.js +0 -216
  51. package/dist/__tests__/projectProfile.test.js.map +0 -1
  52. package/dist/__tests__/publishDocument.test.d.ts +0 -2
  53. package/dist/__tests__/publishDocument.test.d.ts.map +0 -1
  54. package/dist/__tests__/publishDocument.test.js +0 -93
  55. package/dist/__tests__/publishDocument.test.js.map +0 -1
  56. package/dist/__tests__/sessionHistory.test.d.ts +0 -2
  57. package/dist/__tests__/sessionHistory.test.d.ts.map +0 -1
  58. package/dist/__tests__/sessionHistory.test.js +0 -229
  59. package/dist/__tests__/sessionHistory.test.js.map +0 -1
  60. package/dist/__tests__/summarizeDesignDecisions.test.d.ts +0 -2
  61. package/dist/__tests__/summarizeDesignDecisions.test.d.ts.map +0 -1
  62. package/dist/__tests__/summarizeDesignDecisions.test.js +0 -158
  63. package/dist/__tests__/summarizeDesignDecisions.test.js.map +0 -1
  64. package/dist/core/ai.d.ts.map +0 -1
  65. package/dist/core/cache.d.ts.map +0 -1
  66. package/dist/core/config.d.ts.map +0 -1
  67. package/dist/core/errors.d.ts.map +0 -1
  68. package/dist/core/logger.d.ts.map +0 -1
  69. package/dist/core/profileStorage.d.ts.map +0 -1
  70. package/dist/core/schemas.d.ts.map +0 -1
  71. package/dist/core/security.d.ts.map +0 -1
  72. package/dist/core/sessionStorage.d.ts.map +0 -1
  73. package/dist/index.d.ts.map +0 -1
  74. package/dist/platforms/confluence.d.ts.map +0 -1
  75. package/dist/platforms/discord.d.ts.map +0 -1
  76. package/dist/platforms/github-wiki.d.ts.map +0 -1
  77. package/dist/platforms/notion.d.ts.map +0 -1
  78. package/dist/platforms/obsidian.d.ts.map +0 -1
  79. package/dist/platforms/slack.d.ts.map +0 -1
  80. package/dist/stdio.d.ts.map +0 -1
  81. package/dist/tools/analyzeCode.d.ts.map +0 -1
  82. package/dist/tools/autoTag.d.ts.map +0 -1
  83. package/dist/tools/batch.d.ts.map +0 -1
  84. package/dist/tools/collectCodeContext.d.ts.map +0 -1
  85. package/dist/tools/createSessionLog.d.ts.map +0 -1
  86. package/dist/tools/exportSession.d.ts.map +0 -1
  87. package/dist/tools/generateDevDocument.d.ts.map +0 -1
  88. package/dist/tools/git.d.ts.map +0 -1
  89. package/dist/tools/normalizeForPlatform.d.ts.map +0 -1
  90. package/dist/tools/projectProfile.d.ts.map +0 -1
  91. package/dist/tools/publishDocument.d.ts.map +0 -1
  92. package/dist/tools/sessionHistory.d.ts.map +0 -1
  93. package/dist/tools/sessionStats.d.ts.map +0 -1
  94. package/dist/tools/summarizeDesignDecisions.d.ts.map +0 -1
  95. package/dist/tools/template.d.ts.map +0 -1
  96. package/dist/types/index.d.ts.map +0 -1
  97. package/dist/utils/astParser.d.ts.map +0 -1
  98. package/dist/utils/gitExecutor.d.ts.map +0 -1
  99. package/dist/utils/gitParsers.d.ts.map +0 -1
  100. package/dist/utils/i18n.d.ts.map +0 -1
  101. package/dist/utils/markdown.d.ts.map +0 -1
  102. package/dist/utils/mermaidGenerator.d.ts.map +0 -1
@@ -1,216 +0,0 @@
1
- import { projectProfileTool } from '../tools/projectProfile.js';
2
- import * as profileStorage from '../core/profileStorage.js';
3
- import { promises as fs } from 'fs';
4
- import * as path from 'path';
5
- import * as os from 'os';
6
- let testDir;
7
- beforeAll(async () => {
8
- testDir = path.join(os.tmpdir(), `vibe-coding-profile-test-${Date.now()}`);
9
- await profileStorage.initializeProfileStorage(testDir);
10
- });
11
- afterAll(async () => {
12
- try {
13
- const files = await fs.readdir(testDir);
14
- for (const file of files) {
15
- await fs.unlink(path.join(testDir, file));
16
- }
17
- await fs.rmdir(testDir);
18
- }
19
- catch {
20
- // Ignore cleanup errors
21
- }
22
- });
23
- describe('projectProfileTool', () => {
24
- let createdProfileId;
25
- describe('create action', () => {
26
- it('should create a new profile', async () => {
27
- const result = await projectProfileTool({
28
- action: 'create',
29
- name: 'Test Project',
30
- description: 'A test project profile',
31
- projectPath: '/path/to/project',
32
- repository: 'https://github.com/test/repo',
33
- version: '1.0.0',
34
- publishing: {
35
- defaultPlatform: 'notion',
36
- autoPublish: false
37
- },
38
- codeAnalysis: {
39
- defaultLanguage: 'typescript',
40
- defaultDiagramTypes: ['class', 'flowchart'],
41
- useAI: true
42
- },
43
- documentation: {
44
- defaultDocType: 'README',
45
- language: 'en',
46
- author: 'Test Author'
47
- },
48
- defaultTags: ['project', 'test']
49
- });
50
- expect(result.success).toBe(true);
51
- expect(result.action).toBe('create');
52
- expect(result.profile).toBeDefined();
53
- expect(result.profile?.name).toBe('Test Project');
54
- expect(result.profile?.publishing?.defaultPlatform).toBe('notion');
55
- createdProfileId = result.profile.id;
56
- });
57
- it('should fail without name', async () => {
58
- const result = await projectProfileTool({
59
- action: 'create'
60
- });
61
- expect(result.success).toBe(false);
62
- expect(result.error).toContain('name');
63
- });
64
- });
65
- describe('get action', () => {
66
- it('should retrieve profile by ID', async () => {
67
- const result = await projectProfileTool({
68
- action: 'get',
69
- profileId: createdProfileId
70
- });
71
- expect(result.success).toBe(true);
72
- expect(result.profile?.name).toBe('Test Project');
73
- });
74
- it('should retrieve profile by name', async () => {
75
- const result = await projectProfileTool({
76
- action: 'get',
77
- name: 'Test Project'
78
- });
79
- expect(result.success).toBe(true);
80
- expect(result.profile?.id).toBe(createdProfileId);
81
- });
82
- it('should fail for non-existent profile', async () => {
83
- const result = await projectProfileTool({
84
- action: 'get',
85
- profileId: 'non-existent'
86
- });
87
- expect(result.success).toBe(false);
88
- expect(result.error).toContain('not found');
89
- });
90
- });
91
- describe('update action', () => {
92
- it('should update profile settings', async () => {
93
- const result = await projectProfileTool({
94
- action: 'update',
95
- profileId: createdProfileId,
96
- version: '2.0.0',
97
- documentation: {
98
- language: 'ko',
99
- includeTableOfContents: true
100
- }
101
- });
102
- expect(result.success).toBe(true);
103
- expect(result.profile?.version).toBe('2.0.0');
104
- expect(result.profile?.documentation?.language).toBe('ko');
105
- });
106
- });
107
- describe('list action', () => {
108
- beforeAll(async () => {
109
- await projectProfileTool({
110
- action: 'create',
111
- name: 'Second Project',
112
- description: 'Another project'
113
- });
114
- });
115
- it('should list all profiles', async () => {
116
- const result = await projectProfileTool({
117
- action: 'list'
118
- });
119
- expect(result.success).toBe(true);
120
- expect(result.profiles?.length).toBeGreaterThanOrEqual(2);
121
- expect(result.total).toBeGreaterThanOrEqual(2);
122
- });
123
- it('should support pagination', async () => {
124
- const result = await projectProfileTool({
125
- action: 'list',
126
- limit: 1,
127
- offset: 0
128
- });
129
- expect(result.success).toBe(true);
130
- expect(result.profiles?.length).toBe(1);
131
- });
132
- it('should support sorting', async () => {
133
- const result = await projectProfileTool({
134
- action: 'list',
135
- sortBy: 'name',
136
- sortOrder: 'asc'
137
- });
138
- expect(result.success).toBe(true);
139
- });
140
- });
141
- describe('setActive and getActive actions', () => {
142
- it('should set active profile', async () => {
143
- const result = await projectProfileTool({
144
- action: 'setActive',
145
- profileId: createdProfileId
146
- });
147
- expect(result.success).toBe(true);
148
- });
149
- it('should get active profile', async () => {
150
- const result = await projectProfileTool({
151
- action: 'getActive'
152
- });
153
- expect(result.success).toBe(true);
154
- expect(result.profile?.id).toBe(createdProfileId);
155
- });
156
- it('should clear active profile', async () => {
157
- await projectProfileTool({
158
- action: 'setActive',
159
- profileId: undefined
160
- });
161
- const result = await projectProfileTool({
162
- action: 'getActive'
163
- });
164
- expect(result.success).toBe(true);
165
- expect(result.profile).toBeUndefined();
166
- });
167
- });
168
- describe('clone action', () => {
169
- it('should clone a profile', async () => {
170
- const result = await projectProfileTool({
171
- action: 'clone',
172
- profileId: createdProfileId,
173
- newName: 'Cloned Project'
174
- });
175
- expect(result.success).toBe(true);
176
- expect(result.profile?.name).toBe('Cloned Project');
177
- expect(result.profile?.id).not.toBe(createdProfileId);
178
- });
179
- it('should fail without newName', async () => {
180
- const result = await projectProfileTool({
181
- action: 'clone',
182
- profileId: createdProfileId
183
- });
184
- expect(result.success).toBe(false);
185
- expect(result.error).toContain('newName');
186
- });
187
- });
188
- describe('delete action', () => {
189
- it('should delete a profile', async () => {
190
- // 삭제할 프로파일 생성
191
- const createResult = await projectProfileTool({
192
- action: 'create',
193
- name: 'To Delete'
194
- });
195
- const deleteResult = await projectProfileTool({
196
- action: 'delete',
197
- profileId: createResult.profile.id
198
- });
199
- expect(deleteResult.success).toBe(true);
200
- // 삭제 확인
201
- const getResult = await projectProfileTool({
202
- action: 'get',
203
- profileId: createResult.profile.id
204
- });
205
- expect(getResult.success).toBe(false);
206
- });
207
- it('should fail for non-existent profile', async () => {
208
- const result = await projectProfileTool({
209
- action: 'delete',
210
- profileId: 'non-existent'
211
- });
212
- expect(result.success).toBe(false);
213
- });
214
- });
215
- });
216
- //# sourceMappingURL=projectProfile.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"projectProfile.test.js","sourceRoot":"","sources":["../../src/__tests__/projectProfile.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=publishDocument.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"publishDocument.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/publishDocument.test.ts"],"names":[],"mappings":""}
@@ -1,93 +0,0 @@
1
- import { publishDocument } from '../tools/publishDocument.js';
2
- describe('publishDocument', () => {
3
- const sampleDocument = `# Test Document
4
-
5
- This is a test document for publishing.
6
-
7
- ## Features
8
- - Feature 1
9
- - Feature 2
10
- `;
11
- describe('Notion publishing', () => {
12
- it('should return result for Notion platform', async () => {
13
- const result = await publishDocument({
14
- document: sampleDocument,
15
- title: 'Test Doc',
16
- platform: 'notion'
17
- });
18
- expect(result.result).toBeDefined();
19
- expect(result.result.platform).toBe('notion');
20
- });
21
- it('should handle missing Notion API key gracefully', async () => {
22
- const result = await publishDocument({
23
- document: sampleDocument,
24
- title: 'Test Doc',
25
- platform: 'notion'
26
- });
27
- expect(result.result).toBeDefined();
28
- });
29
- });
30
- describe('GitHub Wiki publishing', () => {
31
- it('should return result for GitHub Wiki platform', async () => {
32
- const result = await publishDocument({
33
- document: sampleDocument,
34
- title: 'Test Doc',
35
- platform: 'github-wiki'
36
- });
37
- expect(result.result).toBeDefined();
38
- expect(result.result.platform).toBe('github-wiki');
39
- });
40
- });
41
- describe('Obsidian publishing', () => {
42
- it('should return result for Obsidian platform', async () => {
43
- const result = await publishDocument({
44
- document: sampleDocument,
45
- title: 'Test Doc',
46
- platform: 'obsidian'
47
- });
48
- expect(result.result).toBeDefined();
49
- expect(result.result.platform).toBe('obsidian');
50
- });
51
- it('should work with vault path option', async () => {
52
- const result = await publishDocument({
53
- document: sampleDocument,
54
- title: 'Test Doc',
55
- platform: 'obsidian',
56
- options: {
57
- vaultPath: '/path/to/vault'
58
- }
59
- });
60
- expect(result.result).toBeDefined();
61
- });
62
- });
63
- describe('output format', () => {
64
- it('should include platform in result', async () => {
65
- const result = await publishDocument({
66
- document: sampleDocument,
67
- title: 'Test',
68
- platform: 'notion'
69
- });
70
- expect(result.result.platform).toBe('notion');
71
- });
72
- it('should include success status', async () => {
73
- const result = await publishDocument({
74
- document: sampleDocument,
75
- title: 'Test',
76
- platform: 'obsidian'
77
- });
78
- expect(typeof result.result.success).toBe('boolean');
79
- });
80
- });
81
- describe('error handling', () => {
82
- it('should handle unsupported platform', async () => {
83
- const result = await publishDocument({
84
- document: sampleDocument,
85
- title: 'Test',
86
- platform: 'unknown-platform'
87
- });
88
- expect(result.result.success).toBe(false);
89
- expect(result.result.error).toContain('Unsupported platform');
90
- });
91
- });
92
- });
93
- //# sourceMappingURL=publishDocument.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"publishDocument.test.js","sourceRoot":"","sources":["../../src/__tests__/publishDocument.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=sessionHistory.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sessionHistory.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/sessionHistory.test.ts"],"names":[],"mappings":""}
@@ -1,229 +0,0 @@
1
- import { sessionHistoryTool } from '../tools/sessionHistory.js';
2
- import * as sessionStorage from '../core/sessionStorage.js';
3
- import { promises as fs } from 'fs';
4
- import * as path from 'path';
5
- import * as os from 'os';
6
- // Create a temp directory for tests
7
- let testDir;
8
- beforeAll(async () => {
9
- testDir = path.join(os.tmpdir(), `vibe-coding-test-${Date.now()}`);
10
- await sessionStorage.initializeStorage(testDir);
11
- });
12
- afterAll(async () => {
13
- // Clean up test directory
14
- try {
15
- const files = await fs.readdir(testDir);
16
- for (const file of files) {
17
- await fs.unlink(path.join(testDir, file));
18
- }
19
- await fs.rmdir(testDir);
20
- }
21
- catch {
22
- // Ignore cleanup errors
23
- }
24
- });
25
- describe('sessionHistoryTool', () => {
26
- let savedSessionId;
27
- describe('save action', () => {
28
- it('should save a new session', async () => {
29
- const result = await sessionHistoryTool({
30
- action: 'save',
31
- title: 'Test Session',
32
- summary: 'This is a test session',
33
- tags: ['test', 'example'],
34
- codeContexts: [
35
- {
36
- sessionId: 'ctx-1',
37
- timestamp: new Date().toISOString(),
38
- codeBlocks: [{ language: 'typescript', code: 'const x = 1;' }],
39
- conversationSummary: 'Test context'
40
- }
41
- ],
42
- designDecisions: [
43
- {
44
- id: 'dd-1',
45
- title: 'Use TypeScript',
46
- description: 'Chose TypeScript for type safety',
47
- rationale: 'Better maintainability',
48
- category: 'implementation',
49
- timestamp: new Date().toISOString()
50
- }
51
- ]
52
- });
53
- expect(result.success).toBe(true);
54
- expect(result.action).toBe('save');
55
- expect(result.session).toBeDefined();
56
- expect(result.session?.title).toBe('Test Session');
57
- expect(result.session?.id).toMatch(/^session_/);
58
- savedSessionId = result.session.id;
59
- });
60
- it('should fail without required fields', async () => {
61
- const result = await sessionHistoryTool({
62
- action: 'save',
63
- title: 'Only Title'
64
- // missing summary
65
- });
66
- expect(result.success).toBe(false);
67
- expect(result.error).toContain('summary');
68
- });
69
- });
70
- describe('get action', () => {
71
- it('should retrieve a session by ID', async () => {
72
- const result = await sessionHistoryTool({
73
- action: 'get',
74
- sessionId: savedSessionId
75
- });
76
- expect(result.success).toBe(true);
77
- expect(result.session?.title).toBe('Test Session');
78
- expect(result.session?.tags).toContain('test');
79
- });
80
- it('should fail for non-existent session', async () => {
81
- const result = await sessionHistoryTool({
82
- action: 'get',
83
- sessionId: 'non-existent-id'
84
- });
85
- expect(result.success).toBe(false);
86
- expect(result.error).toContain('not found');
87
- });
88
- it('should fail without sessionId', async () => {
89
- const result = await sessionHistoryTool({
90
- action: 'get'
91
- });
92
- expect(result.success).toBe(false);
93
- expect(result.error).toContain('sessionId');
94
- });
95
- });
96
- describe('update action', () => {
97
- it('should update an existing session', async () => {
98
- const result = await sessionHistoryTool({
99
- action: 'update',
100
- sessionId: savedSessionId,
101
- title: 'Updated Test Session',
102
- tags: ['test', 'updated']
103
- });
104
- expect(result.success).toBe(true);
105
- expect(result.session?.title).toBe('Updated Test Session');
106
- expect(result.session?.tags).toContain('updated');
107
- });
108
- it('should fail for non-existent session', async () => {
109
- const result = await sessionHistoryTool({
110
- action: 'update',
111
- sessionId: 'non-existent-id',
112
- title: 'New Title'
113
- });
114
- expect(result.success).toBe(false);
115
- });
116
- });
117
- describe('list action', () => {
118
- beforeAll(async () => {
119
- // Add more sessions for list testing
120
- await sessionHistoryTool({
121
- action: 'save',
122
- title: 'Session 2',
123
- summary: 'Second session',
124
- tags: ['second']
125
- });
126
- await sessionHistoryTool({
127
- action: 'save',
128
- title: 'Session 3',
129
- summary: 'Third session with special',
130
- tags: ['third', 'special']
131
- });
132
- });
133
- it('should list all sessions', async () => {
134
- const result = await sessionHistoryTool({
135
- action: 'list'
136
- });
137
- expect(result.success).toBe(true);
138
- expect(result.sessions).toBeDefined();
139
- expect(result.total).toBeGreaterThanOrEqual(3);
140
- });
141
- it('should filter by tags', async () => {
142
- const result = await sessionHistoryTool({
143
- action: 'list',
144
- filterTags: ['special']
145
- });
146
- expect(result.success).toBe(true);
147
- expect(result.sessions?.length).toBe(1);
148
- expect(result.sessions?.[0].tags).toContain('special');
149
- });
150
- it('should support pagination', async () => {
151
- const result = await sessionHistoryTool({
152
- action: 'list',
153
- limit: 2,
154
- offset: 0
155
- });
156
- expect(result.success).toBe(true);
157
- expect(result.sessions?.length).toBeLessThanOrEqual(2);
158
- });
159
- });
160
- describe('search action', () => {
161
- it('should search sessions by keyword in title', async () => {
162
- const result = await sessionHistoryTool({
163
- action: 'search',
164
- keyword: 'Updated',
165
- searchIn: ['title']
166
- });
167
- expect(result.success).toBe(true);
168
- expect(result.sessions?.length).toBeGreaterThanOrEqual(1);
169
- });
170
- it('should search sessions by keyword in summary', async () => {
171
- const result = await sessionHistoryTool({
172
- action: 'search',
173
- keyword: 'special',
174
- searchIn: ['summary']
175
- });
176
- expect(result.success).toBe(true);
177
- expect(result.sessions?.length).toBeGreaterThanOrEqual(1);
178
- });
179
- it('should fail without keyword', async () => {
180
- const result = await sessionHistoryTool({
181
- action: 'search'
182
- });
183
- expect(result.success).toBe(false);
184
- expect(result.error).toContain('keyword');
185
- });
186
- });
187
- describe('stats action', () => {
188
- it('should return storage statistics', async () => {
189
- const result = await sessionHistoryTool({
190
- action: 'stats'
191
- });
192
- expect(result.success).toBe(true);
193
- expect(result.stats).toBeDefined();
194
- expect(result.stats?.totalSessions).toBeGreaterThanOrEqual(3);
195
- expect(result.stats?.storageDir).toBe(testDir);
196
- });
197
- });
198
- describe('delete action', () => {
199
- it('should delete a session', async () => {
200
- // First save a session to delete
201
- const saveResult = await sessionHistoryTool({
202
- action: 'save',
203
- title: 'To Delete',
204
- summary: 'This will be deleted'
205
- });
206
- const deleteResult = await sessionHistoryTool({
207
- action: 'delete',
208
- sessionId: saveResult.session.id
209
- });
210
- expect(deleteResult.success).toBe(true);
211
- // Verify it's deleted
212
- const getResult = await sessionHistoryTool({
213
- action: 'get',
214
- sessionId: saveResult.session.id
215
- });
216
- expect(getResult.success).toBe(false);
217
- expect(getResult.error).toContain('not found');
218
- });
219
- it('should fail for non-existent session', async () => {
220
- const result = await sessionHistoryTool({
221
- action: 'delete',
222
- sessionId: 'non-existent-id'
223
- });
224
- expect(result.success).toBe(false);
225
- expect(result.error).toContain('not found');
226
- });
227
- });
228
- });
229
- //# sourceMappingURL=sessionHistory.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sessionHistory.test.js","sourceRoot":"","sources":["../../src/__tests__/sessionHistory.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,cAAc,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAEzB,oCAAoC;AACpC,IAAI,OAAe,CAAC;AAEpB,SAAS,CAAC,KAAK,IAAI,EAAE;IACnB,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,oBAAoB,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACnE,MAAM,cAAc,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;AAClD,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,KAAK,IAAI,EAAE;IAClB,0BAA0B;IAC1B,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACxC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;QAC5C,CAAC;QACD,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,wBAAwB;IAC1B,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,IAAI,cAAsB,CAAC;IAE3B,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;YACzC,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC;gBACtC,MAAM,EAAE,MAAM;gBACd,KAAK,EAAE,cAAc;gBACrB,OAAO,EAAE,wBAAwB;gBACjC,IAAI,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;gBACzB,YAAY,EAAE;oBACZ;wBACE,SAAS,EAAE,OAAO;wBAClB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;wBACnC,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;wBAC9D,mBAAmB,EAAE,cAAc;qBACpC;iBACF;gBACD,eAAe,EAAE;oBACf;wBACE,EAAE,EAAE,MAAM;wBACV,KAAK,EAAE,gBAAgB;wBACvB,WAAW,EAAE,kCAAkC;wBAC/C,SAAS,EAAE,wBAAwB;wBACnC,QAAQ,EAAE,gBAAgB;wBAC1B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;qBACpC;iBACF;aACF,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACnC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;YACrC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACnD,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAEhD,cAAc,GAAG,MAAM,CAAC,OAAQ,CAAC,EAAE,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;YACnD,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC;gBACtC,MAAM,EAAE,MAAM;gBACd,KAAK,EAAE,YAAY;gBACnB,kBAAkB;aACnB,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QAC1B,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;YAC/C,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC;gBACtC,MAAM,EAAE,KAAK;gBACb,SAAS,EAAE,cAAc;aAC1B,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACnD,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;YACpD,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC;gBACtC,MAAM,EAAE,KAAK;gBACb,SAAS,EAAE,iBAAiB;aAC7B,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;YAC7C,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC;gBACtC,MAAM,EAAE,KAAK;aACd,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC7B,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;YACjD,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC;gBACtC,MAAM,EAAE,QAAQ;gBAChB,SAAS,EAAE,cAAc;gBACzB,KAAK,EAAE,sBAAsB;gBAC7B,IAAI,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;aAC1B,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YAC3D,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;YACpD,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC;gBACtC,MAAM,EAAE,QAAQ;gBAChB,SAAS,EAAE,iBAAiB;gBAC5B,KAAK,EAAE,WAAW;aACnB,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC3B,SAAS,CAAC,KAAK,IAAI,EAAE;YACnB,qCAAqC;YACrC,MAAM,kBAAkB,CAAC;gBACvB,MAAM,EAAE,MAAM;gBACd,KAAK,EAAE,WAAW;gBAClB,OAAO,EAAE,gBAAgB;gBACzB,IAAI,EAAE,CAAC,QAAQ,CAAC;aACjB,CAAC,CAAC;YACH,MAAM,kBAAkB,CAAC;gBACvB,MAAM,EAAE,MAAM;gBACd,KAAK,EAAE,WAAW;gBAClB,OAAO,EAAE,4BAA4B;gBACrC,IAAI,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC;aAC3B,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;YACxC,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC;gBACtC,MAAM,EAAE,MAAM;aACf,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;YACtC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uBAAuB,EAAE,KAAK,IAAI,EAAE;YACrC,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC;gBACtC,MAAM,EAAE,MAAM;gBACd,UAAU,EAAE,CAAC,SAAS,CAAC;aACxB,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACxC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;YACzC,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC;gBACtC,MAAM,EAAE,MAAM;gBACd,KAAK,EAAE,CAAC;gBACR,MAAM,EAAE,CAAC;aACV,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC7B,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;YAC1D,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC;gBACtC,MAAM,EAAE,QAAQ;gBAChB,OAAO,EAAE,SAAS;gBAClB,QAAQ,EAAE,CAAC,OAAO,CAAC;aACpB,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;YAC5D,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC;gBACtC,MAAM,EAAE,QAAQ;gBAChB,OAAO,EAAE,SAAS;gBAClB,QAAQ,EAAE,CAAC,SAAS,CAAC;aACtB,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;YAC3C,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC;gBACtC,MAAM,EAAE,QAAQ;aACjB,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;QAC5B,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;YAChD,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC;gBACtC,MAAM,EAAE,OAAO;aAChB,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YACnC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;YAC9D,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC7B,EAAE,CAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;YACvC,iCAAiC;YACjC,MAAM,UAAU,GAAG,MAAM,kBAAkB,CAAC;gBAC1C,MAAM,EAAE,MAAM;gBACd,KAAK,EAAE,WAAW;gBAClB,OAAO,EAAE,sBAAsB;aAChC,CAAC,CAAC;YAEH,MAAM,YAAY,GAAG,MAAM,kBAAkB,CAAC;gBAC5C,MAAM,EAAE,QAAQ;gBAChB,SAAS,EAAE,UAAU,CAAC,OAAQ,CAAC,EAAE;aAClC,CAAC,CAAC;YAEH,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAExC,sBAAsB;YACtB,MAAM,SAAS,GAAG,MAAM,kBAAkB,CAAC;gBACzC,MAAM,EAAE,KAAK;gBACb,SAAS,EAAE,UAAU,CAAC,OAAQ,CAAC,EAAE;aAClC,CAAC,CAAC;YAEH,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;YACpD,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC;gBACtC,MAAM,EAAE,QAAQ;gBAChB,SAAS,EAAE,iBAAiB;aAC7B,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=summarizeDesignDecisions.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"summarizeDesignDecisions.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/summarizeDesignDecisions.test.ts"],"names":[],"mappings":""}