mingyu-core 0.1.7 → 0.1.9

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 (200) hide show
  1. package/README.md +11 -3
  2. package/dist/bazi/baziAnalysis.d.ts.map +1 -1
  3. package/dist/bazi/baziAnalysis.js +0 -2
  4. package/dist/bazi/baziAnalysis.js.map +1 -1
  5. package/dist/bazi/baziAnalysisFormatter.d.ts.map +1 -1
  6. package/dist/bazi/baziAnalysisFormatter.js +9 -0
  7. package/dist/bazi/baziAnalysisFormatter.js.map +1 -1
  8. package/dist/bazi/baziCalculator.d.ts.map +1 -1
  9. package/dist/bazi/baziCalculator.js +61 -3
  10. package/dist/bazi/baziCalculator.js.map +1 -1
  11. package/dist/bazi/baziConditionMatchers/branchMatchers.d.ts +1 -0
  12. package/dist/bazi/baziConditionMatchers/branchMatchers.d.ts.map +1 -1
  13. package/dist/bazi/baziConditionMatchers/branchMatchers.js +13 -1
  14. package/dist/bazi/baziConditionMatchers/branchMatchers.js.map +1 -1
  15. package/dist/bazi/baziConditionMatchers/index.d.ts.map +1 -1
  16. package/dist/bazi/baziConditionMatchers/index.js +4 -2
  17. package/dist/bazi/baziConditionMatchers/index.js.map +1 -1
  18. package/dist/bazi/baziConditionMatchers/stemMatchers.d.ts +1 -0
  19. package/dist/bazi/baziConditionMatchers/stemMatchers.d.ts.map +1 -1
  20. package/dist/bazi/baziConditionMatchers/stemMatchers.js +7 -3
  21. package/dist/bazi/baziConditionMatchers/stemMatchers.js.map +1 -1
  22. package/dist/bazi/baziEnhancement/classicPatterns.d.ts.map +1 -1
  23. package/dist/bazi/baziEnhancement/classicPatterns.js +31 -11
  24. package/dist/bazi/baziEnhancement/classicPatterns.js.map +1 -1
  25. package/dist/bazi/baziPromptEnhancement.d.ts.map +1 -1
  26. package/dist/bazi/baziPromptEnhancement.js +49 -0
  27. package/dist/bazi/baziPromptEnhancement.js.map +1 -1
  28. package/dist/bazi/baziShenSha/helpers/dayRules.d.ts +0 -3
  29. package/dist/bazi/baziShenSha/helpers/dayRules.d.ts.map +1 -1
  30. package/dist/bazi/baziShenSha/helpers/dayRules.js +101 -56
  31. package/dist/bazi/baziShenSha/helpers/dayRules.js.map +1 -1
  32. package/dist/bazi/baziShenSha/helpers/disasterRules.d.ts +0 -3
  33. package/dist/bazi/baziShenSha/helpers/disasterRules.d.ts.map +1 -1
  34. package/dist/bazi/baziShenSha/helpers/disasterRules.js +745 -23
  35. package/dist/bazi/baziShenSha/helpers/disasterRules.js.map +1 -1
  36. package/dist/bazi/baziShenSha/helpers/globalRules.d.ts +0 -6
  37. package/dist/bazi/baziShenSha/helpers/globalRules.d.ts.map +1 -1
  38. package/dist/bazi/baziShenSha/helpers/globalRules.js +48 -16
  39. package/dist/bazi/baziShenSha/helpers/globalRules.js.map +1 -1
  40. package/dist/bazi/baziShenSha/helpers/luRules.d.ts +0 -3
  41. package/dist/bazi/baziShenSha/helpers/luRules.d.ts.map +1 -1
  42. package/dist/bazi/baziShenSha/helpers/luRules.js +266 -37
  43. package/dist/bazi/baziShenSha/helpers/luRules.js.map +1 -1
  44. package/dist/bazi/baziShenSha/helpers/marriageRules.d.ts +0 -3
  45. package/dist/bazi/baziShenSha/helpers/marriageRules.d.ts.map +1 -1
  46. package/dist/bazi/baziShenSha/helpers/marriageRules.js +5 -7
  47. package/dist/bazi/baziShenSha/helpers/marriageRules.js.map +1 -1
  48. package/dist/bazi/baziShenSha/helpers/nobleRules.d.ts +0 -3
  49. package/dist/bazi/baziShenSha/helpers/nobleRules.d.ts.map +1 -1
  50. package/dist/bazi/baziShenSha/helpers/nobleRules.js +208 -41
  51. package/dist/bazi/baziShenSha/helpers/nobleRules.js.map +1 -1
  52. package/dist/bazi/baziShenSha/helpers/tenGodAnalysis.d.ts +0 -4
  53. package/dist/bazi/baziShenSha/helpers/tenGodAnalysis.d.ts.map +1 -1
  54. package/dist/bazi/baziShenSha/helpers/tenGodAnalysis.js +0 -8
  55. package/dist/bazi/baziShenSha/helpers/tenGodAnalysis.js.map +1 -1
  56. package/dist/bazi/baziShenSha/index.d.ts +0 -20
  57. package/dist/bazi/baziShenSha/index.d.ts.map +1 -1
  58. package/dist/bazi/baziShenSha/index.js +0 -20
  59. package/dist/bazi/baziShenSha/index.js.map +1 -1
  60. package/dist/bazi/baziShenSha/variants.d.ts +0 -3
  61. package/dist/bazi/baziShenSha/variants.d.ts.map +1 -1
  62. package/dist/bazi/baziShenSha/variants.js.map +1 -1
  63. package/dist/bazi/baziShenShaData.d.ts +0 -20
  64. package/dist/bazi/baziShenShaData.d.ts.map +1 -1
  65. package/dist/bazi/baziShenShaData.js +286 -34
  66. package/dist/bazi/baziShenShaData.js.map +1 -1
  67. package/dist/bazi/baziStrengthAnalyzer.d.ts.map +1 -1
  68. package/dist/bazi/baziStrengthAnalyzer.js +8 -9
  69. package/dist/bazi/baziStrengthAnalyzer.js.map +1 -1
  70. package/dist/bazi/baziTypes.d.ts +16 -0
  71. package/dist/bazi/baziTypes.d.ts.map +1 -1
  72. package/dist/bazi/baziTypes.js.map +1 -1
  73. package/dist/bazi/chinaDst.d.ts +36 -0
  74. package/dist/bazi/chinaDst.d.ts.map +1 -0
  75. package/dist/bazi/chinaDst.js +86 -0
  76. package/dist/bazi/chinaDst.js.map +1 -0
  77. package/dist/bazi/harmonyTransform.d.ts +16 -0
  78. package/dist/bazi/harmonyTransform.d.ts.map +1 -0
  79. package/dist/bazi/harmonyTransform.js +285 -0
  80. package/dist/bazi/harmonyTransform.js.map +1 -0
  81. package/dist/bazi/index.d.ts +6 -0
  82. package/dist/bazi/index.d.ts.map +1 -1
  83. package/dist/bazi/index.js +3 -1
  84. package/dist/bazi/index.js.map +1 -1
  85. package/dist/bazi/lifeStageAnalysis.d.ts.map +1 -1
  86. package/dist/bazi/lifeStageAnalysis.js +0 -3
  87. package/dist/bazi/lifeStageAnalysis.js.map +1 -1
  88. package/dist/bazi/nayinAnalysis.d.ts.map +1 -1
  89. package/dist/bazi/nayinAnalysis.js +0 -1
  90. package/dist/bazi/nayinAnalysis.js.map +1 -1
  91. package/dist/bazi/paipanWarnings.d.ts +25 -0
  92. package/dist/bazi/paipanWarnings.d.ts.map +1 -0
  93. package/dist/bazi/paipanWarnings.js +124 -0
  94. package/dist/bazi/paipanWarnings.js.map +1 -0
  95. package/dist/bazi/relationStructure.d.ts.map +1 -1
  96. package/dist/bazi/relationStructure.js +0 -4
  97. package/dist/bazi/relationStructure.js.map +1 -1
  98. package/dist/bazi/stemRootAnalysis.d.ts.map +1 -1
  99. package/dist/bazi/stemRootAnalysis.js +26 -16
  100. package/dist/bazi/stemRootAnalysis.js.map +1 -1
  101. package/dist/bazi/usefulGodPlacement.d.ts.map +1 -1
  102. package/dist/bazi/usefulGodPlacement.js +0 -2
  103. package/dist/bazi/usefulGodPlacement.js.map +1 -1
  104. package/dist/divination/algorithms/_shared/index.d.ts +1 -1
  105. package/dist/divination/algorithms/_shared/index.d.ts.map +1 -1
  106. package/dist/divination/algorithms/_shared/index.js +1 -1
  107. package/dist/divination/algorithms/_shared/index.js.map +1 -1
  108. package/dist/divination/algorithms/_shared/wuxing.d.ts +9 -8
  109. package/dist/divination/algorithms/_shared/wuxing.d.ts.map +1 -1
  110. package/dist/divination/algorithms/_shared/wuxing.js +40 -18
  111. package/dist/divination/algorithms/_shared/wuxing.js.map +1 -1
  112. package/dist/divination/algorithms/almanac.d.ts +2 -2
  113. package/dist/divination/algorithms/almanac.d.ts.map +1 -1
  114. package/dist/divination/algorithms/almanac.js +197 -32
  115. package/dist/divination/algorithms/almanac.js.map +1 -1
  116. package/dist/divination/algorithms/lenormand.js +2 -2
  117. package/dist/divination/algorithms/liuren/helpers/lessons.d.ts.map +1 -1
  118. package/dist/divination/algorithms/liuren/helpers/lessons.js +11 -7
  119. package/dist/divination/algorithms/liuren/helpers/lessons.js.map +1 -1
  120. package/dist/divination/algorithms/liuren/helpers/transmission.d.ts +6 -0
  121. package/dist/divination/algorithms/liuren/helpers/transmission.d.ts.map +1 -1
  122. package/dist/divination/algorithms/liuren/helpers/transmission.js +38 -0
  123. package/dist/divination/algorithms/liuren/helpers/transmission.js.map +1 -1
  124. package/dist/divination/algorithms/liuren/index.d.ts.map +1 -1
  125. package/dist/divination/algorithms/liuren/index.js +17 -14
  126. package/dist/divination/algorithms/liuren/index.js.map +1 -1
  127. package/dist/divination/algorithms/liuyao.d.ts +57 -0
  128. package/dist/divination/algorithms/liuyao.d.ts.map +1 -1
  129. package/dist/divination/algorithms/liuyao.js +221 -50
  130. package/dist/divination/algorithms/liuyao.js.map +1 -1
  131. package/dist/divination/algorithms/meihua/helpers/methods.d.ts +2 -2
  132. package/dist/divination/algorithms/meihua/helpers/methods.d.ts.map +1 -1
  133. package/dist/divination/algorithms/meihua/helpers/methods.js +47 -7
  134. package/dist/divination/algorithms/meihua/helpers/methods.js.map +1 -1
  135. package/dist/divination/algorithms/meihua/index.d.ts.map +1 -1
  136. package/dist/divination/algorithms/meihua/index.js +22 -15
  137. package/dist/divination/algorithms/meihua/index.js.map +1 -1
  138. package/dist/divination/algorithms/qimen/helpers/_constants.d.ts +2 -4
  139. package/dist/divination/algorithms/qimen/helpers/_constants.d.ts.map +1 -1
  140. package/dist/divination/algorithms/qimen/helpers/_constants.js +3 -5
  141. package/dist/divination/algorithms/qimen/helpers/_constants.js.map +1 -1
  142. package/dist/divination/algorithms/qimen/helpers/classic-patterns.d.ts +15 -7
  143. package/dist/divination/algorithms/qimen/helpers/classic-patterns.d.ts.map +1 -1
  144. package/dist/divination/algorithms/qimen/helpers/classic-patterns.js +814 -127
  145. package/dist/divination/algorithms/qimen/helpers/classic-patterns.js.map +1 -1
  146. package/dist/divination/algorithms/qimen/helpers/directions.d.ts +4 -3
  147. package/dist/divination/algorithms/qimen/helpers/directions.d.ts.map +1 -1
  148. package/dist/divination/algorithms/qimen/helpers/directions.js +16 -9
  149. package/dist/divination/algorithms/qimen/helpers/directions.js.map +1 -1
  150. package/dist/divination/algorithms/qimen/helpers/jushu-extended.d.ts +7 -6
  151. package/dist/divination/algorithms/qimen/helpers/jushu-extended.d.ts.map +1 -1
  152. package/dist/divination/algorithms/qimen/helpers/jushu-extended.js +55 -24
  153. package/dist/divination/algorithms/qimen/helpers/jushu-extended.js.map +1 -1
  154. package/dist/divination/algorithms/qimen/helpers/jushu.d.ts +20 -13
  155. package/dist/divination/algorithms/qimen/helpers/jushu.d.ts.map +1 -1
  156. package/dist/divination/algorithms/qimen/helpers/jushu.js +96 -61
  157. package/dist/divination/algorithms/qimen/helpers/jushu.js.map +1 -1
  158. package/dist/divination/algorithms/qimen/helpers/layout.d.ts +1 -1
  159. package/dist/divination/algorithms/qimen/helpers/layout.d.ts.map +1 -1
  160. package/dist/divination/algorithms/qimen/helpers/layout.js +18 -24
  161. package/dist/divination/algorithms/qimen/helpers/layout.js.map +1 -1
  162. package/dist/divination/algorithms/qimen/helpers/pattern-combos.d.ts +40 -0
  163. package/dist/divination/algorithms/qimen/helpers/pattern-combos.d.ts.map +1 -0
  164. package/dist/divination/algorithms/qimen/helpers/pattern-combos.js +1799 -0
  165. package/dist/divination/algorithms/qimen/helpers/pattern-combos.js.map +1 -0
  166. package/dist/divination/algorithms/qimen/helpers/patterns.d.ts +6 -5
  167. package/dist/divination/algorithms/qimen/helpers/patterns.d.ts.map +1 -1
  168. package/dist/divination/algorithms/qimen/helpers/patterns.js +74 -22
  169. package/dist/divination/algorithms/qimen/helpers/patterns.js.map +1 -1
  170. package/dist/divination/algorithms/qimen/helpers/seasonality.d.ts +1 -1
  171. package/dist/divination/algorithms/qimen/helpers/seasonality.d.ts.map +1 -1
  172. package/dist/divination/algorithms/qimen/helpers/stem-pair-patterns.d.ts +8 -1
  173. package/dist/divination/algorithms/qimen/helpers/stem-pair-patterns.d.ts.map +1 -1
  174. package/dist/divination/algorithms/qimen/helpers/stem-pair-patterns.js +731 -67
  175. package/dist/divination/algorithms/qimen/helpers/stem-pair-patterns.js.map +1 -1
  176. package/dist/divination/algorithms/qimen/helpers/ying-qi.d.ts +10 -6
  177. package/dist/divination/algorithms/qimen/helpers/ying-qi.d.ts.map +1 -1
  178. package/dist/divination/algorithms/qimen/helpers/ying-qi.js +58 -25
  179. package/dist/divination/algorithms/qimen/helpers/ying-qi.js.map +1 -1
  180. package/dist/divination/algorithms/qimen/index.d.ts.map +1 -1
  181. package/dist/divination/algorithms/qimen/index.js +112 -21
  182. package/dist/divination/algorithms/qimen/index.js.map +1 -1
  183. package/dist/divination/algorithms/xiaoliuren.d.ts +1 -1
  184. package/dist/divination/algorithms/xiaoliuren.js +12 -12
  185. package/dist/divination/algorithms/xiaoliuren.js.map +1 -1
  186. package/dist/divination/divination-data.d.ts.map +1 -1
  187. package/dist/divination/divination-data.js +2 -4
  188. package/dist/divination/divination-data.js.map +1 -1
  189. package/dist/types/analysis.d.ts +21 -0
  190. package/dist/types/analysis.d.ts.map +1 -1
  191. package/dist/types/divination.d.ts +84 -2
  192. package/dist/types/divination.d.ts.map +1 -1
  193. package/dist/ziwei/iztro/build-analysis-payload/index.d.ts.map +1 -1
  194. package/dist/ziwei/iztro/build-analysis-payload/index.js +7 -1
  195. package/dist/ziwei/iztro/build-analysis-payload/index.js.map +1 -1
  196. package/dist/ziwei/iztro/pattern-detection.d.ts +4 -2
  197. package/dist/ziwei/iztro/pattern-detection.d.ts.map +1 -1
  198. package/dist/ziwei/iztro/pattern-detection.js +1300 -184
  199. package/dist/ziwei/iztro/pattern-detection.js.map +1 -1
  200. package/package.json +1 -1
