vibe-coding-mcp 2.6.0 → 2.7.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.
@@ -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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"}
@@ -672,6 +672,231 @@ export declare const AnalyzeCodeSchema: z.ZodObject<{
672
672
  generateDiagrams?: boolean | undefined;
673
673
  diagramTypes?: ("class" | "flowchart" | "dependency" | "all")[] | undefined;
674
674
  }>;
675
+ export declare const ExportSessionSchema: z.ZodObject<{
676
+ sessionIds: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
677
+ format: z.ZodEnum<["markdown", "json", "html"]>;
678
+ outputPath: z.ZodOptional<z.ZodString>;
679
+ includeMetadata: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
680
+ includeCodeBlocks: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
681
+ includeDesignDecisions: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
682
+ template: z.ZodDefault<z.ZodOptional<z.ZodEnum<["default", "minimal", "detailed", "report"]>>>;
683
+ title: z.ZodOptional<z.ZodString>;
684
+ bundleMultiple: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
685
+ }, "strip", z.ZodTypeAny, {
686
+ format: "markdown" | "json" | "html";
687
+ includeMetadata: boolean;
688
+ includeCodeBlocks: boolean;
689
+ includeDesignDecisions: boolean;
690
+ template: "default" | "minimal" | "detailed" | "report";
691
+ bundleMultiple: boolean;
692
+ title?: string | undefined;
693
+ outputPath?: string | undefined;
694
+ sessionIds?: string[] | undefined;
695
+ }, {
696
+ format: "markdown" | "json" | "html";
697
+ title?: string | undefined;
698
+ outputPath?: string | undefined;
699
+ sessionIds?: string[] | undefined;
700
+ includeMetadata?: boolean | undefined;
701
+ includeCodeBlocks?: boolean | undefined;
702
+ includeDesignDecisions?: boolean | undefined;
703
+ template?: "default" | "minimal" | "detailed" | "report" | undefined;
704
+ bundleMultiple?: boolean | undefined;
705
+ }>;
706
+ export declare const ProjectProfileSchema: z.ZodObject<{
707
+ action: z.ZodEnum<["create", "get", "update", "delete", "list", "setActive", "getActive", "clone"]>;
708
+ profileId: z.ZodOptional<z.ZodString>;
709
+ name: z.ZodOptional<z.ZodString>;
710
+ newName: z.ZodOptional<z.ZodString>;
711
+ description: z.ZodOptional<z.ZodString>;
712
+ projectPath: z.ZodOptional<z.ZodString>;
713
+ repository: z.ZodOptional<z.ZodString>;
714
+ version: z.ZodOptional<z.ZodString>;
715
+ publishing: z.ZodOptional<z.ZodObject<{
716
+ defaultPlatform: z.ZodOptional<z.ZodEnum<["notion", "github-wiki", "obsidian", "confluence", "slack", "discord"]>>;
717
+ platformSettings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
718
+ autoPublish: z.ZodOptional<z.ZodBoolean>;
719
+ }, "strip", z.ZodTypeAny, {
720
+ defaultPlatform?: "notion" | "github-wiki" | "obsidian" | "confluence" | "slack" | "discord" | undefined;
721
+ platformSettings?: Record<string, unknown> | undefined;
722
+ autoPublish?: boolean | undefined;
723
+ }, {
724
+ defaultPlatform?: "notion" | "github-wiki" | "obsidian" | "confluence" | "slack" | "discord" | undefined;
725
+ platformSettings?: Record<string, unknown> | undefined;
726
+ autoPublish?: boolean | undefined;
727
+ }>>;
728
+ codeAnalysis: z.ZodOptional<z.ZodObject<{
729
+ defaultLanguage: z.ZodOptional<z.ZodEnum<["typescript", "javascript", "python", "go"]>>;
730
+ defaultDiagramTypes: z.ZodOptional<z.ZodArray<z.ZodEnum<["class", "flowchart", "dependency", "all"]>, "many">>;
731
+ excludePatterns: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
732
+ useAI: z.ZodOptional<z.ZodBoolean>;
733
+ }, "strip", z.ZodTypeAny, {
734
+ useAI?: boolean | undefined;
735
+ defaultLanguage?: "typescript" | "javascript" | "python" | "go" | undefined;
736
+ defaultDiagramTypes?: ("class" | "flowchart" | "dependency" | "all")[] | undefined;
737
+ excludePatterns?: string[] | undefined;
738
+ }, {
739
+ useAI?: boolean | undefined;
740
+ defaultLanguage?: "typescript" | "javascript" | "python" | "go" | undefined;
741
+ defaultDiagramTypes?: ("class" | "flowchart" | "dependency" | "all")[] | undefined;
742
+ excludePatterns?: string[] | undefined;
743
+ }>>;
744
+ documentation: z.ZodOptional<z.ZodObject<{
745
+ defaultDocType: z.ZodOptional<z.ZodEnum<["README", "DESIGN", "TUTORIAL", "CHANGELOG", "API", "ARCHITECTURE"]>>;
746
+ language: z.ZodOptional<z.ZodEnum<["en", "ko"]>>;
747
+ author: z.ZodOptional<z.ZodString>;
748
+ license: z.ZodOptional<z.ZodString>;
749
+ includeTableOfContents: z.ZodOptional<z.ZodBoolean>;
750
+ }, "strip", z.ZodTypeAny, {
751
+ language?: "en" | "ko" | undefined;
752
+ author?: string | undefined;
753
+ license?: string | undefined;
754
+ includeTableOfContents?: boolean | undefined;
755
+ defaultDocType?: "README" | "DESIGN" | "TUTORIAL" | "CHANGELOG" | "API" | "ARCHITECTURE" | undefined;
756
+ }, {
757
+ language?: "en" | "ko" | undefined;
758
+ author?: string | undefined;
759
+ license?: string | undefined;
760
+ includeTableOfContents?: boolean | undefined;
761
+ defaultDocType?: "README" | "DESIGN" | "TUTORIAL" | "CHANGELOG" | "API" | "ARCHITECTURE" | undefined;
762
+ }>>;
763
+ defaultTags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
764
+ tagCategories: z.ZodOptional<z.ZodArray<z.ZodObject<{
765
+ name: z.ZodString;
766
+ tags: z.ZodArray<z.ZodString, "many">;
767
+ }, "strip", z.ZodTypeAny, {
768
+ name: string;
769
+ tags: string[];
770
+ }, {
771
+ name: string;
772
+ tags: string[];
773
+ }>, "many">>;
774
+ team: z.ZodOptional<z.ZodObject<{
775
+ name: z.ZodString;
776
+ members: z.ZodOptional<z.ZodArray<z.ZodObject<{
777
+ name: z.ZodString;
778
+ role: z.ZodOptional<z.ZodString>;
779
+ email: z.ZodOptional<z.ZodString>;
780
+ }, "strip", z.ZodTypeAny, {
781
+ name: string;
782
+ role?: string | undefined;
783
+ email?: string | undefined;
784
+ }, {
785
+ name: string;
786
+ role?: string | undefined;
787
+ email?: string | undefined;
788
+ }>, "many">>;
789
+ }, "strip", z.ZodTypeAny, {
790
+ name: string;
791
+ members?: {
792
+ name: string;
793
+ role?: string | undefined;
794
+ email?: string | undefined;
795
+ }[] | undefined;
796
+ }, {
797
+ name: string;
798
+ members?: {
799
+ name: string;
800
+ role?: string | undefined;
801
+ email?: string | undefined;
802
+ }[] | undefined;
803
+ }>>;
804
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
805
+ limit: z.ZodOptional<z.ZodNumber>;
806
+ offset: z.ZodOptional<z.ZodNumber>;
807
+ sortBy: z.ZodOptional<z.ZodEnum<["createdAt", "updatedAt", "name"]>>;
808
+ sortOrder: z.ZodOptional<z.ZodEnum<["asc", "desc"]>>;
809
+ }, "strip", z.ZodTypeAny, {
810
+ action: "create" | "get" | "update" | "delete" | "list" | "setActive" | "getActive" | "clone";
811
+ name?: string | undefined;
812
+ description?: string | undefined;
813
+ version?: string | undefined;
814
+ profileId?: string | undefined;
815
+ newName?: string | undefined;
816
+ projectPath?: string | undefined;
817
+ repository?: string | undefined;
818
+ publishing?: {
819
+ defaultPlatform?: "notion" | "github-wiki" | "obsidian" | "confluence" | "slack" | "discord" | undefined;
820
+ platformSettings?: Record<string, unknown> | undefined;
821
+ autoPublish?: boolean | undefined;
822
+ } | undefined;
823
+ codeAnalysis?: {
824
+ useAI?: boolean | undefined;
825
+ defaultLanguage?: "typescript" | "javascript" | "python" | "go" | undefined;
826
+ defaultDiagramTypes?: ("class" | "flowchart" | "dependency" | "all")[] | undefined;
827
+ excludePatterns?: string[] | undefined;
828
+ } | undefined;
829
+ documentation?: {
830
+ language?: "en" | "ko" | undefined;
831
+ author?: string | undefined;
832
+ license?: string | undefined;
833
+ includeTableOfContents?: boolean | undefined;
834
+ defaultDocType?: "README" | "DESIGN" | "TUTORIAL" | "CHANGELOG" | "API" | "ARCHITECTURE" | undefined;
835
+ } | undefined;
836
+ defaultTags?: string[] | undefined;
837
+ tagCategories?: {
838
+ name: string;
839
+ tags: string[];
840
+ }[] | undefined;
841
+ team?: {
842
+ name: string;
843
+ members?: {
844
+ name: string;
845
+ role?: string | undefined;
846
+ email?: string | undefined;
847
+ }[] | undefined;
848
+ } | undefined;
849
+ metadata?: Record<string, unknown> | undefined;
850
+ limit?: number | undefined;
851
+ offset?: number | undefined;
852
+ sortBy?: "name" | "createdAt" | "updatedAt" | undefined;
853
+ sortOrder?: "asc" | "desc" | undefined;
854
+ }, {
855
+ action: "create" | "get" | "update" | "delete" | "list" | "setActive" | "getActive" | "clone";
856
+ name?: string | undefined;
857
+ description?: string | undefined;
858
+ version?: string | undefined;
859
+ profileId?: string | undefined;
860
+ newName?: string | undefined;
861
+ projectPath?: string | undefined;
862
+ repository?: string | undefined;
863
+ publishing?: {
864
+ defaultPlatform?: "notion" | "github-wiki" | "obsidian" | "confluence" | "slack" | "discord" | undefined;
865
+ platformSettings?: Record<string, unknown> | undefined;
866
+ autoPublish?: boolean | undefined;
867
+ } | undefined;
868
+ codeAnalysis?: {
869
+ useAI?: boolean | undefined;
870
+ defaultLanguage?: "typescript" | "javascript" | "python" | "go" | undefined;
871
+ defaultDiagramTypes?: ("class" | "flowchart" | "dependency" | "all")[] | undefined;
872
+ excludePatterns?: string[] | undefined;
873
+ } | undefined;
874
+ documentation?: {
875
+ language?: "en" | "ko" | undefined;
876
+ author?: string | undefined;
877
+ license?: string | undefined;
878
+ includeTableOfContents?: boolean | undefined;
879
+ defaultDocType?: "README" | "DESIGN" | "TUTORIAL" | "CHANGELOG" | "API" | "ARCHITECTURE" | undefined;
880
+ } | undefined;
881
+ defaultTags?: string[] | undefined;
882
+ tagCategories?: {
883
+ name: string;
884
+ tags: string[];
885
+ }[] | undefined;
886
+ team?: {
887
+ name: string;
888
+ members?: {
889
+ name: string;
890
+ role?: string | undefined;
891
+ email?: string | undefined;
892
+ }[] | undefined;
893
+ } | undefined;
894
+ metadata?: Record<string, unknown> | undefined;
895
+ limit?: number | undefined;
896
+ offset?: number | undefined;
897
+ sortBy?: "name" | "createdAt" | "updatedAt" | undefined;
898
+ sortOrder?: "asc" | "desc" | undefined;
899
+ }>;
675
900
  export declare const SessionHistorySchema: z.ZodObject<{
676
901
  action: z.ZodEnum<["save", "get", "update", "delete", "list", "search", "stats"]>;
677
902
  sessionId: z.ZodOptional<z.ZodString>;
@@ -745,7 +970,7 @@ export declare const SessionHistorySchema: z.ZodObject<{
745
970
  keyword: z.ZodOptional<z.ZodString>;
746
971
  searchIn: z.ZodOptional<z.ZodArray<z.ZodEnum<["title", "summary", "tags"]>, "many">>;
747
972
  }, "strip", z.ZodTypeAny, {
748
- action: "save" | "get" | "update" | "delete" | "list" | "search" | "stats";
973
+ action: "get" | "update" | "delete" | "list" | "save" | "search" | "stats";
749
974
  title?: string | undefined;
750
975
  sessionId?: string | undefined;
751
976
  tags?: string[] | undefined;
@@ -771,13 +996,13 @@ export declare const SessionHistorySchema: z.ZodObject<{
771
996
  metadata?: Record<string, unknown> | undefined;
772
997
  limit?: number | undefined;
773
998
  offset?: number | undefined;
774
- filterTags?: string[] | undefined;
775
999
  sortBy?: "title" | "createdAt" | "updatedAt" | undefined;
776
1000
  sortOrder?: "asc" | "desc" | undefined;
1001
+ filterTags?: string[] | undefined;
777
1002
  keyword?: string | undefined;
778
1003
  searchIn?: ("title" | "tags" | "summary")[] | undefined;
779
1004
  }, {
780
- action: "save" | "get" | "update" | "delete" | "list" | "search" | "stats";
1005
+ action: "get" | "update" | "delete" | "list" | "save" | "search" | "stats";
781
1006
  title?: string | undefined;
782
1007
  sessionId?: string | undefined;
783
1008
  tags?: string[] | undefined;
@@ -803,15 +1028,17 @@ export declare const SessionHistorySchema: z.ZodObject<{
803
1028
  metadata?: Record<string, unknown> | undefined;
804
1029
  limit?: number | undefined;
805
1030
  offset?: number | undefined;
806
- filterTags?: string[] | undefined;
807
1031
  sortBy?: "title" | "createdAt" | "updatedAt" | undefined;
808
1032
  sortOrder?: "asc" | "desc" | undefined;
1033
+ filterTags?: string[] | undefined;
809
1034
  keyword?: string | undefined;
810
1035
  searchIn?: ("title" | "tags" | "summary")[] | undefined;
811
1036
  }>;
812
1037
  export type CollectCodeContextInput = z.infer<typeof CollectCodeContextSchema>;
813
1038
  export type SummarizeDesignDecisionsInput = z.infer<typeof SummarizeDesignDecisionsSchema>;
814
1039
  export type SessionHistoryInput = z.infer<typeof SessionHistorySchema>;
1040
+ export type ExportSessionInput = z.infer<typeof ExportSessionSchema>;
1041
+ export type ProjectProfileInput = z.infer<typeof ProjectProfileSchema>;
815
1042
  export type GenerateDevDocumentInput = z.infer<typeof GenerateDevDocumentSchema>;
816
1043
  export type NormalizeForPlatformInput = z.infer<typeof NormalizeForPlatformSchema>;
817
1044
  export type PublishDocumentInput = z.infer<typeof PublishDocumentSchema>;
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/core/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AAGH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;EAK1B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;EAQ/B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAM5B,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;EAIlC,CAAC;AAGH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQnC,CAAC;AAEH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;EAQzC,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoCpC,CAAC;AAEH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQrC,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUhC,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQjC,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;EAO5B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgC/B,CAAC;AAGH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC/E,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAC3F,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACvE,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AACjF,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AACnF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACzE,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAC3E,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEjE;;GAEG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,CAAC,CAS1E"}
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/core/schemas.ts"],"names":[],"mappings":"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"}
@@ -124,6 +124,63 @@ export const AnalyzeCodeSchema = z.object({
124
124
  diagramTypes: z.array(z.enum(['class', 'flowchart', 'dependency', 'all'])).optional().default(['all']),
125
125
  useAI: z.boolean().optional().default(false)
126
126
  });
127
+ export const ExportSessionSchema = z.object({
128
+ sessionIds: z.array(z.string()).optional(),
129
+ format: z.enum(['markdown', 'json', 'html']),
130
+ outputPath: z.string().optional(),
131
+ includeMetadata: z.boolean().optional().default(true),
132
+ includeCodeBlocks: z.boolean().optional().default(true),
133
+ includeDesignDecisions: z.boolean().optional().default(true),
134
+ template: z.enum(['default', 'minimal', 'detailed', 'report']).optional().default('default'),
135
+ title: z.string().optional(),
136
+ bundleMultiple: z.boolean().optional().default(true)
137
+ });
138
+ export const ProjectProfileSchema = z.object({
139
+ action: z.enum(['create', 'get', 'update', 'delete', 'list', 'setActive', 'getActive', 'clone']),
140
+ profileId: z.string().optional(),
141
+ name: z.string().optional(),
142
+ newName: z.string().optional(),
143
+ description: z.string().optional(),
144
+ projectPath: z.string().optional(),
145
+ repository: z.string().optional(),
146
+ version: z.string().optional(),
147
+ publishing: z.object({
148
+ defaultPlatform: z.enum(['notion', 'github-wiki', 'obsidian', 'confluence', 'slack', 'discord']).optional(),
149
+ platformSettings: z.record(z.unknown()).optional(),
150
+ autoPublish: z.boolean().optional()
151
+ }).optional(),
152
+ codeAnalysis: z.object({
153
+ defaultLanguage: z.enum(['typescript', 'javascript', 'python', 'go']).optional(),
154
+ defaultDiagramTypes: z.array(z.enum(['class', 'flowchart', 'dependency', 'all'])).optional(),
155
+ excludePatterns: z.array(z.string()).optional(),
156
+ useAI: z.boolean().optional()
157
+ }).optional(),
158
+ documentation: z.object({
159
+ defaultDocType: z.enum(['README', 'DESIGN', 'TUTORIAL', 'CHANGELOG', 'API', 'ARCHITECTURE']).optional(),
160
+ language: z.enum(['en', 'ko']).optional(),
161
+ author: z.string().optional(),
162
+ license: z.string().optional(),
163
+ includeTableOfContents: z.boolean().optional()
164
+ }).optional(),
165
+ defaultTags: z.array(z.string()).optional(),
166
+ tagCategories: z.array(z.object({
167
+ name: z.string(),
168
+ tags: z.array(z.string())
169
+ })).optional(),
170
+ team: z.object({
171
+ name: z.string(),
172
+ members: z.array(z.object({
173
+ name: z.string(),
174
+ role: z.string().optional(),
175
+ email: z.string().optional()
176
+ })).optional()
177
+ }).optional(),
178
+ metadata: z.record(z.unknown()).optional(),
179
+ limit: z.number().optional(),
180
+ offset: z.number().optional(),
181
+ sortBy: z.enum(['createdAt', 'updatedAt', 'name']).optional(),
182
+ sortOrder: z.enum(['asc', 'desc']).optional()
183
+ });
127
184
  export const SessionHistorySchema = z.object({
128
185
  action: z.enum(['save', 'get', 'update', 'delete', 'list', 'search', 'stats']),
129
186
  sessionId: z.string().optional(),