syr-d2c-workflow-mcp 0.1.0 → 0.3.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.
package/dist/index.js CHANGED
@@ -104,7 +104,7 @@ const DEFAULT_RULES = `
104
104
  // MCP 서버 생성
105
105
  const server = new Server({
106
106
  name: "syr-d2c-workflow-mcp",
107
- version: "0.1.0",
107
+ version: "0.3.0",
108
108
  }, {
109
109
  capabilities: {
110
110
  tools: {},
@@ -199,7 +199,7 @@ ${SERVICE_IDENTIFIERS}
199
199
  description: `Figma 디자인 스크린샷과 렌더링 결과를 비교 분석합니다.
200
200
  ${SERVICE_IDENTIFIERS}
201
201
 
202
- 📊 **비교 항목**:
202
+ 📊 **비교 항목 (각 0-100점)**:
203
203
  - 레이아웃 일치도
204
204
  - 색상/타이포그래피 일치도
205
205
  - 간격/여백 일치도
@@ -208,7 +208,7 @@ ${SERVICE_IDENTIFIERS}
208
208
  💡 **사용법**:
209
209
  1. figma-mcp.get_screenshot으로 원본 이미지 획득
210
210
  2. playwright-mcp로 렌더링 결과 스크린샷
211
- 3. 이 도구로 비교 분석`,
211
+ 3. 이 도구로 비교 분석 (scores 필수 입력)`,
212
212
  inputSchema: {
213
213
  type: "object",
214
214
  properties: {
@@ -225,8 +225,289 @@ ${SERVICE_IDENTIFIERS}
225
225
  items: { type: "string" },
226
226
  description: "발견된 차이점 목록",
227
227
  },
228
+ iteration: {
229
+ type: "number",
230
+ description: "현재 반복 횟수",
231
+ },
232
+ maxIterations: {
233
+ type: "number",
234
+ description: "최대 반복 횟수 (기본: 5)",
235
+ },
236
+ scores: {
237
+ type: "object",
238
+ properties: {
239
+ layout: { type: "number", description: "레이아웃 점수 (0-100)" },
240
+ colors: { type: "number", description: "색상 점수 (0-100)" },
241
+ typography: { type: "number", description: "타이포그래피 점수 (0-100)" },
242
+ spacing: { type: "number", description: "간격 점수 (0-100)" },
243
+ },
244
+ description: "항목별 점수 (0-100)",
245
+ },
228
246
  },
229
- required: ["designDescription", "renderedDescription"],
247
+ required: ["designDescription", "renderedDescription", "scores"],
248
+ },
249
+ },
250
+ // log_step - 실시간 진행 로그
251
+ {
252
+ name: "d2c_log_step",
253
+ description: `워크플로우 진행 상황을 실시간으로 출력합니다.
254
+ ${SERVICE_IDENTIFIERS}
255
+
256
+ 📋 **각 단계 완료 시 호출하여 진행 상황을 사용자에게 알립니다.**`,
257
+ inputSchema: {
258
+ type: "object",
259
+ properties: {
260
+ step: {
261
+ type: "number",
262
+ description: "현재 단계 번호 (1-6)",
263
+ },
264
+ stepName: {
265
+ type: "string",
266
+ description: "단계 이름",
267
+ },
268
+ status: {
269
+ type: "string",
270
+ enum: ["start", "done", "error"],
271
+ description: "상태",
272
+ },
273
+ message: {
274
+ type: "string",
275
+ description: "추가 메시지",
276
+ },
277
+ iteration: {
278
+ type: "number",
279
+ description: "반복 중인 경우 현재 반복 횟수",
280
+ },
281
+ },
282
+ required: ["step", "stepName", "status"],
283
+ },
284
+ },
285
+ // iteration_check - 반복 제어
286
+ {
287
+ name: "d2c_iteration_check",
288
+ description: `반복 계속 여부를 판단합니다.
289
+ ${SERVICE_IDENTIFIERS}
290
+
291
+ 📊 **판단 기준**:
292
+ - 70점 미만: 자동으로 계속 진행
293
+ - 70점 이상: 사용자 확인 필요
294
+ - 최대 반복 도달 또는 점수 하락: 중단 권장`,
295
+ inputSchema: {
296
+ type: "object",
297
+ properties: {
298
+ currentScore: {
299
+ type: "number",
300
+ description: "현재 종합 점수 (0-100)",
301
+ },
302
+ targetScore: {
303
+ type: "number",
304
+ description: "목표 점수 (기본: 70)",
305
+ },
306
+ iteration: {
307
+ type: "number",
308
+ description: "현재 반복 횟수",
309
+ },
310
+ maxIterations: {
311
+ type: "number",
312
+ description: "최대 반복 횟수 (기본: 5)",
313
+ },
314
+ previousScores: {
315
+ type: "array",
316
+ items: { type: "number" },
317
+ description: "이전 반복의 점수들",
318
+ },
319
+ },
320
+ required: ["currentScore", "iteration"],
321
+ },
322
+ },
323
+ // ============ 3단계 PHASE 도구들 ============
324
+ // Phase 1: Figma MCP 기반 스크린샷 비교
325
+ {
326
+ name: "d2c_phase1_compare",
327
+ description: `[Phase 1] Figma MCP로 추출한 코드의 스크린샷을 원본과 비교합니다.
328
+ ${SERVICE_IDENTIFIERS}
329
+
330
+ 📊 **Phase 1 - 목표 성공률: 60% (설정 가능)**
331
+ - 비교 방법: Playwright toHaveScreenshot() 픽셀 비교
332
+ - 수정 주체: Figma MCP (코드 재추출)
333
+ - HITL: 매 반복마다 사용자 확인`,
334
+ inputSchema: {
335
+ type: "object",
336
+ properties: {
337
+ successRate: {
338
+ type: "number",
339
+ description: "현재 성공률 (0-100, Playwright 비교 결과)",
340
+ },
341
+ targetRate: {
342
+ type: "number",
343
+ description: "목표 성공률 (기본: 60)",
344
+ },
345
+ iteration: {
346
+ type: "number",
347
+ description: "현재 반복 횟수",
348
+ },
349
+ maxIterations: {
350
+ type: "number",
351
+ description: "최대 반복 횟수 (기본: 5)",
352
+ },
353
+ diffDetails: {
354
+ type: "string",
355
+ description: "Playwright 비교에서 발견된 차이점 설명",
356
+ },
357
+ previousRates: {
358
+ type: "array",
359
+ items: { type: "number" },
360
+ description: "이전 반복의 성공률들",
361
+ },
362
+ },
363
+ required: ["successRate", "iteration"],
364
+ },
365
+ },
366
+ // Phase 2: LLM 기반 이미지 Diff 수정
367
+ {
368
+ name: "d2c_phase2_image_diff",
369
+ description: `[Phase 2] 이미지 diff를 분석하고 LLM이 코드를 수정합니다.
370
+ ${SERVICE_IDENTIFIERS}
371
+
372
+ 📊 **Phase 2 - 목표 성공률: 70% (설정 가능)**
373
+ - 비교 방법: Playwright toHaveScreenshot() 픽셀 비교
374
+ - 수정 주체: LLM (코드 직접 수정)
375
+ - HITL: 매 반복마다 사용자 확인`,
376
+ inputSchema: {
377
+ type: "object",
378
+ properties: {
379
+ successRate: {
380
+ type: "number",
381
+ description: "현재 성공률 (0-100, Playwright 비교 결과)",
382
+ },
383
+ targetRate: {
384
+ type: "number",
385
+ description: "목표 성공률 (기본: 70)",
386
+ },
387
+ iteration: {
388
+ type: "number",
389
+ description: "현재 반복 횟수",
390
+ },
391
+ maxIterations: {
392
+ type: "number",
393
+ description: "최대 반복 횟수 (기본: 5)",
394
+ },
395
+ diffAreas: {
396
+ type: "array",
397
+ items: {
398
+ type: "object",
399
+ properties: {
400
+ area: { type: "string", description: "차이 영역 (예: header, button)" },
401
+ type: { type: "string", description: "차이 유형 (color, layout, spacing)" },
402
+ severity: { type: "string", enum: ["high", "medium", "low"] },
403
+ },
404
+ },
405
+ description: "이미지 diff에서 발견된 차이 영역들",
406
+ },
407
+ previousRates: {
408
+ type: "array",
409
+ items: { type: "number" },
410
+ description: "이전 반복의 성공률들",
411
+ },
412
+ },
413
+ required: ["successRate", "iteration"],
414
+ },
415
+ },
416
+ // Phase 3: DOM 비교 기반 수정
417
+ {
418
+ name: "d2c_phase3_dom_compare",
419
+ description: `[Phase 3] DOM 구조를 비교하고 LLM이 코드를 수정합니다.
420
+ ${SERVICE_IDENTIFIERS}
421
+
422
+ 📊 **Phase 3 - 목표 성공률: 90% (설정 가능)**
423
+ - 비교 방법: Playwright DOM 스냅샷 비교
424
+ - 수정 주체: LLM (코드 직접 수정)
425
+ - HITL: 매 반복마다 사용자 확인`,
426
+ inputSchema: {
427
+ type: "object",
428
+ properties: {
429
+ successRate: {
430
+ type: "number",
431
+ description: "현재 성공률 (0-100, DOM 비교 결과)",
432
+ },
433
+ targetRate: {
434
+ type: "number",
435
+ description: "목표 성공률 (기본: 90)",
436
+ },
437
+ iteration: {
438
+ type: "number",
439
+ description: "현재 반복 횟수",
440
+ },
441
+ maxIterations: {
442
+ type: "number",
443
+ description: "최대 반복 횟수 (기본: 5)",
444
+ },
445
+ domDiffs: {
446
+ type: "array",
447
+ items: {
448
+ type: "object",
449
+ properties: {
450
+ selector: { type: "string", description: "차이가 있는 요소 선택자" },
451
+ expected: { type: "string", description: "예상 값" },
452
+ actual: { type: "string", description: "실제 값" },
453
+ type: { type: "string", description: "차이 유형 (missing, extra, attribute, text)" },
454
+ },
455
+ },
456
+ description: "DOM 비교에서 발견된 차이점들",
457
+ },
458
+ previousRates: {
459
+ type: "array",
460
+ items: { type: "number" },
461
+ description: "이전 반복의 성공률들",
462
+ },
463
+ },
464
+ required: ["successRate", "iteration"],
465
+ },
466
+ },
467
+ // 워크플로우 전체 상태 표시
468
+ {
469
+ name: "d2c_workflow_status",
470
+ description: `전체 3단계 워크플로우 진행 상황을 표시합니다.
471
+ ${SERVICE_IDENTIFIERS}
472
+
473
+ 📊 **3단계 Phase 시스템**:
474
+ - Phase 1: Figma MCP 추출 (60%)
475
+ - Phase 2: LLM 이미지 Diff (70%)
476
+ - Phase 3: LLM DOM 비교 (90%)`,
477
+ inputSchema: {
478
+ type: "object",
479
+ properties: {
480
+ currentPhase: {
481
+ type: "number",
482
+ enum: [1, 2, 3],
483
+ description: "현재 Phase (1, 2, 3)",
484
+ },
485
+ phase1: {
486
+ type: "object",
487
+ properties: {
488
+ status: { type: "string", enum: ["pending", "in_progress", "completed", "skipped"] },
489
+ successRate: { type: "number" },
490
+ iterations: { type: "number" },
491
+ },
492
+ },
493
+ phase2: {
494
+ type: "object",
495
+ properties: {
496
+ status: { type: "string", enum: ["pending", "in_progress", "completed", "skipped"] },
497
+ successRate: { type: "number" },
498
+ iterations: { type: "number" },
499
+ },
500
+ },
501
+ phase3: {
502
+ type: "object",
503
+ properties: {
504
+ status: { type: "string", enum: ["pending", "in_progress", "completed", "skipped"] },
505
+ successRate: { type: "number" },
506
+ iterations: { type: "number" },
507
+ },
508
+ },
509
+ },
510
+ required: ["currentPhase"],
230
511
  },
231
512
  },
