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
package/dist/stdio.js CHANGED
@@ -1,152 +1,30 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
- * Claude Desktop stdio 모드 진입점
3
+ * stdio entry point — used by Claude Desktop / Claude Code via the
4
+ * `vibe-coding-mcp` binary.
5
+ *
6
+ * As of v2.14.0 this file is a thin transport-bind around the shared
7
+ * `createMcpServer()` factory; the tool/resource/prompt registry lives in
8
+ * `src/core/{toolRegistry,resources,prompts}.ts` and is reused verbatim by
9
+ * the HTTP entry point in `src/index.ts`.
4
10
  */
5
- import { Server } from '@modelcontextprotocol/sdk/server/index.js';
6
11
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
7
- import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
8
- // Core
9
- import { createErrorResponse, ToolError } from './core/errors.js';
10
12
  import { initializeAI } from './core/ai.js';
11
- import { validateInput, CollectCodeContextSchema, SummarizeDesignDecisionsSchema, GenerateDevDocumentSchema, NormalizeForPlatformSchema, PublishDocumentSchema, CreateSessionLogSchema, AnalyzeCodeSchema, SessionHistorySchema, ExportSessionSchema, ProjectProfileSchema, GitSchema, SessionStatsSchema, AutoTagSchema, TemplateSchema, BatchSchema, } from './core/schemas.js';
12
- // Tools
13
- import { collectCodeContext, collectCodeContextSchema } from './tools/collectCodeContext.js';
14
- import { summarizeDesignDecisions, summarizeDesignDecisionsSchema } from './tools/summarizeDesignDecisions.js';
15
- import { generateDevDocument, generateDevDocumentSchema } from './tools/generateDevDocument.js';
16
- import { normalizeForPlatform, normalizeForPlatformSchema } from './tools/normalizeForPlatform.js';
17
- import { publishDocument, publishDocumentSchema } from './tools/publishDocument.js';
18
- import { createSessionLog, createSessionLogSchema } from './tools/createSessionLog.js';
19
- import { analyzeCodeTool, analyzeCodeSchema } from './tools/analyzeCode.js';
20
- import { sessionHistoryTool, sessionHistorySchema } from './tools/sessionHistory.js';
21
- import { exportSessionTool, exportSessionSchema } from './tools/exportSession.js';
22
- import { projectProfileTool, projectProfileSchema } from './tools/projectProfile.js';
23
- import { gitTool, gitSchema } from './tools/git.js';
24
- import { sessionStatsTool, sessionStatsSchema } from './tools/sessionStats.js';
25
- import { autoTagTool, autoTagSchema } from './tools/autoTag.js';
26
- import { templateTool, templateSchema } from './tools/template.js';
27
- import { batchTool, batchSchema } from './tools/batch.js';
28
- // Tool handlers with validation
29
- const toolHandlers = {
30
- muse_collect_code_context: (args) => {
31
- const validated = validateInput(CollectCodeContextSchema, args);
32
- return collectCodeContext(validated);
33
- },
34
- muse_summarize_design_decisions: async (args) => {
35
- const validated = validateInput(SummarizeDesignDecisionsSchema, args);
36
- return summarizeDesignDecisions(validated);
37
- },
38
- muse_generate_dev_document: (args) => {
39
- const validated = validateInput(GenerateDevDocumentSchema, args);
40
- return generateDevDocument(validated);
41
- },
42
- muse_normalize_for_platform: (args) => {
43
- const validated = validateInput(NormalizeForPlatformSchema, args);
44
- return normalizeForPlatform(validated);
45
- },
46
- muse_publish_document: async (args) => {
47
- const validated = validateInput(PublishDocumentSchema, args);
48
- return publishDocument(validated);
49
- },
50
- muse_create_session_log: async (args) => {
51
- const validated = validateInput(CreateSessionLogSchema, args);
52
- return createSessionLog(validated);
53
- },
54
- muse_analyze_code: async (args) => {
55
- const validated = validateInput(AnalyzeCodeSchema, args);
56
- return analyzeCodeTool(validated);
57
- },
58
- muse_session_history: async (args) => {
59
- const validated = validateInput(SessionHistorySchema, args);
60
- return sessionHistoryTool(validated);
61
- },
62
- muse_export_session: async (args) => {
63
- const validated = validateInput(ExportSessionSchema, args);
64
- return exportSessionTool(validated);
65
- },
66
- muse_project_profile: async (args) => {
67
- const validated = validateInput(ProjectProfileSchema, args);
68
- return projectProfileTool(validated);
69
- },
70
- muse_git: async (args) => {
71
- const validated = validateInput(GitSchema, args);
72
- return gitTool(validated);
73
- },
74
- muse_session_stats: async (args) => {
75
- const validated = validateInput(SessionStatsSchema, args);
76
- return sessionStatsTool(validated);
77
- },
78
- muse_auto_tag: async (args) => {
79
- const validated = validateInput(AutoTagSchema, args);
80
- return autoTagTool(validated);
81
- },
82
- muse_template: async (args) => {
83
- const validated = validateInput(TemplateSchema, args);
84
- return templateTool(validated);
85
- },
86
- muse_batch: async (args) => {
87
- const validated = validateInput(BatchSchema, args);
88
- return batchTool(validated);
89
- },
90
- };
91
- function isValidToolName(name) {
92
- return name in toolHandlers;
93
- }
94
- const server = new Server({
95
- name: 'vibe-coding-mcp',
96
- version: '2.12.0',
97
- }, {
98
- capabilities: {
99
- tools: {},
100
- },
101
- });
102
- // List available tools
103
- server.setRequestHandler(ListToolsRequestSchema, async () => {
104
- return {
105
- tools: [
106
- collectCodeContextSchema,
107
- summarizeDesignDecisionsSchema,
108
- generateDevDocumentSchema,
109
- normalizeForPlatformSchema,
110
- publishDocumentSchema,
111
- createSessionLogSchema,
112
- analyzeCodeSchema,
113
- sessionHistorySchema,
114
- exportSessionSchema,
115
- projectProfileSchema,
116
- gitSchema,
117
- sessionStatsSchema,
118
- autoTagSchema,
119
- templateSchema,
120
- batchSchema,
121
- ],
122
- };
123
- });
124
- // Handle tool calls
125
- server.setRequestHandler(CallToolRequestSchema, async (request) => {
126
- const { name, arguments: args } = request.params;
127
- try {
128
- if (!isValidToolName(name)) {
129
- throw new ToolError(`Unknown tool: ${name}`, 'NOT_FOUND', { tool: name });
130
- }
131
- const handler = toolHandlers[name];
132
- const result = await handler(args);
133
- return {
134
- content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
135
- };
136
- }
137
- catch (error) {
138
- return createErrorResponse(error);
139
- }
140
- });
141
- // Start stdio transport
13
+ import { createMcpServer, getCapabilityCounts } from './core/mcpServerFactory.js';
142
14
  async function main() {
143
15
  // Initialize AI if ANTHROPIC_API_KEY is available
144
16
  const aiEnabled = initializeAI();
145
17
  if (aiEnabled) {
146
18
  console.error('[vibe-coding-mcp] AI features enabled (ANTHROPIC_API_KEY found)');
147
19
  }
20
+ const server = createMcpServer();
21
+ const counts = getCapabilityCounts();
22
+ console.error(`[vibe-coding-mcp] stdio transport ready — ${counts.tools} tools, ${counts.resources} resources, ${counts.prompts} prompts`);
148
23
  const transport = new StdioServerTransport();
149
24
  await server.connect(transport);
150
25
  }
