mingyu-core 0.1.6 → 0.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/README.md +19 -1
  2. package/dist/bazi/baziAnalysisFormatter.d.ts.map +1 -1
  3. package/dist/bazi/baziAnalysisFormatter.js +3 -2
  4. package/dist/bazi/baziAnalysisFormatter.js.map +1 -1
  5. package/dist/bazi/baziCalculator.d.ts.map +1 -1
  6. package/dist/bazi/baziCalculator.js +6 -3
  7. package/dist/bazi/baziCalculator.js.map +1 -1
  8. package/dist/bazi/baziCalculatorHelpers.d.ts +2 -2
  9. package/dist/bazi/baziCalculatorHelpers.d.ts.map +1 -1
  10. package/dist/bazi/baziCalculatorHelpers.js +2 -19
  11. package/dist/bazi/baziCalculatorHelpers.js.map +1 -1
  12. package/dist/bazi/baziEnhancement/classicPatterns.d.ts +1 -0
  13. package/dist/bazi/baziEnhancement/classicPatterns.d.ts.map +1 -1
  14. package/dist/bazi/baziEnhancement/classicPatterns.js +41 -12
  15. package/dist/bazi/baziEnhancement/classicPatterns.js.map +1 -1
  16. package/dist/bazi/baziPromptEnhancement.d.ts +14 -0
  17. package/dist/bazi/baziPromptEnhancement.d.ts.map +1 -0
  18. package/dist/bazi/baziPromptEnhancement.js +414 -0
  19. package/dist/bazi/baziPromptEnhancement.js.map +1 -0
  20. package/dist/bazi/baziShenSha/helpers/dayRules.d.ts.map +1 -1
  21. package/dist/bazi/baziShenSha/helpers/dayRules.js +3 -2
  22. package/dist/bazi/baziShenSha/helpers/dayRules.js.map +1 -1
  23. package/dist/bazi/baziShenSha/helpers/disasterRules.d.ts.map +1 -1
  24. package/dist/bazi/baziShenSha/helpers/disasterRules.js +9 -16
  25. package/dist/bazi/baziShenSha/helpers/disasterRules.js.map +1 -1
  26. package/dist/bazi/baziShenSha/helpers/luRules.d.ts.map +1 -1
  27. package/dist/bazi/baziShenSha/helpers/luRules.js +12 -28
  28. package/dist/bazi/baziShenSha/helpers/luRules.js.map +1 -1
  29. package/dist/bazi/baziShenSha/helpers/nobleRules.d.ts.map +1 -1
  30. package/dist/bazi/baziShenSha/helpers/nobleRules.js +11 -13
  31. package/dist/bazi/baziShenSha/helpers/nobleRules.js.map +1 -1
  32. package/dist/bazi/baziShenSha/helpers/types.d.ts +2 -0
  33. package/dist/bazi/baziShenSha/helpers/types.d.ts.map +1 -1
  34. package/dist/bazi/baziShenSha/index.d.ts +6 -2
  35. package/dist/bazi/baziShenSha/index.d.ts.map +1 -1
  36. package/dist/bazi/baziShenSha/index.js +7 -2
  37. package/dist/bazi/baziShenSha/index.js.map +1 -1
  38. package/dist/bazi/baziShenSha/variants.d.ts +17 -0
  39. package/dist/bazi/baziShenSha/variants.d.ts.map +1 -0
  40. package/dist/bazi/baziShenSha/variants.js +12 -0
  41. package/dist/bazi/baziShenSha/variants.js.map +1 -0
  42. package/dist/bazi/baziTypes.d.ts +2 -0
  43. package/dist/bazi/baziTypes.d.ts.map +1 -1
  44. package/dist/bazi/baziTypes.js.map +1 -1
  45. package/dist/bazi/fortuneModalSelection.d.ts +6 -0
  46. package/dist/bazi/fortuneModalSelection.d.ts.map +1 -0
  47. package/dist/bazi/fortuneModalSelection.js +22 -0
  48. package/dist/bazi/fortuneModalSelection.js.map +1 -0
  49. package/dist/bazi/fortuneSelection/helpers/breakdown.d.ts +6 -0
  50. package/dist/bazi/fortuneSelection/helpers/breakdown.d.ts.map +1 -0
  51. package/dist/bazi/fortuneSelection/helpers/breakdown.js +137 -0
  52. package/dist/bazi/fortuneSelection/helpers/breakdown.js.map +1 -0
  53. package/dist/bazi/fortuneSelection/helpers/resolvers.d.ts +9 -0
  54. package/dist/bazi/fortuneSelection/helpers/resolvers.d.ts.map +1 -0
  55. package/dist/bazi/fortuneSelection/helpers/resolvers.js +74 -0
  56. package/dist/bazi/fortuneSelection/helpers/resolvers.js.map +1 -0
  57. package/dist/bazi/fortuneSelection/helpers/types.d.ts +71 -0
  58. package/dist/bazi/fortuneSelection/helpers/types.d.ts.map +1 -0
  59. package/dist/bazi/fortuneSelection/helpers/types.js +2 -0
  60. package/dist/bazi/fortuneSelection/helpers/types.js.map +1 -0
  61. package/dist/bazi/fortuneSelection/index.d.ts +6 -0
  62. package/dist/bazi/fortuneSelection/index.d.ts.map +1 -0
  63. package/dist/bazi/fortuneSelection/index.js +484 -0
  64. package/dist/bazi/fortuneSelection/index.js.map +1 -0
  65. package/dist/bazi/index.d.ts +18 -0
  66. package/dist/bazi/index.d.ts.map +1 -1
  67. package/dist/bazi/index.js +14 -0
  68. package/dist/bazi/index.js.map +1 -1
  69. package/dist/bazi/kongWang.d.ts +4 -0
  70. package/dist/bazi/kongWang.d.ts.map +1 -0
  71. package/dist/bazi/kongWang.js +21 -0
  72. package/dist/bazi/kongWang.js.map +1 -0
  73. package/dist/bazi/kongWangAnalysis.d.ts.map +1 -1
  74. package/dist/bazi/kongWangAnalysis.js +2 -13
  75. package/dist/bazi/kongWangAnalysis.js.map +1 -1
  76. package/dist/bazi/tombStorage.d.ts.map +1 -1
  77. package/dist/bazi/tombStorage.js +23 -10
  78. package/dist/bazi/tombStorage.js.map +1 -1
  79. package/dist/divination/algorithms/_shared/wuxing.d.ts +1 -1
  80. package/dist/divination/algorithms/_shared/wuxing.js +2 -2
  81. package/dist/divination/algorithms/liuyao.d.ts +5 -0
  82. package/dist/divination/algorithms/liuyao.d.ts.map +1 -1
  83. package/dist/divination/algorithms/liuyao.js +22 -18
  84. package/dist/divination/algorithms/liuyao.js.map +1 -1
  85. package/dist/divination/algorithms/qimen/helpers/classic-patterns.d.ts.map +1 -1
  86. package/dist/divination/algorithms/qimen/helpers/classic-patterns.js +58 -93
  87. package/dist/divination/algorithms/qimen/helpers/classic-patterns.js.map +1 -1
  88. package/dist/divination/algorithms/qimen/helpers/layout.d.ts +6 -5
  89. package/dist/divination/algorithms/qimen/helpers/layout.d.ts.map +1 -1
  90. package/dist/divination/algorithms/qimen/helpers/layout.js +84 -48
  91. package/dist/divination/algorithms/qimen/helpers/layout.js.map +1 -1
  92. package/dist/divination/algorithms/qimen/helpers/patterns.d.ts.map +1 -1
  93. package/dist/divination/algorithms/qimen/helpers/patterns.js +1 -3
  94. package/dist/divination/algorithms/qimen/helpers/patterns.js.map +1 -1
  95. package/dist/divination/algorithms/qimen/index.d.ts +3 -2
  96. package/dist/divination/algorithms/qimen/index.d.ts.map +1 -1
  97. package/dist/divination/algorithms/qimen/index.js +3 -6
  98. package/dist/divination/algorithms/qimen/index.js.map +1 -1
  99. package/dist/divination/tarot.d.ts +1 -1
  100. package/dist/prompt-evidence/format.d.ts +5 -0
  101. package/dist/prompt-evidence/format.d.ts.map +1 -0
  102. package/dist/prompt-evidence/format.js +55 -0
  103. package/dist/prompt-evidence/format.js.map +1 -0
  104. package/dist/prompt-evidence/types.d.ts +15 -0
  105. package/dist/prompt-evidence/types.d.ts.map +1 -0
  106. package/dist/prompt-evidence/types.js +2 -0
  107. package/dist/prompt-evidence/types.js.map +1 -0
  108. package/dist/types/divination.d.ts +6 -0
  109. package/dist/types/divination.d.ts.map +1 -1
  110. package/package.json +1 -1
