vibe-coding-mcp 2.6.0 → 2.12.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 (60) hide show
  1. package/README.md +122 -4
  2. package/dist/__tests__/exportSession.test.d.ts +2 -0
  3. package/dist/__tests__/exportSession.test.d.ts.map +1 -0
  4. package/dist/__tests__/exportSession.test.js +180 -0
  5. package/dist/__tests__/exportSession.test.js.map +1 -0
  6. package/dist/__tests__/git.test.d.ts +2 -0
  7. package/dist/__tests__/git.test.d.ts.map +1 -0
  8. package/dist/__tests__/git.test.js +282 -0
  9. package/dist/__tests__/git.test.js.map +1 -0
  10. package/dist/__tests__/projectProfile.test.d.ts +2 -0
  11. package/dist/__tests__/projectProfile.test.d.ts.map +1 -0
  12. package/dist/__tests__/projectProfile.test.js +216 -0
  13. package/dist/__tests__/projectProfile.test.js.map +1 -0
  14. package/dist/core/profileStorage.d.ts +117 -0
  15. package/dist/core/profileStorage.d.ts.map +1 -0
  16. package/dist/core/profileStorage.js +251 -0
  17. package/dist/core/profileStorage.js.map +1 -0
  18. package/dist/core/schemas.d.ts +576 -4
  19. package/dist/core/schemas.d.ts.map +1 -1
  20. package/dist/core/schemas.js +185 -0
  21. package/dist/core/schemas.js.map +1 -1
  22. package/dist/stdio.js +44 -2
  23. package/dist/stdio.js.map +1 -1
  24. package/dist/tools/autoTag.d.ts +145 -0
  25. package/dist/tools/autoTag.d.ts.map +1 -0
  26. package/dist/tools/autoTag.js +475 -0
  27. package/dist/tools/autoTag.js.map +1 -0
  28. package/dist/tools/batch.d.ts +119 -0
  29. package/dist/tools/batch.d.ts.map +1 -0
  30. package/dist/tools/batch.js +459 -0
  31. package/dist/tools/batch.js.map +1 -0
  32. package/dist/tools/exportSession.d.ts +79 -0
  33. package/dist/tools/exportSession.d.ts.map +1 -0
  34. package/dist/tools/exportSession.js +434 -0
  35. package/dist/tools/exportSession.js.map +1 -0
  36. package/dist/tools/git.d.ts +226 -0
  37. package/dist/tools/git.d.ts.map +1 -0
  38. package/dist/tools/git.js +493 -0
  39. package/dist/tools/git.js.map +1 -0
  40. package/dist/tools/projectProfile.d.ts +230 -0
  41. package/dist/tools/projectProfile.d.ts.map +1 -0
  42. package/dist/tools/projectProfile.js +367 -0
  43. package/dist/tools/projectProfile.js.map +1 -0
  44. package/dist/tools/sessionStats.d.ts +129 -0
  45. package/dist/tools/sessionStats.d.ts.map +1 -0
  46. package/dist/tools/sessionStats.js +554 -0
  47. package/dist/tools/sessionStats.js.map +1 -0
  48. package/dist/tools/template.d.ts +127 -0
  49. package/dist/tools/template.d.ts.map +1 -0
  50. package/dist/tools/template.js +617 -0
  51. package/dist/tools/template.js.map +1 -0
  52. package/dist/utils/gitExecutor.d.ts +34 -0
  53. package/dist/utils/gitExecutor.d.ts.map +1 -0
  54. package/dist/utils/gitExecutor.js +95 -0
  55. package/dist/utils/gitExecutor.js.map +1 -0
  56. package/dist/utils/gitParsers.d.ts +90 -0
  57. package/dist/utils/gitParsers.d.ts.map +1 -0
  58. package/dist/utils/gitParsers.js +286 -0
  59. package/dist/utils/gitParsers.js.map +1 -0
  60. package/package.json +3 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.test.js","sourceRoot":"","sources":["../../src/__tests__/git.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=projectProfile.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projectProfile.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/projectProfile.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,216 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projectProfile.test.js","sourceRoot":"","sources":["../../src/__tests__/projectProfile.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,117 @@
