leadcode 0.1.2 → 0.2.1

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,355 @@
1
+ export type Locale = "en" | "fr";
2
+ export interface SuggestionMessages {
3
+ testing: {
4
+ topic: string;
5
+ simple: {
6
+ description: string;
7
+ pros: string[];
8
+ cons: string[];
9
+ claudeImpact: string;
10
+ };
11
+ clean: {
12
+ description: string;
13
+ pros: string[];
14
+ cons: string[];
15
+ claudeImpact: string;
16
+ };
17
+ scalable: {
18
+ description: string;
19
+ pros: string[];
20
+ cons: string[];
21
+ claudeImpact: string;
22
+ };
23
+ };
24
+ inputValidation: {
25
+ topic: string;
26
+ simple: {
27
+ description: string;
28
+ pros: string[];
29
+ cons: string[];
30
+ claudeImpact: string;
31
+ };
32
+ clean: {
33
+ description: string;
34
+ pros: string[];
35
+ cons: string[];
36
+ claudeImpact: string;
37
+ };
38
+ };
39
+ errorHandling: {
40
+ topic: string;
41
+ simple: {
42
+ description: string;
43
+ pros: string[];
44
+ cons: string[];
45
+ claudeImpact: string;
46
+ };
47
+ clean: {
48
+ description: string;
49
+ pros: string[];
50
+ cons: string[];
51
+ claudeImpact: string;
52
+ };
53
+ };
54
+ schemaOrg: {
55
+ topic: string;
56
+ simple: {
57
+ description: string;
58
+ pros: string[];
59
+ cons: string[];
60
+ claudeImpact: string;
61
+ };
62
+ clean: {
63
+ description: string;
64
+ pros: string[];
65
+ cons: string[];
66
+ claudeImpact: string;
67
+ };
68
+ };
69
+ componentStructure: {
70
+ topic: string;
71
+ simple: {
72
+ description: string;
73
+ pros: string[];
74
+ cons: string[];
75
+ claudeImpact: string;
76
+ };
77
+ clean: {
78
+ description: string;
79
+ pros: string[];
80
+ cons: string[];
81
+ claudeImpact: string;
82
+ };
83
+ };
84
+ authMiddleware: {
85
+ topic: string;
86
+ simple: {
87
+ description: string;
88
+ pros: string[];
89
+ cons: string[];
90
+ claudeImpact: string;
91
+ };
92
+ clean: {
93
+ description: string;
94
+ pros: string[];
95
+ cons: string[];
96
+ claudeImpact: string;
97
+ };
98
+ };
99
+ loadingStates: {
100
+ topic: string;
101
+ simple: {
102
+ description: string;
103
+ pros: string[];
104
+ cons: string[];
105
+ claudeImpact: string;
106
+ };
107
+ clean: {
108
+ description: string;
109
+ pros: string[];
110
+ cons: string[];
111
+ claudeImpact: string;
112
+ };
113
+ };
114
+ metadata: {
115
+ topic: string;
116
+ simple: {
117
+ description: string;
118
+ pros: string[];
119
+ cons: string[];
120
+ claudeImpact: string;
121
+ };
122
+ clean: {
123
+ description: string;
124
+ pros: string[];
125
+ cons: string[];
126
+ claudeImpact: string;
127
+ };
128
+ };
129
+ prismaClient: {
130
+ topic: string;
131
+ simple: {
132
+ description: string;
133
+ pros: string[];
134
+ cons: string[];
135
+ claudeImpact: string;
136
+ };
137
+ };
138
+ authSession: {
139
+ topic: string;
140
+ simple: {
141
+ description: string;
142
+ pros: string[];
143
+ cons: string[];
144
+ claudeImpact: string;
145
+ };
146
+ clean: {
147
+ description: string;
148
+ pros: string[];
149
+ cons: string[];
150
+ claudeImpact: string;
151
+ };
152
+ };
153
+ envValidation: {
154
+ topic: string;
155
+ simple: {
156
+ description: string;
157
+ pros: string[];
158
+ cons: string[];
159
+ claudeImpact: string;
160
+ };
161
+ clean: {
162
+ description: string;
163
+ pros: string[];
164
+ cons: string[];
165
+ claudeImpact: string;
166
+ };
167
+ };
168
+ typesDir: {
169
+ topic: string;
170
+ simple: {
171
+ description: string;
172
+ pros: string[];
173
+ cons: string[];
174
+ claudeImpact: string;
175
+ };
176
+ };
177
+ storeOrg: {
178
+ topic: string;
179
+ simple: {
180
+ description: string;
181
+ pros: string[];
182
+ cons: string[];
183
+ claudeImpact: string;
184
+ };
185
+ };
186
+ drizzleSchema: {
187
+ topic: string;
188
+ simple: {
189
+ description: string;
190
+ pros: string[];
191
+ cons: string[];
192
+ claudeImpact: string;
193
+ };
194
+ clean: {
195
+ description: string;
196
+ pros: string[];
197
+ cons: string[];
198
+ claudeImpact: string;
199
+ };
200
+ };
201
+ genericFix: string;
202
+ genericPros: string[];
203
+ genericCons: string[];
204
+ genericClaudeImpact: string;
205
+ }
206
+ export interface TemplateMessages {
207
+ header: {
208
+ title: string;
209
+ meta1: string;
210
+ meta2: string;
211
+ };
212
+ sections: {
213
+ architectureOverview: string;
214
+ stack: string;
215
+ projectStructure: string;
216
+ availableScripts: string;
217
+ fileNaming: string;
218
+ importOrdering: string;
219
+ conventions: string;
220
+ crossStackRules: string;
221
+ interdictions: string;
222
+ projectDecisions: string;
223
+ existingPatterns: string;
224
+ claudeInstructions: string;
225
+ };
226
+ architecture: {
227
+ frontendBackend: string;
228
+ fullStackReact: string;
229
+ frontend: string;
230
+ reactSpaVite: string;
231
+ framework: string;
232
+ dataLayer: string;
233
+ database: string;
234
+ authentication: string;
235
+ api: string;
236
+ clientState: string;
237
+ i18n: string;
238
+ payments: string;
239
+ realtime: string;
240
+ email: string;
241
+ content: string;
242
+ backgroundJobs: string;
243
+ fileUpload: string;
244
+ projectSize: string;
245
+ sizeSmall: string;
246
+ sizeMedium: string;
247
+ sizeLarge: string;
248
+ sizeVeryLarge: string;
249
+ sourceFiles: string;
250
+ };
251
+ stackLabels: {
252
+ framework: string;
253
+ orm: string;
254
+ database: string;
255
+ auth: string;
256
+ validation: string;
257
+ css: string;
258
+ uiComponents: string;
259
+ testing: string;
260
+ stateManagement: string;
261
+ apiStyle: string;
262
+ i18n: string;
263
+ payments: string;
264
+ email: string;
265
+ realtime: string;
266
+ cms: string;
267
+ fileUpload: string;
268
+ jobs: string;
269
+ monorepo: string;
270
+ deployment: string;
271
+ linter: string;
272
+ formatter: string;
273
+ runtime: string;
274
+ };
275
+ structure: {
276
+ srcDir: string;
277
+ appRouter: string;
278
+ pagesRouter: string;
279
+ apiRoutes: string;
280
+ middleware: string;
281
+ components: string;
282
+ sharedUtils: string;
283
+ services: string;
284
+ customHooks: string;
285
+ stateStores: string;
286
+ validationSchemas: string;
287
+ typeDefinitions: string;
288
+ configuration: string;
289
+ reactProviders: string;
290
+ prismaSchema: string;
291
+ };
292
+ naming: {
293
+ files: string;
294
+ reactComponents: string;
295
+ hooks: string;
296
+ constants: string;
297
+ newFilesSrc: string;
298
+ };
299
+ importOrder: string[];
300
+ instructions: {
301
+ followAll: string;
302
+ respectStructure: string;
303
+ checkPrecedent: string;
304
+ neverNewDeps: string;
305
+ smallChanges: string;
306
+ serverComponents: string;
307
+ appRouterPages: string;
308
+ serverActions: string;
309
+ prismaAfterChange: string;
310
+ drizzleAfterChange: string;
311
+ zodValidate: string;
312
+ tailwindClasses: string;
313
+ shadcnComponents: string;
314
+ runTests: string;
315
+ runLinter: string;
316
+ i18nStrings: string;
317
+ };
318
+ patterns: {
319
+ clientServerRatio: string;
320
+ serverActions: string;
321
+ pathAliases: string;
322
+ barrelFiles: string;
323
+ largeFiles: string;
324
+ consoleLogs: string;
325
+ };
326
+ }
327
+ export interface ValidationMessages {
328
+ noClaudeMd: string;
329
+ frameworkVersionOutdated: string;
330
+ techMissing: string;
331
+ conventionMissing: string;
332
+ crossStackMissing: string;
333
+ gapStillExists: string;
334
+ inSync: string;
335
+ driftsFound: string;
336
+ }
337
+ export interface ToolMessages {
338
+ generateSuccess: string;
339
+ updateSuccess: string;
340
+ dirNotFound: string;
341
+ }
342
+ export interface PromptMessages {
343
+ setupTitle: string;
344
+ setupSteps: string[];
345
+ validateTitle: string;
346
+ validateSteps: string[];
347
+ }
348
+ export interface Messages {
349
+ templates: TemplateMessages;
350
+ suggestions: SuggestionMessages;
351
+ validation: ValidationMessages;
352
+ tools: ToolMessages;
353
+ prompts: PromptMessages;
354
+ }
355
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/i18n/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;AAEjC,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,CAAC;QACtF,KAAK,EAAE;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,CAAC;QACrF,QAAQ,EAAE;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,CAAC;KACzF,CAAC;IACF,eAAe,EAAE;QACf,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,CAAC;QACtF,KAAK,EAAE;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,CAAC;KACtF,CAAC;IACF,aAAa,EAAE;QACb,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,CAAC;QACtF,KAAK,EAAE;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,CAAC;KACtF,CAAC;IACF,SAAS,EAAE;QACT,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,CAAC;QACtF,KAAK,EAAE;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,CAAC;KACtF,CAAC;IACF,kBAAkB,EAAE;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,CAAC;QACtF,KAAK,EAAE;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,CAAC;KACtF,CAAC;IACF,cAAc,EAAE;QACd,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,CAAC;QACtF,KAAK,EAAE;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,CAAC;KACtF,CAAC;IACF,aAAa,EAAE;QACb,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,CAAC;QACtF,KAAK,EAAE;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,CAAC;KACtF,CAAC;IACF,QAAQ,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,CAAC;QACtF,KAAK,EAAE;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,CAAC;KACtF,CAAC;IACF,YAAY,EAAE;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,CAAC;KACvF,CAAC;IACF,WAAW,EAAE;QACX,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,CAAC;QACtF,KAAK,EAAE;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,CAAC;KACtF,CAAC;IACF,aAAa,EAAE;QACb,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,CAAC;QACtF,KAAK,EAAE;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,CAAC;KACtF,CAAC;IACF,QAAQ,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,CAAC;KACvF,CAAC;IACF,QAAQ,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,CAAC;KACvF,CAAC;IACF,aAAa,EAAE;QACb,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,CAAC;QACtF,KAAK,EAAE;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,CAAC;KACtF,CAAC;IACF,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,QAAQ,EAAE;QACR,oBAAoB,EAAE,MAAM,CAAC;QAC7B,KAAK,EAAE,MAAM,CAAC;QACd,gBAAgB,EAAE,MAAM,CAAC;QACzB,gBAAgB,EAAE,MAAM,CAAC;QACzB,UAAU,EAAE,MAAM,CAAC;QACnB,cAAc,EAAE,MAAM,CAAC;QACvB,WAAW,EAAE,MAAM,CAAC;QACpB,eAAe,EAAE,MAAM,CAAC;QACxB,aAAa,EAAE,MAAM,CAAC;QACtB,gBAAgB,EAAE,MAAM,CAAC;QACzB,gBAAgB,EAAE,MAAM,CAAC;QACzB,kBAAkB,EAAE,MAAM,CAAC;KAC5B,CAAC;IACF,YAAY,EAAE;QACZ,eAAe,EAAE,MAAM,CAAC;QACxB,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,cAAc,EAAE,MAAM,CAAC;QACvB,GAAG,EAAE,MAAM,CAAC;QACZ,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,cAAc,EAAE,MAAM,CAAC;QACvB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,WAAW,EAAE;QACX,SAAS,EAAE,MAAM,CAAC;QAClB,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,GAAG,EAAE,MAAM,CAAC;QACZ,YAAY,EAAE,MAAM,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC;QAChB,eAAe,EAAE,MAAM,CAAC;QACxB,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,GAAG,EAAE,MAAM,CAAC;QACZ,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,SAAS,EAAE;QACT,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,eAAe,EAAE,MAAM,CAAC;QACxB,aAAa,EAAE,MAAM,CAAC;QACtB,cAAc,EAAE,MAAM,CAAC;QACvB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,eAAe,EAAE,MAAM,CAAC;QACxB,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,EAAE;QACZ,SAAS,EAAE,MAAM,CAAC;QAClB,gBAAgB,EAAE,MAAM,CAAC;QACzB,cAAc,EAAE,MAAM,CAAC;QACvB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,EAAE,MAAM,CAAC;QACzB,cAAc,EAAE,MAAM,CAAC;QACvB,aAAa,EAAE,MAAM,CAAC;QACtB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,kBAAkB,EAAE,MAAM,CAAC;QAC3B,WAAW,EAAE,MAAM,CAAC;QACpB,eAAe,EAAE,MAAM,CAAC;QACxB,gBAAgB,EAAE,MAAM,CAAC;QACzB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,QAAQ,EAAE;QACR,iBAAiB,EAAE,MAAM,CAAC;QAC1B,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,wBAAwB,EAAE,MAAM,CAAC;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,WAAW,EAAE,kBAAkB,CAAC;IAChC,UAAU,EAAE,kBAAkB,CAAC;IAC/B,KAAK,EAAE,YAAY,CAAC;IACpB,OAAO,EAAE,cAAc,CAAC;CACzB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/i18n/types.ts"],"names":[],"mappings":""}
package/dist/index.js CHANGED
@@ -9,7 +9,7 @@ import { registerValidateClaudeMd } from "./tools/validate-claude-md.js";
9
9
  import { registerUpdateClaudeMd } from "./tools/update-claude-md.js";