@@ -0,0 +1,71 @@
1
+ export interface FortunePromptPayload {
2
+ scopeLabel: string;
3
+ summaryLines: string[];
4
+ evidenceLines?: string[];
5
+ breakdownTitle?: string;
6
+ breakdownLines?: string[];
7
+ detailGroups?: Array<{
8
+ title: string;
9
+ lines: string[];
10
+ }>;
11
+ }
12
+ export interface FortuneSelectionContext {
13
+ scope: 'dayun' | 'year' | 'month' | 'day';
14
+ cycleIndex: number;
15
+ cycleLabel: string;
16
+ cycleGanZhi: string;
17
+ cycleStartYear: number;
18
+ cycleAge: number;
19
+ cycleType: string;
20
+ isXiaoyun: boolean;
21
+ year?: number;
22
+ yearGanZhi?: string;
23
+ yearAge?: number;
24
+ month?: number;
25
+ monthGanZhi?: string;
26
+ monthLabel?: string;
27
+ monthStartDate?: string;
28
+ monthEndDate?: string;
29
+ monthJieqiName?: string;
30
+ monthJieqiDate?: string;
31
+ yearBreakdown?: Array<{
32
+ year: number;
33
+ ganZhi: string;
34
+ age: number;
35
+ }>;
36
+ monthBreakdown?: Array<{
37
+ month: number;
38
+ label: string;
39
+ ganZhi: string;
40
+ startDate: string;
41
+ endDate: string;
42
+ startDateTime?: string;
43
+ endDateTime?: string;
44
+ startTermName?: string;
45
+ endTermName?: string;
46
+ }>;
47
+ dayBreakdown?: Array<{
48
+ date: string;
49
+ label: string;
50
+ ganZhi: string;
51
+ startDateTime?: string;
52
+ endDateTime?: string;
53
+ boundaryNote?: string;
54
+ }>;
55
+ hourBreakdown?: Array<{
56
+ label: string;
57
+ ganZhi: string;
58
+ timeRange?: string;
59
+ }>;
60
+ displayLabel: string;
61
+ displayText: string;
62
+ promptPayload: FortunePromptPayload;
63
+ }
64
+ export interface BaziFortuneSelectionValue {
65
+ scope: 'natal' | 'dayun' | 'year' | 'month' | 'day';
66
+ cycleIndex?: number;
67
+ year?: number;
68
+ month?: number;
69
+ day?: number;
70
+ }
71
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/bazi/fortuneSelection/helpers/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,YAAY,CAAC,EAAE,KAAK,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,EAAE,CAAC;KACjB,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,KAAK,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,MAAM,CAAC;KACb,CAAC,CAAC;IACH,cAAc,CAAC,EAAE,KAAK,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC,CAAC;IACH,YAAY,CAAC,EAAE,KAAK,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC,CAAC;IACH,aAAa,CAAC,EAAE,KAAK,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;IACH,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,oBAAoB,CAAC;CACrC;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/bazi/fortuneSelection/helpers/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ import type { BaziChartResult } from '../baziTypes';
2
+ import type { BaziFortuneSelectionValue, FortuneSelectionContext } from './helpers/types';
3
+ export type { BaziFortuneSelectionValue, FortuneSelectionContext } from './helpers/types';
4
+ export declare function normalizeFortuneSelection(result: BaziChartResult, selection: BaziFortuneSelectionValue): BaziFortuneSelectionValue;
5
+ export declare function buildFortuneSelectionContext(result: BaziChartResult, selection: BaziFortuneSelectionValue): FortuneSelectionContext | null;
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/bazi/fortuneSelection/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAapD,OAAO,KAAK,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE1F,YAAY,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AA4L1F,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,eAAe,EACvB,SAAS,EAAE,yBAAyB,GACnC,yBAAyB,CA2D3B;AAED,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,eAAe,EACvB,SAAS,EAAE,yBAAyB,GACnC,uBAAuB,GAAG,IAAI,CA8ThC"}
@@ -0,0 +1,484 @@
1
+ import { getMonthDaysInfo, getYearInfo } from '../calendarTool.js';
2
+ import { BASIC_MAPPINGS } from '../baziMappingsData.js';
3
+ import { getTenGod, getTenGodForBranch } from '../baziUtils.js';
4
+ import { formatPromptEvidenceBundle } from '../../prompt-evidence/format.js';
5
+ import { getDayHourBreakdown } from './helpers/breakdown.js';
6
+ import { formatCycleLabel, formatYearLabel, resolveCycleIndex, resolveSelectedDay, resolveSelectedMonth, resolveSelectedYear, } from './helpers/resolvers.js';
7
+ const PILLAR_LABELS = {
8
+ year: '年柱',
9
+ month: '月柱',
10
+ day: '日柱',
11
+ hour: '时柱',
12
+ };
13
+ const PILLAR_KEYS = ['year', 'month', 'day', 'hour'];
14
+ function splitGanZhi(ganZhi) {
15
+ if (!ganZhi || ganZhi.length < 2)
16
+ return null;
17
+ return {
18
+ gan: ganZhi[0],
19
+ zhi: ganZhi[1],
20
+ };
21
+ }
22
+ function formatGanZhiTenGod(result, ganZhi) {
23
+ const parts = splitGanZhi(ganZhi);
24
+ if (!parts || !result.dayMaster?.gan)
25
+ return '未知';
26
+ return `天干${parts.gan}为${getTenGod(parts.gan, result.dayMaster.gan)},地支${parts.zhi}主气为${getTenGodForBranch(parts.zhi, result.dayMaster.gan)}`;
27
+ }
28
+ function formatYearBreakdownLine(result, item) {
29
+ return `${item.year}年(${item.age}岁) ${item.ganZhi}|十神 ${formatGanZhiTenGod(result, item.ganZhi)}`;
30
+ }
31
+ function formatMonthBreakdownLine(result, item) {
32
+ return `${item.month}月(${item.label}) ${item.ganZhi}|十神 ${formatGanZhiTenGod(result, item.ganZhi)}|日期范围 ${item.startDate} 至 ${item.endDate}|交节 ${item.startTermName || ''} ${item.startDateTime || ''} 起,${item.endTermName || ''} ${item.endDateTime || ''} 交下节`;
33
+ }
34
+ function formatDayBreakdownLine(result, item) {
35
+ return `${item.date} ${item.ganZhi}|十神 ${formatGanZhiTenGod(result, item.ganZhi)}${item.boundaryNote ? `|${item.boundaryNote}` : ''}`;
36
+ }
37
+ function buildGanZhiTriggerSummary(result, ganZhi, scopeLabel) {
38
+ const parts = splitGanZhi(ganZhi);
39
+ if (!parts || !result.pillars)
40
+ return `${scopeLabel}触发:原局资料不足,暂无法判断合冲刑害。`;
41
+ const triggers = [];
42
+ PILLAR_KEYS.forEach((key) => {
43
+ const pillar = result.pillars[key];
44
+ if (!pillar)
45
+ return;
46
+ const pillarLabel = PILLAR_LABELS[key];
47
+ if (parts.gan === pillar.gan) {
48
+ triggers.push(`天干${parts.gan}与${pillarLabel}${pillar.gan}伏吟`);
49
+ }
50
+ if (BASIC_MAPPINGS.TIAN_GAN_WU_HE[parts.gan] === pillar.gan) {
51
+ triggers.push(`天干${parts.gan}合${pillarLabel}${pillar.gan}`);
52
+ }
53
+ if (BASIC_MAPPINGS.TIAN_GAN_CHONG[parts.gan] === pillar.gan) {
54
+ triggers.push(`天干${parts.gan}冲${pillarLabel}${pillar.gan}`);
55
+ }
56
+ if (parts.zhi === pillar.zhi) {
57
+ triggers.push(`地支${parts.zhi}与${pillarLabel}${pillar.zhi}伏吟`);
58
+ }
59
+ if (BASIC_MAPPINGS.DI_ZHI_LIU_HE[parts.zhi] === pillar.zhi) {
60
+ triggers.push(`地支${parts.zhi}合${pillarLabel}${pillar.zhi}`);
61
+ }
62
+ if (BASIC_MAPPINGS.DI_ZHI_CHONG[parts.zhi] === pillar.zhi) {
63
+ triggers.push(`地支${parts.zhi}冲${pillarLabel}${pillar.zhi}`);
64
+ }
65
+ if (BASIC_MAPPINGS.DI_ZHI_XING[parts.zhi]?.includes(pillar.zhi)) {
66
+ triggers.push(`地支${parts.zhi}刑${pillarLabel}${pillar.zhi}`);
67
+ }
68
+ if (BASIC_MAPPINGS.DI_ZHI_HAI[parts.zhi] === pillar.zhi) {
69
+ triggers.push(`地支${parts.zhi}害${pillarLabel}${pillar.zhi}`);
70
+ }
71
+ if (BASIC_MAPPINGS.DI_ZHI_PO[parts.zhi] === pillar.zhi) {
72
+ triggers.push(`地支${parts.zhi}破${pillarLabel}${pillar.zhi}`);
73
+ }
74
+ });
75
+ return `${scopeLabel}触发:${triggers.length ? triggers.join(';') : '未见明显合冲刑害破,重点看十神生克、原局喜忌与岁运层级。'}`;
76
+ }
77
+ function buildFortuneEvidenceLines(params) {
78
+ const items = [
79
+ {
80
+ level: '主证',
81
+ title: '用户已选择年限运限',
82
+ detail: `${params.scopeLabel},所属大运为${params.cycleLabel}(${params.cycleGanZhi})。`,
83
+ source: '年限选择器',
84
+ weight: 100,
85
+ tags: [params.scope],
86
+ },
87
+ ];
88
+ if (params.parentText) {
89
+ items.push({
90
+ level: '辅证',
91
+ title: '上层岁运背景',
92
+ detail: params.parentText,
93
+ source: '年限选择器',
94
+ weight: 86,
95
+ });
96
+ }
97
+ if (params.selectedGanZhi) {
98
+ items.push({
99
+ level: '主证',
100
+ title: params.selectedTitle,
101
+ detail: `${params.selectedGanZhi};${params.selectedTenGod ?? '十神资料不足'}`,
102
+ source: '排盘计算',
103
+ weight: 82,
104
+ });
105
+ }
106
+ if (params.triggerSummary) {
107
+ items.push({
108
+ level: params.triggerSummary.includes('未见明显') ? '反证' : '主证',
109
+ title: '刑冲合害触发',
110
+ detail: params.triggerSummary,
111
+ source: '所选干支与原局四柱比对',
112
+ weight: params.triggerSummary.includes('未见明显') ? 58 : 78,
113
+ });
114
+ }
115
+ if (params.timingText) {
116
+ items.push({
117
+ level: '应期',
118
+ title: '应期边界',
119
+ detail: params.timingText,
120
+ source: '年限选择器',
121
+ weight: 64,
122
+ });
123
+ }
124
+ items.push({
125
+ level: '限制',
126
+ title: '断事层级限制',
127
+ detail: params.limitText,
128
+ source: '解读边界',
129
+ weight: 20,
130
+ });
131
+ return formatPromptEvidenceBundle({
132
+ items,
133
+ });
134
+ }
135
+ export function normalizeFortuneSelection(result, selection) {
136
+ if (selection.scope === 'natal' || !result.luckInfo.cycles.length) {
137
+ return { scope: 'natal' };
138
+ }
139
+ const cycleIndex = resolveCycleIndex(result, selection);
140
+ const cycle = result.luckInfo.cycles[cycleIndex];
141
+ if (!cycle) {
142
+ return { scope: 'natal' };
143
+ }
144
+ const year = resolveSelectedYear(cycle, selection);
145
+ if (selection.scope === 'dayun') {
146
+ return {
147
+ scope: 'dayun',
148
+ cycleIndex,
149
+ year,
150
+ };
151
+ }
152
+ if (!year) {
153
+ return {
154
+ scope: 'dayun',
155
+ cycleIndex,
156
+ };
157
+ }
158
+ const month = resolveSelectedMonth(selection);
159
+ if (selection.scope === 'year') {
160
+ return {
161
+ scope: 'year',
162
+ cycleIndex,
163
+ year,
164
+ month,
165
+ };
166
+ }
167
+ const day = resolveSelectedDay(year, month, selection);
168
+ if (selection.scope === 'month') {
169
+ return {
170
+ scope: 'month',
171
+ cycleIndex,
172
+ year,
173
+ month,
174
+ day,
175
+ };
176
+ }
177
+ return {
178
+ scope: 'day',
179
+ cycleIndex,
180
+ year,
181
+ month,
182
+ day,
183
+ };
184
+ }
185
+ export function buildFortuneSelectionContext(result, selection) {
186
+ const normalized = normalizeFortuneSelection(result, selection);
187
+ if (normalized.scope === 'natal') {
188
+ return null;
189
+ }
190
+ const cycle = result.luckInfo.cycles[normalized.cycleIndex ?? -1];
191
+ if (!cycle) {
192
+ return null;
193
+ }
194
+ const cycleLabel = formatCycleLabel(cycle);
195
+ const yearItem = cycle.years.find((item) => item.year === normalized.year);
196
+ const monthInfoList = normalized.year ? getYearInfo(normalized.year).months : [];
197
+ const monthInfo = normalized.month ? monthInfoList[normalized.month - 1] : undefined;
198
+ const dayInfoList = normalized.year && normalized.month ? getMonthDaysInfo(normalized.year, normalized.month) : [];
199
+ const dayInfo = dayInfoList.find((item) => item.day === normalized.day);
200
+ const baseContext = {
201
+ cycleIndex: normalized.cycleIndex ?? 0,
202
+ cycleLabel,
203
+ cycleGanZhi: cycle.ganZhi,
204
+ cycleStartYear: cycle.year,
205
+ cycleAge: cycle.age,
206
+ cycleType: cycle.type,
207
+ isXiaoyun: cycle.isXiaoyun,
208
+ year: yearItem?.year,
209
+ yearGanZhi: yearItem?.ganZhi,
210
+ yearAge: yearItem?.age,
211
+ };
212
+ if (normalized.scope === 'dayun') {
213
+ const breakdown = cycle.years.map((item) => ({
214
+ year: item.year,
215
+ ganZhi: item.ganZhi,
216
+ age: item.age,
217
+ }));
218
+ const cycleTenGod = formatGanZhiTenGod(result, cycle.ganZhi);
219
+ const cycleTriggerSummary = buildGanZhiTriggerSummary(result, cycle.ganZhi, '大运');
220
+ return {
221
+ ...baseContext,
222
+ scope: 'dayun',
223
+ yearBreakdown: breakdown,
224
+ displayLabel: cycleLabel,
225
+ displayText: `${cycleLabel}(${cycle.year}年起,${cycle.age}岁交运)`,
226
+ promptPayload: {
227
+ scopeLabel: `分析对象:${cycleLabel}`,
228
+ summaryLines: [
229
+ `大运干支:${cycle.ganZhi}`,
230
+ `大运十神:${cycleTenGod}`,
231
+ cycleTriggerSummary,
232
+ `起运年份:${cycle.year}年`,
233
+ `起运年龄:${cycle.age}岁`,
234
+ cycle.isXiaoyun
235
+ ? '类型:未起运,行童运'
236
+ : `类型:${cycle.type === '小运' ? '童运' : cycle.type}`,
237
+ ],
238
+ evidenceLines: buildFortuneEvidenceLines({
239
+ scope: 'dayun',
240
+ scopeLabel: `${cycleLabel}`,
241
+ cycleLabel,
242
+ cycleGanZhi: cycle.ganZhi,
243
+ selectedTitle: '大运干支与十神',
244
+ selectedGanZhi: cycle.ganZhi,
245
+ selectedTenGod: cycleTenGod,
246
+ triggerSummary: cycleTriggerSummary,
247
+ timingText: `${cycle.year}年起,约${cycle.age}岁交运;只作为十年阶段主题与强弱背景。`,
248
+ limitText: '大运不能替代流年给出精确年份;需要用户继续选择流年后才能断年度触发。',
249
+ }),
250
+ breakdownTitle: '该大运包含的流年',
251
+ breakdownLines: breakdown.map((item) => formatYearBreakdownLine(result, item)),
252
+ detailGroups: [
253
+ {
254
+ title: '该大运包含的流年',
255
+ lines: breakdown.map((item) => formatYearBreakdownLine(result, item)),
256
+ },
257
+ ],
258
+ },
259
+ };
260
+ }
261
+ if (!yearItem) {
262
+ return null;
263
+ }
264
+ if (normalized.scope === 'year') {
265
+ const breakdown = monthInfoList.map((item, index) => ({
266
+ month: index + 1,
267
+ label: item.month,
268
+ ganZhi: item.ganZhi,
269
+ startDate: item.startDate,
270
+ endDate: item.endDate,
271
+ startDateTime: item.startDateTime,
272
+ endDateTime: item.endDateTime,
273
+ startTermName: item.startTermName,
274
+ endTermName: item.endTermName,
275
+ }));
276
+ const cycleYearLines = cycle.years.map((item) => formatYearBreakdownLine(result, item));
277
+ const monthLines = breakdown.map((item) => formatMonthBreakdownLine(result, item));
278
+ const yearTenGod = formatGanZhiTenGod(result, yearItem.ganZhi);
279
+ const yearTriggerSummary = buildGanZhiTriggerSummary(result, yearItem.ganZhi, '流年');
280
+ return {
281
+ ...baseContext,
282
+ scope: 'year',
283
+ monthBreakdown: breakdown,
284
+ displayLabel: formatYearLabel(yearItem),
285
+ displayText: `${yearItem.year}年 ${yearItem.ganZhi}(${yearItem.age}岁)`,
286
+ promptPayload: {
287
+ scopeLabel: `分析对象:${yearItem.year}年流年`,
288
+ summaryLines: [
289
+ `所属大运:${cycleLabel}`,
290
+ `流年干支:${yearItem.ganZhi}`,
291
+ `流年十神:${yearTenGod}`,
292
+ yearTriggerSummary,
293
+ `对应年龄:${yearItem.age}岁`,
294
+ ].filter(Boolean),
295
+ evidenceLines: buildFortuneEvidenceLines({
296
+ scope: 'year',
297
+ scopeLabel: `${yearItem.year}年流年`,
298
+ cycleLabel,
299
+ cycleGanZhi: cycle.ganZhi,
300
+ selectedTitle: '流年干支与十神',
301
+ selectedGanZhi: yearItem.ganZhi,
302
+ selectedTenGod: yearTenGod,
303
+ triggerSummary: yearTriggerSummary,
304
+ parentText: `所属大运:${cycleLabel}(${cycle.ganZhi}),年度判断必须承接该十年阶段。`,
305
+ timingText: `${yearItem.year}年(${yearItem.age}岁)为年度触发;流月列表只作月份窗口参考。`,
306
+ limitText: '未选择具体流月或流日时,不得把某月某日硬断成唯一应期。',
307
+ }),
308
+ breakdownTitle: '该流年包含的流月',
309
+ breakdownLines: monthLines,
310
+ detailGroups: [
311
+ {
312
+ title: '所属大运包含的流年',
313
+ lines: cycleYearLines,
314
+ },
315
+ {
316
+ title: '该流年包含的流月',
317
+ lines: monthLines,
318
+ },
319
+ ],
320
+ },
321
+ };
322
+ }
323
+ if (!monthInfo || !normalized.month) {
324
+ return null;
325
+ }
326
+ if (normalized.scope === 'month') {
327
+ const breakdown = dayInfoList.map((item) => ({
328
+ date: item.solarDate,
329
+ label: item.solarLabel,
330
+ ganZhi: item.ganZhi,
331
+ startDateTime: item.startDateTime,
332
+ endDateTime: item.endDateTime,
333
+ boundaryNote: item.boundaryNote,
334
+ }));
335
+ const yearMonthBreakdown = monthInfoList.map((item, index) => ({
336
+ month: index + 1,
337
+ label: item.month,
338
+ ganZhi: item.ganZhi,
339
+ startDate: item.startDate,
340
+ endDate: item.endDate,
341
+ startDateTime: item.startDateTime,
342
+ endDateTime: item.endDateTime,
343
+ startTermName: item.startTermName,
344
+ endTermName: item.endTermName,
345
+ }));
346
+ const yearMonthLines = yearMonthBreakdown.map((item) => formatMonthBreakdownLine(result, item));
347
+ const dayLines = breakdown.map((item) => formatDayBreakdownLine(result, item));
348
+ const monthTenGod = formatGanZhiTenGod(result, monthInfo.ganZhi);
349
+ const monthTriggerSummary = buildGanZhiTriggerSummary(result, monthInfo.ganZhi, '流月');
350
+ return {
351
+ ...baseContext,
352
+ scope: 'month',
353
+ month: normalized.month,
354
+ monthGanZhi: monthInfo.ganZhi,
355
+ monthLabel: monthInfo.month,
356
+ monthBreakdown: [
357
+ {
358
+ month: normalized.month,
359
+ label: monthInfo.month,
360
+ ganZhi: monthInfo.ganZhi,
361
+ startDate: monthInfo.startDate,
362
+ endDate: monthInfo.endDate,
363
+ startDateTime: monthInfo.startDateTime,
364
+ endDateTime: monthInfo.endDateTime,
365
+ startTermName: monthInfo.startTermName,
366
+ endTermName: monthInfo.endTermName,
367
+ },
368
+ ],
369
+ dayBreakdown: breakdown,
370
+ displayLabel: `${yearItem.year}年${monthInfo.month}`,
371
+ displayText: `${yearItem.year}年 ${monthInfo.month}(${monthInfo.ganZhi},${monthInfo.startDateTime || monthInfo.startDate} 起,至 ${monthInfo.endDateTime || monthInfo.endDate} 交下节)`,
372
+ promptPayload: {
373
+ scopeLabel: `分析对象:${yearItem.year}年${monthInfo.month}流月`,
374
+ summaryLines: [
375
+ `所属大运:${cycleLabel}`,
376
+ `所属流年:${yearItem.year}年 ${yearItem.ganZhi}`,
377
+ `流月:${monthInfo.month} ${monthInfo.ganZhi}`,
378
+ `流月十神:${monthTenGod}`,
379
+ monthTriggerSummary,
380
+ `日期范围:${monthInfo.startDate} 至 ${monthInfo.endDate}`,
381
+ `交节时刻:${monthInfo.startTermName || ''} ${monthInfo.startDateTime || ''} 起,${monthInfo.endTermName || ''} ${monthInfo.endDateTime || ''} 交下节`,
382
+ ],
383
+ evidenceLines: buildFortuneEvidenceLines({
384
+ scope: 'month',
385
+ scopeLabel: `${yearItem.year}年${monthInfo.month}流月`,
386
+ cycleLabel,
387
+ cycleGanZhi: cycle.ganZhi,
388
+ selectedTitle: '流月干支与十神',
389
+ selectedGanZhi: monthInfo.ganZhi,
390
+ selectedTenGod: monthTenGod,
391
+ triggerSummary: monthTriggerSummary,
392
+ parentText: `所属大运:${cycleLabel}(${cycle.ganZhi});所属流年:${yearItem.year}年${yearItem.ganZhi}。`,
393
+ timingText: `${monthInfo.startDate}至${monthInfo.endDate},以节气月为准;${monthInfo.startTermName || ''} ${monthInfo.startDateTime || ''} 起,${monthInfo.endTermName || ''} ${monthInfo.endDateTime || ''} 交下节。`,
394
+ limitText: '流月只细化年度主题,不能推翻本命、大运与流年主线;未选择流日时不硬给具体日期。',
395
+ }),
396
+ breakdownTitle: '该流月包含的流日',
397
+ breakdownLines: dayLines,
398
+ detailGroups: [
399
+ {
400
+ title: '所属流年包含的流月',
401
+ lines: yearMonthLines,
402
+ },
403
+ {
404
+ title: '该流月包含的流日',
405
+ lines: dayLines,
406
+ },
407
+ ],
408
+ },
409
+ };
410
+ }
411
+ if (!dayInfo || !normalized.day) {
412
+ return null;
413
+ }
414
+ const actualDate = dayInfo.solarDate;
415
+ const [actualYear, actualMonth, actualDay] = actualDate.split('-').map(Number);
416
+ const hourBreakdown = getDayHourBreakdown(actualYear, actualMonth, actualDay);
417
+ const previousDate = new Date(actualYear, actualMonth - 1, actualDay - 1);
418
+ const ziChuStart = `${previousDate.getFullYear()}-${String(previousDate.getMonth() + 1).padStart(2, '0')}-${String(previousDate.getDate()).padStart(2, '0')} 23:00`;
419
+ const ziChuEnd = `${actualDate} 22:59`;
420
+ const dayTenGod = formatGanZhiTenGod(result, dayInfo.ganZhi);
421
+ const dayTriggerSummary = buildGanZhiTriggerSummary(result, dayInfo.ganZhi, '流日');
422
+ const monthDayLines = dayInfoList.map((item) => formatDayBreakdownLine(result, {
423
+ date: item.solarDate,
424
+ ganZhi: item.ganZhi,
425
+ boundaryNote: item.boundaryNote,
426
+ }));
427
+ const hourLines = hourBreakdown.map((item) => `${item.label} ${item.timeRange || ''} ${item.ganZhi}`.trim());
428
+ return {
429
+ ...baseContext,
430
+ scope: 'day',
431
+ month: normalized.month,
432
+ monthGanZhi: monthInfo.ganZhi,
433
+ monthLabel: monthInfo.month,
434
+ hourBreakdown,
435
+ dayBreakdown: [
436
+ {
437
+ date: actualDate,
438
+ label: dayInfo.solarLabel,
439
+ ganZhi: dayInfo.ganZhi,
440
+ },
441
+ ],
442
+ displayLabel: actualDate,
443
+ displayText: `${actualDate}(${dayInfo.ganZhi})`,
444
+ promptPayload: {
445
+ scopeLabel: `分析对象:${actualDate}流日`,
446
+ summaryLines: [
447
+ `所属大运:${cycleLabel}`,
448
+ `所属流年:${yearItem.year}年 ${yearItem.ganZhi}`,
449
+ `所属流月:${monthInfo.month} ${monthInfo.ganZhi}`,
450
+ `流日:${actualDate} ${dayInfo.ganZhi}`,
451
+ `流日十神:${dayTenGod}`,
452
+ dayTriggerSummary,
453
+ `按子初换日:${ziChuStart} 至 ${ziChuEnd}`,
454
+ ...(dayInfo.boundaryNote ? [`交节提示:${dayInfo.boundaryNote}`] : []),
455
+ ],
456
+ evidenceLines: buildFortuneEvidenceLines({
457
+ scope: 'day',
458
+ scopeLabel: `${actualDate}流日`,
459
+ cycleLabel,
460
+ cycleGanZhi: cycle.ganZhi,
461
+ selectedTitle: '流日干支与十神',
462
+ selectedGanZhi: dayInfo.ganZhi,
463
+ selectedTenGod: dayTenGod,
464
+ triggerSummary: dayTriggerSummary,
465
+ parentText: `所属大运:${cycleLabel}(${cycle.ganZhi});所属流年:${yearItem.year}年${yearItem.ganZhi};所属流月:${monthInfo.month}${monthInfo.ganZhi}。`,
466
+ timingText: `按子初换日:${ziChuStart}至${ziChuEnd};流时列表只作当日内短时触发参考。`,
467
+ limitText: '流日只判断当日执行、沟通、避险和即时触发,不得改写长期命局或整年趋势。',
468
+ }),
469
+ breakdownTitle: '该流日包含的流时',
470
+ breakdownLines: hourLines,
471
+ detailGroups: [
472
+ {
473
+ title: '所属流月包含的流日',
474
+ lines: monthDayLines,
475
+ },
476
+ {
477
+ title: '该流日包含的流时',
478
+ lines: hourLines,
479
+ },
480
+ ],
481
+ },
482
+ };
483
+ }
484
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/bazi/fortuneSelection/index.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,25 @@
2
2
  * @file Bazi algorithms barrel
