mingpan 0.1.3 → 0.1.5

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 (199) hide show
  1. package/README.en.md +64 -0
  2. package/README.ja.md +64 -0
  3. package/README.md +80 -11
  4. package/dist/core/bazi/BaziCore.d.ts +7 -1
  5. package/dist/core/bazi/BaziCore.d.ts.map +1 -1
  6. package/dist/core/bazi/BaziCore.js +41 -15
  7. package/dist/core/bazi/BaziCore.js.map +1 -1
  8. package/dist/core/bazi/TrueSolarTime.js +8 -8
  9. package/dist/core/bazi/TrueSolarTime.js.map +1 -1
  10. package/dist/core/bazi/types.d.ts +4 -0
  11. package/dist/core/bazi/types.d.ts.map +1 -1
  12. package/dist/core/calendar/SolarTermsCalculator.js +2 -2
  13. package/dist/core/calendar/SolarTermsCalculator.js.map +1 -1
  14. package/dist/core/calendar/astronomicalCalendar.d.ts +0 -13
  15. package/dist/core/calendar/astronomicalCalendar.d.ts.map +1 -1
  16. package/dist/core/calendar/astronomicalCalendar.js +0 -56
  17. package/dist/core/calendar/astronomicalCalendar.js.map +1 -1
  18. package/dist/core/calendar/calendar.d.ts.map +1 -1
  19. package/dist/core/calendar/calendar.js +11 -11
  20. package/dist/core/calendar/calendar.js.map +1 -1
  21. package/dist/core/calendar/lunarCalendar.js +1 -1
  22. package/dist/core/calendar/lunarCalendar.js.map +1 -1
  23. package/dist/core/calendar/solarTerms.js +10 -10
  24. package/dist/core/calendar/solarTerms.js.map +1 -1
  25. package/dist/core/ziwei/IztroAdapter.d.ts.map +1 -1
  26. package/dist/core/ziwei/IztroAdapter.js +11 -4
  27. package/dist/core/ziwei/IztroAdapter.js.map +1 -1
  28. package/dist/index.d.ts +10 -5
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +13 -1582
  31. package/dist/index.js.map +1 -1
  32. package/dist/output/fortuneTextRenderer.d.ts +8 -7
  33. package/dist/output/fortuneTextRenderer.d.ts.map +1 -1
  34. package/dist/output/fortuneTextRenderer.js +89 -25
  35. package/dist/output/fortuneTextRenderer.js.map +1 -1
  36. package/dist/output/listTextRenderer.js +7 -7
  37. package/dist/output/listTextRenderer.js.map +1 -1
  38. package/dist/output/qimenTextRenderer.d.ts +2 -6
  39. package/dist/output/qimenTextRenderer.d.ts.map +1 -1
  40. package/dist/output/qimenTextRenderer.js +12 -145
  41. package/dist/output/qimenTextRenderer.js.map +1 -1
  42. package/dist/server.d.ts +11 -0
  43. package/dist/server.d.ts.map +1 -0
  44. package/dist/server.js +35 -0
  45. package/dist/server.js.map +1 -0
  46. package/dist/services/bazi/BaziService.d.ts +1 -17
  47. package/dist/services/bazi/BaziService.d.ts.map +1 -1
  48. package/dist/services/bazi/BaziService.js +11 -195
  49. package/dist/services/bazi/BaziService.js.map +1 -1
  50. package/dist/services/bazi/analyzers/StrengthAnalyzer.js +1 -1
  51. package/dist/services/bazi/analyzers/StrengthAnalyzer.js.map +1 -1
  52. package/dist/services/bazi/analyzers/TenGodsAnalyzer.js +12 -12
  53. package/dist/services/bazi/analyzers/TenGodsAnalyzer.js.map +1 -1
  54. package/dist/services/bazi/calculators/DaYunCalculator.js +1 -1
  55. package/dist/services/bazi/calculators/DaYunCalculator.js.map +1 -1
  56. package/dist/services/bazi/calculators/LiuRiCalculator.js +2 -2
  57. package/dist/services/bazi/calculators/LiuRiCalculator.js.map +1 -1
  58. package/dist/services/bazi/calculators/LiuYueCalculator.js +2 -2
  59. package/dist/services/bazi/calculators/LiuYueCalculator.js.map +1 -1
  60. package/dist/services/bazi/calculators/LuckCycleCalculator.d.ts.map +1 -1
  61. package/dist/services/bazi/calculators/LuckCycleCalculator.js +55 -43
  62. package/dist/services/bazi/calculators/LuckCycleCalculator.js.map +1 -1
  63. package/dist/services/bazi/index.d.ts +0 -2
  64. package/dist/services/bazi/index.d.ts.map +1 -1
  65. package/dist/services/bazi/index.js +1 -5
  66. package/dist/services/bazi/index.js.map +1 -1
  67. package/dist/services/bazi/types.d.ts +4 -112
  68. package/dist/services/bazi/types.d.ts.map +1 -1
  69. package/dist/services/bazi/types.js +3 -102
  70. package/dist/services/bazi/types.js.map +1 -1
  71. package/dist/services/daliuren/DaliurenService.d.ts +11 -1
  72. package/dist/services/daliuren/DaliurenService.d.ts.map +1 -1
  73. package/dist/services/daliuren/DaliurenService.js +30 -0
  74. package/dist/services/daliuren/DaliurenService.js.map +1 -1
  75. package/dist/services/daliuren/calculators/TianDiPanCalculator.d.ts.map +1 -1
  76. package/dist/services/daliuren/calculators/TianDiPanCalculator.js +3 -4
  77. package/dist/services/daliuren/calculators/TianDiPanCalculator.js.map +1 -1
  78. package/dist/services/daliuren/data/constants.d.ts +7 -0
  79. package/dist/services/daliuren/data/constants.d.ts.map +1 -1
  80. package/dist/services/daliuren/data/constants.js +17 -1
  81. package/dist/services/daliuren/data/constants.js.map +1 -1
  82. package/dist/services/daliuren/types.d.ts +11 -2
  83. package/dist/services/daliuren/types.d.ts.map +1 -1
  84. package/dist/services/liuyao/LiuyaoService.d.ts.map +1 -1
  85. package/dist/services/liuyao/LiuyaoService.js +1 -0
  86. package/dist/services/liuyao/LiuyaoService.js.map +1 -1
  87. package/dist/services/meihua/MeihuaService.d.ts.map +1 -1
  88. package/dist/services/meihua/MeihuaService.js +4 -3
  89. package/dist/services/meihua/MeihuaService.js.map +1 -1
  90. package/dist/services/meihua/calculators/TiyongCalculator.d.ts.map +1 -1
  91. package/dist/services/meihua/calculators/TiyongCalculator.js +6 -5
  92. package/dist/services/meihua/calculators/TiyongCalculator.js.map +1 -1
  93. package/dist/services/qimen/QimenService.d.ts +1 -18
  94. package/dist/services/qimen/QimenService.d.ts.map +1 -1
  95. package/dist/services/qimen/QimenService.js +13 -45
  96. package/dist/services/qimen/QimenService.js.map +1 -1
  97. package/dist/services/qimen/calculators/BaMenCalculator.d.ts +14 -22
  98. package/dist/services/qimen/calculators/BaMenCalculator.d.ts.map +1 -1
  99. package/dist/services/qimen/calculators/BaMenCalculator.js +41 -59
  100. package/dist/services/qimen/calculators/BaMenCalculator.js.map +1 -1
  101. package/dist/services/qimen/calculators/JiuGongCalculator.d.ts +6 -13
  102. package/dist/services/qimen/calculators/JiuGongCalculator.d.ts.map +1 -1
  103. package/dist/services/qimen/calculators/JiuGongCalculator.js +11 -41
  104. package/dist/services/qimen/calculators/JiuGongCalculator.js.map +1 -1
  105. package/dist/services/qimen/calculators/JiuXingCalculator.d.ts +13 -23
  106. package/dist/services/qimen/calculators/JiuXingCalculator.d.ts.map +1 -1
  107. package/dist/services/qimen/calculators/JiuXingCalculator.js +23 -68
  108. package/dist/services/qimen/calculators/JiuXingCalculator.js.map +1 -1
  109. package/dist/services/qimen/calculators/JuShuCalculator.d.ts +8 -5
  110. package/dist/services/qimen/calculators/JuShuCalculator.d.ts.map +1 -1
  111. package/dist/services/qimen/calculators/JuShuCalculator.js +16 -21
  112. package/dist/services/qimen/calculators/JuShuCalculator.js.map +1 -1
  113. package/dist/services/qimen/calculators/PanTypeCalculator.d.ts +19 -14
  114. package/dist/services/qimen/calculators/PanTypeCalculator.d.ts.map +1 -1
  115. package/dist/services/qimen/calculators/PanTypeCalculator.js +34 -36
  116. package/dist/services/qimen/calculators/PanTypeCalculator.js.map +1 -1
  117. package/dist/services/qimen/calculators/SanQiLiuYiCalculator.d.ts +11 -20
  118. package/dist/services/qimen/calculators/SanQiLiuYiCalculator.d.ts.map +1 -1
  119. package/dist/services/qimen/calculators/SanQiLiuYiCalculator.js +29 -42
  120. package/dist/services/qimen/calculators/SanQiLiuYiCalculator.js.map +1 -1
  121. package/dist/services/qimen/calculators/ZhuanPanCalculator.d.ts +34 -41
  122. package/dist/services/qimen/calculators/ZhuanPanCalculator.d.ts.map +1 -1
  123. package/dist/services/qimen/calculators/ZhuanPanCalculator.js +102 -130
  124. package/dist/services/qimen/calculators/ZhuanPanCalculator.js.map +1 -1
  125. package/dist/services/qimen/types.d.ts +3 -77
  126. package/dist/services/qimen/types.d.ts.map +1 -1
  127. package/dist/services/qimen/types.js +3 -2
  128. package/dist/services/qimen/types.js.map +1 -1
  129. package/dist/services/ziwei/ZiweiService.d.ts.map +1 -1
  130. package/dist/services/ziwei/ZiweiService.js +4 -3
  131. package/dist/services/ziwei/ZiweiService.js.map +1 -1
  132. package/dist/services/ziwei/calculators/DecadeCalculator.d.ts.map +1 -1
  133. package/dist/services/ziwei/calculators/DecadeCalculator.js +2 -1
  134. package/dist/services/ziwei/calculators/DecadeCalculator.js.map +1 -1
  135. package/dist/shared/logger.d.ts +5 -0
  136. package/dist/shared/logger.d.ts.map +1 -1
  137. package/dist/shared/logger.js +16 -4
  138. package/dist/shared/logger.js.map +1 -1
  139. package/dist/tools/baziTools.d.ts +13 -0
  140. package/dist/tools/baziTools.d.ts.map +1 -0
  141. package/dist/tools/baziTools.js +331 -0
  142. package/dist/tools/baziTools.js.map +1 -0
  143. package/dist/tools/calendarTools.d.ts +12 -0
  144. package/dist/tools/calendarTools.d.ts.map +1 -0
  145. package/dist/tools/calendarTools.js +121 -0
  146. package/dist/tools/calendarTools.js.map +1 -0
  147. package/dist/tools/divinationTools.d.ts +9 -0
  148. package/dist/tools/divinationTools.d.ts.map +1 -0
  149. package/dist/tools/divinationTools.js +205 -0
  150. package/dist/tools/divinationTools.js.map +1 -0
  151. package/dist/tools/qimenTools.d.ts +10 -0
  152. package/dist/tools/qimenTools.d.ts.map +1 -0
  153. package/dist/tools/qimenTools.js +132 -0
  154. package/dist/tools/qimenTools.js.map +1 -0
  155. package/dist/tools/schemas.d.ts +99 -0
  156. package/dist/tools/schemas.d.ts.map +1 -0
  157. package/dist/tools/schemas.js +163 -0
  158. package/dist/tools/schemas.js.map +1 -0
  159. package/dist/tools/ziweiTools.d.ts +14 -0
  160. package/dist/tools/ziweiTools.d.ts.map +1 -0
  161. package/dist/tools/ziweiTools.js +484 -0
  162. package/dist/tools/ziweiTools.js.map +1 -0
  163. package/dist/utils/ageCalculator.d.ts +1 -1
  164. package/dist/utils/ageCalculator.d.ts.map +1 -1
  165. package/dist/utils/ageCalculator.js +10 -6
  166. package/dist/utils/ageCalculator.js.map +1 -1
  167. package/dist/utils/timeNormalization.d.ts +42 -17
  168. package/dist/utils/timeNormalization.d.ts.map +1 -1
  169. package/dist/utils/timeNormalization.js +99 -41
  170. package/dist/utils/timeNormalization.js.map +1 -1
  171. package/dist/utils/wallTime.d.ts +25 -0
  172. package/dist/utils/wallTime.d.ts.map +1 -0
  173. package/dist/utils/wallTime.js +33 -0
  174. package/dist/utils/wallTime.js.map +1 -0
  175. package/dist/worker.d.ts +23 -0
  176. package/dist/worker.d.ts.map +1 -0
  177. package/dist/worker.js +47 -0
  178. package/dist/worker.js.map +1 -0
  179. package/package.json +21 -11
  180. package/dist/services/bazi/analyzers/HiddenStemsAnalyzer.d.ts +0 -16
  181. package/dist/services/bazi/analyzers/HiddenStemsAnalyzer.d.ts.map +0 -1
  182. package/dist/services/bazi/analyzers/HiddenStemsAnalyzer.js +0 -60
  183. package/dist/services/bazi/analyzers/HiddenStemsAnalyzer.js.map +0 -1
  184. package/dist/services/bazi/analyzers/NaYinAnalyzer.d.ts +0 -33
  185. package/dist/services/bazi/analyzers/NaYinAnalyzer.d.ts.map +0 -1
  186. package/dist/services/bazi/analyzers/NaYinAnalyzer.js +0 -209
  187. package/dist/services/bazi/analyzers/NaYinAnalyzer.js.map +0 -1
  188. package/dist/services/bazi/analyzers/ShenShaAnalyzer.d.ts +0 -236
  189. package/dist/services/bazi/analyzers/ShenShaAnalyzer.d.ts.map +0 -1
  190. package/dist/services/bazi/analyzers/ShenShaAnalyzer.js +0 -2079
  191. package/dist/services/bazi/analyzers/ShenShaAnalyzer.js.map +0 -1
  192. package/dist/services/bazi/analyzers/TraditionalAnalyzer.d.ts +0 -46
  193. package/dist/services/bazi/analyzers/TraditionalAnalyzer.d.ts.map +0 -1
  194. package/dist/services/bazi/analyzers/TraditionalAnalyzer.js +0 -260
  195. package/dist/services/bazi/analyzers/TraditionalAnalyzer.js.map +0 -1
  196. package/dist/services/qimen/calculators/ZeRiCalculator.d.ts +0 -78
  197. package/dist/services/qimen/calculators/ZeRiCalculator.d.ts.map +0 -1
  198. package/dist/services/qimen/calculators/ZeRiCalculator.js +0 -431
  199. package/dist/services/qimen/calculators/ZeRiCalculator.js.map +0 -1