1
+ /**
2
+ * 프로젝트 프로파일 스토리지 모듈
3
+ * 프로젝트별 설정을 저장하고 관리
4
+ * v2.7: Project Profile
5
+ */
6
+ export interface PublishingConfig {
7
+ defaultPlatform?: 'notion' | 'github-wiki' | 'obsidian' | 'confluence' | 'slack' | 'discord';
8
+ platformSettings?: {
9
+ notion?: {
10
+ databaseId?: string;
11
+ };
12
+ obsidian?: {
13
+ vaultPath?: string;
14
+ };
15
+ confluence?: {
16
+ spaceKey?: string;
17
+ };
18
+ };
19
+ autoPublish?: boolean;
20
+ }
21
+ export interface CodeAnalysisConfig {
22
+ defaultLanguage?: 'typescript' | 'javascript' | 'python' | 'go';
23
+ defaultDiagramTypes?: ('class' | 'flowchart' | 'dependency' | 'all')[];
24
+ excludePatterns?: string[];
25
+ useAI?: boolean;
26
+ }
27
+ export interface DocumentationConfig {
28
+ defaultDocType?: 'README' | 'DESIGN' | 'TUTORIAL' | 'CHANGELOG' | 'API' | 'ARCHITECTURE';
29
+ language?: 'en' | 'ko';
30
+ author?: string;
31
+ license?: string;
32
+ includeTableOfContents?: boolean;
33
+ }
34
+ export interface ProjectProfile {
35
+ id: string;
36
+ name: string;
37
+ description?: string;
38
+ createdAt: string;
39
+ updatedAt: string;
40
+ projectPath?: string;
41
+ repository?: string;
42
+ version?: string;
43
+ publishing?: PublishingConfig;
44
+ codeAnalysis?: CodeAnalysisConfig;
45
+ documentation?: DocumentationConfig;
46
+ defaultTags?: string[];
47
+ tagCategories?: {
48
+ name: string;
49
+ tags: string[];
50
+ }[];
51
+ team?: {
52
+ name: string;
53
+ members?: {
54
+ name: string;
55
+ role?: string;
56
+ email?: string;
57
+ }[];
58
+ };
59
+ metadata?: Record<string, unknown>;
60
+ }
61
+ export interface StoredProfile {
62
+ id: string;
63
+ name: string;
64
+ description?: string;
65
+ createdAt: string;
66
+ updatedAt: string;
67
+ isActive: boolean;
68
+ }
69
+ /**
70
+ * 스토리지 초기화
71
+ */
72
+ export declare function initializeProfileStorage(customDir?: string): Promise<void>;
73
+ /**
74
+ * 프로파일 생성
75
+ */
76
+ export declare function createProfile(data: Omit<ProjectProfile, 'id' | 'createdAt' | 'updatedAt'>): Promise<ProjectProfile>;
77
+ /**
78
+ * 프로파일 조회
79
+ */
80
+ export declare function getProfile(profileId: string): Promise<ProjectProfile | null>;
81
+ /**
82
+ * 프로파일 업데이트
83
+ */
84
+ export declare function updateProfile(profileId: string, updates: Partial<Omit<ProjectProfile, 'id' | 'createdAt'>>): Promise<ProjectProfile>;
85
+ /**
86
+ * 프로파일 삭제
87
+ */
88
+ export declare function deleteProfile(profileId: string): Promise<boolean>;
89
+ /**
90
+ * 모든 프로파일 목록
91
+ */
92
+ export declare function listProfiles(options?: {
93
+ limit?: number;
94
+ offset?: number;
95
+ sortBy?: 'createdAt' | 'updatedAt' | 'name';
96
+ sortOrder?: 'asc' | 'desc';
97
+ }): Promise<{
98
+ profiles: StoredProfile[];
99
+ total: number;
100
+ }>;
101
+ /**
102
+ * 활성 프로파일 설정
103
+ */
104
+ export declare function setActiveProfile(profileId: string | null): Promise<void>;
105
+ /**
106
+ * 활성 프로파일 조회
107
+ */
108
+ export declare function getActiveProfile(): Promise<ProjectProfile | null>;
109
+ /**
110
+ * 이름으로 프로파일 검색
111
+ */
112
+ export declare function findProfileByName(name: string): Promise<ProjectProfile | null>;
113
+ /**
114
+ * 프로파일 복제
115
+ */
116
+ export declare function cloneProfile(profileId: string, newName: string): Promise<ProjectProfile>;
117
+ //# sourceMappingURL=profileStorage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profileStorage.d.ts","sourceRoot":"","sources":["../../src/core/profileStorage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,251 @@
1
+ /**
2
+ * 프로젝트 프로파일 스토리지 모듈
3
+ * 프로젝트별 설정을 저장하고 관리
4
+ * v2.7: Project Profile
5
+ */
6
+ import { promises as fs } from 'fs';
7
+ import * as path from 'path';
8
+ import { logger } from './logger.js';
9
+ const profileLogger = logger.child({ module: 'profileStorage' });
10
+ // 기본 저장 경로
11
+ const DEFAULT_STORAGE_DIR = process.env.VIBE_CODING_STORAGE_DIR ||
12
+ path.join(process.env.HOME || process.env.USERPROFILE || '.', '.vibe-coding-mcp', 'profiles');
13
+ let storageDir = DEFAULT_STORAGE_DIR;
14
+ let activeProfileId = null;
15
+ /**
16
+ * 스토리지 초기화
17
+ */
18
+ export async function initializeProfileStorage(customDir) {
19
+ if (customDir) {
20
+ storageDir = customDir;
21
+ }
22
+ try {
23
+ await fs.mkdir(storageDir, { recursive: true });
24
+ // 활성 프로파일 ID 로드
25
+ const activeFile = path.join(storageDir, '.active');
26
+ try {
27
+ activeProfileId = (await fs.readFile(activeFile, 'utf-8')).trim();
28
+ }
29
+ catch {
30
+ activeProfileId = null;
31
+ }
32
+ profileLogger.info('Profile storage initialized', { path: storageDir });
33
+ }
34
+ catch (error) {
35
+ profileLogger.error('Failed to initialize profile storage', error);
36
+ throw error;
37
+ }
38
+ }
39
+ /**
40
+ * 프로파일 ID 생성
41
+ */
42
+ function generateProfileId() {
43
+ const timestamp = Date.now().toString(36);
44
+ const random = Math.random().toString(36).substring(2, 8);
45
+ return `profile_${timestamp}_${random}`;
46
+ }
47
+ /**
48
+ * 프로파일 파일 경로
49
+ */
50
+ function getProfilePath(profileId) {
51
+ return path.join(storageDir, `${profileId}.json`);
52
+ }
53
+ /**
54
+ * 프로파일 생성
55
+ */
56
+ export async function createProfile(data) {
57
+ await initializeProfileStorage();
58
+ const profileId = generateProfileId();
59
+ const now = new Date().toISOString();
60
+ const profile = {
61
+ id: profileId,
62
+ createdAt: now,
63
+ updatedAt: now,
64
+ ...data
65
+ };
66
+ const filePath = getProfilePath(profileId);
67
+ try {
68
+ await fs.writeFile(filePath, JSON.stringify(profile, null, 2), 'utf-8');
69
+ profileLogger.info('Profile created', { profileId, name: profile.name });
70
+ return profile;
71
+ }
72
+ catch (error) {
73
+ profileLogger.error('Failed to create profile', error);
74
+ throw error;
75
+ }
76
+ }
77
+ /**
78
+ * 프로파일 조회
79
+ */
80
+ export async function getProfile(profileId) {
81
+ const filePath = getProfilePath(profileId);
82
+ try {
83
+ const content = await fs.readFile(filePath, 'utf-8');
84
+ return JSON.parse(content);
85
+ }
86
+ catch (error) {
87
+ if (error.code === 'ENOENT') {
88
+ return null;
89
+ }
90
+ profileLogger.error('Failed to read profile', error);
91
+ throw error;
92
+ }
93
+ }
94
+ /**
95
+ * 프로파일 업데이트
96
+ */
97
+ export async function updateProfile(profileId, updates) {
98
+ const existing = await getProfile(profileId);
99
+ if (!existing) {
100
+ throw new Error(`Profile not found: ${profileId}`);
101
+ }
102
+ const updated = {
103
+ ...existing,
104
+ ...updates,
105
+ updatedAt: new Date().toISOString()
106
+ };
107
+ const filePath = getProfilePath(profileId);
108
+ try {
109
+ await fs.writeFile(filePath, JSON.stringify(updated, null, 2), 'utf-8');
110
+ profileLogger.info('Profile updated', { profileId });
111
+ return updated;
112
+ }
113
+ catch (error) {
114
+ profileLogger.error('Failed to update profile', error);
115
+ throw error;
116
+ }
117
+ }
118
+ /**
119
+ * 프로파일 삭제
120
+ */
121
+ export async function deleteProfile(profileId) {
122
+ const filePath = getProfilePath(profileId);
123
+ try {
124
+ await fs.unlink(filePath);
125
+ // 활성 프로파일이면 해제
126
+ if (activeProfileId === profileId) {
127
+ await setActiveProfile(null);
128
+ }
129
+ profileLogger.info('Profile deleted', { profileId });
130
+ return true;
131
+ }
132
+ catch (error) {
133
+ if (error.code === 'ENOENT') {
134
+ return false;
135
+ }
136
+ profileLogger.error('Failed to delete profile', error);
137
+ throw error;
138
+ }
139
+ }
140
+ /**
141
+ * 모든 프로파일 목록
142
+ */
143
+ export async function listProfiles(options) {
144
+ await initializeProfileStorage();
145
+ const { limit = 50, offset = 0, sortBy = 'updatedAt', sortOrder = 'desc' } = options || {};
146
+ try {
147
+ const files = await fs.readdir(storageDir);
148
+ const profileFiles = files.filter(f => f.endsWith('.json') && !f.startsWith('.'));
149
+ const profiles = [];
150
+ for (const file of profileFiles) {
151
+ try {
152
+ const content = await fs.readFile(path.join(storageDir, file), 'utf-8');
153
+ const data = JSON.parse(content);
154
+ profiles.push({
155
+ id: data.id,
156
+ name: data.name,
157
+ description: data.description,
158
+ createdAt: data.createdAt,
159
+ updatedAt: data.updatedAt,
160
+ isActive: data.id === activeProfileId
161
+ });
162
+ }
163
+ catch {
164
+ continue;
165
+ }
166
+ }
167
+ // 정렬
168
+ profiles.sort((a, b) => {
169
+ const aVal = a[sortBy] || '';
170
+ const bVal = b[sortBy] || '';
171
+ const cmp = aVal < bVal ? -1 : aVal > bVal ? 1 : 0;
172
+ return sortOrder === 'desc' ? -cmp : cmp;
173
+ });
174
+ // 페이지네이션
175
+ const total = profiles.length;
176
+ const paginated = profiles.slice(offset, offset + limit);
177
+ return { profiles: paginated, total };
178
+ }
179
+ catch (error) {
180
+ profileLogger.error('Failed to list profiles', error);
181
+ throw error;
182
+ }
183
+ }
184
+ /**
185
+ * 활성 프로파일 설정
186
+ */
187
+ export async function setActiveProfile(profileId) {
188
+ await initializeProfileStorage();
189
+ const activeFile = path.join(storageDir, '.active');
190
+ try {
191
+ if (profileId) {
192
+ // 프로파일 존재 확인
193
+ const profile = await getProfile(profileId);
194
+ if (!profile) {
195
+ throw new Error(`Profile not found: ${profileId}`);
196
+ }
197
+ await fs.writeFile(activeFile, profileId, 'utf-8');
198
+ activeProfileId = profileId;
199
+ profileLogger.info('Active profile set', { profileId });
200
+ }
201
+ else {
202
+ try {
203
+ await fs.unlink(activeFile);
204
+ }
205
+ catch { /* ignore */ }
206
+ activeProfileId = null;
207
+ profileLogger.info('Active profile cleared');
208
+ }
209
+ }
210
+ catch (error) {
211
+ profileLogger.error('Failed to set active profile', error);
212
+ throw error;
213
+ }
214
+ }
215
+ /**
216
+ * 활성 프로파일 조회
217
+ */
218
+ export async function getActiveProfile() {
219
+ await initializeProfileStorage();
220
+ if (!activeProfileId) {
221
+ return null;
222
+ }
223
+ return getProfile(activeProfileId);
224
+ }
225
+ /**
226
+ * 이름으로 프로파일 검색
227
+ */
228
+ export async function findProfileByName(name) {
229
+ const { profiles } = await listProfiles({ limit: 1000 });
230
+ const found = profiles.find(p => p.name.toLowerCase() === name.toLowerCase());
231
+ if (found) {
232
+ return getProfile(found.id);
233
+ }
234
+ return null;
235
+ }
236
+ /**
237
+ * 프로파일 복제
238
+ */
239
+ export async function cloneProfile(profileId, newName) {
240
+ const source = await getProfile(profileId);
241
+ if (!source) {
242
+ throw new Error(`Profile not found: ${profileId}`);
243
+ }
244
+ const { id, createdAt, updatedAt, ...profileData } = source;
245
+ return createProfile({
246
+ ...profileData,
247
+ name: newName,
248
+ description: `Cloned from ${source.name}`
249
+ });
250
+ }
251
+ //# sourceMappingURL=profileStorage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profileStorage.js","sourceRoot":"","sources":["../../src/core/profileStorage.ts"],"names":[],"mappings":"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"}