3
3
  */
4
4
  export { baziCalculator, BaziCalculator } from './baziCalculator';
5
+ export { formatBaziForPrompt } from './baziAnalysisFormatter';
6
+ export { generateCompatibilityEnhancedSection, generateEnhancedAnalysisSection, } from './baziPromptEnhancement';
7
+ export { buildFortuneSelectionContext, normalizeFortuneSelection, } from './fortuneSelection/index';
8
+ export type { BaziFortuneSelectionValue, FortuneSelectionContext, } from './fortuneSelection/index';
9
+ export { isFortuneModalDetailOptionActive, isFortuneModalParentOptionActive, } from './fortuneModalSelection';
10
+ export type { BaziFortuneScope, FortuneModalParentRow, FortuneModalRow, } from './fortuneModalSelection';
5
11
  export type { Person, Pillar, Pillars, BaziChartResult, BaziAnalysisResult, Wuxing, } from './baziTypes';
12
+ export { getBaziDayIndexByDate, getBaziMonthIndexByDate, getCalendarInfo, getCurrentTimeDescription, getMonthDaysInfo, getYearInfo, getYearMonthsGanZhi, } from './calendarTool';
13
+ export type { BaziMonthDayInfo, BaziMonthInfo, CalendarInfo } from './calendarTool';
14
+ export { BASIC_MAPPINGS, EARTHLY_BRANCHES, HEAVENLY_STEMS, SIXTY_CYCLE } from './baziMappingsData';
15
+ export { getTenGod, getTenGodForBranch, getWuxing, } from './baziUtils';
16
+ export { DEFAULT_SHENSHA_VARIANT_CONFIG, ShenShaCalculator, resolveShenShaVariantConfig, } from './baziShenSha/index';
17
+ export type { ShenShaCalculatorOptions, ShenShaKongWangBasis, ShenShaTongZiScope, ShenShaVariantConfig, ShenShaYangRenMode, } from './baziShenSha/index';
18
+ export { matchesRule } from './baziRuleMatcher/index';
19
+ export { determinePattern } from './baziPatternStrategy';
20
+ export { determineUsefulGod } from './baziUsefulGodStrategy';
21
+ export { calculateTrueSolarTime } from './trueSolarTime';
22
+ export { LuckCalculator } from './LuckCalculator';
23
+ export { formatSolarDateTime, getLuckCycleForDate, isDateWithinLuckCycle, shiftSolarDateTimeYears, toNativeDate, toSolarDateTimeInfo, } from './luckTiming';
6
24
  export { analyzeTenGodStructure, analyzeTenGodFlow } from './tenGodAnalysis';