151
- main().catch(console.error);
26
+ main().catch((err) => {
27
+ console.error('[vibe-coding-mcp] fatal:', err);
28
+ process.exit(1);
29
+ });
152
30
  //# sourceMappingURL=stdio.js.map
package/dist/stdio.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"stdio.js","sourceRoot":"","sources":["../src/stdio.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stdio.js","sourceRoot":"","sources":["../src/stdio.ts"],"names":[],"mappings":";AACA;;;;;;;;GAQG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAElF,KAAK,UAAU,IAAI;IACjB,kDAAkD;IAClD,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAC;IACnF,CAAC;IAED,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IACjC,MAAM,MAAM,GAAG,mBAAmB,EAAE,CAAC;IACrC,OAAO,CAAC,KAAK,CACX,6CAA6C,MAAM,CAAC,KAAK,WAAW,MAAM,CAAC,SAAS,eAAe,MAAM,CAAC,OAAO,UAAU,CAC5H,CAAC;IAEF,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,GAAG,CAAC,CAAC;IAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "vibe-coding-mcp",
3
- "version": "2.12.0",
3
+ "version": "2.14.0",
4
+ "mcpName": "io.github.MUSE-CODE-SPACE/vibe-coding",
4
5
  "description": "MCP server for automatically collecting, summarizing, documenting, and publishing vibe coding sessions",
5
6
  "main": "dist/index.js",
6
7
  "type": "module",
@@ -8,14 +9,20 @@
8
9
  "vibe-coding-mcp": "dist/stdio.js"
9
10
  },