@@ -53,6 +53,44 @@ export function getPatternTag(pattern) {
53
53
  }
54
54
  return '递传';
55
55
  }
56
+ const TRANSMISSION_BRANCH_CLASS_GUA_TI = [
57
+ { name: '三交卦', branches: ['子', '午', '卯', '酉'] },
58
+ { name: '玄胎卦', branches: ['寅', '申', '巳', '亥'] },
59
+ { name: '稼穑卦', branches: ['辰', '戌', '丑', '未'] },
60
+ ];
61
+ const TRANSMISSION_SANHE_GUA_TI = [
62
+ { name: '曲直卦', branches: ['亥', '卯', '未'] },
63
+ { name: '从革卦', branches: ['巳', '酉', '丑'] },
64
+ { name: '炎上卦', branches: ['寅', '午', '戌'] },
65
+ { name: '润下卦', branches: ['申', '子', '辰'] },
66
+ ];
67
+ function hasSameBranchSet(actualBranches, expectedBranches) {
68
+ return (actualBranches.length === expectedBranches.length &&
69
+ expectedBranches.every((branch) => actualBranches.includes(branch)));
70
+ }
71
+ /**
72
+ * 识别三传成局课体。
73
+ * 《六壬指南》列三交、玄胎、稼穑及曲直、从革、炎上、润下等三传课体;
74
+ * 这里仅按三传地支结构打标签,吉凶仍交由后续断课结合用神、天将与旺衰判断。
75
+ */
76
+ export function getLiurenTransmissionGuaTi(branches) {
77
+ const uniqueBranches = Array.from(new Set(branches));
78
+ if (uniqueBranches.length !== 3) {
79
+ return [];
80
+ }
81
+ const guaTi = [];
82
+ for (const item of TRANSMISSION_BRANCH_CLASS_GUA_TI) {
83
+ if (uniqueBranches.every((branch) => item.branches.includes(branch))) {
84
+ guaTi.push(item.name);
85
+ }
86
+ }
87
+ for (const item of TRANSMISSION_SANHE_GUA_TI) {
88
+ if (hasSameBranchSet(uniqueBranches, item.branches)) {
89
+ guaTi.push(item.name);
90
+ }
91
+ }
92
+ return guaTi;
93
+ }
56
94
  export function buildTransmissionDetail(rule, _pattern, transmissions, classicalRule) {
57
95
  const initialTransmission = transmissions[0];
58
96
  if (!initialTransmission) {
@@ -1 +1 @@
1
- {"version":3,"file":"transmission.js","sourceRoot":"","sources":["../../../../../src/divination/algorithms/liuren/helpers/transmission.ts"],"names":[],"mappings":"AAMA,MAAM,YAAY,GAA2B;IAC3C,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;CACP,CAAC;AAEF,MAAM,UAAU,qBAAqB,CAAC,KAAkC,EAAE,QAAgB;IACxF,MAAM,cAAc,GAAgD;QAClE,EAAE,EAAE,MAAM;QACV,EAAE,EAAE,MAAM;QACV,EAAE,EAAE,MAAM;KACX,CAAC;IAEF,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,eAAe,CAAC;IACjD,CAAC;IACD,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,gBAAgB,CAAC;IAClD,CAAC;IACD,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,eAAe,CAAC;IACjD,CAAC;IAED,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,eAAe,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,GAAW,EACX,KAAa,EACb,EAAU;IAEV,IAAI,GAAG,KAAK,KAAK,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAA0C;IACtE,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,IAAY,EACZ,QAA2C,EAC3C,aAAmC,EACnC,aAAmC;IAEnC,MAAM,mBAAmB,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IAC7C,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IACD,MAAM,UAAU,GAAG,aAAa;QAC9B,CAAC,CAAC,SAAS,aAAa,CAAC,MAAM,IAAI,aAAa,CAAC,IAAI,IAAI,aAAa,CAAC,OAAO,EAAE;QAChF,CAAC,CAAC,EAAE,CAAC;IACP,OAAO,OAAO,IAAI,KAAK,mBAAmB,CAAC,KAAK,GAAG,mBAAmB,CAAC,MAAM,QAAQ,UAAU,GAAG,CAAC;AACrG,CAAC"}
1
+ {"version":3,"file":"transmission.js","sourceRoot":"","sources":["../../../../../src/divination/algorithms/liuren/helpers/transmission.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/divination/algorithms/liuren/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAsB,MAAM,2BAA2B,CAAC;AAqPhF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAAC,UAAU,CAAC,EAAE,IAAI,GAAG,UAAU,CAkJ5D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/divination/algorithms/liuren/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAsB,MAAM,2BAA2B,CAAC;AAwPhF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAAC,UAAU,CAAC,EAAE,IAAI,GAAG,UAAU,CAqJ5D"}
@@ -5,7 +5,7 @@ import { getYiMa, getTaoHua } from '../_shared/index.js';
5
5
  import { buildHeavenlyPlate, DIZHI, describeRelation, getDayStemResidence, getNoblemanBranch, getPlateItemByBranch, getUnderByUpper, getUpperByUnder, TIANJIANG_ATTRIBUTES, } from './helpers/plate.js';
6
6
  import { buildFourLessons, resolveInitialTransmission } from './helpers/lessons.js';
7
7
  import { resolveLiurenClassicalRules } from './helpers/classical-rules.js';
8
- import { buildTransmissionDetail, buildTransmissionNote, getPatternTag, getTransmissionPattern, } from './helpers/transmission.js';
8
+ import { buildTransmissionDetail, buildTransmissionNote, getLiurenTransmissionGuaTi, getPatternTag, getTransmissionPattern, } from './helpers/transmission.js';
9
9
  const MONTH_LEADER_BY_ZHONGQI = {
10
10
  雨水: '亥',
11
11
  春分: '戌',
@@ -72,20 +72,20 @@ function buildShenShaSummary(yearBranch, monthBranch, dayBranch, dayStem) {
72
72
  const peach = getTaoHua(dayBranch);
73
73
  if (peach)
74
74
  items.push(`桃花在${peach}`);
75
- // 破碎煞/红沙(日支取):申子辰在酉、亥卯未在巳、寅午戌在卯、巳酉丑在丑
75
+ // 破碎煞/红砂(日支取):《六壬指南》“四孟金鸡,四仲蛇,四季丑日是红砂”。
76
76
  const poSuiMap = {
77
- 子: '酉',
77
+ 寅: '酉',
78
78
  申: '酉',
79
- 辰: '酉',
80
- 亥: '',
79
+ 巳: '酉',
80
+ 亥: '',
81
+ 子: '巳',
81
82
  卯: '巳',
82
- 未: '巳',
83
- 寅: '',
84
- 午: '',
85
- 戌: '',
86
- 巳: '丑',
87
- 酉: '丑',
83
+ 午: '巳',
84
+ 酉: '',
85
+ 辰: '',
86
+ 戌: '',
88
87
  丑: '丑',
88
+ 未: '丑',
89
89
  };
90
90
  const poSui = poSuiMap[dayBranch];
91
91
  if (poSui)
@@ -179,10 +179,10 @@ function buildShenShaSummary(yearBranch, monthBranch, dayBranch, dayStem) {
179
179
  if (lu)
180
180
  items.push(`日禄在${lu}`);
181
181
  // ===== 年支取神煞 =====
182
- // 天罗地网:辰巳为天罗(属辰),戌亥为地网(属戌)
183
- if (yearBranch === '辰' || yearBranch === '巳')
184
- items.push('命带天罗');
182
+ // 天罗地网:戌亥为天罗,辰巳为地网。
185
183
  if (yearBranch === '戌' || yearBranch === '亥')
184
+ items.push('命带天罗');
185
+ if (yearBranch === '辰' || yearBranch === '巳')
186
186
  items.push('命带地网');
187
187
  return items;
188
188
  }
@@ -284,6 +284,8 @@ export function generateLiuren(customDate) {
284
284
  threeTransmissions.some((item) => xunKong.includes(item.branch)) ? '空亡入传' : '传不逢空',
285
285
  getPatternTag(transmissionPattern),
286
286
  ];
287
+ const guaTi = getLiurenTransmissionGuaTi(transmissionBranches);
288
+ patternTags.push(...guaTi);
287
289
  const lessonSummary = `四课源于日干寄宫${dayStemResidence}与日支${dayBranch},关系呈${fourLessons
288
290
  .map((item) => item.relation)
289
291
  .join('、')},重点先看${initialResult.tag}落点。`;
@@ -331,6 +333,7 @@ export function generateLiuren(customDate) {
331
333
  classicalRules,
332
334
  lessonSummary: `${lessonSummary} 当前节气为${timeInfo.jieQi}。`,
333
335
  transmissionSummary,
336
+ guaTi,
334
337
  shenShaSummary,
335
338
  tianJiangProps,
336
339
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/divination/algorithms/liuren/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/divination/algorithms/liuren/index.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,49 @@
11
11
  * 6. 六神:根据起卦日的日干,安上青龙、朱雀、勾陈、螣蛇、白虎、玄武。
12
12
  * 7. 变卦分析:分析动爻变化后的爻,形成“父化财”等判断依据。
13
13
  */
14
+ /**
15
+ * 判断化进神/退神。
16
+ * 按《增删卜易》进神退神章明表取用,不按十二地支循环外推。
17
+ */
18
+ export declare function getLiuyaoChangeDirection(originalBranch: string, changedBranch: string): '化进神' | '化退神' | null;
19
+ export type LiuyaoHexagramRelation = '六合卦' | '六冲卦';
20
+ export type LiuyaoFanFuScope = '内卦' | '外卦' | '内外';
21
+ export type LiuyaoFanFuKind = '卦反吟' | '爻反吟' | '伏吟';
22
+ export interface LiuyaoFanFuRelationItem {
23
+ kind: LiuyaoFanFuKind;
24
+ scope: LiuyaoFanFuScope;
25
+ label: string;
26
+ description: string;
27
+ }
28
+ export interface LiuyaoFanFuRelations {
29
+ /** 反吟结构,可能同时存在内卦、外卦不同类型 */
30
+ fanyin: LiuyaoFanFuRelationItem[];
31
+ /** 伏吟结构,按动变后纳甲地支不变识别 */
32
+ fuyin: LiuyaoFanFuRelationItem[];
33
+ /** 便于前端与提示词直接展示的标签 */
34
+ labels: string[];
35
+ }
36
+ export type LiuyaoPalaceStage = '首卦' | '一世' | '二世' | '三世' | '四世' | '五世' | '游魂' | '归魂';
37
+ /**
38
+ * 判断整卦层面的六合卦/六冲卦。
39
+ * 《增删卜易》六合章、六冲章以初四、二五、三上三组爻支相合/相冲定整卦关系,
40
+ * 如天地否为六合卦、乾为天为六冲卦。
41
+ */
42
+ export declare function getLiuyaoHexagramRelation(hexagramName: string): LiuyaoHexagramRelation | null;
43
+ export declare function getLiuyaoHexagramRelations(originalName: string, changedName: string | undefined, hasChangingYaos: boolean): {
44
+ original: LiuyaoHexagramRelation;
45
+ changed: LiuyaoHexagramRelation;
46
+ transition: string;
47
+ };
48
+ /**
49
+ * 判断六爻卦变层面的反吟、伏吟。
50
+ *
51
+ * 《增删卜易》“反吟伏吟”:
52
+ * - 卦反吟:乾巽、坎离、震兑、坤艮相变。
53
+ * - 爻反吟:对应爻纳甲地支逐位相冲。
54
+ * - 伏吟:卦有动变,但变后六爻纳甲地支不变,并分内卦、外卦、内外。
55
+ */
56
+ export declare function getLiuyaoFanFuRelations(originalName: string, changedName: string | undefined, hasChangingYaos: boolean): LiuyaoFanFuRelations;
14
57
  declare function buildHiddenSpirits(params: {
15
58
  originalName: string;
16
59
  palace: {
@@ -37,6 +80,13 @@ declare function buildHiddenSpirits(params: {
37
80
  wuxing: string;
38
81
  };
39
82
  }[];
83
+ /**
84
+ * 安世应
85
+ * @param hexagramName 卦名
86
+ * @param palaceName 宫位名
87
+ * @returns 返回世爻和应爻所在的爻位(1-6)
88
+ */
89
+ export declare function getLiuyaoPalaceStage(hexagramName: string, palaceName?: string): LiuyaoPalaceStage;
40
90
  /**
41
91
  * 生成六爻卦盘
42
92
  *
@@ -89,6 +139,7 @@ export declare function generateLiuyao(customDate?: Date): {
89
139
  name: string;
90
140
  wuxing: string;
91
141
  };
142
+ palaceStage: LiuyaoPalaceStage;
92
143
  ganzhi: any;
93
144
  specialPattern: "静卦" | "独静卦" | "全动卦" | "乾卦用九" | "坤卦用六";
94
145
  specialAdvice: string;
@@ -142,6 +193,12 @@ export declare function generateLiuyao(customDate?: Date): {
142
193
  wuxing: string;
143
194
  };
144
195
  }[];
196
+ hexagramRelations: {
197
+ original: LiuyaoHexagramRelation;
198
+ changed: LiuyaoHexagramRelation;
199
+ transition: string;
200
+ };
201
+ fanfuRelations: LiuyaoFanFuRelations;
145
202
  sanheWithDay: {
146
203
  group: string;
147
204
  members: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"liuyao.d.ts","sourceRoot":"","sources":["../../../src/divination/algorithms/liuyao.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAgRH,iBAAS,kBAAkB,CAAC,MAAM,EAAE;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,UAAU,EAAE,KAAK,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IACH,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;;;;;;;;;;;;IA0BA;AAkGD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAAC,UAAU,CAAC,EAAE,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiGd,QAAG,GAAG,QAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eA9Y/B,MAAM;iBAAW,MAAM,EAAE;qBAAe,MAAM;;;eAA9C,MAAM;iBAAW,MAAM,EAAE;qBAAe,MAAM;;;kBAmcjB,MAAM,EAAE;cAAQ,MAAM;;;;;;;;EA6E9D;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
1
+ {"version":3,"file":"liuyao.d.ts","sourceRoot":"","sources":["../../../src/divination/algorithms/liuyao.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAuMH;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,cAAc,EAAE,MAAM,EACtB,aAAa,EAAE,MAAM,GACpB,KAAK,GAAG,KAAK,GAAG,IAAI,CAQtB;AAED,MAAM,MAAM,sBAAsB,GAAG,KAAK,GAAG,KAAK,CAAC;AACnD,MAAM,MAAM,gBAAgB,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAClD,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC;AAEnD,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,eAAe,CAAC;IACtB,KAAK,EAAE,gBAAgB,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC,2BAA2B;IAC3B,MAAM,EAAE,uBAAuB,EAAE,CAAC;IAClC,wBAAwB;IACxB,KAAK,EAAE,uBAAuB,EAAE,CAAC;IACjC,sBAAsB;IACtB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,MAAM,iBAAiB,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAuBtF;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,sBAAsB,GAAG,IAAI,CAmB7F;AAED,wBAAgB,0BAA0B,CACxC,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,eAAe,EAAE,OAAO;;;;EAezB;AA6ED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,eAAe,EAAE,OAAO,GACvB,oBAAoB,CAwDtB;AA+CD,iBAAS,kBAAkB,CAAC,MAAM,EAAE;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,UAAU,EAAE,KAAK,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IACH,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;;;;;;;;;;;;IA0BA;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAejG;AAwFD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAAC,UAAU,CAAC,EAAE,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA8Gd,QAAG,GAAG,QAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAxoB/B,MAAM;iBAAW,MAAM,EAAE;qBAAe,MAAM;;;eAA9C,MAAM;iBAAW,MAAM,EAAE;qBAAe,MAAM;;;kBA6rBjB,MAAM,EAAE;cAAQ,MAAM;;;;;;;;EAiF9D;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
@@ -126,7 +126,7 @@ function checkSanheWithTrigger(yaoBranches, triggerBranch, triggerLabel) {
126
126
  * - 回头克:变爻克动爻
127
127
  * - 回头冲:变爻冲动爻(六冲)
128
128
  * - 化空:变爻落旬空
129
- * - 化进/化退:同五行递进退(由 getChangeDirection 判定)
129
+ * - 化进/化退:同五行递进退(由 getLiuyaoChangeDirection 判定)
130
130
  * - 比和:同五行同比和
131
131
  */
132
132
  function getChangeRelation(originalWuxing, changedWuxing, originalBranch, changedBranch, changedIsVoid) {
@@ -156,44 +156,194 @@ function isDayBreak(branch, dayBranch) {
156
156
  function isMonthBreak(branch, monthBranch) {
157
157
  return isLiuchong(branch, monthBranch);
158
158
  }
159
+ const LIUYAO_ADVANCING_CHANGE = {
160
+ 亥: '子',
161
+ 寅: '卯',
162
+ 巳: '午',
163
+ 申: '酉',
164
+ 丑: '辰',
165
+ 辰: '未',
166
+ 未: '戌',
167
+ };
168
+ const LIUYAO_RETREATING_CHANGE = {
169
+ 子: '亥',
170
+ 卯: '寅',
171
+ 午: '巳',
172
+ 酉: '申',
173
+ 辰: '丑',
174
+ 未: '辰',
175
+ 戌: '未',
176
+ };
159
177
  /**
160
- * 判断化进神/退神
161
- * 化进神:动爻变出的爻与原爻同五行,且顺序递进(如寅木化卯木)
162
- * 化退神:动爻变出的爻与原爻同五行,且顺序递退(如卯木化寅木)
178
+ * 判断化进神/退神。
179
+ * 按《增删卜易》进神退神章明表取用,不按十二地支循环外推。
163
180
  */
164
- function getChangeDirection(originalBranch, changedBranch) {
165
- const originalWuxing = BRANCH_WUXING[originalBranch];
166
- const changedWuxing = BRANCH_WUXING[changedBranch];
167
- // 必须同五行
168
- if (!originalWuxing || !changedWuxing || originalWuxing !== changedWuxing) {
169
- return null;
170
- }
171
- const originalIndex = BRANCH_ORDER.indexOf(originalBranch);
172
- const changedIndex = BRANCH_ORDER.indexOf(changedBranch);
173
- if (originalIndex === -1 || changedIndex === -1) {
174
- return null;
175
- }
176
- // 计算顺时针距离(进)
177
- const forwardDistance = (changedIndex - originalIndex + 12) % 12;
178
- // 计算逆时针距离(退)
179
- const backwardDistance = (originalIndex - changedIndex + 12) % 12;
180
- // 进神:顺行一位(距离1)
181
- if (forwardDistance === 1) {
181
+ export function getLiuyaoChangeDirection(originalBranch, changedBranch) {
182
+ if (LIUYAO_ADVANCING_CHANGE[originalBranch] === changedBranch) {
182
183
  return '化进神';
183
184
  }
184
- // 退神:逆行一位(距离1)
185
- if (backwardDistance === 1) {
185
+ if (LIUYAO_RETREATING_CHANGE[originalBranch] === changedBranch) {
186
186
  return '化退神';
187
187
  }
188
- // 土支(辰戌丑未)进神退神:《增删卜易》辰→未→戌→丑 顺行3位为进神,逆行3位为退神
189
- if (originalWuxing === '土') {
190
- if (forwardDistance === 3)
191
- return '化进神';
192
- if (backwardDistance === 3)
193
- return '化退神';
188
+ return null;
189
+ }
190
+ const WHOLE_HEXAGRAM_PAIR_INDEXES = [
191
+ [0, 3],
192
+ [1, 4],
193
+ [2, 5],
194
+ ];
195
+ const LIUYAO_FANYIN_TRIGRAM_PAIRS = {
196
+ 乾: '巽',
197
+ 巽: '乾',
198
+ 坎: '离',
199
+ 离: '坎',
200
+ 震: '兑',
201
+ 兑: '震',
202
+ 坤: '艮',
203
+ 艮: '坤',
204
+ };
205
+ function trimHexagramRelationSuffix(relation) {
206
+ return relation.replace(/卦$/, '');
207
+ }
208
+ /**
209
+ * 判断整卦层面的六合卦/六冲卦。
210
+ * 《增删卜易》六合章、六冲章以初四、二五、三上三组爻支相合/相冲定整卦关系,
211
+ * 如天地否为六合卦、乾为天为六冲卦。
212
+ */
213
+ export function getLiuyaoHexagramRelation(hexagramName) {
214
+ const branches = hexagramNaJia[hexagramName];
215
+ if (!branches || branches.length !== 6) {
216
+ return null;
217
+ }
218
+ if (WHOLE_HEXAGRAM_PAIR_INDEXES.every(([lower, upper]) => isLiuhe(branches[lower], branches[upper]))) {
219
+ return '六合卦';
220
+ }
221
+ if (WHOLE_HEXAGRAM_PAIR_INDEXES.every(([lower, upper]) => isLiuchong(branches[lower], branches[upper]))) {
222
+ return '六冲卦';
194
223
  }
195
224
  return null;
196
225
  }
226
+ export function getLiuyaoHexagramRelations(originalName, changedName, hasChangingYaos) {
227
+ const original = getLiuyaoHexagramRelation(originalName);
228
+ const changed = hasChangingYaos && changedName ? getLiuyaoHexagramRelation(changedName) : null;
229
+ const transition = original && changed
230
+ ? `${trimHexagramRelationSuffix(original)}变${trimHexagramRelationSuffix(changed)}`
231
+ : null;
232
+ return {
233
+ original,
234
+ changed,
235
+ transition,
236
+ };
237
+ }
238
+ function getHexagramDataByName(hexagramName) {
239
+ return hexagramsData.find((item) => item.name === hexagramName);
240
+ }
241
+ function isTrigramFanyin(originalTrigram, changedTrigram) {
242
+ return LIUYAO_FANYIN_TRIGRAM_PAIRS[originalTrigram] === changedTrigram;
243
+ }
244
+ function getScope(lowerMatched, upperMatched) {
245
+ if (lowerMatched && upperMatched)
246
+ return '内外';
247
+ if (lowerMatched)
248
+ return '内卦';
249
+ if (upperMatched)
250
+ return '外卦';
251
+ return null;
252
+ }
253
+ function getScopes(scope) {
254
+ return scope === '内外' ? ['内卦', '外卦'] : [scope];
255
+ }
256
+ function buildFanyinLabel(kind, scope) {
257
+ if (kind === '爻反吟') {
258
+ return scope === '内外' ? '内外爻反吟' : `${scope}爻反吟`;
259
+ }
260
+ return scope === '内外' ? '内外反吟' : `${scope}反吟`;
261
+ }
262
+ function buildFanyinDescription(kind, scope, original, changed) {
263
+ const parts = getScopes(scope).map((item) => item === '内卦'
264
+ ? `内卦${original.lower}变${changed.lower}`
265
+ : `外卦${original.upper}变${changed.upper}`);
266
+ const rule = kind === '爻反吟'
267
+ ? '对应纳甲地支逐位相冲'
268
+ : '按乾巽、坎离、震兑、坤艮相变';
269
+ return `${parts.join(',')},${rule}`;
270
+ }
271
+ function buildFuyinDescription(scope, original, changed) {
272
+ const parts = getScopes(scope).map((item) => item === '内卦'
273
+ ? `内卦${original.lower}变${changed.lower}`
274
+ : `外卦${original.upper}变${changed.upper}`);
275
+ return `${parts.join(',')},动变后纳甲地支不变`;
276
+ }
277
+ function pushFanyinItem(items, kind, scope, original, changed) {
278
+ if (!kind || !scope) {
279
+ return;
280
+ }
281
+ items.push({
282
+ kind,
283
+ scope,
284
+ label: buildFanyinLabel(kind, scope),
285
+ description: buildFanyinDescription(kind, scope, original, changed),
286
+ });
287
+ }
288
+ /**
289
+ * 判断六爻卦变层面的反吟、伏吟。
290
+ *
291
+ * 《增删卜易》“反吟伏吟”:
292
+ * - 卦反吟:乾巽、坎离、震兑、坤艮相变。
293
+ * - 爻反吟:对应爻纳甲地支逐位相冲。
294
+ * - 伏吟:卦有动变,但变后六爻纳甲地支不变,并分内卦、外卦、内外。
295
+ */
296
+ export function getLiuyaoFanFuRelations(originalName, changedName, hasChangingYaos) {
297
+ const empty = { fanyin: [], fuyin: [], labels: [] };
298
+ if (!hasChangingYaos || !changedName) {
299
+ return empty;
300
+ }
301
+ const original = getHexagramDataByName(originalName);
302
+ const changed = getHexagramDataByName(changedName);
303
+ const originalBranches = hexagramNaJia[originalName];
304
+ const changedBranches = hexagramNaJia[changedName];
305
+ if (!original || !changed || !originalBranches || !changedBranches) {
306
+ return empty;
307
+ }
308
+ const lowerYaoFanyin = originalBranches
309
+ .slice(0, 3)
310
+ .every((branch, index) => isLiuchong(branch, changedBranches[index]));
311
+ const upperYaoFanyin = originalBranches
312
+ .slice(3)
313
+ .every((branch, index) => isLiuchong(branch, changedBranches[index + 3]));
314
+ const lowerGuaFanyin = isTrigramFanyin(original.lower, changed.lower);
315
+ const upperGuaFanyin = isTrigramFanyin(original.upper, changed.upper);
316
+ const lowerFanyinKind = lowerYaoFanyin ? '爻反吟' : lowerGuaFanyin ? '卦反吟' : null;
317
+ const upperFanyinKind = upperYaoFanyin ? '爻反吟' : upperGuaFanyin ? '卦反吟' : null;
318
+ const fanyin = [];
319
+ if (lowerFanyinKind && lowerFanyinKind === upperFanyinKind) {
320
+ pushFanyinItem(fanyin, lowerFanyinKind, '内外', original, changed);
321
+ }
322
+ else {
323
+ pushFanyinItem(fanyin, lowerFanyinKind, lowerFanyinKind ? '内卦' : null, original, changed);
324
+ pushFanyinItem(fanyin, upperFanyinKind, upperFanyinKind ? '外卦' : null, original, changed);
325
+ }
326
+ const lowerFuyin = original.lower !== changed.lower &&
327
+ originalBranches.slice(0, 3).every((branch, index) => branch === changedBranches[index]);
328
+ const upperFuyin = original.upper !== changed.upper &&
329
+ originalBranches.slice(3).every((branch, index) => branch === changedBranches[index + 3]);
330
+ const fuyinScope = getScope(lowerFuyin, upperFuyin);
331
+ const fuyin = fuyinScope
332
+ ? [
333
+ {
334
+ kind: '伏吟',
335
+ scope: fuyinScope,
336
+ label: fuyinScope === '内外' ? '内外伏吟' : `${fuyinScope}伏吟`,
337
+ description: buildFuyinDescription(fuyinScope, original, changed),
338
+ },
339
+ ]
340
+ : [];
341
+ return {
342
+ fanyin,
343
+ fuyin,
344
+ labels: [...fanyin, ...fuyin].map((item) => item.label),
345
+ };
346
+ }
197
347
  /**
198
348
  * 寻宫:根据卦名查找其所属的八宫
199
349
  * @param hexagramName 卦名,如“乾为天”
@@ -263,20 +413,33 @@ function buildHiddenSpirits(params) {
263
413
  * @param palaceName 宫位名
264
414
  * @returns 返回世爻和应爻所在的爻位(1-6)
265
415
  */
266
- function getShiYing(hexagramName, palaceName) {
416
+ export function getLiuyaoPalaceStage(hexagramName, palaceName) {
267
417
  // 京房八宫卦序,决定了世爻的位置
268
418
  const palaceOrder = ['首卦', '一世', '二世', '三世', '四世', '五世', '游魂', '归魂'];
269
- const shiYaoMap = { 首卦: 6, 一世: 1, 二世: 2, 三世: 3, 四世: 4, 五世: 5, 游魂: 4, 归魂: 3 };
270
- const hexagramsInPalace = palaceHexagrams[palaceName];
419
+ const resolvedPalaceName = palaceName || hexagramPalaceMap[hexagramName];
420
+ const hexagramsInPalace = palaceHexagrams[resolvedPalaceName];
271
421
  if (!hexagramsInPalace) {
272
- throw new Error(`找不到宫位 "${palaceName}" 的卦象列表。`);
422
+ throw new Error(`找不到宫位 "${resolvedPalaceName}" 的卦象列表。`);
273
423
  }
274
424
  const generation = hexagramsInPalace.indexOf(hexagramName);
275
425
  if (generation === -1) {
276
- // 理论上不应该发生,因为 palaceName 是从 hexagramName 查出来的
277
- throw new Error(`卦象 "${hexagramName}" 不在宫位 "${palaceName}" 的列表中。`);
426
+ throw new Error(`卦象 "${hexagramName}" 不在宫位 "${resolvedPalaceName}" 的列表中。`);
278
427
  }
279
- const shiYao = shiYaoMap[palaceOrder[generation]];
428
+ return palaceOrder[generation];
429
+ }
430
+ function getShiYing(hexagramName, palaceName) {
431
+ const shiYaoMap = {
432
+ 首卦: 6,
433
+ 一世: 1,
434
+ 二世: 2,
435
+ 三世: 3,
436
+ 四世: 4,
437
+ 五世: 5,
438
+ 游魂: 4,
439
+ 归魂: 3,
440
+ };
441
+ const palaceStage = getLiuyaoPalaceStage(hexagramName, palaceName);
442
+ const shiYao = shiYaoMap[palaceStage];
280
443
  // 应爻永远在世爻之上或之下三位
281
444
  const yingYao = shiYao + 3 > 6 ? shiYao - 3 : shiYao + 3;
282
445
  return { shi: shiYao, ying: yingYao };
@@ -391,6 +554,7 @@ export function generateLiuyao(customDate) {
391
554
  const palace = findPalace(mainHexagram.name);
392
555
  const yaosInfo = getNaJiaAndLiuQin(mainHexagram.name, palace);
393
556
  const shiYing = getShiYing(mainHexagram.name, palace.name);
557
+ const palaceStage = getLiuyaoPalaceStage(mainHexagram.name, palace.name);
394
558
  const voids = getVoidBranches(ganzhi.day);
395
559
  //【核心修正:增加变卦分析】
396
560
  // 六爻占断,吉凶之机尽在“动变”二字。静爻观其本,动爻察其变。
@@ -408,12 +572,16 @@ export function generateLiuyao(customDate) {
408
572
  }))
409
573
  .filter((yao) => yao.isChanging);
410
574
  const { specialPattern, specialAdvice, isChaotic, chaoticReason } = getSpecialPattern(changingYaosResult.length, mainHexagram.name);
575
+ const hexagramRelations = getLiuyaoHexagramRelations(mainHexagram.name, changedHexagram.name, changingYaosResult.length > 0);
576
+ const fanfuRelations = getLiuyaoFanFuRelations(mainHexagram.name, changedHexagram.name, changingYaosResult.length > 0);
411
577
  const yaosDetail = yaosInfo.map((info, index) => {
412
578
  const isChanging = rawYaos[index] === 6 || rawYaos[index] === 9;
413
579
  const changedInfo = isChanging ? changedYaosInfo[index] : null;
414
580
  const isDayBreakFlag = isDayBreak(info.dizhi, dayBranch);
415
581
  const isMonthBreakFlag = isMonthBreak(info.dizhi, monthBranch);
416
- const changeDirection = changedInfo ? getChangeDirection(info.dizhi, changedInfo.dizhi) : null;
582
+ const changeDirection = changedInfo
583
+ ? getLiuyaoChangeDirection(info.dizhi, changedInfo.dizhi)
584
+ : null;
417
585
  // 月令旺衰:按月建定爻之五行的旺相休囚死。旺相为有力,休囚死为无力。
418
586
  const seasonState = getSeasonState(info.wuxing, monthBranch);
419
587
  // 暗动:静爻被日辰冲为暗动(旺相有力,暗中发动);休囚被日冲为日破(无力)。
@@ -496,24 +664,24 @@ export function generateLiuyao(customDate) {
496
664
  sanxingInYaos.push({ branches: [branch, branch], type: '自刑' });
497
665
  }
498
666
  }
499
- // 卦身(按六爻传统,世爻所在位置对应卦身地支):
500
- // 阳世:世爻为阳,从子上顺行——初爻子、二爻寅、三爻辰、四爻午、五爻申、六爻戌
501
- // 阴世:世爻为阴,从午上逆行——初爻午、二爻辰、三爻寅、四爻子、五爻戌、六爻申
667
+ // 月卦身(按六爻传统“阳世从子月起,阴世从午月生,从初数至世方真”):
668
+ // 阳世:初爻子、二爻丑、三爻寅、四爻卯、五爻辰、六爻巳
669
+ // 阴世:初爻午、二爻未、三爻申、四爻酉、五爻戌、六爻亥
502
670
  const SHI_YANG_TO_GUA_SHEN = {
503
671
  1: '子',
504
- 2: '',
505
- 3: '',
506
- 4: '',
507
- 5: '',
508
- 6: '',
672
+ 2: '',
673
+ 3: '',
674
+ 4: '',
675
+ 5: '',
676
+ 6: '',
509
677
  };
510
678
  const SHI_YIN_TO_GUA_SHEN = {
511
679
  1: '午',
512
- 2: '',
513
- 3: '',
514
- 4: '',
680
+ 2: '',
681
+ 3: '',
682
+ 4: '',
515
683
  5: '戌',
516
- 6: '',
684
+ 6: '',
517
685
  };
518
686
  // 世爻的阴阳决定卦身取阳表还是阴表
519
687
  const shiYaoIsYang = mainYaos[shiYing.shi - 1] === '阳';
@@ -539,6 +707,7 @@ export function generateLiuyao(customDate) {
539
707
  worldAndResponse: getWorldAndResponseArray(shiYing),
540
708
  voidBranches: voids,
541
709
  palace,
710
+ palaceStage,
542
711
  ganzhi,
543
712
  specialPattern,
544
713
  specialAdvice,
@@ -546,6 +715,8 @@ export function generateLiuyao(customDate) {
546
715
  chaoticReason,
547
716
  yaosDetail,
548
717
  hiddenSpirits,
718
+ hexagramRelations,
719
+ fanfuRelations,
549
720
  sanheWithDay,
550
721
  sanheWithMonth,
551
722
  sanxingInYaos,