7
25
  export { analyzeStemRootProfile, analyzeExposedStemProfile } from './stemRootAnalysis';
8
26
  export { analyzeRelationStructure } from './relationStructure';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/bazi/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClE,YAAY,EACV,MAAM,EACN,MAAM,EACN,OAAO,EACP,eAAe,EACf,kBAAkB,EAClB,MAAM,GACP,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AACvF,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAC;AAC7F,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AACnF,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/bazi/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EACL,oCAAoC,EACpC,+BAA+B,GAChC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,4BAA4B,EAC5B,yBAAyB,GAC1B,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,gCAAgC,EAChC,gCAAgC,GACjC,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,gBAAgB,EAChB,qBAAqB,EACrB,eAAe,GAChB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,MAAM,EACN,MAAM,EACN,OAAO,EACP,eAAe,EACf,kBAAkB,EAClB,MAAM,GACP,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,eAAe,EACf,yBAAyB,EACzB,gBAAgB,EAChB,WAAW,EACX,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACnG,OAAO,EACL,SAAS,EACT,kBAAkB,EAClB,SAAS,GACV,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,8BAA8B,EAC9B,iBAAiB,EACjB,2BAA2B,GAC5B,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,wBAAwB,EACxB,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EACvB,YAAY,EACZ,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AACvF,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAC;AAC7F,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AACnF,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC"}