10
10
  const server = new McpServer({
11
11
  name: "leadcode",
12
- version: "0.1.0",
12
+ version: "0.2.0",
13
13
  });
14
14
  // Register tools
15
15
  registerAnalyzeRepo(server);
@@ -19,45 +19,82 @@ registerGenerateClaudeMd(server);
19
19
  registerValidateClaudeMd(server);
20
20
  registerUpdateClaudeMd(server);
21
21
  // Register prompts
22
- server.prompt("setup-project", "Full LeadCode workflow: analyze repo → detect gaps → suggest conventions → generate CLAUDE.md", { projectPath: z.string().describe("Absolute path to the project root") }, ({ projectPath }) => ({
23
- messages: [
24
- {
25
- role: "user",
26
- content: {
27
- type: "text",
28
- text: [
29
- `Please set up LeadCode for the project at ${projectPath}. Follow these steps:`,
30
- "",
31
- "1. Call analyze-repo to scan the project and get a full technical analysis.",
32
- "2. Call detect-gaps with the analysis to identify structural gaps.",
33
- "3. Call suggest-conventions with the analysis and gaps to get improvement options.",
34
- "4. Present the analysis, gaps, and suggestions to me in a clear summary.",
35
- "5. Ask me which options I prefer for each gap (simple / clean / scalable).",
36
- "6. Once I've chosen, call generate-claude-md with my choices to create the CLAUDE.md file.",
37
- "",
38
- "Be thorough and explain each gap and suggestion clearly.",
39
- ].join("\n"),
22
+ server.prompt("setup-project", "Full LeadCode workflow: analyze → detect gaps → suggest → generate CLAUDE.md. Supports language parameter for French or English output.", {
23
+ projectPath: z.string().describe("Absolute path to the project root"),
24
+ language: z.string().optional().describe("Output language: 'fr' for French, 'en' for English (default: en)"),
25
+ }, ({ projectPath, language }) => {
26
+ const isFr = language === "fr";
27
+ const steps = isFr
28
+ ? [
29
+ `Configure LeadCode pour le projet à ${projectPath}. Suis ces étapes :`,
30
+ "",
31
+ `1. Lance analyze-repo avec projectPath="${projectPath}" pour scanner le projet.`,
32
+ "2. Lance detect-gaps avec l'analyse pour identifier les manques structurels.",
33
+ "3. Lance suggest-conventions avec l'analyse et les gaps pour obtenir des propositions.",
34
+ "4. Présente un résumé clair : ce qui est détecté, ce qui manque, et les options.",
35
+ "5. Demande-moi mes préférences pour chaque point (simple / clean / scalable).",
36
+ "6. Une fois mes choix faits, lance generate-claude-md avec mes choix pour créer le CLAUDE.md.",
37
+ "",
38
+ "Explique chaque étape simplement. Réponds en français.",
39
+ ]
40
+ : [
41
+ `Please set up LeadCode for the project at ${projectPath}. Follow these steps:`,
42
+ "",
43
+ `1. Call analyze-repo with projectPath="${projectPath}" to scan the project.`,
44
+ "2. Call detect-gaps with the analysis to identify structural gaps.",
45
+ "3. Call suggest-conventions with the analysis and gaps to get improvement options.",
46
+ "4. Present the analysis, gaps, and suggestions to me in a clear summary.",
47
+ "5. Ask me which options I prefer for each gap (simple / clean / scalable).",
48
+ "6. Once I've chosen, call generate-claude-md with my choices to create the CLAUDE.md file.",
49
+ "",
50
+ "Be thorough and explain each gap and suggestion clearly.",
51
+ ];
52
+ return {
53
+ messages: [
54
+ {
55
+ role: "user",
56
+ content: {
57
+ type: "text",
58
+ text: steps.join("\n"),
59
+ },
40
60
  },
41
- },
42
- ],
43
- }));
44
- server.prompt("validate-project", "Check if an existing CLAUDE.md is still in sync with the project", { projectPath: z.string().describe("Absolute path to the project root") }, ({ projectPath }) => ({
45
- messages: [
46
- {
47
- role: "user",
48
- content: {
49
- type: "text",
50
- text: [
51
- `Please validate the CLAUDE.md for the project at ${projectPath}.`,
52
- "",
53
- "1. Call validate-claude-md to check for drifts between the CLAUDE.md and actual project state.",
54
- "2. Present any drifts found with clear explanations.",
55
- "3. If drifts are found, suggest whether to regenerate or manually fix the CLAUDE.md.",
56
- ].join("\n"),
61
+ ],
62
+ };
63
+ });
64
+ server.prompt("validate-project", "Check if an existing CLAUDE.md is still in sync with the project", {
65
+ projectPath: z.string().describe("Absolute path to the project root"),
66
+ language: z.string().optional().describe("Output language: 'fr' for French, 'en' for English (default: en)"),
67
+ }, ({ projectPath, language }) => {
68
+ const isFr = language === "fr";
69
+ const steps = isFr
70
+ ? [
71
+ `Vérifie le CLAUDE.md du projet à ${projectPath}.`,
72
+ "",
73
+ `1. Lance validate-claude-md avec projectPath="${projectPath}".`,
74
+ "2. Présente les décalages trouvés avec des explications claires.",
75
+ "3. Si des décalages existent, suggère s'il faut régénérer ou corriger manuellement.",
76
+ "",
77
+ "Réponds en français.",
78
+ ]
79
+ : [
80
+ `Please validate the CLAUDE.md for the project at ${projectPath}.`,
81
+ "",
82
+ `1. Call validate-claude-md with projectPath="${projectPath}".`,
83
+ "2. Present any drifts found with clear explanations.",
84
+ "3. If drifts are found, suggest whether to regenerate or manually fix the CLAUDE.md.",
85
+ ];
86
+ return {
87
+ messages: [
88
+ {
89
+ role: "user",
90
+ content: {
91
+ type: "text",
92
+ text: steps.join("\n"),
93
+ },
57
94
  },
58
- },
59
- ],
60
- }));
95
+ ],
96
+ };
97
+ });
61
98
  // Start server
62
99
  const transport = new StdioServerTransport();
63
100
  await server.connect(transport);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;IAC3B,IAAI,EAAE,UAAU;IAChB,OAAO,EAAE,OAAO;CACjB,CAAC,CAAC;AAEH,iBAAiB;AACjB,mBAAmB,CAAC,MAAM,CAAC,CAAC;AAC5B,kBAAkB,CAAC,MAAM,CAAC,CAAC;AAC3B,eAAe,CAAC,MAAM,CAAC,CAAC;AACxB,wBAAwB,CAAC,MAAM,CAAC,CAAC;AACjC,wBAAwB,CAAC,MAAM,CAAC,CAAC;AACjC,sBAAsB,CAAC,MAAM,CAAC,CAAC;AAE/B,mBAAmB;AACnB,MAAM,CAAC,MAAM,CACX,eAAe,EACf,+FAA+F,EAC/F,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC,EAAE,EACzE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;IACpB,QAAQ,EAAE;QACR;YACE,IAAI,EAAE,MAAe;YACrB,OAAO,EAAE;gBACP,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE;oBACJ,6CAA6C,WAAW,uBAAuB;oBAC/E,EAAE;oBACF,6EAA6E;oBAC7E,oEAAoE;oBACpE,oFAAoF;oBACpF,0EAA0E;oBAC1E,4EAA4E;oBAC5E,4FAA4F;oBAC5F,EAAE;oBACF,0DAA0D;iBAC3D,CAAC,IAAI,CAAC,IAAI,CAAC;aACb;SACF;KACF;CACF,CAAC,CACH,CAAC;AAEF,MAAM,CAAC,MAAM,CACX,kBAAkB,EAClB,kEAAkE,EAClE,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC,EAAE,EACzE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;IACpB,QAAQ,EAAE;QACR;YACE,IAAI,EAAE,MAAe;YACrB,OAAO,EAAE;gBACP,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE;oBACJ,oDAAoD,WAAW,GAAG;oBAClE,EAAE;oBACF,gGAAgG;oBAChG,sDAAsD;oBACtD,sFAAsF;iBACvF,CAAC,IAAI,CAAC,IAAI,CAAC;aACb;SACF;KACF;CACF,CAAC,CACH,CAAC;AAEF,eAAe;AACf,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;AAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { RepoAnalysis, Convention, CrossRef } from "../types.js";
2
2
  import type { CodePatterns } from "../analyzers/patterns.js";
3
- export declare function generateClaudeMd(analysis: RepoAnalysis, conventions: Convention[], interdictions: string[], crossRefs: CrossRef[], choices: Record<string, string>, patterns?: CodePatterns): string;
3
+ import type { Locale } from "../i18n/types.js";
4
+ export declare function generateClaudeMd(analysis: RepoAnalysis, conventions: Convention[], interdictions: string[], crossRefs: CrossRef[], choices: Record<string, string>, patterns?: CodePatterns, locale?: Locale): string;
4
5
  //# sourceMappingURL=claude-md.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"claude-md.d.ts","sourceRoot":"","sources":["../../src/templates/claude-md.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAyF7D,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,YAAY,EACtB,WAAW,EAAE,UAAU,EAAE,EACzB,aAAa,EAAE,MAAM,EAAE,EACvB,SAAS,EAAE,QAAQ,EAAE,EACrB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,QAAQ,CAAC,EAAE,YAAY,GACtB,MAAM,CA0MR"}
1
+ {"version":3,"file":"claude-md.d.ts","sourceRoot":"","sources":["../../src/templates/claude-md.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AA+F/C,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,YAAY,EACtB,WAAW,EAAE,UAAU,EAAE,EACzB,aAAa,EAAE,MAAM,EAAE,EACvB,SAAS,EAAE,QAAQ,EAAE,EACrB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,QAAQ,CAAC,EAAE,YAAY,EACvB,MAAM,GAAE,MAAa,GACpB,MAAM,CA6MR"}