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.
- package/README.en.md +64 -0
- package/README.ja.md +64 -0
- package/README.md +80 -11
- package/dist/core/bazi/BaziCore.d.ts +7 -1
- package/dist/core/bazi/BaziCore.d.ts.map +1 -1
- package/dist/core/bazi/BaziCore.js +41 -15
- package/dist/core/bazi/BaziCore.js.map +1 -1
- package/dist/core/bazi/TrueSolarTime.js +8 -8
- package/dist/core/bazi/TrueSolarTime.js.map +1 -1
- package/dist/core/bazi/types.d.ts +4 -0
- package/dist/core/bazi/types.d.ts.map +1 -1
- package/dist/core/calendar/SolarTermsCalculator.js +2 -2
- package/dist/core/calendar/SolarTermsCalculator.js.map +1 -1
- package/dist/core/calendar/astronomicalCalendar.d.ts +0 -13
- package/dist/core/calendar/astronomicalCalendar.d.ts.map +1 -1
- package/dist/core/calendar/astronomicalCalendar.js +0 -56
- package/dist/core/calendar/astronomicalCalendar.js.map +1 -1
- package/dist/core/calendar/calendar.d.ts.map +1 -1
- package/dist/core/calendar/calendar.js +11 -11
- package/dist/core/calendar/calendar.js.map +1 -1
- package/dist/core/calendar/lunarCalendar.js +1 -1
- package/dist/core/calendar/lunarCalendar.js.map +1 -1
- package/dist/core/calendar/solarTerms.js +10 -10
- package/dist/core/calendar/solarTerms.js.map +1 -1
- package/dist/core/ziwei/IztroAdapter.d.ts.map +1 -1
- package/dist/core/ziwei/IztroAdapter.js +11 -4
- package/dist/core/ziwei/IztroAdapter.js.map +1 -1
- package/dist/index.d.ts +10 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -1582
- package/dist/index.js.map +1 -1
- package/dist/output/fortuneTextRenderer.d.ts +8 -7
- package/dist/output/fortuneTextRenderer.d.ts.map +1 -1
- package/dist/output/fortuneTextRenderer.js +89 -25
- package/dist/output/fortuneTextRenderer.js.map +1 -1
- package/dist/output/listTextRenderer.js +7 -7
- package/dist/output/listTextRenderer.js.map +1 -1
- package/dist/output/qimenTextRenderer.d.ts +2 -6
- package/dist/output/qimenTextRenderer.d.ts.map +1 -1
- package/dist/output/qimenTextRenderer.js +12 -145
- package/dist/output/qimenTextRenderer.js.map +1 -1
- package/dist/server.d.ts +11 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +35 -0
- package/dist/server.js.map +1 -0
- package/dist/services/bazi/BaziService.d.ts +1 -17
- package/dist/services/bazi/BaziService.d.ts.map +1 -1
- package/dist/services/bazi/BaziService.js +11 -195
- package/dist/services/bazi/BaziService.js.map +1 -1
- package/dist/services/bazi/analyzers/StrengthAnalyzer.js +1 -1
- package/dist/services/bazi/analyzers/StrengthAnalyzer.js.map +1 -1
- package/dist/services/bazi/analyzers/TenGodsAnalyzer.js +12 -12
- package/dist/services/bazi/analyzers/TenGodsAnalyzer.js.map +1 -1
- package/dist/services/bazi/calculators/DaYunCalculator.js +1 -1
- package/dist/services/bazi/calculators/DaYunCalculator.js.map +1 -1
- package/dist/services/bazi/calculators/LiuRiCalculator.js +2 -2
- package/dist/services/bazi/calculators/LiuRiCalculator.js.map +1 -1
- package/dist/services/bazi/calculators/LiuYueCalculator.js +2 -2
- package/dist/services/bazi/calculators/LiuYueCalculator.js.map +1 -1
- package/dist/services/bazi/calculators/LuckCycleCalculator.d.ts.map +1 -1
- package/dist/services/bazi/calculators/LuckCycleCalculator.js +55 -43
- package/dist/services/bazi/calculators/LuckCycleCalculator.js.map +1 -1
- package/dist/services/bazi/index.d.ts +0 -2
- package/dist/services/bazi/index.d.ts.map +1 -1
- package/dist/services/bazi/index.js +1 -5
- package/dist/services/bazi/index.js.map +1 -1
- package/dist/services/bazi/types.d.ts +4 -112
- package/dist/services/bazi/types.d.ts.map +1 -1
- package/dist/services/bazi/types.js +3 -102
- package/dist/services/bazi/types.js.map +1 -1
- package/dist/services/daliuren/DaliurenService.d.ts +11 -1
- package/dist/services/daliuren/DaliurenService.d.ts.map +1 -1
- package/dist/services/daliuren/DaliurenService.js +30 -0
- package/dist/services/daliuren/DaliurenService.js.map +1 -1
- package/dist/services/daliuren/calculators/TianDiPanCalculator.d.ts.map +1 -1
- package/dist/services/daliuren/calculators/TianDiPanCalculator.js +3 -4
- package/dist/services/daliuren/calculators/TianDiPanCalculator.js.map +1 -1
- package/dist/services/daliuren/data/constants.d.ts +7 -0
- package/dist/services/daliuren/data/constants.d.ts.map +1 -1
- package/dist/services/daliuren/data/constants.js +17 -1
- package/dist/services/daliuren/data/constants.js.map +1 -1
- package/dist/services/daliuren/types.d.ts +11 -2
- package/dist/services/daliuren/types.d.ts.map +1 -1
- package/dist/services/liuyao/LiuyaoService.d.ts.map +1 -1
- package/dist/services/liuyao/LiuyaoService.js +1 -0
- package/dist/services/liuyao/LiuyaoService.js.map +1 -1
- package/dist/services/meihua/MeihuaService.d.ts.map +1 -1
- package/dist/services/meihua/MeihuaService.js +4 -3
- package/dist/services/meihua/MeihuaService.js.map +1 -1
- package/dist/services/meihua/calculators/TiyongCalculator.d.ts.map +1 -1
- package/dist/services/meihua/calculators/TiyongCalculator.js +6 -5
- package/dist/services/meihua/calculators/TiyongCalculator.js.map +1 -1
- package/dist/services/qimen/QimenService.d.ts +1 -18
- package/dist/services/qimen/QimenService.d.ts.map +1 -1
- package/dist/services/qimen/QimenService.js +13 -45
- package/dist/services/qimen/QimenService.js.map +1 -1
- package/dist/services/qimen/calculators/BaMenCalculator.d.ts +14 -22
- package/dist/services/qimen/calculators/BaMenCalculator.d.ts.map +1 -1
- package/dist/services/qimen/calculators/BaMenCalculator.js +41 -59
- package/dist/services/qimen/calculators/BaMenCalculator.js.map +1 -1
- package/dist/services/qimen/calculators/JiuGongCalculator.d.ts +6 -13
- package/dist/services/qimen/calculators/JiuGongCalculator.d.ts.map +1 -1
- package/dist/services/qimen/calculators/JiuGongCalculator.js +11 -41
- package/dist/services/qimen/calculators/JiuGongCalculator.js.map +1 -1
- package/dist/services/qimen/calculators/JiuXingCalculator.d.ts +13 -23
- package/dist/services/qimen/calculators/JiuXingCalculator.d.ts.map +1 -1
- package/dist/services/qimen/calculators/JiuXingCalculator.js +23 -68
- package/dist/services/qimen/calculators/JiuXingCalculator.js.map +1 -1
- package/dist/services/qimen/calculators/JuShuCalculator.d.ts +8 -5
- package/dist/services/qimen/calculators/JuShuCalculator.d.ts.map +1 -1
- package/dist/services/qimen/calculators/JuShuCalculator.js +16 -21
- package/dist/services/qimen/calculators/JuShuCalculator.js.map +1 -1
- package/dist/services/qimen/calculators/PanTypeCalculator.d.ts +19 -14
- package/dist/services/qimen/calculators/PanTypeCalculator.d.ts.map +1 -1
- package/dist/services/qimen/calculators/PanTypeCalculator.js +34 -36
- package/dist/services/qimen/calculators/PanTypeCalculator.js.map +1 -1
- package/dist/services/qimen/calculators/SanQiLiuYiCalculator.d.ts +11 -20
- package/dist/services/qimen/calculators/SanQiLiuYiCalculator.d.ts.map +1 -1
- package/dist/services/qimen/calculators/SanQiLiuYiCalculator.js +29 -42
- package/dist/services/qimen/calculators/SanQiLiuYiCalculator.js.map +1 -1
- package/dist/services/qimen/calculators/ZhuanPanCalculator.d.ts +34 -41
- package/dist/services/qimen/calculators/ZhuanPanCalculator.d.ts.map +1 -1
- package/dist/services/qimen/calculators/ZhuanPanCalculator.js +102 -130
- package/dist/services/qimen/calculators/ZhuanPanCalculator.js.map +1 -1
- package/dist/services/qimen/types.d.ts +3 -77
- package/dist/services/qimen/types.d.ts.map +1 -1
- package/dist/services/qimen/types.js +3 -2
- package/dist/services/qimen/types.js.map +1 -1
- package/dist/services/ziwei/ZiweiService.d.ts.map +1 -1
- package/dist/services/ziwei/ZiweiService.js +4 -3
- package/dist/services/ziwei/ZiweiService.js.map +1 -1
- package/dist/services/ziwei/calculators/DecadeCalculator.d.ts.map +1 -1
- package/dist/services/ziwei/calculators/DecadeCalculator.js +2 -1
- package/dist/services/ziwei/calculators/DecadeCalculator.js.map +1 -1
- package/dist/shared/logger.d.ts +5 -0
- package/dist/shared/logger.d.ts.map +1 -1
- package/dist/shared/logger.js +16 -4
- package/dist/shared/logger.js.map +1 -1
- package/dist/tools/baziTools.d.ts +13 -0
- package/dist/tools/baziTools.d.ts.map +1 -0
- package/dist/tools/baziTools.js +331 -0
- package/dist/tools/baziTools.js.map +1 -0
- package/dist/tools/calendarTools.d.ts +12 -0
- package/dist/tools/calendarTools.d.ts.map +1 -0
- package/dist/tools/calendarTools.js +121 -0
- package/dist/tools/calendarTools.js.map +1 -0
- package/dist/tools/divinationTools.d.ts +9 -0
- package/dist/tools/divinationTools.d.ts.map +1 -0
- package/dist/tools/divinationTools.js +205 -0
- package/dist/tools/divinationTools.js.map +1 -0
- package/dist/tools/qimenTools.d.ts +10 -0
- package/dist/tools/qimenTools.d.ts.map +1 -0
- package/dist/tools/qimenTools.js +132 -0
- package/dist/tools/qimenTools.js.map +1 -0
- package/dist/tools/schemas.d.ts +99 -0
- package/dist/tools/schemas.d.ts.map +1 -0
- package/dist/tools/schemas.js +163 -0
- package/dist/tools/schemas.js.map +1 -0
- package/dist/tools/ziweiTools.d.ts +14 -0
- package/dist/tools/ziweiTools.d.ts.map +1 -0
- package/dist/tools/ziweiTools.js +484 -0
- package/dist/tools/ziweiTools.js.map +1 -0
- package/dist/utils/ageCalculator.d.ts +1 -1
- package/dist/utils/ageCalculator.d.ts.map +1 -1
- package/dist/utils/ageCalculator.js +10 -6
- package/dist/utils/ageCalculator.js.map +1 -1
- package/dist/utils/timeNormalization.d.ts +42 -17
- package/dist/utils/timeNormalization.d.ts.map +1 -1
- package/dist/utils/timeNormalization.js +99 -41
- package/dist/utils/timeNormalization.js.map +1 -1
- package/dist/utils/wallTime.d.ts +25 -0
- package/dist/utils/wallTime.d.ts.map +1 -0
- package/dist/utils/wallTime.js +33 -0
- package/dist/utils/wallTime.js.map +1 -0
- package/dist/worker.d.ts +23 -0
- package/dist/worker.d.ts.map +1 -0
- package/dist/worker.js +47 -0
- package/dist/worker.js.map +1 -0
- package/package.json +21 -11
- package/dist/services/bazi/analyzers/HiddenStemsAnalyzer.d.ts +0 -16
- package/dist/services/bazi/analyzers/HiddenStemsAnalyzer.d.ts.map +0 -1
- package/dist/services/bazi/analyzers/HiddenStemsAnalyzer.js +0 -60
- package/dist/services/bazi/analyzers/HiddenStemsAnalyzer.js.map +0 -1
- package/dist/services/bazi/analyzers/NaYinAnalyzer.d.ts +0 -33
- package/dist/services/bazi/analyzers/NaYinAnalyzer.d.ts.map +0 -1
- package/dist/services/bazi/analyzers/NaYinAnalyzer.js +0 -209
- package/dist/services/bazi/analyzers/NaYinAnalyzer.js.map +0 -1
- package/dist/services/bazi/analyzers/ShenShaAnalyzer.d.ts +0 -236
- package/dist/services/bazi/analyzers/ShenShaAnalyzer.d.ts.map +0 -1
- package/dist/services/bazi/analyzers/ShenShaAnalyzer.js +0 -2079
- package/dist/services/bazi/analyzers/ShenShaAnalyzer.js.map +0 -1
- package/dist/services/bazi/analyzers/TraditionalAnalyzer.d.ts +0 -46
- package/dist/services/bazi/analyzers/TraditionalAnalyzer.d.ts.map +0 -1
- package/dist/services/bazi/analyzers/TraditionalAnalyzer.js +0 -260
- package/dist/services/bazi/analyzers/TraditionalAnalyzer.js.map +0 -1
- package/dist/services/qimen/calculators/ZeRiCalculator.d.ts +0 -78
- package/dist/services/qimen/calculators/ZeRiCalculator.d.ts.map +0 -1
- package/dist/services/qimen/calculators/ZeRiCalculator.js +0 -431
- 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
|
-
[
|
|
3
|
+
**简体中文(主文档)** | [English](README.en.md) | [日本語](README.ja.md)
|
|
4
|
+
|
|
5
|
+
[](https://github.com/ChesterRa/mingpan)
|
|
4
6
|
[](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
|
-
|
|
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
|
|
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;
|
|
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:
|
|
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.
|
|
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
|
-
|
|
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(
|
|
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
|
|
129
|
+
* Calculate year pillar
|
|
130
|
+
*
|
|
131
|
+
* 干支年以立春交接时刻为界(非农历正月初一)。
|
|
132
|
+
* 此前实现用「每月15日」近似日期查 getYearInGanZhi()(春节界),
|
|
133
|
+
* 导致立春至春节期间(每年2月上中旬最长约两周)年柱错排。
|
|
134
|
+
* 参照:lunar-javascript getYearInGanZhiExact(立春精确到时刻)、
|
|
135
|
+
* 八字主流口径。
|
|
113
136
|
*/
|
|
114
|
-
calculateYearPillar(
|
|
115
|
-
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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;
|