10
11
  "files": [
11
- "dist",
12
- "README.md"
12
+ "dist/**/*.js",
13
+ "dist/**/*.d.ts",
14
+ "dist/**/*.js.map",
15
+ "README.md",
16
+ "LICENSE",
17
+ "SECURITY.md",
18
+ "CHANGELOG.md"
13
19
  ],
14
20
  "scripts": {
15
21
  "build": "tsc",
16
22
  "start": "node dist/index.js",
17
23
  "stdio": "node dist/stdio.js",
18
24
  "dev": "tsc --watch",
25
+ "typecheck": "tsc --noEmit",
19
26
  "prepublishOnly": "npm run build",
20
27
  "test": "node --experimental-vm-modules node_modules/jest/bin/jest.js --testPathIgnorePatterns='integration'",
21
28
  "test:tools": "node scripts/test-tools.mjs",
@@ -46,7 +53,7 @@
46
53
  },
47
54
  "dependencies": {
48
55
  "@anthropic-ai/sdk": "^0.71.2",
49
- "@modelcontextprotocol/sdk": "^1.0.0",
56
+ "@modelcontextprotocol/sdk": "^1.29.0",
50
57
  "@notionhq/client": "^2.2.0",
51
58
  "cors": "^2.8.5",
52
59
  "dotenv": "^16.3.0",
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=collectCodeContext.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"collectCodeContext.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/collectCodeContext.test.ts"],"names":[],"mappings":""}
@@ -1,139 +0,0 @@
1
- import { collectCodeContext } from '../tools/collectCodeContext.js';
2
- describe('collectCodeContext', () => {
3
- describe('basic functionality', () => {
4
- it('should create a context with provided code blocks', () => {
5
- const result = collectCodeContext({
6
- codeBlocks: [
7
- { language: 'typescript', code: 'const x = 1;' }
8
- ],
9
- conversationSummary: 'Test summary'
10
- });
11
- expect(result.context).toBeDefined();
12
- expect(result.context.codeBlocks).toHaveLength(1);
13
- expect(result.context.conversationSummary).toBe('Test summary');
14
- expect(result.context.sessionId).toBeDefined();
15
- expect(result.context.timestamp).toBeDefined();
16
- });
17
- it('should extract code blocks from raw text', () => {
18
- const rawText = `
19
- Here is some code:
20
- \`\`\`javascript
21
- function hello() {
22
- console.log('Hello');
23
- }
24
- \`\`\`
25
- `;
26
- const result = collectCodeContext({
27
- rawText,
28
- conversationSummary: 'Extracted from raw text'
29
- });
30
- expect(result.context.codeBlocks).toHaveLength(1);
31
- expect(result.context.codeBlocks[0].language).toBe('javascript');
32
- });
33
- });
34
- describe('language detection', () => {
35
- it('should auto-detect TypeScript', () => {
36
- const result = collectCodeContext({
37
- codeBlocks: [
38
- { language: '', code: 'interface User { name: string; age: number; }' }
39
- ],
40
- conversationSummary: 'TypeScript detection',
41
- autoDetectLanguage: true
42
- });
43
- expect(result.context.codeBlocks[0].language).toBe('typescript');
44
- });
45
- it('should auto-detect Python', () => {
46
- const result = collectCodeContext({
47
- codeBlocks: [
48
- { language: '', code: 'def hello():\n print("Hello")' }
49
- ],
50
- conversationSummary: 'Python detection',
51
- autoDetectLanguage: true
52
- });
53
- expect(result.context.codeBlocks[0].language).toBe('python');
54
- });
55
- it('should auto-detect SQL', () => {
56
- const result = collectCodeContext({
57
- codeBlocks: [
58
- { language: '', code: 'SELECT * FROM users WHERE id = 1' }
59
- ],
60
- conversationSummary: 'SQL detection'
61
- });
62
- expect(result.context.codeBlocks[0].language).toBe('sql');
63
- });
64
- });
65
- describe('duplicate removal', () => {
66
- it('should remove duplicate code blocks', () => {
67
- const result = collectCodeContext({
68
- codeBlocks: [
69
- { language: 'javascript', code: 'const x = 1;' },
70
- { language: 'javascript', code: 'const x = 1;' },
71
- { language: 'javascript', code: 'const y = 2;' }
72
- ],
73
- conversationSummary: 'Duplicate test',
74
- removeDuplicates: true
75
- });
76
- expect(result.context.codeBlocks).toHaveLength(2);
77
- expect(result.warnings).toContain('Removed 1 duplicate code block(s)');
78
- });
79
- it('should keep duplicates when removeDuplicates is false', () => {
80
- const result = collectCodeContext({
81
- codeBlocks: [
82
- { language: 'javascript', code: 'const x = 1;' },
83
- { language: 'javascript', code: 'const x = 1;' }
84
- ],
85
- conversationSummary: 'Keep duplicates',
86
- removeDuplicates: false
87
- });
88
- expect(result.context.codeBlocks).toHaveLength(2);
89
- });
90
- });
91
- describe('statistics', () => {
92
- it('should include stats when includeStats is true', () => {
93
- const result = collectCodeContext({
94
- codeBlocks: [
95
- { language: 'javascript', code: 'const x = 1;\nconst y = 2;' },
96
- { language: 'python', code: 'x = 1' }
97
- ],
98
- conversationSummary: 'Stats test',
99
- includeStats: true
100
- });
101
- expect(result.stats).toBeDefined();
102
- expect(result.stats?.totalBlocks).toBe(2);
103
- expect(result.stats?.languageBreakdown).toEqual({
104
- javascript: 1,
105
- python: 1
106
- });
107
- });
108
- });
109
- describe('tags', () => {
110
- it('should auto-add language tags', () => {
111
- const result = collectCodeContext({
112
- codeBlocks: [
113
- { language: 'typescript', code: 'const x: number = 1;' }
114
- ],
115
- conversationSummary: 'Tag test',
116
- tags: ['custom-tag']
117
- });
118
- expect(result.context.tags).toContain('custom-tag');
119
- expect(result.context.tags).toContain('typescript');
120
- });
121
- });
122
- describe('validation', () => {
123
- it('should warn on empty summary', () => {
124
- const result = collectCodeContext({
125
- codeBlocks: [{ language: 'js', code: 'x' }],
126
- conversationSummary: ''
127
- });
128
- expect(result.warnings).toContain('Conversation summary is empty');
129
- });
130
- it('should warn on empty code block', () => {
131
- const result = collectCodeContext({
132
- codeBlocks: [{ language: 'js', code: '' }],
133
- conversationSummary: 'Test'
134
- });
135
- expect(result.warnings).toContain('Code block 1 is empty');
136
- });
137
- });
138
- });
139
- //# sourceMappingURL=collectCodeContext.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"collectCodeContext.test.js","sourceRoot":"","sources":["../../src/__tests__/collectCodeContext.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=createSessionLog.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createSessionLog.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/createSessionLog.test.ts"],"names":[],"mappings":""}
@@ -1,130 +0,0 @@
1
- import { createSessionLog } from '../tools/createSessionLog.js';
2
- describe('createSessionLog', () => {
3
- describe('basic functionality', () => {
4
- it('should create a session log with required fields', async () => {
5
- const result = await createSessionLog({
6
- title: 'Test Session',
7
- summary: 'This is a test summary'
8
- });
9
- expect(result.sessionLog).toBeDefined();
10
- expect(result.sessionLog.sessionId).toBeDefined();
11
- expect(result.sessionLog.date).toBeDefined();
12
- expect(result.sessionLog.title).toBe('Test Session');
13
- expect(result.sessionLog.summary).toBe('This is a test summary');
14
- expect(result.content).toBeDefined();
15
- });
16
- it('should include duration when provided', async () => {
17
- const result = await createSessionLog({
18
- title: 'Test Session',
19
- summary: 'Test summary',
20
- duration: 3600
21
- });
22
- expect(result.sessionLog.duration).toBe(3600);
23
- expect(result.content).toContain('60 minutes');
24
- });
25
- });
26
- describe('log formats', () => {
27
- it('should create markdown log by default', async () => {
28
- const result = await createSessionLog({
29
- title: 'Test',
30
- summary: 'Summary'
31
- });
32
- expect(result.content).toContain('#');
33
- expect(result.content).toContain('Test');
34
- });
35
- it('should create JSON log when requested', async () => {
36
- const result = await createSessionLog({
37
- title: 'Test',
38
- summary: 'Summary',
39
- options: {
40
- logType: 'session',
41
- format: 'json'
42
- }
43
- });
44
- expect(() => JSON.parse(result.content)).not.toThrow();
45
- const parsed = JSON.parse(result.content);
46
- expect(parsed.title).toBe('Test');
47
- });
48
- it('should create daily log type', async () => {
49
- const result = await createSessionLog({
50
- title: 'Daily',
51
- summary: 'Daily summary',
52
- options: {
53
- logType: 'daily',
54
- format: 'markdown'
55
- }
56
- });
57
- expect(result.content).toContain('Daily Vibe Coding Log');
58
- });
59
- });
60
- describe('code contexts', () => {
61
- it('should include code contexts in log', async () => {
62
- const result = await createSessionLog({
63
- title: 'Test',
64
- summary: 'Summary',
65
- codeContexts: [
66
- {
67
- sessionId: '1',
68
- timestamp: new Date().toISOString(),
69
- codeBlocks: [{ language: 'typescript', code: 'const x = 1;' }],
70
- conversationSummary: 'Created a variable'
71
- }
72
- ]
73
- });
74
- expect(result.content).toContain('Code Contexts');
75
- expect(result.content).toContain('const x = 1;');
76
- });
77
- });
78
- describe('design decisions', () => {
79
- it('should include design decisions in log', async () => {
80
- const result = await createSessionLog({
81
- title: 'Test',
82
- summary: 'Summary',
83
- designDecisions: [
84
- {
85
- id: '1',
86
- title: 'Use TypeScript',
87
- description: 'Decided to use TypeScript',
88
- rationale: 'Type safety',
89
- alternatives: ['JavaScript'],
90
- timestamp: new Date().toISOString(),
91
- category: 'implementation'
92
- }
93
- ]
94
- });
95
- expect(result.content).toContain('Design Decisions');
96
- expect(result.content).toContain('Use TypeScript');
97
- });
98
- });
99
- describe('tags', () => {
100
- it('should include tags in log', async () => {
101
- const result = await createSessionLog({
102
- title: 'Test',
103
- summary: 'Summary',
104
- tags: ['react', 'typescript', 'api']
105
- });
106
- expect(result.sessionLog.tags).toContain('react');
107
- expect(result.content).toContain('#react');
108
- expect(result.content).toContain('#typescript');
109
- });
110
- });
111
- describe('edge cases', () => {
112
- it('should handle empty code contexts array', async () => {
113
- const result = await createSessionLog({
114
- title: 'Test',
115
- summary: 'Summary',
116
- codeContexts: []
117
- });
118
- expect(result.content).toBeDefined();
119
- });
120
- it('should handle empty design decisions array', async () => {
121
- const result = await createSessionLog({
122
- title: 'Test',
123
- summary: 'Summary',
124
- designDecisions: []
125
- });
126
- expect(result.content).toBeDefined();
127
- });
128
- });
129
- });
130
- //# sourceMappingURL=createSessionLog.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createSessionLog.test.js","sourceRoot":"","sources":["../../src/__tests__/createSessionLog.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=exportSession.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"exportSession.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/exportSession.test.ts"],"names":[],"mappings":""}