package/README.en.md ADDED
@@ -0,0 +1,64 @@
1
+ # Mingpan — Deterministic Chinese Metaphysics Calculator for AI Agents
2
+
3
+ **简体中文(主文档)** | English (this page) | [日本語](README.ja.md)
4
+
5
+ An [MCP](https://modelcontextprotocol.io) server that computes traditional Chinese metaphysics charts — **BaZi, Zi Wei Dou Shu, LiuYao, MeiHua YiShu, Da Liu Ren, and Qi Men Dun Jia** — with calendar-grade rigor, so your AI agent can focus on what it does best: interpretation.
6
+
7
+ ```json
8
+ {
9
+ "mcpServers": {
10
+ "mingpan": { "command": "npx", "args": ["-y", "mingpan"] }
11
+ }
12
+ }
13
+ ```
14
+
15
+ ## The problem it solves
16
+
17
+ LLMs are unreliable at the computational half of Chinese divination: deriving ganzhi pillars from solar terms, converting between lunar and solar calendars, adjusting for timezones and true solar time. They hallucinate these values. Mingpan is the deterministic other half:
18
+
19
+ - **Deterministic-only output policy.** Every value a tool returns — four pillars, hidden stems, ten gods, na yin, life palace, palaces & stars, mutagens, hexagram lines — is a verifiable fact from classical lookup tables. Fortune scores, auspiciousness labels, and interpretive judgments are deliberately excluded: those belong to your AI.
20
+ - **Correctness discipline.** 218 tests including minute-level LiChun (Start of Spring) boundary cases, golden cases verified against historical records and classical texts, and cross-validation against reference implementations (lunar-javascript, iztro, kinqimen). All caliber decisions are documented in-repo.
21
+ - **Timezone & true-solar-time aware.** IANA timezone input with historical DST handling (including China's 1986–1991 DST), longitude-based true solar time correction applied consistently to all four pillars. CI enforces cross-timezone reproducibility.
22
+
23
+ ## Tools (16)
24
+
25
+ | Domain | Tools | Notes |
26
+ |---|---|---|
27
+ | BaZi (Four Pillars) | `bazi_basic`, `bazi_dayun`, `bazi_liunian`, `bazi_liuyue`, `bazi_liuri` | Pillars w/ na yin, hidden stems & ten gods (all hidden stems), 12 growth stages, life palace & conception pillar, void; decade/year/month/day cycles |
28
+ | Zi Wei Dou Shu | `ziwei_basic`, `ziwei_daxian`, `ziwei_xiaoxian`, `ziwei_liunian`, `ziwei_liuyue`, `ziwei_liuri` | 12 palaces, stars & brightness, five-element bureau, soul/body masters, four transformations; time-cycle lists |
29
+ | LiuYao | `liuyao_basic` | Najia, six relatives, six spirits, ying/shi, void, hidden spirits, advance/retreat |
30
+ | MeiHua YiShu | `meihua_basic` | Time- or number-cast hexagrams, mutual/transformed, ti-yong relation |
31
+ | Da Liu Ren | `daliuren_basic` | Just supply a Gregorian time — seasonal general, pillars, four lessons, three transmissions, twelve generals |
32
+ | Qi Men Dun Jia | `qimen_basic`, `qimen_yongshen` | Rotating & flying styles, four pan types, chaibu/maoshan; yong-shen analysis with deterministic facts only |
33
+
34
+ ## Example output (`bazi_basic`)
35
+
36
+ The chart text is Chinese by design (terms are canonical). Structure: birth data → four pillars with na yin → void → life palace & conception pillar → stem ten gods → hidden-stem ten gods → 12 growth stages.
37
+
38
+ ```text
39
+ === 命主資料 ===
40
+ 性別:男
41
+ 公曆:1992-04-12 07:30:00
42
+ 農曆:壬申年三月初十辰時
43
+
44
+ === 八字命盤 ===
45
+ 年柱:壬申(剑锋金) 月柱:甲辰(覆灯火) 日柱:戊午(天上火) 時柱:丙辰(沙中土)
46
+ 日柱旬空:子丑
47
+ 命宮:己酉 胎元:乙未
48
+ 天干十神:年干水=偏財 月干木=七殺 時干火=偏印
49
+ 藏干十神(※本氣):年申[庚食神※ 壬偏財 戊比肩] 月辰[戊比肩※ 乙正官 癸正財] 日午[丁正印※ 己劫財] 時辰[戊比肩※ 乙正官 癸正財]
50
+ 十二長生(自坐):年长生 月衰 日帝旺 時冠带
51
+ ```
52
+
53
+ ## Scope
54
+
55
+ Year range 1900–2100 · Beijing time (UTC+8) as internal canonical representation · interpretation intentionally left to the AI.
56
+
57
+ ## Documentation
58
+
59
+ - [README(简体中文 · authoritative)](README.md) — full parameter reference, calendar conventions, version history
60
+ - [`docs/qimen-correctness-notes.md`](docs/qimen-correctness-notes.md) — Qi Men caliber adjudications
61
+ - [`docs/product-roadmap.md`](docs/product-roadmap.md) — product principles & roadmap
62
+ - [`docs/release-notes-0.1.4.md`](docs/release-notes-0.1.4.md) — latest release notes
63
+
64
+ Apache-2.0 · This is a condensed edition; the Chinese README is the single source of truth. Last synced: **v0.1.4**
package/README.ja.md ADDED
@@ -0,0 +1,64 @@
1
+ # Mingpan — AIエージェントのための東洋術数 確定性排盤エンジン
2
+
3
+ [简体中文(主文档)](README.md) | [English](README.en.md) | 日本語(このページ)
4
+
5
+ [MCP](https://modelcontextprotocol.io) サーバーとして、**四柱推命(八字)・紫微斗数・六爻・梅花易数・大六壬・奇門遁甲**の命盤を暦計算レベルの厳密さで排盤します。AIエージェントは得意な「解釈」に専念でき、幻覚に悩む「計算」は本サーバーが担います。
6
+
7
+ ```json
8
+ {
9
+ "mcpServers": {
10
+ "mingpan": { "command": "npx", "args": ["-y", "mingpan"] }
11
+ }
12
+ }
13
+ ```
14
+
15
+ ## 解決する問題
16
+
17
+ LLMは干支・節気・暦の換算を確実には行えません——推論で誤った柱を「幻覚」として出力してしまいます。Mingpanは計算側だけを担う確定性エンジンです:
18
+
19
+ - **確定的な値のみ出力。** 四柱・納音・蔵干・十神・命宮・胎元・十二宮星曜・四化・卦構造など、出力はすべて検証可能な事実(古典の参照表に基づく)。五行スコアや吉凶ラベル、解釈的判断は意図的に含めません——それはAIの役割です。
20
+ - **正確性の規律。** 218テスト。立春境界の分レベル検証、史料・古典文献によるゴールデンケース、参照実装(lunar-javascript / iztro / kinqimen)との相互検証。口径(計算方式)の裁定はすべてリポジトリ内に文書化されています。
21
+ - **タイムゾーン・真太陽時対応。** IANAタイムゾーン入力(1986–91年の中国夏時間を含む歴史的DSTを処理)、経度による真太陽時補正は四柱すべてに一貫適用。CIでタイムゾーン横断の再現性を保証。
22
+
23
+ ## ツール(16)
24
+
25
+ | 分野 | ツール | 概要 |
26
+ |---|---|---|
27
+ | 四柱推命(八字) | `bazi_basic` ほか5種 | 四柱(納音・蔵干・十神・十二長生・命宮・胎元・空亡)と大運・流年・流月・流日 |
28
+ | 紫微斗数 | `ziwei_basic` ほか5種 | 十二宮・星曜・五行局・命主身主・四化、大限・小限・流年・流月・流日 |
29
+ | 六爻 | `liuyao_basic` | 納甲・六親・六神・世応・空亡・伏神・進退神 |
30
+ | 梅花易数 | `meihua_basic` | 時間・数字起卦、本卦・変卦・互卦、体用の五行関係 |
31
+ | 大六壬 | `daliuren_basic` | 西暦日時を入力するだけで排盤(月将・四課・三伝・十二天将) |
32
+ | 奇門遁甲 | `qimen_basic`, `qimen_yongshen` | 転盤・飛盤、時盤・日盤・月盤・年盤、拆補法・茅山法 |
33
+
34
+ ## 出力例(`bazi_basic`)
35
+
36
+ 盤面は術語の正確性のため中国語(簡繁)で出力されます。構造:生年月日 → 納音付き四柱 → 空亡 → 命宮・胎元 → 天干十神 → 蔵干十神 → 十二長生。
37
+
38
+ ```text
39
+ === 命主資料 ===
40
+ 性別:男
41
+ 公曆:1992-04-12 07:30:00
42
+ 農曆:壬申年三月初十辰時
43
+
44
+ === 八字命盤 ===
45
+ 年柱:壬申(剑锋金) 月柱:甲辰(覆灯火) 日柱:戊午(天上火) 時柱:丙辰(沙中土)
46
+ 日柱旬空:子丑
47
+ 命宮:己酉 胎元:乙未
48
+ 天干十神:年干水=偏財 月干木=七殺 時干火=偏印
49
+ 藏干十神(※本氣):年申[庚食神※ 壬偏財 戊比肩] 月辰[戊比肩※ 乙正官 癸正財] 日午[丁正印※ 己劫財] 時辰[戊比肩※ 乙正官 癸正財]
50
+ 十二長生(自坐):年长生 月衰 日帝旺 時冠带
51
+ ```
52
+
53
+ ## 対応範囲
54
+
55
+ 西暦1900–2100年 · 内部標準時は北京時間(UTC+8)· 解釈は意図的にAIに委ねます。
56
+
57
+ ## ドキュメント
58
+
59
+ - [README(简体中文・正本)](README.md) — パラメータ完全リファレンス
60
+ - [`docs/qimen-correctness-notes.md`](docs/qimen-correctness-notes.md) — 奇門遁甲の口径裁定記録
61
+ - [`docs/product-roadmap.md`](docs/product-roadmap.md) — 製品原則とロードマップ
62
+ - [`docs/release-notes-0.1.4.md`](docs/release-notes-0.1.4.md) — 最新リリースノート
63
+
64
+ Apache-2.0 · 本ページは簡潔版です。詳細は中国語READMEが正本です。最終同期:**v0.1.4**
package/README.md CHANGED
@@ -1,6 +1,8 @@
1
1
  # 命盘 MCP Server
2
2
 
3
- [![Version](https://img.shields.io/badge/version-0.1.3-blue.svg)](https://github.com/ChesterRa/mingpan)
3
+ **简体中文(主文档)** | [English](README.en.md) | [日本語](README.ja.md)
4
+
5
+ [![Version](https://img.shields.io/badge/version-0.1.5-blue.svg)](https://github.com/ChesterRa/mingpan)
4
6
  [![License](https://img.shields.io/badge/license-Apache%202.0-green.svg)](LICENSE)
5
7
 
6
8
  **命盘(Mingpan)** 是一个中华传统术数 MCP 服务,为 Claude 等 AI 应用提供命理排盘与占卜起卦的计算能力。
@@ -10,6 +12,15 @@
10
12
  - **MCP 原生**:无缝集成 Claude Desktop 及 Claude Code
11
13
  - 🌏 **中文输出**:以简体为主,术语保持传统
12
14
  - 📊 **结构化文本**:便于 AI 理解与分析的格式
15
+ - 🕐 **多时区支持**:海外出生/起卦时间自动换算为北京时间排盘
16
+
17
+ ## 服务形态
18
+
19
+ | 形态 | 适用 | 用法 |
20
+ | ---- | ---- | ---- |
21
+ | **stdio MCP**(默认) | Claude Desktop / Claude Code 等本地客户端 | 见下方配置方法 |
22
+
23
+ 也支持自部署远程 HTTP 形态(`npm run deploy:worker`,需 Cloudflare 账号)。
13
24
 
14
25
  ## 配置方法
15
26
 
@@ -56,7 +67,7 @@ claude mcp add mingpan -- npx -y mingpan
56
67
 
57
68
  | 工具 | 说明 |
58
69
  | -------------- | ------------------------------------------ |
59
- | `bazi_basic` | 八字命盘排盘(四柱、藏干、十神、五行力量) |
70
+ | `bazi_basic` | 八字四柱排盘(干支纳音、天干/藏干十神、十二长生自坐、命宫/胎元、旬空、公农历对照;五行/格局/用神由 AI 分析) |
60
71
  | `bazi_dayun` | 大运列表(十年一运) |
61
72
  | `bazi_liunian` | 流年列表(指定年份范围) |
62
73
  | `bazi_liuyue` | 流月列表(节气月,立春起算) |
@@ -66,13 +77,25 @@ claude mcp add mingpan -- npx -y mingpan
66
77
 
67
78
  | 工具 | 说明 |
68
79
  | ---------------- | ---------------------------------------- |
69
- | `ziwei_basic` | 紫微命盘排盘(十二宫、主星、辅星、四化) |
80
+ | `ziwei_basic` | 紫微命盘排盘(十二宫、主星、辅星、五行局/命主/身主、四化) |
70
81
  | `ziwei_daxian` | 大限列表(十年一限) |
71
82
  | `ziwei_xiaoxian` | 小限列表(每年一宫) |
72
83
  | `ziwei_liunian` | 流年列表(指定年份范围) |
73
84
  | `ziwei_liuyue` | 流月列表(农历月) |
74
85
  | `ziwei_liuri` | 流日列表(农历日) |
75
86
 
87
+ ### 历法原语
88
+
89
+ 历法计算是所有术数的公共地基,也可独立使用。
90
+
91
+ | 工具 | 说明 |
92
+ | ---------------- | ---------------------------------------------- |
93
+ | `jieqi_query` | 二十四节气精确时刻查询(精确到秒,北京时间) |
94
+ | `calendar_convert` | 公历/农历互转(含闰月、干支年月日、生肖) |
95
+
96
+ 节气是天文事件(AI 无法推算,如 2025 年立春是 2 月 3 日 22:10 而非 2 月 4 日),
97
+ 农历闰月分配无简单规律(AI 经常猜错)——两者是本产品确定性计算的核心价值。
98
+
76
99
  ### 占卜起卦
77
100
 
78
101
  占卜术基于起卦时间或随机数推演卦象,属于「卜」的范畴。
@@ -81,7 +104,7 @@ claude mcp add mingpan -- npx -y mingpan
81
104
 
82
105
  | 工具 | 说明 |
83
106
  | -------------- | --------------------------------------------------- |
84
- | `liuyao_basic` | 六爻排盘(本卦/变卦、纳甲、六亲、六神、世应、旬空) |
107
+ | `liuyao_basic` | 六爻排盘(本卦/变卦、纳甲、六亲、六神、世应、旬空、伏神/飞神、进退神、旺衰) |
85
108
 
86
109
  六爻输入为六个爻值(自下而上):
87
110
  - 6 = 老阴(动爻,阴变阳)
@@ -102,22 +125,42 @@ claude mcp add mingpan -- npx -y mingpan
102
125
  #### 大六壬
103
126
 
104
127
  | 工具 | 说明 |
105
- | ---------------- | ------------------------------------------------ |
128
+ | ---------------- | -------------------------------------------------- |
106
129
  | `daliuren_basic` | 大六壬排盘(天地盘、四课、三传、十二天将、神煞) |
107
130
 
108
- 大六壬为三式之首,需输入节气、农历月、日干支、时干支。
131
+ 大六壬为三式之首。**推荐直接输入公历起课时间**(year/month/day/hour),
132
+ 节气、月将、日干支、时干支由系统自动推得(LLM 手推干支极易出错)。
133
+ 也可显式指定 `jieqi`/`dayGanZhi`/`hourGanZhi`(专家模式,向后兼容)。
109
134
 
110
135
  #### 奇门遁甲
111
136
 
112
137
  | 工具 | 说明 |
113
138
  | --------------- | ---- |
114
- | `qimen_basic` | 奇门遁甲排盘(九宫布局、三奇六仪、八门九星八神、格局判断) |
115
- | `qimen_yongshen`| 奇门用神分析(按事类选取用神,含主客、旺衰、空亡、入墓等) |
116
- | `qimen_zeri` | 奇门择日(指定日期区间内筛选相对更佳的时机) |
139
+ | `qimen_basic` | 奇门遁甲排盘(九宫布局、三奇六仪、八门九星八神、格局检测) |
140
+ | `qimen_yongshen`| 奇门用神分析(按事类选取用神,含主客、旺衰、空亡、入墓等确定性信息) |
117
141
 
118
142
  奇门遁甲为三式之一,盘式与规则主要参考张志春《神奇之门》,支持:时盘/日盘/月盘/年盘、转盘/飞盘、拆补法/茅山法。
119
143
 
120
- 更多说明见:`docs/qimen-yongshen-guide.md`。
144
+
145
+
146
+ ## 输出示例(bazi_basic)
147
+
148
+ ```text
149
+ === 命主資料 ===
150
+ 性別:男
151
+ 公曆:1992-04-12 07:30:00
152
+ 農曆:壬申年三月初十辰時
153
+
154
+ === 八字命盤 ===
155
+ 年柱:壬申(剑锋金) 月柱:甲辰(覆灯火) 日柱:戊午(天上火) 時柱:丙辰(沙中土)
156
+ 日柱旬空:子丑
157
+ 命宮:己酉 胎元:乙未
158
+ 天干十神:年干水=偏財 月干木=七殺 時干火=偏印
159
+ 藏干十神(※本氣):年申[庚食神※ 壬偏財 戊比肩] 月辰[戊比肩※ 乙正官 癸正財] 日午[丁正印※ 己劫財] 時辰[戊比肩※ 乙正官 癸正財]
160
+ 十二長生(自坐):年长生 月衰 日帝旺 時冠带
161
+ ```
162
+
163
+ 只包含确定性排盘信息;五行强弱、格局、用神等解读由 AI 依据盘面自行分析。
121
164
 
122
165
  ## 输入参数
123
166
 
@@ -133,10 +176,19 @@ claude mcp add mingpan -- npx -y mingpan
133
176
  | gender | string | ✓ | `male` / `female` |
134
177
  | longitude | number | | 出生地经度,用于真太阳时校正 |
135
178
  | isLunar | boolean | | 是否为农历输入,默认 false |
179
+ | timezone | string | | IANA 时区名(如 `America/New_York`),默认北京时间 |
180
+
181
+ ### 时区说明(v0.1.4+)
182
+
183
+ - 输入时间默认按**北京时间**排盘
184
+ - 海外出生/起卦时提供 `timezone` 参数,系统将当地墙钟时间换算为北京时间后计算
185
+ - 输入侧使用 IANA 时区数据库(正确处理各国历史夏令时,如 1986-1991 年中国夏令时)
186
+ - 内部规范表示为 UTC+8 平太阳时,与历法换算口径一致
136
187
 
137
188
  ### 占卜工具(六爻/梅花/大六壬)
138
189
 
139
- 占卜工具使用起卦时间而非出生时间,具体参数请参考各工具说明。
190
+ - 六爻/梅花:输入起卦时间(支持 `timezone`),爻值/卦数由调用方提供
191
+ - 大六壬:**推荐直接输入公历时间**,节气与干支自动推得;也可显式指定(专家模式)
140
192
 
141
193
  ### 奇门遁甲工具
142
194
 
@@ -148,6 +200,7 @@ claude mcp add mingpan -- npx -y mingpan
148
200
  | hour | number | ✓ | 起盘时辰(0-23) |
149
201
  | minute | number | | 分钟(0-59),默认 0 |
150
202
  | isLunar | boolean | | 是否为农历输入,默认 false |
203
+ | timezone | string | | IANA 时区名,默认北京时间 |
151
204
  | panType | string | | `时盘` / `日盘` / `月盘` / `年盘`,默认 `时盘` |
152
205
  | panStyle | string | | `转盘` / `飞盘`,默认 `转盘` |
153
206
  | zhiRunMethod | string | | `chaibu`(拆补法)/ `maoshan`(茅山法),默认 `chaibu` |
@@ -186,6 +239,22 @@ npm run dev # 监听变化
186
239
  - [x] 梅花易数排盘
187
240
  - [x] 大六壬排盘
188
241
  - [x] 奇门遁甲排盘
242
+ - [x] 大六壬时间起课(自动推节气/干支)
243
+ - [x] 多时区支持(timezone 参数)
244
+ - [x] 奇门口径修正(拆补符头、地盘布局、转盘星门,参照《神奇之门》与 kinqimen 交叉验证)
245
+ - [x] 排盘完整性对称盘点(八字补纳音/藏干十神/十二长生/命宫胎元,紫微补五行局/命主/身主)
246
+ - [x] 输出契约测试全覆盖 + 权威用例金样本(历史人物记载、立春分钟级边界、iztro 适配保真)
247
+
248
+ ## 版本历史
249
+
250
+ | 版本 | 说明 |
251
+ | ---- | ---- |
252
+ | 0.1.5 | **口径裁决**:子初换日(23:00 起日柱时柱同属次日,全五系统统一,不采用早晚子时后期修正说);起运权威化(弃自研天文引擎改用 lunar 权威节气表,起运岁数由交运日历日期定位,经 lunar getYun 六例 oracle 验证);奇门年盘按典籍修正(180 年三元/只用阴遁/阴一四七局,《遁甲演义》口径,原实现三处全错);大六壬 guirenMethod 死参数移除;**新能力**:历法原语层(jieqi_query 节气秒级查询 + calendar_convert 公农历互转含闰月)——AI 最易幻觉的确定性量;远程 MCP(Cloudflare Workers HTTP 端点,与 stdio 同引擎跨形态一致);全库去 TZ 依赖(Date.UTC 载体约定,跨时区字节一致测试看守);测试 218→288(新增权威历史人物 10 人金样本、跨系统干支一致性、紫微安星法结构不变量、边界条件) |
253
+ | 0.1.4 | **正确性修复**:八字年柱按立春精确时刻换年(原立春至春节窗口错排,连带月干/大运顺逆)、晚子时时柱按次日干起五鼠遁、奇门四类口径修正、stdio 日志不再污染 JSON-RPC 流;**输出定位确立**:只输出确定且权威且 AI 不易获知的排盘量——bazi_basic 为四柱纳音/天干藏干十神/十二长生自坐/命宫胎元/旬空/公农历,紫微补五行局/命主/身主,梅花去断语,奇门格局平列、用神去评分,择日工具(qimen_zeri)移除;**新能力**:大六壬时间起课、多时区(timezone);MCP SDK 高级 API 迁移与工具模块化、zod v4、净代码缩减约 15%;测试 117→218 |
254
+ | 0.1.5 | **口径裁决**:子初换日(23:00 起日柱时柱同属次日,全五系统统一,不采用早晚子时后期修正说);起运权威化(弃自研天文引擎改用 lunar 权威节气表,起运岁数由交运日历日期定位,经 lunar getYun 六例 oracle 验证);奇门年盘按典籍修正(180 年三元/只用阴遁/阴一四七局,《遁甲演义》口径,原实现三处全错);大六壬 guirenMethod 死参数移除;**新能力**:历法原语层(jieqi_query 节气秒级查询 + calendar_convert 公农历互转含闰月)——AI 最易幻觉的确定性量;远程 MCP(Cloudflare Workers HTTP 端点,与 stdio 同引擎跨形态一致);全库去 TZ 依赖(Date.UTC 载体约定,跨时区字节一致测试看守);测试 218→288(新增权威历史人物 10 人金样本、跨系统干支一致性、紫微安星法结构不变量、边界条件) |
255
+ | 0.1.4 | 奇门用神分析与择日 |
256
+ | 0.1.2 | 六爻、梅花易数、大六壬 |
257
+ | 0.1.0 | 首个发布:八字、紫微 |
189
258
 
190
259
  ## 许可证
191
260
 
@@ -16,7 +16,13 @@ export declare class BaziCore {
16
16
  */
17
17
  private calculateHoroscope;
18
18
  /**
19
- * Calculate year pillar using lunar-javascript
19
+ * Calculate year pillar
20
+ *
21
+ * 干支年以立春交接时刻为界(非农历正月初一)。
22
+ * 此前实现用「每月15日」近似日期查 getYearInGanZhi()(春节界),
23
+ * 导致立春至春节期间(每年2月上中旬最长约两周)年柱错排。
24
+ * 参照:lunar-javascript getYearInGanZhiExact(立春精确到时刻)、
25
+ * 八字主流口径。
20
26
  */
21
27
  private calculateYearPillar;
22
28
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"BaziCore.d.ts","sourceRoot":"","sources":["../../../src/core/bazi/BaziCore.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,SAAS,EAGT,oBAAoB,EAEpB,iBAAiB,EAGjB,aAAa,EACb,cAAc,EACf,MAAM,SAAS,CAAC;AAkCjB,qBAAa,QAAQ;;IAKnB;;;OAGG;IACG,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAoG9D;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAqC1B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAiB3B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA4C5B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAkC1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAqB1B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAwB3B;;OAEG;IACH,OAAO,CAAC,YAAY;IAsBpB;;OAEG;IACH,OAAO,CAAC,cAAc;IAWtB;;OAEG;IACH,OAAO,CAAC,cAAc;IAKtB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAKxB;;OAEG;IACH,OAAO,CAAC,SAAS;IAKjB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAWhB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAS3B;;OAEG;IACH,OAAO,CAAC,eAAe;IAavB;;OAEG;IACH,qBAAqB,CAAC,KAAK,EAAE,SAAS,GAAG,oBAAoB;IA6D7D;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAc5B;;OAEG;IACG,2BAA2B,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAgEjF;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAsB1B;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IA6C5B;;OAEG;IACH,qBAAqB,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,EAAE;IAuBzE;;OAEG;IACH,sBAAsB,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,GAAG,MAAM;IAuBhE;;OAEG;IACH,OAAO,CAAC,SAAS;IAUjB;;OAEG;IACG,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;CAiBzF"}
1
+ {"version":3,"file":"BaziCore.d.ts","sourceRoot":"","sources":["../../../src/core/bazi/BaziCore.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,SAAS,EAGT,oBAAoB,EAEpB,iBAAiB,EAGjB,aAAa,EACb,cAAc,EACf,MAAM,SAAS,CAAC;AAkCjB,qBAAa,QAAQ;;IAKnB;;;OAGG;IACG,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAwH9D;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAsC1B;;;;;;;;OAQG;IACH,OAAO,CAAC,mBAAmB;IAY3B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA4C5B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAkC1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA0B1B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA0B3B;;OAEG;IACH,OAAO,CAAC,YAAY;IAsBpB;;OAEG;IACH,OAAO,CAAC,cAAc;IAWtB;;OAEG;IACH,OAAO,CAAC,cAAc;IAKtB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAKxB;;OAEG;IACH,OAAO,CAAC,SAAS;IAKjB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAWhB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAS3B;;OAEG;IACH,OAAO,CAAC,eAAe;IAavB;;OAEG;IACH,qBAAqB,CAAC,KAAK,EAAE,SAAS,GAAG,oBAAoB;IA6D7D;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAc5B;;OAEG;IACG,2BAA2B,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAgEjF;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAsB1B;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IA6C5B;;OAEG;IACH,qBAAqB,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,EAAE;IAuBzE;;OAEG;IACH,sBAAsB,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,GAAG,MAAM;IAuBhE;;OAEG;IACH,OAAO,CAAC,SAAS;IAUjB;;OAEG;IACG,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;CAiBzF"}
@@ -19,8 +19,8 @@ class BaziCore {
19
19
  * Calculates the four pillars based on birth information
20
20
  */
21
21
  async calculate(input) {
22
- // Step 1: Create date object
23
- let birthDate = new Date(input.year, input.month - 1, input.day, input.hour, input.minute || 0);
22
+ // Step 1: 构造北京墙钟载体(Date.UTC 构造 + getUTC* 读取,与宿主时区无关)
23
+ let birthDate = new Date(Date.UTC(input.year, input.month - 1, input.day, input.hour, input.minute || 0));
24
24
  // Step 2: Apply true solar time if longitude provided
25
25
  let trueSolarTime;
26
26
  let trueSolarTimeStr;
@@ -31,7 +31,7 @@ class BaziCore {
31
31
  birthDate = trueSolarTime;
32
32
  }
33
33
  // Step 3: Calculate solar terms using lunar-javascript
34
- const solar = lunar_javascript_1.Solar.fromYmdHms(birthDate.getFullYear(), birthDate.getMonth() + 1, birthDate.getDate(), birthDate.getHours(), birthDate.getMinutes(), birthDate.getSeconds());
34
+ const solar = lunar_javascript_1.Solar.fromYmdHms(birthDate.getUTCFullYear(), birthDate.getUTCMonth() + 1, birthDate.getUTCDate(), birthDate.getUTCHours(), birthDate.getUTCMinutes(), birthDate.getUTCSeconds());
35
35
  const lunar = solar.getLunar();
36
36
  // Get the previous Jie to determine the current month
37
37
  const prevJie = lunar.getPrevJie();
@@ -45,7 +45,10 @@ class BaziCore {
45
45
  next: ''
46
46
  };
47
47
  // Step 4: Calculate four pillars with solar term consideration
48
- const chart = this.calculateHoroscope(input.year, input.month, input.day, input.hour, solarTerm, isCurrentMonthSolarTerm);
48
+ // 注意:一律使用(可能的真太阳时)校正后的 birthDate 分量,
49
+ // 与 Step 3 的节气月柱同源。此前误传 input.* 原始分量,
50
+ // 导致 longitude 校正只影响年/月柱而日/时柱不校正(v0.1.0 起的缺陷)。
51
+ const chart = this.calculateHoroscope(birthDate.getUTCFullYear(), birthDate.getUTCMonth() + 1, birthDate.getUTCDate(), birthDate.getUTCHours(), solarTerm, isCurrentMonthSolarTerm, lunar);
49
52
  // Step 5: Get lunar date (already calculated above)
50
53
  const rawMonth = lunar.getMonth();
51
54
  const lunarDate = {
@@ -57,6 +60,18 @@ class BaziCore {
57
60
  monthName: lunar.getMonthInChinese(),
58
61
  dayName: lunar.getDayInChinese()
59
62
  };
63
+ // Step 5.5: 命宫/胎元(古典法:命宫依《三命通会》子平起法,胎元依《渊海子平》;
64
+ // 实现取 lunar-javascript,已与其测试向量及典籍手工推演逐例核对)
65
+ let mingGong;
66
+ let taiYuan;
67
+ try {
68
+ const eightCharForGong = lunar.getEightChar();
69
+ mingGong = eightCharForGong.getMingGong();
70
+ taiYuan = eightCharForGong.getTaiYuan();
71
+ }
72
+ catch {
73
+ // 历法边界异常时容忍缺省
74
+ }
60
75
  // Step 6: Calculate derived information
61
76
  const dayMasterElement = this.getStemElement(chart.day.stem);
62
77
  const zodiac = this.getZodiac(chart.year.branch);
@@ -75,6 +90,8 @@ class BaziCore {
75
90
  adjacentSolarTermTime
76
91
  },
77
92
  zodiac,
93
+ mingGong,
94
+ taiYuan,
78
95
  dayMasterElement,
79
96
  naYin,
80
97
  fiveElements,
@@ -85,9 +102,9 @@ class BaziCore {
85
102
  /**
86
103
  * Calculate four pillars based on taro-bazi logic
87
104
  */
88
- calculateHoroscope(year, month, day, hour, solarTerm, isCurrentMonthSolarTerm) {
105
+ calculateHoroscope(year, month, day, hour, solarTerm, isCurrentMonthSolarTerm, lunar) {
89
106
  // Calculate year pillar
90
- const { yearGan, yearZhi } = this.calculateYearPillar(year, month, isCurrentMonthSolarTerm);
107
+ const { yearGan, yearZhi } = this.calculateYearPillar(lunar);
91
108
  // Calculate month pillar
92
109
  const { monthGan, monthZhi } = this.calculateMonthPillar(yearGan, month, solarTerm, isCurrentMonthSolarTerm);
93
110
  // Calculate day pillar
@@ -109,14 +126,16 @@ class BaziCore {
109
126
  return chart;
110
127
  }
111
128
  /**
112
- * Calculate year pillar using lunar-javascript
129
+ * Calculate year pillar
130
+ *
131
+ * 干支年以立春交接时刻为界(非农历正月初一)。
132
+ * 此前实现用「每月15日」近似日期查 getYearInGanZhi()(春节界),
133
+ * 导致立春至春节期间(每年2月上中旬最长约两周)年柱错排。
134
+ * 参照:lunar-javascript getYearInGanZhiExact(立春精确到时刻)、
135
+ * 八字主流口径。
113
136
  */
114
- calculateYearPillar(year, month, isCurrentMonthSolarTerm) {
115
- // Get year GanZhi from lunar-javascript
116
- const solar = lunar_javascript_1.Solar.fromYmd(year, month, 15); // Use middle of month
117
- const lunar = solar.getLunar();
118
- // Get year GanZhi
119
- const yearGanZhi = lunar.getYearInGanZhi();
137
+ calculateYearPillar(lunar) {
138
+ const yearGanZhi = lunar.getYearInGanZhiExact();
120
139
  return {
121
140
  yearGan: yearGanZhi.substring(0, 1),
122
141
  yearZhi: yearGanZhi.substring(1, 2)
@@ -196,7 +215,12 @@ class BaziCore {
196
215
  */
197
216
  calculateDayPillar(year, month, day, hour) {
198
217
  // Use lunar-javascript for accurate day pillar calculation
199
- const solar = lunar_javascript_1.Solar.fromYmd(year, month, day);
218
+ // 口径(2026-08-30 裁定,与用户共识):子初换日——23:00 起即属次日,
219
+ // 日柱与时柱同换。不采用「早晚子时」区分(该说系明末清初钟表传入后的
220
+ // 后期修正,古籍无据,民国袁树珊《命理探源》始正式化)。
221
+ const solar = hour === 23
222
+ ? lunar_javascript_1.Solar.fromYmd(year, month, day).next(1)
223
+ : lunar_javascript_1.Solar.fromYmd(year, month, day);
200
224
  const lunar = solar.getLunar();
201
225
  // Get day GanZhi directly from lunar-javascript
202
226
  const dayGanZhi = lunar.getDayInGanZhi();
@@ -220,6 +244,8 @@ class BaziCore {
220
244
  '丁': '庚', '壬': '庚',
221
245
  '戊': '壬', '癸': '壬'
222
246
  };
247
+ // 子初换日后,23 点出生的 dayGan 已是次日干,五鼠遁自然得出次日子时,
248
+ // 无需任何早/晚子时特判
223
249
  const startGan = fiveRatsDict[dayGan];
224
250
  const startGanIndex = bazi_1.HEAVENLY_STEMS.findIndex(s => s.name === startGan);
225
251
  const zhiIndex = Math.ceil(hour / 2) % 12;
@@ -590,7 +616,7 @@ class BaziCore {
590
616
  const lunar = solar.getLunar();
591
617
  const rawMonth = lunar.getMonth();
592
618
  return {
593
- solar: new Date(year, month - 1, day, hour),
619
+ solar: new Date(Date.UTC(year, month - 1, day, hour)),
594
620
  lunar: {
595
621
  year: lunar.getYear(),
596
622
  month: Math.abs(rawMonth),
@@ -1 +1 @@
1
- {"version":3,"file":"BaziCore.js","sourceRoot":"","sources":["../../../src/core/bazi/BaziCore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaziCore.js","sourceRoot":"","sources":["../../../src/core/bazi/BaziCore.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@ class TrueSolarTime {
16
16
  */
17
17
  static adjust(date, longitude) {
18
18
  // Convert to Julian Day for astronomical calculations
19
- const jd = (0, astronomicalCalendar_1.gregorianToJulianDay)(date.getFullYear(), date.getMonth() + 1, date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds());
19
+ const jd = (0, astronomicalCalendar_1.gregorianToJulianDay)(date.getUTCFullYear(), date.getUTCMonth() + 1, date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds());
20
20
  // Calculate precise equation of time
21
21
  const equationOfTime = this.getEquationOfTime(jd);
22
22
  // Beijing standard time is UTC+8, based on 120°E longitude
@@ -66,7 +66,7 @@ class TrueSolarTime {
66
66
  * Get the day of year (1-365/366)
67
67
  */
68
68
  static getDayOfYear(date) {
69
- const start = new Date(date.getFullYear(), 0, 0);
69
+ const start = new Date(Date.UTC(date.getUTCFullYear(), 0, 0));
70
70
  const diff = date.getTime() - start.getTime();
71
71
  const dayOfYear = Math.floor(diff / (1000 * 60 * 60 * 24));
72
72
  return dayOfYear;
@@ -80,7 +80,7 @@ class TrueSolarTime {
80
80
  */
81
81
  static calculateSunrise(date, latitude, longitude) {
82
82
  // Convert to Julian Day at noon
83
- const jdNoon = (0, astronomicalCalendar_1.gregorianToJulianDay)(date.getFullYear(), date.getMonth() + 1, date.getDate(), 12, 0, 0);
83
+ const jdNoon = (0, astronomicalCalendar_1.gregorianToJulianDay)(date.getUTCFullYear(), date.getUTCMonth() + 1, date.getUTCDate(), 12, 0, 0);
84
84
  // Get solar longitude
85
85
  const solarLongitude = (0, astronomicalCalendar_1.getSolarLongitude)(jdNoon);
86
86
  // Calculate solar declination
@@ -97,7 +97,7 @@ class TrueSolarTime {
97
97
  }
98
98
  if (cosH < -1) {
99
99
  // Polar day - sun doesn't set
100
- return new Date(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0);
100
+ return new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), 0, 0, 0));
101
101
  }
102
102
  const hourAngleRad = Math.acos(cosH);
103
103
  const hourAngleDeg = hourAngleRad * 180 / Math.PI;
@@ -123,7 +123,7 @@ class TrueSolarTime {
123
123
  */
124
124
  static calculateSunset(date, latitude, longitude) {
125
125
  // Similar to sunrise but add the hour angle instead of subtracting
126
- const jdNoon = (0, astronomicalCalendar_1.gregorianToJulianDay)(date.getFullYear(), date.getMonth() + 1, date.getDate(), 12, 0, 0);
126
+ const jdNoon = (0, astronomicalCalendar_1.gregorianToJulianDay)(date.getUTCFullYear(), date.getUTCMonth() + 1, date.getUTCDate(), 12, 0, 0);
127
127
  const solarLongitude = (0, astronomicalCalendar_1.getSolarLongitude)(jdNoon);
128
128
  const obliquity = 23.43929111;
129
129
  const declinationRad = Math.asin(Math.sin(solarLongitude * Math.PI / 180) *
@@ -136,7 +136,7 @@ class TrueSolarTime {
136
136
  }
137
137
  if (cosH < -1) {
138
138
  // Polar day
139
- return new Date(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59);
139
+ return new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), 23, 59, 59));
140
140
  }
141
141
  const hourAngleRad = Math.acos(cosH);
142
142
  const hourAngleDeg = hourAngleRad * 180 / Math.PI;
@@ -163,7 +163,7 @@ class TrueSolarTime {
163
163
  // Handle polar day/night cases
164
164
  if (isNaN(sunrise.getTime()))
165
165
  return false; // Polar night
166
- if (sunrise.getHours() === 0 && sunset.getHours() === 23)
166
+ if (sunrise.getUTCHours() === 0 && sunset.getUTCHours() === 23)
167
167
  return true; // Polar day
168
168
  return date >= sunrise && date <= sunset;
169
169
  }
@@ -182,7 +182,7 @@ class TrueSolarTime {
182
182
  * Useful for advanced BaZi calculations that consider solar position
183
183
  */
184
184
  static getSolarPosition(date, latitude, longitude) {
185
- const jd = (0, astronomicalCalendar_1.gregorianToJulianDay)(date.getFullYear(), date.getMonth() + 1, date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds());
185
+ const jd = (0, astronomicalCalendar_1.gregorianToJulianDay)(date.getUTCFullYear(), date.getUTCMonth() + 1, date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds());
186
186
  // Get solar coordinates
187
187
  const solarLongitude = (0, astronomicalCalendar_1.getSolarLongitude)(jd);
188
188
  const obliquity = 23.43929111;