232
513
  // get_component_template - 템플릿 생성
@@ -446,41 +727,432 @@ ${input.code.length} 문자`,
446
727
  ],
447
728
  };
448
729
  }
730
+ case "d2c_log_step": {
731
+ const input = z
732
+ .object({
733
+ step: z.number(),
734
+ stepName: z.string(),
735
+ status: z.enum(["start", "done", "error"]),
736
+ message: z.string().optional(),
737
+ iteration: z.number().optional(),
738
+ })
739
+ .parse(args);
740
+ const statusIcon = input.status === "start" ? "🚀" : input.status === "done" ? "✅" : "❌";
741
+ const iterationText = input.iteration ? ` (반복 ${input.iteration})` : "";
742
+ return {
743
+ content: [
744
+ {
745
+ type: "text",
746
+ text: `━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
747
+ ${statusIcon} [${input.step}/6] ${input.stepName}${iterationText}
748
+ ${input.message ? ` → ${input.message}` : ""}
749
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━`,
750
+ },
751
+ ],
752
+ };
753
+ }
754
+ case "d2c_iteration_check": {
755
+ const input = z
756
+ .object({
757
+ currentScore: z.number(),
758
+ targetScore: z.number().optional().default(70),
759
+ iteration: z.number(),
760
+ maxIterations: z.number().optional().default(5),
761
+ previousScores: z.array(z.number()).optional(),
762
+ })
763
+ .parse(args);
764
+ const { currentScore, targetScore, iteration, maxIterations, previousScores } = input;
765
+ // 점수 변화 계산
766
+ const lastScore = previousScores?.length ? previousScores[previousScores.length - 1] : null;
767
+ const scoreDiff = lastScore !== null ? currentScore - lastScore : null;
768
+ const isImproving = scoreDiff === null || scoreDiff >= 0;
769
+ // 판단 로직
770
+ let recommendation;
771
+ let reason;
772
+ if (iteration >= maxIterations) {
773
+ recommendation = "stop";
774
+ reason = `최대 반복 횟수(${maxIterations}회) 도달`;
775
+ }
776
+ else if (!isImproving && scoreDiff !== null && scoreDiff < -10) {
777
+ recommendation = "stop";
778
+ reason = `점수 하락 감지 (${scoreDiff}점)`;
779
+ }
780
+ else if (currentScore >= targetScore) {
781
+ recommendation = "user_confirm";
782
+ reason = `목표 점수(${targetScore}점) 달성! 사용자 확인 필요`;
783
+ }
784
+ else {
785
+ recommendation = "continue";
786
+ reason = `목표 점수(${targetScore}점) 미달, 자동 계속`;
787
+ }
788
+ const statusEmoji = recommendation === "continue" ? "🔄" : recommendation === "user_confirm" ? "✋" : "🛑";
789
+ const diffText = scoreDiff !== null ? ` (${scoreDiff >= 0 ? "+" : ""}${scoreDiff})` : "";
790
+ return {
791
+ content: [
792
+ {
793
+ type: "text",
794
+ text: `━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
795
+ ${statusEmoji} **반복 ${iteration}/${maxIterations} 판단 결과**
796
+
797
+ 📊 현재 점수: **${currentScore}점**${diffText}
798
+ 🎯 목표 점수: ${targetScore}점
799
+
800
+ **권장**: ${recommendation === "continue" ? "계속 진행" : recommendation === "user_confirm" ? "사용자 확인" : "중단"}
801
+ **이유**: ${reason}
802
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━`,
803
+ },
804
+ ],
805
+ };
806
+ }
449
807
  case "d2c_compare_with_design": {
450
808
  const input = z
451
809
  .object({
452
810
  designDescription: z.string(),
453
811
  renderedDescription: z.string(),
454
812
  differences: z.array(z.string()).optional(),
813
+ iteration: z.number().optional(),
814
+ maxIterations: z.number().optional().default(5),
815
+ scores: z.object({
816
+ layout: z.number(),
817
+ colors: z.number(),
818
+ typography: z.number(),
819
+ spacing: z.number(),
820
+ }),
455
821
  })
456
822
  .parse(args);
823
+ const { scores, iteration, maxIterations } = input;
824
+ const avgScore = Math.round((scores.layout + scores.colors + scores.typography + scores.spacing) / 4);
825
+ // 점수 바 생성 함수
826
+ const scoreBar = (score) => {
827
+ const filled = Math.round(score / 10);
828
+ return "█".repeat(filled) + "░".repeat(10 - filled);
829
+ };
830
+ const checkMark = (score) => score >= 70 ? "✓" : "✗";
831
+ const iterationHeader = iteration ? `반복 ${iteration}/${maxIterations}` : "";
457
832
  return {
458
833
  content: [
459
834
  {
460
835
  type: "text",
461
- text: `📊 **디자인 vs 렌더링 비교 분석**
836
+ text: `━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
837
+ 📊 **디자인 비교 결과** ${iterationHeader}
838
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
462
839
 
463
- ## 원본 디자인
464
- ${input.designDescription}
465
-
466
- ## 렌더링 결과
467
- ${input.renderedDescription}
840
+ ┌────────────┬────────────┬──────┬──────┐
841
+ │ 항목 │ 점수바 │ 점수 │ 상태 │
842
+ ├────────────┼────────────┼──────┼──────┤
843
+ 레이아웃 │ ${scoreBar(scores.layout)} │ ${String(scores.layout).padStart(3)} │ ${checkMark(scores.layout)} │
844
+ │ 색상 │ ${scoreBar(scores.colors)} │ ${String(scores.colors).padStart(3)} │ ${checkMark(scores.colors)} │
845
+ │ 타이포 │ ${scoreBar(scores.typography)} │ ${String(scores.typography).padStart(3)} │ ${checkMark(scores.typography)} │
846
+ │ 간격 │ ${scoreBar(scores.spacing)} │ ${String(scores.spacing).padStart(3)} │ ${checkMark(scores.spacing)} │
847
+ ├────────────┼────────────┼──────┼──────┤
848
+ │ **종합** │ ${scoreBar(avgScore)} │ **${String(avgScore).padStart(3)}** │ ${checkMark(avgScore)} │
849
+ └────────────┴────────────┴──────┴──────┘
468
850
 
851
+ ${input.differences?.length ? `
469
852
  ## 발견된 차이점
470
- ${input.differences?.length ? input.differences.map((d) => `- ${d}`).join("\n") : "- 차이점이 명시되지 않음"}
471
-
472
- ## 권장 액션
473
- ${input.differences?.length
474
- ? `
475
- 1. 위 차이점들을 검토하세요
476
- 2. 중요한 차이점부터 수정하세요
477
- 3. 수정 후 다시 렌더링하여 비교하세요
478
- `
479
- : `
480
- 1. 시각적으로 결과를 비교하세요
481
- 2. 레이아웃, 색상, 간격, 타이포그래피를 확인하세요
482
- 3. 차이점이 있다면 differences 파라미터로 명시해주세요
483
- `}`,
853
+ ${input.differences.map((d) => `- ${d}`).join("\n")}
854
+ ` : ""}
855
+ ## 다음 단계
856
+ → \`d2c_iteration_check\` 호출하여 계속 여부 판단`,
857
+ },
858
+ ],
859
+ };
860
+ }
861
+ // ============ 3단계 PHASE 핸들러 ============
862
+ case "d2c_phase1_compare": {
863
+ const input = z
864
+ .object({
865
+ successRate: z.number(),
866
+ targetRate: z.number().optional().default(60),
867
+ iteration: z.number(),
868
+ maxIterations: z.number().optional().default(5),
869
+ diffDetails: z.string().optional(),
870
+ previousRates: z.array(z.number()).optional(),
871
+ })
872
+ .parse(args);
873
+ const { successRate, targetRate, iteration, maxIterations, diffDetails, previousRates } = input;
874
+ // 성공률 변화 계산
875
+ const lastRate = previousRates?.length ? previousRates[previousRates.length - 1] : null;
876
+ const rateDiff = lastRate !== null ? successRate - lastRate : null;
877
+ // 판단 로직
878
+ let recommendation;
879
+ let reason;
880
+ if (iteration >= maxIterations) {
881
+ recommendation = "user_confirm";
882
+ reason = `최대 반복 횟수(${maxIterations}회) 도달 - 사용자 결정 필요`;
883
+ }
884
+ else if (rateDiff !== null && rateDiff < -10) {
885
+ recommendation = "stop";
886
+ reason = `성공률 하락 감지 (${rateDiff.toFixed(1)}%)`;
887
+ }
888
+ else if (successRate >= targetRate) {
889
+ recommendation = "next_phase";
890
+ reason = `Phase 1 목표(${targetRate}%) 달성! Phase 2로 진행`;
891
+ }
892
+ else {
893
+ recommendation = "continue";
894
+ reason = `목표(${targetRate}%) 미달 - Figma MCP로 재추출`;
895
+ }
896
+ const statusEmoji = recommendation === "continue" ? "🔄" :
897
+ recommendation === "next_phase" ? "✅" :
898
+ recommendation === "user_confirm" ? "✋" : "🛑";
899
+ const diffText = rateDiff !== null ? ` (${rateDiff >= 0 ? "+" : ""}${rateDiff.toFixed(1)}%)` : "";
900
+ const progressBar = "█".repeat(Math.round(successRate / 10)) + "░".repeat(10 - Math.round(successRate / 10));
901
+ return {
902
+ content: [
903
+ {
904
+ type: "text",
905
+ text: `━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
906
+ 📊 **Phase 1: Figma MCP 스크린샷 비교**
907
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
908
+
909
+ ┌────────────────────────────────────────┐
910
+ │ 반복: ${iteration}/${maxIterations} │
911
+ ├────────────────────────────────────────┤
912
+ │ 현재 성공률: ${progressBar} ${successRate.toFixed(1)}%${diffText} │
913
+ │ 목표 성공률: ${"█".repeat(Math.round(targetRate / 10))}${"░".repeat(10 - Math.round(targetRate / 10))} ${targetRate}% │
914
+ ├────────────────────────────────────────┤
915
+ │ 수정 주체: Figma MCP (코드 재추출) │
916
+ └────────────────────────────────────────┘
917
+
918
+ ${diffDetails ? `## 발견된 차이점\n${diffDetails}\n` : ""}
919
+ ${statusEmoji} **권장**: ${recommendation === "continue" ? "Figma MCP로 재추출 후 반복" :
920
+ recommendation === "next_phase" ? "Phase 2로 진행" :
921
+ recommendation === "user_confirm" ? "사용자 결정 필요" : "중단 권장"}
922
+
923
+ **이유**: ${reason}
924
+
925
+ ## HITL 옵션
926
+ - [Y] 계속 (${recommendation === "next_phase" ? "Phase 2 진행" : "반복"})
927
+ - [N] 현재 상태로 완료
928
+ - [M] 수동 수정 후 재비교
929
+ - [S] 워크플로우 중단
930
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━`,
931
+ },
932
+ ],
933
+ };
934
+ }
935
+ case "d2c_phase2_image_diff": {
936
+ const input = z
937
+ .object({
938
+ successRate: z.number(),
939
+ targetRate: z.number().optional().default(70),
940
+ iteration: z.number(),
941
+ maxIterations: z.number().optional().default(5),
942
+ diffAreas: z.array(z.object({
943
+ area: z.string(),
944
+ type: z.string(),
945
+ severity: z.enum(["high", "medium", "low"]).optional(),
946
+ })).optional(),
947
+ previousRates: z.array(z.number()).optional(),
948
+ })
949
+ .parse(args);
950
+ const { successRate, targetRate, iteration, maxIterations, diffAreas, previousRates } = input;
951
+ const lastRate = previousRates?.length ? previousRates[previousRates.length - 1] : null;
952
+ const rateDiff = lastRate !== null ? successRate - lastRate : null;
953
+ let recommendation;
954
+ let reason;
955
+ if (iteration >= maxIterations) {
956
+ recommendation = "user_confirm";
957
+ reason = `최대 반복 횟수(${maxIterations}회) 도달 - 사용자 결정 필요`;
958
+ }
959
+ else if (rateDiff !== null && rateDiff < -10) {
960
+ recommendation = "stop";
961
+ reason = `성공률 하락 감지 (${rateDiff.toFixed(1)}%)`;
962
+ }
963
+ else if (successRate >= targetRate) {
964
+ recommendation = "next_phase";
965
+ reason = `Phase 2 목표(${targetRate}%) 달성! Phase 3로 진행`;
966
+ }
967
+ else {
968
+ recommendation = "continue";
969
+ reason = `목표(${targetRate}%) 미달 - LLM이 코드 수정`;
970
+ }
971
+ const statusEmoji = recommendation === "continue" ? "🔄" :
972
+ recommendation === "next_phase" ? "✅" :
973
+ recommendation === "user_confirm" ? "✋" : "🛑";
974
+ const diffText = rateDiff !== null ? ` (${rateDiff >= 0 ? "+" : ""}${rateDiff.toFixed(1)}%)` : "";
975
+ const progressBar = "█".repeat(Math.round(successRate / 10)) + "░".repeat(10 - Math.round(successRate / 10));
976
+ // diff 영역 표시
977
+ const diffAreasText = diffAreas?.length ? diffAreas.map(d => {
978
+ const severityIcon = d.severity === "high" ? "🔴" : d.severity === "medium" ? "🟡" : "🟢";
979
+ return `${severityIcon} ${d.area}: ${d.type}`;
980
+ }).join("\n") : "";
981
+ return {
982
+ content: [
983
+ {
984
+ type: "text",
985
+ text: `━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
986
+ 📊 **Phase 2: LLM 이미지 Diff 수정**
987
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
988
+
989
+ ┌────────────────────────────────────────┐
990
+ │ 반복: ${iteration}/${maxIterations} │
991
+ ├────────────────────────────────────────┤
992
+ │ 현재 성공률: ${progressBar} ${successRate.toFixed(1)}%${diffText} │
993
+ │ 목표 성공률: ${"█".repeat(Math.round(targetRate / 10))}${"░".repeat(10 - Math.round(targetRate / 10))} ${targetRate}% │
994
+ ├────────────────────────────────────────┤
995
+ │ 수정 주체: LLM (코드 직접 수정) │
996
+ └────────────────────────────────────────┘
997
+
998
+ ${diffAreasText ? `## 이미지 Diff 분석\n${diffAreasText}\n` : ""}
999
+ ${statusEmoji} **권장**: ${recommendation === "continue" ? "LLM이 코드 수정 후 반복" :
1000
+ recommendation === "next_phase" ? "Phase 3로 진행" :
1001
+ recommendation === "user_confirm" ? "사용자 결정 필요" : "중단 권장"}
1002
+
1003
+ **이유**: ${reason}
1004
+
1005
+ ## LLM 수정 가이드
1006
+ ${diffAreas?.filter(d => d.severity === "high").map(d => `- 우선 수정: ${d.area}의 ${d.type} 문제`).join("\n") || "- 이미지 diff 결과를 기반으로 수정"}
1007
+
1008
+ ## HITL 옵션
1009
+ - [Y] 계속 (${recommendation === "next_phase" ? "Phase 3 진행" : "LLM 수정 반복"})
1010
+ - [N] 현재 상태로 완료
1011
+ - [M] 수동 수정 후 재비교
1012
+ - [S] 워크플로우 중단
1013
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━`,
1014
+ },
1015
+ ],
1016
+ };
1017
+ }
1018
+ case "d2c_phase3_dom_compare": {
1019
+ const input = z
1020
+ .object({
1021
+ successRate: z.number(),
1022
+ targetRate: z.number().optional().default(90),
1023
+ iteration: z.number(),
1024
+ maxIterations: z.number().optional().default(5),
1025
+ domDiffs: z.array(z.object({
1026
+ selector: z.string(),
1027
+ expected: z.string().optional(),
1028
+ actual: z.string().optional(),
1029
+ type: z.string(),
1030
+ })).optional(),
1031
+ previousRates: z.array(z.number()).optional(),
1032
+ })
1033
+ .parse(args);
1034
+ const { successRate, targetRate, iteration, maxIterations, domDiffs, previousRates } = input;
1035
+ const lastRate = previousRates?.length ? previousRates[previousRates.length - 1] : null;
1036
+ const rateDiff = lastRate !== null ? successRate - lastRate : null;
1037
+ let recommendation;
1038
+ let reason;
1039
+ if (iteration >= maxIterations) {
1040
+ recommendation = "user_confirm";
1041
+ reason = `최대 반복 횟수(${maxIterations}회) 도달 - 사용자 결정 필요`;
1042
+ }
1043
+ else if (rateDiff !== null && rateDiff < -10) {
1044
+ recommendation = "stop";
1045
+ reason = `성공률 하락 감지 (${rateDiff.toFixed(1)}%)`;
1046
+ }
1047
+ else if (successRate >= targetRate) {
1048
+ recommendation = "complete";
1049
+ reason = `Phase 3 목표(${targetRate}%) 달성! 워크플로우 완료`;
1050
+ }
1051
+ else {
1052
+ recommendation = "continue";
1053
+ reason = `목표(${targetRate}%) 미달 - LLM이 DOM 기반 수정`;
1054
+ }
1055
+ const statusEmoji = recommendation === "continue" ? "🔄" :
1056
+ recommendation === "complete" ? "🎉" :
1057
+ recommendation === "user_confirm" ? "✋" : "🛑";
1058
+ const diffText = rateDiff !== null ? ` (${rateDiff >= 0 ? "+" : ""}${rateDiff.toFixed(1)}%)` : "";
1059
+ const progressBar = "█".repeat(Math.round(successRate / 10)) + "░".repeat(10 - Math.round(successRate / 10));
1060
+ // DOM diff 표시
1061
+ const domDiffsText = domDiffs?.length ? domDiffs.slice(0, 5).map(d => {
1062
+ const typeIcon = d.type === "missing" ? "❌" : d.type === "extra" ? "➕" : "🔄";
1063
+ return `${typeIcon} ${d.selector}: ${d.type}${d.expected ? ` (예상: ${d.expected})` : ""}`;
1064
+ }).join("\n") : "";
1065
+ return {
1066
+ content: [
1067
+ {
1068
+ type: "text",
1069
+ text: `━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1070
+ 📊 **Phase 3: LLM DOM 비교 수정**
1071
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1072
+
1073
+ ┌────────────────────────────────────────┐
1074
+ │ 반복: ${iteration}/${maxIterations} │
1075
+ ├────────────────────────────────────────┤
1076
+ │ 현재 성공률: ${progressBar} ${successRate.toFixed(1)}%${diffText} │
1077
+ │ 목표 성공률: ${"█".repeat(Math.round(targetRate / 10))}${"░".repeat(10 - Math.round(targetRate / 10))} ${targetRate}% │
1078
+ ├────────────────────────────────────────┤
1079
+ │ 수정 주체: LLM (DOM 기반 수정) │
1080
+ └────────────────────────────────────────┘
1081
+
1082
+ ${domDiffsText ? `## DOM 차이점 (상위 5개)\n${domDiffsText}\n` : ""}
1083
+ ${statusEmoji} **권장**: ${recommendation === "continue" ? "LLM이 DOM 기반 수정 후 반복" :
1084
+ recommendation === "complete" ? "워크플로우 완료!" :
1085
+ recommendation === "user_confirm" ? "사용자 결정 필요" : "중단 권장"}
1086
+
1087
+ **이유**: ${reason}
1088
+
1089
+ ## HITL 옵션
1090
+ - [Y] 계속 (${recommendation === "complete" ? "완료" : "LLM 수정 반복"})
1091
+ - [N] 현재 상태로 완료
1092
+ - [M] 수동 수정 후 재비교
1093
+ - [S] 워크플로우 중단
1094
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━`,
1095
+ },
1096
+ ],
1097
+ };
1098
+ }
1099
+ case "d2c_workflow_status": {
1100
+ const input = z
1101
+ .object({
1102
+ currentPhase: z.number(),
1103
+ phase1: z.object({
1104
+ status: z.enum(["pending", "in_progress", "completed", "skipped"]).optional(),
1105
+ successRate: z.number().optional(),
1106
+ iterations: z.number().optional(),
1107
+ }).optional(),
1108
+ phase2: z.object({
1109
+ status: z.enum(["pending", "in_progress", "completed", "skipped"]).optional(),
1110
+ successRate: z.number().optional(),
1111
+ iterations: z.number().optional(),
1112
+ }).optional(),
1113
+ phase3: z.object({
1114
+ status: z.enum(["pending", "in_progress", "completed", "skipped"]).optional(),
1115
+ successRate: z.number().optional(),
1116
+ iterations: z.number().optional(),
1117
+ }).optional(),
1118
+ })
1119
+ .parse(args);
1120
+ const getStatusIcon = (status) => {
1121
+ switch (status) {
1122
+ case "completed": return "✅";
1123
+ case "in_progress": return "🔄";
1124
+ case "skipped": return "⏭️";
1125
+ default: return "⬜";
1126
+ }
1127
+ };
1128
+ const formatPhase = (phase, num, target, name) => {
1129
+ const icon = getStatusIcon(phase?.status);
1130
+ const rate = phase?.successRate !== undefined ? `${phase.successRate.toFixed(1)}%` : "--%";
1131
+ const iter = phase?.iterations !== undefined ? `${phase.iterations}회` : "--";
1132
+ return `│ ${icon} Phase ${num}: ${name.padEnd(20)} │ ${rate.padStart(6)} │ ${target}% │ ${iter.padStart(4)} │`;
1133
+ };
1134
+ return {
1135
+ content: [
1136
+ {
1137
+ type: "text",
1138
+ text: `━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1139
+ 📊 **D2C 3단계 워크플로우 상태**
1140
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1141
+
1142
+ ┌────────────────────────────────┬────────┬─────┬──────┐
1143
+ │ Phase │ 성공률 │ 목표│ 반복 │
1144
+ ├────────────────────────────────┼────────┼─────┼──────┤
1145
+ ${formatPhase(input.phase1, 1, 60, "Figma MCP 추출")}
1146
+ ${formatPhase(input.phase2, 2, 70, "LLM 이미지 Diff")}
1147
+ ${formatPhase(input.phase3, 3, 90, "LLM DOM 비교")}
1148
+ └────────────────────────────────┴────────┴─────┴──────┘
1149
+
1150
+ 🎯 현재 Phase: **${input.currentPhase}**
1151
+
1152
+ ## Phase 흐름
1153
+ Phase 1 (60%) → Phase 2 (70%) → Phase 3 (90%) → 완료
1154
+ ${input.currentPhase === 1 ? " ↑ 현재" : input.currentPhase === 2 ? " ↑ 현재" : " ↑ 현재"}
1155
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━`,
484
1156
  },
485
1157
  ],
486
1158
  };
@@ -659,52 +1331,93 @@ server.setRequestHandler(GetPromptRequestSchema, async (request) => {
659
1331
  role: "user",
660
1332
  content: {
661
1333
  type: "text",
662
- text: `## SYR D2C 워크플로우 실행
1334
+ text: `## SYR D2C 3단계 워크플로우 실행
663
1335
 
664
1336
  ### 입력 정보
665
1337
  - Figma: ${figmaUrl}
666
1338
  - 컴포넌트명: ${componentName}
667
1339
  - 프레임워크: ${framework}
668
1340
 
669
- ### 워크플로우 단계
1341
+ ### 📊 3단계 Phase 시스템
1342
+ | Phase | 목표 | 비교 방법 | 수정 주체 |
1343
+ |-------|------|----------|----------|
1344
+ | **1** | 60% | Playwright 스크린샷 | Figma MCP 재추출 |
1345
+ | **2** | 70% | Playwright 이미지 diff | LLM 코드 수정 |
1346
+ | **3** | 90% | Playwright DOM 비교 | LLM 코드 수정 |
670
1347
 
671
- **Step 0: 사전 검사 (필수)**
672
- 1. \`d2c_preflight_check\` 호출
673
- 2. figma-mcp 확인: \`get_design_context\` 호출 시도
674
- 3. playwright-mcp 확인: \`browser_snapshot\` 호출 시도
675
- 4. 누락된 MCP가 있으면 설치 가이드 안내 후 중단
1348
+ ---
676
1349
 
677
- **Step 1: 규칙 수집**
678
- 1. \`d2c_get_design_rules\` 호출
679
- 2. 반환된 규칙을 숙지
1350
+ ### Step 1: 사전 검사
1351
+ 1. \`d2c_log_step(step:1, stepName:"사전 검사", status:"start")\`
1352
+ 2. \`d2c_preflight_check\` 호출
1353
+ 3. figma-mcp, playwright-mcp 확인
1354
+ 4. \`d2c_log_step(step:1, stepName:"사전 검사", status:"done")\`
680
1355
 
681
- **Step 2: Figma 디자인 가져오기**
682
- 1. \`figma-mcp.get_design_context\` 호출 (URL 또는 선택된 노드)
683
- 2. \`figma-mcp.get_screenshot\` 호출하여 원본 이미지 저장
684
- 3. 디자인 구조, 색상, 타이포그래피, 간격 분석
1356
+ ### Step 2: Figma 디자인 가져오기
1357
+ 1. \`d2c_log_step(step:2, stepName:"Figma 디자인", status:"start")\`
1358
+ 2. \`figma-mcp.get_design_context\` 호출
1359
+ 3. \`figma-mcp.get_screenshot\` 으로 원본 스크린샷 저장
1360
+ 4. \`d2c_log_step(step:2, stepName:"Figma 디자인", status:"done")\`
685
1361
 
686
- **Step 3: 컴포넌트 생성**
687
- 1. \`d2c_get_component_template\`로 보일러플레이트 생성
688
- 2. Figma 디자인 정보를 기반으로 템플릿 수정
689
- 3. 규칙에 맞게 스타일, 접근성 속성 추가
1362
+ ---
690
1363
 
691
- **Step 4: 검증**
692
- 1. \`d2c_validate_component\`로 코드 검증
693
- 2. 이슈가 있으면 수정
1364
+ ### 🔄 Phase 1: Figma MCP 추출 (목표 60%)
1365
+ 1. \`d2c_log_step(step:3, stepName:"Phase 1", status:"start", iteration:1)\`
1366
+ 2. \`d2c_get_component_template\`로 템플릿 생성
1367
+ 3. **Figma MCP로 코드 추출/수정**
1368
+ 4. \`playwright-mcp.browser_navigate\`로 렌더링
1369
+ 5. \`playwright-mcp.browser_screenshot\`으로 스크린샷
1370
+ 6. **Playwright toHaveScreenshot()으로 비교하여 성공률 계산**
1371
+ 7. **\`d2c_phase1_compare\`** 호출 (successRate, iteration 필수!)
1372
+ 8. **HITL 확인**: 사용자 응답에 따라:
1373
+ - [Y] → 60% 미달이면 반복, 달성이면 Phase 2로
1374
+ - [M] → 수동 수정 후 재비교
1375
+ - [N] → 현재 상태로 다음 단계
1376
+ 9. \`d2c_log_step(step:3, stepName:"Phase 1", status:"done")\`
694
1377
 
695
- **Step 5: 렌더링 확인 (반복)**
696
- 1. 생성된 컴포넌트를 프로젝트에 추가
697
- 2. \`playwright-mcp.browser_navigate\`로 페이지 열기
698
- 3. \`playwright-mcp.browser_snapshot\`으로 스크린샷
699
- 4. \`d2c_compare_with_design\`으로 원본과 비교
700
- 5. 차이점이 있으면 수정 후 Step 5 반복
1378
+ ---
701
1379
 
702
- **Step 6: 완료**
703
- 1. 최종 코드와 파일 경로 보고
704
- 2. 수정 이력 요약
1380
+ ### 🔄 Phase 2: LLM 이미지 Diff (목표 70%)
1381
+ 1. \`d2c_log_step(step:4, stepName:"Phase 2", status:"start", iteration:1)\`
1382
+ 2. **Playwright 이미지 diff 분석**
1383
+ 3. diff 결과 기반으로 **LLM이 코드 수정**
1384
+ 4. 렌더링 후 스크린샷 비교
1385
+ 5. **\`d2c_phase2_image_diff\`** 호출 (successRate, diffAreas 포함!)
1386
+ 6. **HITL 확인**: 사용자 응답에 따라:
1387
+ - [Y] → 70% 미달이면 LLM 수정 반복, 달성이면 Phase 3로
1388
+ - [M] → 수동 수정 후 재비교
1389
+ - [N] → 현재 상태로 다음 단계
1390
+ 7. \`d2c_log_step(step:4, stepName:"Phase 2", status:"done")\`
705
1391
 
706
1392
  ---
707
- 위 워크플로우대로 진행해주세요.`,
1393
+
1394
+ ### 🔄 Phase 3: LLM DOM 비교 (목표 90%)
1395
+ 1. \`d2c_log_step(step:5, stepName:"Phase 3", status:"start", iteration:1)\`
1396
+ 2. **Playwright DOM 스냅샷 비교**
1397
+ 3. DOM 차이 기반으로 **LLM이 코드 수정**
1398
+ 4. 렌더링 후 DOM 비교
1399
+ 5. **\`d2c_phase3_dom_compare\`** 호출 (successRate, domDiffs 포함!)
1400
+ 6. **HITL 확인**: 사용자 응답에 따라:
1401
+ - [Y] → 90% 미달이면 LLM 수정 반복, 달성이면 완료
1402
+ - [M] → 수동 수정 후 재비교
1403
+ - [N] → 현재 상태로 완료
1404
+ 7. \`d2c_log_step(step:5, stepName:"Phase 3", status:"done")\`
1405
+
1406
+ ---
1407
+
1408
+ ### Step 6: 완료
1409
+ 1. \`d2c_log_step(step:6, stepName:"완료", status:"done")\`
1410
+ 2. \`d2c_workflow_status\` 호출하여 최종 상태 표시
1411
+ 3. 최종 코드와 파일 경로 보고
1412
+ 4. 각 Phase별 성공률 변화 히스토리 요약
1413
+
1414
+ ---
1415
+
1416
+ **⚠️ 중요 규칙**:
1417
+ - 매 Phase마다 **반드시 HITL 확인** (사용자에게 계속 여부 질문)
1418
+ - 모든 Phase에서 사용자가 수동 수정 가능 ([M] 옵션)
1419
+ - 성공률은 Playwright 비교 결과를 기반으로 객관적으로 측정
1420
+ - \`d2c_workflow_status\`로 언제든 전체 진행 상황 확인 가능`,
708
1421
  },
709
1422
  },
710
1423
  ],
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAGlC,gBAAgB;AAChB,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;AACnF,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC;AAChD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE,CAAC;AAEtD,sCAAsC;AACtC,MAAM,mBAAmB,GAAG;;;;;;;CAO3B,CAAC;AAEF,WAAW;AACX,KAAK,UAAU,SAAS;IACtB,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,OAAO,GAAG,EAAE,CAAC;IAEjB,mBAAmB;IACnB,IAAI,WAAW,EAAE,CAAC;QAChB,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YACzC,IAAI,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChD,WAAW,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,qCAAqC,WAAW,EAAE,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAED,oBAAoB;IACpB,KAAK,MAAM,QAAQ,IAAI,WAAW,EAAE,CAAC;QACnC,IAAI,CAAC;YACH,aAAa;YACb,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC3B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACnC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;oBACrD,OAAO,IAAI,oBAAoB,IAAI,SAAS,WAAW,EAAE,CAAC;oBAC1D,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACrB,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBACzD,OAAO,IAAI,oBAAoB,QAAQ,SAAS,WAAW,EAAE,CAAC;gBAC9D,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,wBAAwB,QAAQ,EAAE,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,wBAAwB;IACxB,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5D,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;YAClC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC5B,IAAI,CAAC;wBACH,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;wBACrD,OAAO,IAAI,oBAAoB,IAAI,SAAS,WAAW,EAAE,CAAC;wBAC1D,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACrB,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,OAAO,CAAC,KAAK,CAAC,wBAAwB,IAAI,EAAE,CAAC,CAAC;oBAChD,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC;AAC9C,CAAC;AAED,aAAa;AACb,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;CAqBrB,CAAC;AAEF,YAAY;AACZ,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB;IACE,IAAI,EAAE,sBAAsB;IAC5B,OAAO,EAAE,OAAO;CACjB,EACD;IACE,YAAY,EAAE;QACZ,KAAK,EAAE,EAAE;QACT,OAAO,EAAE,EAAE;QACX,SAAS,EAAE,EAAE;KACd;CACF,CACF,CAAC;AAEF,kCAAkC;AAElC,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;IAC1D,OAAO;QACL,KAAK,EAAE;YACL,2BAA2B;YAC3B;gBACE,IAAI,EAAE,qBAAqB;gBAC3B,WAAW,EAAE;EACnB,mBAAmB;;;;;;;;;;+BAUU;gBACvB,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE,EAAE;iBACf;aACF;YAED,2BAA2B;YAC3B;gBACE,IAAI,EAAE,sBAAsB;gBAC5B,WAAW,EAAE;EACnB,mBAAmB;;;;;;;;4BAQO;gBACpB,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,WAAW,EAAE;4BACX,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,iBAAiB;yBAC/B;wBACD,eAAe,EAAE;4BACf,IAAI,EAAE,SAAS;4BACf,WAAW,EAAE,wBAAwB;yBACtC;qBACF;iBACF;aACF;YAED,+BAA+B;YAC/B;gBACE,IAAI,EAAE,wBAAwB;gBAC9B,WAAW,EAAE;EACnB,mBAAmB;;;;;;gBAML;gBACR,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,aAAa;yBAC3B;wBACD,aAAa,EAAE;4BACb,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,SAAS;yBACvB;wBACD,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,wBAAwB;yBACtC;qBACF;oBACD,QAAQ,EAAE,CAAC,MAAM,EAAE,eAAe,CAAC;iBACpC;aACF;YAED,+BAA+B;YAC/B;gBACE,IAAI,EAAE,yBAAyB;gBAC/B,WAAW,EAAE;EACnB,mBAAmB;;;;;;;;;;;eAWN;gBACP,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,iBAAiB,EAAE;4BACjB,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,sCAAsC;yBACpD;wBACD,mBAAmB,EAAE;4BACnB,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,YAAY;yBAC1B;wBACD,WAAW,EAAE;4BACX,IAAI,EAAE,OAAO;4BACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACzB,WAAW,EAAE,YAAY;yBAC1B;qBACF;oBACD,QAAQ,EAAE,CAAC,mBAAmB,EAAE,qBAAqB,CAAC;iBACvD;aACF;YAED,kCAAkC;YAClC;gBACE,IAAI,EAAE,4BAA4B;gBAClC,WAAW,EAAE;EACnB,mBAAmB;;;;;;;;;;YAUT;gBACJ,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,aAAa,EAAE;4BACb,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,sBAAsB;yBACpC;wBACD,SAAS,EAAE;4BACT,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC;4BAChC,WAAW,EAAE,mBAAmB;yBACjC;wBACD,KAAK,EAAE;4BACL,IAAI,EAAE,OAAO;4BACb,KAAK,EAAE;gCACL,IAAI,EAAE,QAAQ;gCACd,UAAU,EAAE;oCACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oCACxB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oCACxB,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;oCAC7B,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;iCAChC;6BACF;4BACD,WAAW,EAAE,UAAU;yBACxB;wBACD,WAAW,EAAE;4BACX,IAAI,EAAE,SAAS;4BACf,WAAW,EAAE,qBAAqB;yBACnC;qBACF;oBACD,QAAQ,EAAE,CAAC,eAAe,CAAC;iBAC5B;aACF;SACF;KACF,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,YAAY;AACZ,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IAChE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAEjD,IAAI,CAAC;QACH,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,qBAAqB,CAAC,CAAC,CAAC;gBAC3B,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAwCD,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM;iBAC1D,UAAU,IAAI,MAAM;eACtB,WAAW,IAAI,MAAM;;;;;mDAKe;yBACtC;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,KAAK,sBAAsB,CAAC,CAAC,CAAC;gBAC5B,MAAM,KAAK,GAAG,CAAC;qBACZ,MAAM,CAAC;oBACN,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;oBAClC,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;iBACtD,CAAC;qBACD,KAAK,CAAC,IAAI,CAAC,CAAC;gBAEf,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,SAAS,EAAE,CAAC;gBAE/C,IAAI,UAAU,GAAG,EAAE,CAAC;gBAEpB,WAAW;gBACX,IAAI,KAAK,CAAC,eAAe,IAAI,CAAC,OAAO,EAAE,CAAC;oBACtC,UAAU,IAAI,aAAa,CAAC;gBAC9B,CAAC;gBAED,YAAY;gBACZ,IAAI,OAAO,EAAE,CAAC;oBACZ,UAAU,IAAI,MAAM,GAAG,OAAO,CAAC;gBACjC,CAAC;gBAED,YAAY;gBACZ,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;oBACtB,UAAU,IAAI,8BAA8B,KAAK,CAAC,WAAW,EAAE,CAAC;gBAClE,CAAC;gBAED,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE;;;EAGlB,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe;;;;EAI9E,UAAU,IAAI,aAAa,EAAE;yBAClB;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,KAAK,wBAAwB,CAAC,CAAC,CAAC;gBAC9B,MAAM,KAAK,GAAG,CAAC;qBACZ,MAAM,CAAC;oBACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;oBAChB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;oBACzB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;iBAC7B,CAAC;qBACD,KAAK,CAAC,IAAI,CAAC,CAAC;gBAEf,MAAM,MAAM,GAAa,EAAE,CAAC;gBAC5B,MAAM,MAAM,GAAa,EAAE,CAAC;gBAE5B,QAAQ;gBACR,mBAAmB;gBACnB,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;oBACrD,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;gBAC7C,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;gBACzC,CAAC;gBAED,oBAAoB;gBACpB,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;oBACrE,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;gBAC9C,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;oBACtE,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBAChC,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;gBAC/C,CAAC;gBAED,eAAe;gBACf,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACtE,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjE,IAAI,OAAO,EAAE,CAAC;oBACZ,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAC9B,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;gBACjD,CAAC;gBAED,YAAY;gBACZ,MAAM,kBAAkB,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;gBAChF,MAAM,aAAa,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC7E,IAAI,aAAa,EAAE,CAAC;oBAClB,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;gBAC/B,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;gBAC9C,CAAC;gBAED,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;gBAErE,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,sBAAsB,KAAK,CAAC,aAAa;;SAEpD,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;;;EAGnC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;;;EAGjB,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;;;EAG5C,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK;yBACX;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,KAAK,yBAAyB,CAAC,CAAC,CAAC;gBAC/B,MAAM,KAAK,GAAG,CAAC;qBACZ,MAAM,CAAC;oBACN,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE;oBAC7B,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE;oBAC/B,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;iBAC5C,CAAC;qBACD,KAAK,CAAC,IAAI,CAAC,CAAC;gBAEf,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE;;;EAGlB,KAAK,CAAC,iBAAiB;;;EAGvB,KAAK,CAAC,mBAAmB;;;EAGzB,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,gBAAgB;;;EAIhG,KAAK,CAAC,WAAW,EAAE,MAAM;gCACvB,CAAC,CAAC;;;;CAIL;gCACG,CAAC,CAAC;;;;CAKN,EAAE;yBACW;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,KAAK,4BAA4B,CAAC,CAAC,CAAC;gBAClC,MAAM,KAAK,GAAG,CAAC;qBACZ,MAAM,CAAC;oBACN,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;oBACzB,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;oBACzE,KAAK,EAAE,CAAC;yBACL,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;wBACP,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;wBAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;wBAChB,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;wBAChC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;qBACnC,CAAC,CACH;yBACA,QAAQ,EAAE;oBACb,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;iBACnD,CAAC;qBACD,KAAK,CAAC,IAAI,CAAC,CAAC;gBAEf,IAAI,QAAQ,GAAG,EAAE,CAAC;gBAElB,IAAI,KAAK,CAAC,SAAS,KAAK,OAAO,EAAE,CAAC;oBAChC,MAAM,cAAc,GAClB,KAAK,CAAC,KAAK,EAAE,MAAM,IAAI,KAAK,CAAC,WAAW;wBACtC,CAAC,CAAC;YACJ,KAAK,CAAC,aAAa;EAC7B,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;EAChI,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,2DAA2D,CAAC,CAAC,CAAC,EAAE;;CAErF;wBACa,CAAC,CAAC,EAAE,CAAC;oBAET,QAAQ,GAAG;;EAEnB,cAAc;;KAEX,KAAK,CAAC,aAAa;;;;eAIT,KAAK,CAAC,aAAa,cAAc,KAAK,CAAC,aAAa;EACjE,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;EACxD,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;;;;mBAIrB,KAAK,CAAC,aAAa,CAAC,WAAW,EAAE;;oBAEhC,KAAK,CAAC,aAAa;;;EAGrC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE;;;;;iBAK5B,KAAK,CAAC,aAAa;CACnC,CAAC;gBACM,CAAC;qBAAM,IAAI,KAAK,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC;oBACrC,QAAQ,GAAG;EACnB,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,kBAAkB,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;;;;;aAK7H,KAAK,CAAC,aAAa,CAAC,WAAW,EAAE;;oBAE1B,KAAK,CAAC,aAAa;;;EAGrC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;;;;;GAKtC,KAAK,CAAC,aAAa,CAAC,WAAW,EAAE;;;;CAInC,CAAC;gBACM,CAAC;qBAAM,IAAI,KAAK,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;oBACxC,QAAQ,GAAG;EACnB,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;;;;WAIxG,KAAK,CAAC,aAAa,CAAC,WAAW,EAAE;;gBAE5B,KAAK,CAAC,aAAa;;;EAGjC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE;;;;KAIlC,KAAK,CAAC,aAAa,CAAC,WAAW,EAAE;;;;CAIrC,CAAC;gBACM,CAAC;gBAED,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,oBAAoB,KAAK,CAAC,aAAa;;;EAGzD,KAAK,CAAC,SAAS;;;;QAIT,KAAK,CAAC,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ;EACxF,QAAQ;;;;;;qCAM2B;yBACxB;qBACF;iBACF,CAAC;YACJ,CAAC;YAED;gBACE,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;QACzE,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,OAAO,EAAE,EAAE,CAAC;YACrD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,oCAAoC;AAEpC,MAAM,CAAC,iBAAiB,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;IAC5D,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,gBAAgB;gBACtB,WAAW,EAAE;EACnB,mBAAmB,EAAE;gBACf,SAAS,EAAE;oBACT;wBACE,IAAI,EAAE,UAAU;wBAChB,WAAW,EAAE,sCAAsC;wBACnD,QAAQ,EAAE,KAAK;qBAChB;oBACD;wBACE,IAAI,EAAE,eAAe;wBACrB,WAAW,EAAE,aAAa;wBAC1B,QAAQ,EAAE,KAAK;qBAChB;oBACD;wBACE,IAAI,EAAE,WAAW;wBACjB,WAAW,EAAE,0BAA0B;wBACvC,QAAQ,EAAE,KAAK;qBAChB;iBACF;aACF;SACF;KACF,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IACjE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAEjD,IAAI,IAAI,KAAK,gBAAgB,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ,IAAI,mBAAmB,CAAC;QACvD,MAAM,aAAa,GAAG,IAAI,EAAE,aAAa,IAAI,YAAY,CAAC;QAC1D,MAAM,SAAS,GAAG,IAAI,EAAE,SAAS,IAAI,OAAO,CAAC;QAE7C,OAAO;YACL,WAAW,EAAE,6BAA6B;YAC1C,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE;wBACP,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE;;;WAGP,QAAQ;WACR,aAAa;WACb,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAwCF;qBACP;iBACF;aACF;SACF,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC;AAC7C,CAAC,CAAC,CAAC;AAEH,sCAAsC;AAEtC,MAAM,CAAC,iBAAiB,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;IAC9D,OAAO;QACL,SAAS,EAAE;YACT;gBACE,GAAG,EAAE,qBAAqB;gBAC1B,IAAI,EAAE,WAAW;gBACjB,WAAW,EAAE,sBAAsB;gBACnC,QAAQ,EAAE,eAAe;aAC1B;YACD;gBACE,GAAG,EAAE,uBAAuB;gBAC5B,IAAI,EAAE,gBAAgB;gBACtB,WAAW,EAAE,uBAAuB;gBACpC,QAAQ,EAAE,YAAY;aACvB;SACF;KACF,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,iBAAiB,CAAC,yBAAyB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IACpE,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAE/B,IAAI,GAAG,KAAK,qBAAqB,EAAE,CAAC;QAClC,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,GAAG;oBACH,QAAQ,EAAE,eAAe;oBACzB,IAAI,EAAE,aAAa;iBACpB;aACF;SACF,CAAC;IACJ,CAAC;IAED,IAAI,GAAG,KAAK,uBAAuB,EAAE,CAAC;QACpC,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,GAAG;oBACH,QAAQ,EAAE,YAAY;oBACtB,IAAI,EAAE;;;;;;;;;;;;;;;CAef;iBACQ;aACF;SACF,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAC;AAC9C,CAAC,CAAC,CAAC;AAEH,QAAQ;AACR,KAAK,UAAU,IAAI;IACjB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;IACvE,OAAO,CAAC,KAAK,CAAC,kBAAkB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC;IACtE,OAAO,CAAC,KAAK,CAAC,iBAAiB,UAAU,IAAI,QAAQ,EAAE,CAAC,CAAC;AAC3D,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "syr-d2c-workflow-mcp",
3
- "version": "0.1.0",
3
+ "version": "0.3.0",
4
4
  "description": "Design-to-Code workflow MCP - Transform Figma designs into production-ready components with rules validation",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",