dsh-metaphysics 0.75.0 → 0.77.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +26 -4
- package/README.md +29 -9
- package/client.almanac.js +28 -28
- package/client.chart.js +148 -148
- package/client.chenggu.js +31 -31
- package/client.constitution.js +18 -18
- package/client.convert.js +26 -26
- package/client.daliuren.js +71 -71
- package/client.fengshui.js +29 -29
- package/client.js +294 -261
- package/client.liuyao.js +65 -65
- package/client.mbti.js +20 -20
- package/client.name.js +60 -60
- package/client.numerology.js +19 -19
- package/client.qimen.js +80 -80
- package/client.star.js +19 -19
- package/client.taiyi.js +27 -27
- package/client.tarot.js +80 -80
- package/client.wuyunliuqi.js +46 -46
- package/client.xiaoliuren.js +33 -33
- package/client.zeri.js +29 -29
- package/docs/assets/dsh-metaphysics-group-2026-11-14.png +0 -0
- package/docs/assets/verification-badge.svg +6 -6
- package/engine/bazi.js +54 -5
- package/engine/calendar.js +31 -4
- package/engine/geju.js +5 -1
- package/engine/trend.js +7 -7
- package/package.json +135 -135
- package//345/221/275/347/220/206/346/216/222/347/233/230.html +20437 -20305
- package/docs/assets/dsh-metaphysics-group.jpg +0 -0
|
Binary file
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="
|
|
2
|
-
<title>公开对拍:0 处不符|128 例 ·
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="566" height="28" role="img" aria-label="公开对拍:0 处不符|128 例 · 6 剔除 · 127 未核 · 312 紫微 · 20 奇门 · 12 交运 · 18 八字 · 117 真实">
|
|
2
|
+
<title>公开对拍:0 处不符|128 例 · 6 剔除 · 127 未核 · 312 紫微 · 20 奇门 · 12 交运 · 18 八字 · 117 真实</title>
|
|
3
3
|
<linearGradient id="s" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient>
|
|
4
|
-
<rect width="
|
|
5
|
-
<rect x="62" width="
|
|
6
|
-
<rect x="62" width="
|
|
4
|
+
<rect width="566" height="28" rx="4" fill="#555"/>
|
|
5
|
+
<rect x="62" width="504" height="28" rx="4" fill="#1f6f3f"/>
|
|
6
|
+
<rect x="62" width="504" height="28" fill="url(#s)"/>
|
|
7
7
|
<rect width="66" height="28" rx="4" fill="#555"/>
|
|
8
8
|
<rect x="62" width="4" height="28" fill="#555"/>
|
|
9
9
|
<g fill="#fff" text-anchor="middle" font-family="Verdana,DejaVu Sans,sans-serif" font-size="11">
|
|
10
10
|
<text x="33" y="18">对拍</text>
|
|
11
|
-
<text x="
|
|
11
|
+
<text x="314" y="18">0 处不符|128 例 · 6 剔除 · 127 未核 · 312 紫微 · 20 奇门 · 12 交运 · 18 八字 · 117 真实</text>
|
|
12
12
|
</g>
|
|
13
13
|
</svg>
|
package/engine/bazi.js
CHANGED
|
@@ -593,6 +593,7 @@ export function buildBazi(input) {
|
|
|
593
593
|
|
|
594
594
|
let helpScore = 0;
|
|
595
595
|
const helpers = [];
|
|
596
|
+
const helperRooted = [];
|
|
596
597
|
const drainers = [];
|
|
597
598
|
const virtualHelpers = [];
|
|
598
599
|
for (const key of ['year', 'month', 'hour']) {
|
|
@@ -601,28 +602,76 @@ export function buildBazi(input) {
|
|
|
601
602
|
if (el2 === me || GENERATES[el2] === me) {
|
|
602
603
|
// 天干有根才出得上力;虚透(折根后不足 0.3)只按半力计
|
|
603
604
|
const base = el2 === me ? 1 : 0.8;
|
|
604
|
-
if (rootedWeightOf(pillars, el2, factorInfo.factor) >= ROOT_EFFECTIVE_MIN)
|
|
605
|
-
|
|
605
|
+
if (rootedWeightOf(pillars, el2, factorInfo.factor) >= ROOT_EFFECTIVE_MIN) {
|
|
606
|
+
helpScore += base;
|
|
607
|
+
helperRooted.push(st);
|
|
608
|
+
} else { helpScore += base * 0.5; virtualHelpers.push(st); }
|
|
606
609
|
helpers.push(st);
|
|
607
610
|
} else if (OVERCOMES[el2] === me) { helpScore -= 1; drainers.push(st); }
|
|
608
611
|
else if (OVERCOMES[me] === el2) { helpScore -= 0.8; drainers.push(st); }
|
|
609
612
|
else { helpScore -= 0.5; drainers.push(st); }
|
|
610
613
|
}
|
|
611
614
|
|
|
615
|
+
// ── 旺衰:三要素离散判定为主判,量化分只作展示 ──────────────
|
|
616
|
+
// 依据《子平真诠·论强弱》「得时俱为旺论,失时便作衰看;四柱无根,得时为旺」。
|
|
617
|
+
// 旧版把月令权重、通根、天干帮扶压成一个连续分再切五档,档位宽度天然不均
|
|
618
|
+
// (117 个真实命例实测:身强档跨 4.4 分、中间三档各只跨 1~1.5 分,中位数还压在偏强边界)。
|
|
619
|
+
// 现在先判三个是非,再查真值表:档位由规则决定,分数只作展示。
|
|
620
|
+
const deLing = monthW >= 2; // 得令:月令为旺(同气)或相(生我)
|
|
621
|
+
const deDi = rootScore >= 1; // 得地:地支有真根(本气通根,或折根后仍够一档)
|
|
622
|
+
const diHalf = !deDi && rootScore > 0; // 弱根:只有藏干余气,或折根后不足一档
|
|
623
|
+
// 得势:天干有能出根的帮扶,且帮扶之力不少于耗泄(净帮扶 >= 0)。
|
|
624
|
+
// 只透一个比劫却被财官食伤耗干净的不算势——这一条是 117 例实测里最关键的收紧:
|
|
625
|
+
// 只看「有没有帮扶天干」会让 26 例天干全耗的盘赖在身强档,身弱档则一例都出不来。
|
|
626
|
+
const deShi = helperRooted.length > 0 && helpScore >= 0;
|
|
627
|
+
const shiHalf = !deShi && (helperRooted.length > 0 || virtualHelpers.length > 0);
|
|
628
|
+
|
|
629
|
+
let level;
|
|
630
|
+
let basis;
|
|
631
|
+
if (deLing) {
|
|
632
|
+
// 得令即旺。月令当旺同气、或当令生我,四柱必有强根,不作身弱论。
|
|
633
|
+
// 唯一降档:天干重耗(净帮扶 ≤ -1.5)且无势,属「旺而不久」,降作偏强。
|
|
634
|
+
if (helpScore <= -1.5 && !deShi) { level = '偏强'; basis = '得令,但天干重耗、全无援手(旺而不久)'; }
|
|
635
|
+
else { level = '身强'; basis = '得令(月令当旺或生我)'; }
|
|
636
|
+
} else if (deDi && deShi) { level = '偏强'; basis = '失令,有强根且得势'; }
|
|
637
|
+
else if (deDi && shiHalf) { level = '中和'; basis = '失令,有强根但帮扶不敌耗泄'; }
|
|
638
|
+
else if (deDi) { level = '偏弱'; basis = '失令,有强根但无势'; }
|
|
639
|
+
else if (diHalf && deShi) { level = '中和'; basis = '失令,弱根而得势'; }
|
|
640
|
+
else if (diHalf && shiHalf) { level = '偏弱'; basis = '失令,弱根且帮扶不敌耗泄'; }
|
|
641
|
+
else if (diHalf) { level = '身弱'; basis = '失令,只有弱根、毫无帮扶'; }
|
|
642
|
+
else if (deShi) { level = '偏弱'; basis = '失令,无根而有势'; }
|
|
643
|
+
else { level = '身弱'; basis = '失令、无根、无势'; }
|
|
644
|
+
|
|
612
645
|
const total = Math.round((monthW + rootScore + helpScore) * 10) / 10;
|
|
613
|
-
|
|
646
|
+
|
|
647
|
+
// 三要素临界:档位离相邻档只差一个是非判定时记一笔,运程那边据此不出排序结论。
|
|
648
|
+
// 只收真正的临界(通根/净帮扶差一点点),不把「失令」这种常态当临界——
|
|
649
|
+
// 61% 的盘都失令,若算临界,运程的排序几乎全被压掉。
|
|
650
|
+
const edges = [];
|
|
651
|
+
if (rootScore >= 0.75 && rootScore < 1.35) edges.push(`得地临界(通根 ${rootScore.toFixed(1)},1.0 为得地门槛)`);
|
|
652
|
+
if (helperRooted.length > 0 && helpScore > -0.6 && helpScore < 0.6) edges.push(`得势临界(净帮扶 ${helpScore.toFixed(1)},0 为得势门槛)`);
|
|
653
|
+
if (rootScore > 0 && rootScore < 0.4) edges.push(`弱根临界(通根 ${rootScore.toFixed(1)})`);
|
|
654
|
+
|
|
614
655
|
const structureText = factorInfo.notes.length ? `;合会折根:${factorInfo.notes.join('、')}` : '';
|
|
615
656
|
const virtualText = virtualHelpers.length ? `;虚透${virtualHelpers.join('')}帮扶减半` : '';
|
|
616
657
|
const strength = {
|
|
617
658
|
level,
|
|
659
|
+
basis,
|
|
618
660
|
score: total,
|
|
619
|
-
detail: `月令${monthBranch}${seasonEl},日主${me}${monthWord}
|
|
620
|
-
method: '
|
|
661
|
+
detail: `月令${monthBranch}${seasonEl},日主${me}${monthWord}:${deLing ? '得令' : '失令'}、${deDi ? '得强根' : diHalf ? '得弱根' : '无根'}(通根${rootBranches.join('') || '无'} ${rootScore.toFixed(1)})、${deShi ? '得势' : shiHalf ? '帮扶不敌耗泄' : '无势'}(帮扶${helpers.join('') || '无'}/耗泄${drainers.join('') || '无'} 净${helpScore.toFixed(1)})→ ${level}:${basis}${structureText}${virtualText}`,
|
|
662
|
+
method: '三要素离散判定(得令/得地/得势)为主判,量化分只作展示:月令当旺或生我即得令;地支有本气通根(折根后仍够一档)即得地;天干有根之助且净帮扶为正才算得势。判定顺序见 README「旺衰怎么定档」,依据《子平真诠》「得时俱为旺论,失时便作衰看」;属规则化口径,非唯一流派',
|
|
663
|
+
elements: {
|
|
664
|
+
ling: { ok: deLing, monthW, word: monthWord },
|
|
665
|
+
di: { ok: deDi, half: diHalf, rootScore: Math.round(rootScore * 10) / 10 },
|
|
666
|
+
shi: { ok: deShi, half: shiHalf, rooted: helperRooted, virtual: virtualHelpers },
|
|
667
|
+
},
|
|
668
|
+
edges,
|
|
621
669
|
parts: {
|
|
622
670
|
season: { branch: monthBranch, element: seasonEl, word: monthWord, weight: monthW },
|
|
623
671
|
roots: rootBranches,
|
|
624
672
|
rootScore: Math.round(rootScore * 10) / 10,
|
|
625
673
|
helpers,
|
|
674
|
+
helperRooted,
|
|
626
675
|
drainers,
|
|
627
676
|
helpScore: Math.round(helpScore * 10) / 10,
|
|
628
677
|
structure: factorInfo.notes,
|
package/engine/calendar.js
CHANGED
|
@@ -246,11 +246,38 @@ export function partsToJd({ year, month, day, hour = 0, minute = 0 }) {
|
|
|
246
246
|
return toJDN(year, month, day) - 0.5 + (hour * 60 + minute) / 1440;
|
|
247
247
|
}
|
|
248
248
|
|
|
249
|
-
/** 均时差(分钟):真太阳时 = 平太阳时 + 经度差 + 均时差
|
|
249
|
+
/** 均时差(分钟):真太阳时 = 平太阳时 + 经度差 + 均时差
|
|
250
|
+
*
|
|
251
|
+
* 严格式,按 Meeus《Astronomical Algorithms》28.3 推:太阳视黄经由 VSOP87B 地球日心黄经
|
|
252
|
+
* 反推,补章动主项与光行差,再转视赤经,与太阳几何平黄经相减。
|
|
253
|
+
*
|
|
254
|
+
* 为什么不留那个 9.87sin2B-7.53cosB-1.5sinB 的通用近似式:它最大误差约 ±0.5 分(30 秒),
|
|
255
|
+
* 日常看盘无所谓,但出生时刻正好卡在时辰边界上时,30 秒足以把时柱推到隔壁——而时柱一动,
|
|
256
|
+
* 称骨、子女宫、晚运全跟着变。这一条不许「差不多」。
|
|
257
|
+
*/
|
|
250
258
|
export function equationOfTime(year, month, day) {
|
|
251
|
-
const
|
|
252
|
-
const
|
|
253
|
-
|
|
259
|
+
const RAD = Math.PI / 180;
|
|
260
|
+
const jd = toJDN(year, month, day) - 0.5; // toJDN 给的是当日正午,退到 0h UT
|
|
261
|
+
const T = (jd - 2451545) / 36525; // 儒略世纪
|
|
262
|
+
const tau = (jd - 2451545) / 365250; // 儒略千年——VSOP87 的时间参量单位,别混用
|
|
263
|
+
// 黄赤交角(度):IAU 1980 平赤道倾角
|
|
264
|
+
const eps0 = 23.439291111 - 0.0130041667 * T - 1.6389e-7 * T * T + 5.0361e-7 * T * T * T;
|
|
265
|
+
// 章动黄经主项(角秒):-17.20" sin Ω,Ω 为月球升交点平黄经
|
|
266
|
+
const omega = (125.04452 - 1934.136261 * T) * RAD;
|
|
267
|
+
const dPsi = (-17.20 * Math.sin(omega)) / 3600;
|
|
268
|
+
// 太阳视黄经:地球日心黄经 + 180°(J2000 参考系)→ 岁差推到当日平春分点
|
|
269
|
+
// → 章动主项 → 光行差(20.4898" / R,R≈1)
|
|
270
|
+
const theta0 = ((earthL(tau) * 180) / Math.PI + 180) % 360;
|
|
271
|
+
const prec = (5029.0966 * T + 1.11113 * T * T - 0.000006 * T * T * T) / 3600; // 度
|
|
272
|
+
const lambdaDeg = ((theta0 + prec + dPsi - 20.4898 / 3600) % 360 + 360) % 360;
|
|
273
|
+
const lambda = lambdaDeg * RAD;
|
|
274
|
+
const eps = eps0 * RAD;
|
|
275
|
+
const alpha = Math.atan2(Math.cos(eps) * Math.sin(lambda), Math.cos(lambda)) / RAD;
|
|
276
|
+
// 太阳几何平黄经(度)
|
|
277
|
+
const l0 = 280.46646 + 36000.76983 * T + 0.0003032 * T * T;
|
|
278
|
+
let e = l0 - alpha;
|
|
279
|
+
e = (((e % 360) + 540) % 360) - 180; // 归一到 (-180, 180]
|
|
280
|
+
return e * 4; // 度 -> 分钟(1° = 4 分钟)
|
|
254
281
|
}
|
|
255
282
|
|
|
256
283
|
// 一次排盘要算 72 个节气(三年窗口),每次十多轮牛顿迭代 × VSOP87 105 项。
|
package/engine/geju.js
CHANGED
|
@@ -400,7 +400,11 @@ function specialPatterns(pillars, dayStem, monthBranch, strength, wuxing, gods)
|
|
|
400
400
|
|
|
401
401
|
// 专旺:日主之气独旺,官杀、财星皆弱。
|
|
402
402
|
// 成格=旺神得月令(同类或印)且不见破;待定=气势已成但月令不助;破格=官杀逆势或财星耗旺。
|
|
403
|
-
|
|
403
|
+
// 前置是「同党 ≥5 分且不是失令无根」——不用 level 字符串:旺衰改三要素判定后,
|
|
404
|
+
// 一个失令但有强根、同党 8 分的盘会落在中和(帮扶不敌耗泄),它照样可能成专旺待定格。
|
|
405
|
+
const deLing = strength.elements ? strength.elements.ling.ok : false;
|
|
406
|
+
const deDi = strength.elements ? strength.elements.di.ok : false;
|
|
407
|
+
if ((deLing || deDi) && mine + yin >= 5) {
|
|
404
408
|
const breaks = [];
|
|
405
409
|
if (guan > 1.2) breaks.push(`官杀 ${guan} 分,逆旺势`);
|
|
406
410
|
if (cai > 1.8) breaks.push(`财 ${cai} 分,耗旺气`);
|
package/engine/trend.js
CHANGED
|
@@ -32,9 +32,8 @@ const SHISHEN_NEUTRAL = {
|
|
|
32
32
|
const FAVOR = { 身强: 'strong', 偏强: 'strong', 中和: 'neutral', 偏弱: 'weak', 身弱: 'weak' };
|
|
33
33
|
const TABLE_OF = { strong: SHISHEN_STRONG, neutral: SHISHEN_NEUTRAL, weak: SHISHEN_WEAK };
|
|
34
34
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
const BOUNDARY_EPS = 0.3;
|
|
35
|
+
// 版式说明:旺衰档位由 bazi.js 的得令/得地/得势三要素离散判定决定,不再按分数切阈值,
|
|
36
|
+
// 所以这里不按「分数贴边」判临界,改读 bazi.js 给出的 strength.edges(三要素差一个是非的提示)。
|
|
38
37
|
|
|
39
38
|
const clamp = (v, lo, hi) => Math.max(lo, Math.min(hi, v));
|
|
40
39
|
|
|
@@ -124,7 +123,8 @@ export function buildTrend(input) {
|
|
|
124
123
|
const table = TABLE_OF[FAVOR[r.strength.level] || 'neutral'];
|
|
125
124
|
const rawBound = 5 * Math.max(...Object.values(table).map(Math.abs));
|
|
126
125
|
const scoreOf = (god) => table[god] ?? 0;
|
|
127
|
-
const
|
|
126
|
+
const edges = Array.isArray(r.strength.edges) ? r.strength.edges : [];
|
|
127
|
+
const boundary = edges.length > 0;
|
|
128
128
|
|
|
129
129
|
const birthYear = Number(String(r.solarTime.civilText).slice(0, 4));
|
|
130
130
|
const segments = buildSegments(r.dayun.list, r.dayun.direction, birthYear, toAge);
|
|
@@ -168,7 +168,7 @@ export function buildTrend(input) {
|
|
|
168
168
|
birth: String(r.solarTime.civilText).slice(0, 10),
|
|
169
169
|
gender,
|
|
170
170
|
dayMaster: `${dayStem}(${r.dayMaster.yinYang}${r.dayMaster.element})`,
|
|
171
|
-
strength: { level: r.strength.level, score: r.strength.score, boundary },
|
|
171
|
+
strength: { level: r.strength.level, score: r.strength.score, basis: r.strength.basis, edges, boundary },
|
|
172
172
|
toAge,
|
|
173
173
|
// 当前年份由调用方给(asOf):引擎不读挂钟,同一条线在任意时刻复算都一致。
|
|
174
174
|
// 没给就不写这个键,summary 那边据此省掉「你现在在第几步」。
|
|
@@ -176,8 +176,8 @@ export function buildTrend(input) {
|
|
|
176
176
|
...(boundary
|
|
177
177
|
? {
|
|
178
178
|
boundaryNote:
|
|
179
|
-
|
|
180
|
-
+ '
|
|
179
|
+
`这张盘的旺衰是${r.strength.level}(${r.strength.basis}),但三要素踩在临界上:${edges.join(';')}。`
|
|
180
|
+
+ '换一个同类干支、或多一个通根,档位就会变,计分表整套正负号随之翻转——因此这里不出「最好 / 最差年份」的排序结论。',
|
|
181
181
|
}
|
|
182
182
|
: {}),
|
|
183
183
|
},
|
package/package.json
CHANGED
|
@@ -1,135 +1,135 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "dsh-metaphysics",
|
|
3
|
-
"displayName": "烛微命盘",
|
|
4
|
-
"version": "0.
|
|
5
|
-
"type": "module",
|
|
6
|
-
"description": "烛微命盘(玄学 xuanxue)for DeepSeek Harness: twenty-two systems and eleven quick references (almanac, solar–lunar conversion, …), with climate adjustment (tiaohou), the 120 Qiongtong Baojian entries, 1,062-char name library with per-character pinyin, Kangxi stroke counts, five-grid (五格/三才) analysis and mechanical phonetics checks, a 78-card tarot library on the Rider-Waite-Smith base (per-card English name, image description, core meaning and astrological correspondence, cross-checked against three published sources; court cards carry no zodiac by design and the chart says so), classical quotes (Ziping Zhenquan / Di Tian Sui / San Ming Tong Hui), hexagram body relations (六冲/六合/伏吟/反吟/化进神/化退神) plus yongshen placement (用神落位) with month/day strength (月建日辰旺衰) and whole-hexagram per-line strength (全卦逐爻旺衰) and response-time clues (应期线索:逢值/逢冲/逢合 + 月建五态快慢) for liuyao, plus an MBTI-style 16-type questionnaire and exact dayun handover dates (交运日) with annual suiyun hints (岁运并临/伏吟反吟), palace conditions (击刑/入墓), month states (旺相休囚死) and stem–palace relations (天盘干与宫生克) for qimen, flying four-transformations with chained flights (四化飞星串连), three-way-four-corner composite flights (三方四正复合飞化), switchable leap-month policy (闰月按日切分/整月归次月/整月归本月) eleven school switches (亮度/庚干四化/天马/天空/截空旬空/魁钺/天伤天使/长生/晚子时/身主/杂曜全表) for ziwei, the last one opting in to a 61-star minor-star (杂曜) table where each of the twelve extra stars carries its placement verse and the palace it landed in (verses accepted only when at least two independent published editions give the same table, homonymous stars never merged), caliber diffs for bazi/ziwei/qimen (same inputs, one switch, root-field changes), shadow-chart IDs (same normalized params → same ID; version bumps auto-diff chart fields), step-by-step deduction traces (liuyao najia→liuqin→shiying→fushen→strength; bazi strength score and pattern/yongshen; ziwei pattern conditions), and a bundled offline single-file page (命理排盘.html), a panel-to-chat handoff that asks the Harness about a finished chart, per-tab lazy engine chunks so the first-screen client bundle stays under 110KB gzip, and a public verification report (128 classical hexagram cases, 312 Zi Wei charts × 34 patterns, 12 dayun handover cases) generated from the same source that gates CI.",
|
|
7
|
-
"keywords": [
|
|
8
|
-
"玄学",
|
|
9
|
-
"玄学排盘",
|
|
10
|
-
"算命",
|
|
11
|
-
"占卜",
|
|
12
|
-
"运势",
|
|
13
|
-
"传统命理",
|
|
14
|
-
"dsh-plugin",
|
|
15
|
-
"dsh-bundle",
|
|
16
|
-
"dsh-market",
|
|
17
|
-
"metaphysics",
|
|
18
|
-
"bazi",
|
|
19
|
-
"four-pillars",
|
|
20
|
-
"ziwei",
|
|
21
|
-
"ziwei-doushu",
|
|
22
|
-
"liuyao",
|
|
23
|
-
"tarot",
|
|
24
|
-
"divination",
|
|
25
|
-
"命理",
|
|
26
|
-
"烛微命盘",
|
|
27
|
-
"八字",
|
|
28
|
-
"四柱",
|
|
29
|
-
"神煞",
|
|
30
|
-
"紫微斗数",
|
|
31
|
-
"六爻",
|
|
32
|
-
"塔罗",
|
|
33
|
-
"meihua-yishu",
|
|
34
|
-
"da-liu-ren",
|
|
35
|
-
"大六壬",
|
|
36
|
-
"梅花易数",
|
|
37
|
-
"almanac",
|
|
38
|
-
"黄历",
|
|
39
|
-
"择日",
|
|
40
|
-
"称骨",
|
|
41
|
-
"小六壬",
|
|
42
|
-
"feng-shui",
|
|
43
|
-
"风水",
|
|
44
|
-
"起名",
|
|
45
|
-
"numerology",
|
|
46
|
-
"生命数字",
|
|
47
|
-
"horoscope",
|
|
48
|
-
"星座"
|
|
49
|
-
],
|
|
50
|
-
"license": "MIT",
|
|
51
|
-
"author": "xuanfu-web",
|
|
52
|
-
"repository": {
|
|
53
|
-
"type": "git",
|
|
54
|
-
"url": "git+https://github.com/xuanfu-web/dsh-metaphysics.git"
|
|
55
|
-
},
|
|
56
|
-
"homepage": "https://github.com/xuanfu-web/dsh-metaphysics#readme",
|
|
57
|
-
"bugs": {
|
|
58
|
-
"url": "https://github.com/xuanfu-web/dsh-metaphysics/issues"
|
|
59
|
-
},
|
|
60
|
-
"engines": {
|
|
61
|
-
"node": ">=18",
|
|
62
|
-
"dsh": ">=0.2.0"
|
|
63
|
-
},
|
|
64
|
-
"scripts": {
|
|
65
|
-
"build": "node tools/build-client.mjs",
|
|
66
|
-
"build:html": "node tools/build-html.mjs",
|
|
67
|
-
"build:desktop": "node tools/build-html.mjs --desktop",
|
|
68
|
-
"build:verification": "node tools/verification.mjs",
|
|
69
|
-
"build:citations": "node tools/citations.mjs",
|
|
70
|
-
"test": "node tools/test-all.mjs",
|
|
71
|
-
"test:ci": "node tools/build-client.mjs && node tools/check-bundle.mjs && node tools/check-verification.mjs && node tools/test-all.mjs && node tools/check-assertions.mjs && node tools/verify-tests-can-fail.mjs && node tools/check-html-sinks.mjs && node tools/check-patterns.mjs && node tools/check-perf.mjs",
|
|
72
|
-
"test:baseline": "node tools/check-assertions.mjs --update",
|
|
73
|
-
"bench": "node tools/bench.mjs",
|
|
74
|
-
"check:html": "node tools/check-html-sinks.mjs",
|
|
75
|
-
"check:bundle": "node tools/check-bundle.mjs",
|
|
76
|
-
"check:patterns": "node tools/check-patterns.mjs",
|
|
77
|
-
"check:perf": "node tools/check-perf.mjs",
|
|
78
|
-
"gen:zengshan": "node tools/gen-zengshan-cases.mjs",
|
|
79
|
-
"backtest:yingqi": "node tools/backtest-yingqi.mjs",
|
|
80
|
-
"release": "node tools/release.mjs",
|
|
81
|
-
"push:tag": "node tools/push-tag.mjs",
|
|
82
|
-
"rollback:plan": "node tools/release-rollback.mjs",
|
|
83
|
-
"prompt:event": "node tools/event-prompt.mjs",
|
|
84
|
-
"smoke": "node tools/smoke-all.mjs",
|
|
85
|
-
"e2e": "node tools/e2e-dom.mjs && node tools/e2e-panel.mjs",
|
|
86
|
-
"stress": "node test/stress.test.mjs",
|
|
87
|
-
"e2e:page": "node tools/e2e-dom.mjs",
|
|
88
|
-
"e2e:panel": "node tools/e2e-panel.mjs",
|
|
89
|
-
"check:verification": "node tools/check-verification.mjs",
|
|
90
|
-
"gh:release": "node tools/gh-release.mjs"
|
|
91
|
-
},
|
|
92
|
-
"exports": {
|
|
93
|
-
".": "./index.js",
|
|
94
|
-
"./client": "./client.js",
|
|
95
|
-
"./client.*.js": "./client.*.js",
|
|
96
|
-
"./package.json": "./package.json",
|
|
97
|
-
"./locale/*.json": "./locale/*.json",
|
|
98
|
-
"./icon": "./icon.svg",
|
|
99
|
-
"./命理排盘.html": "./命理排盘.html"
|
|
100
|
-
},
|
|
101
|
-
"files": [
|
|
102
|
-
"index.js",
|
|
103
|
-
"client.js",
|
|
104
|
-
"client.*.js",
|
|
105
|
-
"命理排盘.html",
|
|
106
|
-
"engine",
|
|
107
|
-
"cordis.patch.yml",
|
|
108
|
-
"locale/*.json",
|
|
109
|
-
"icon.svg",
|
|
110
|
-
"README.md",
|
|
111
|
-
"CHANGELOG.md",
|
|
112
|
-
"docs/assets",
|
|
113
|
-
"LICENSE"
|
|
114
|
-
],
|
|
115
|
-
"dsh": {
|
|
116
|
-
"bundle": {
|
|
117
|
-
"patch": "./cordis.patch.yml"
|
|
118
|
-
},
|
|
119
|
-
"client": {
|
|
120
|
-
"platform": "web",
|
|
121
|
-
"immediately": true,
|
|
122
|
-
"inject": []
|
|
123
|
-
}
|
|
124
|
-
},
|
|
125
|
-
"devDependencies": {
|
|
126
|
-
"esbuild": "^0.28.2",
|
|
127
|
-
"playwright-core": "^1.49.1",
|
|
128
|
-
"react": "^18.3.1",
|
|
129
|
-
"react-dom": "^18.3.1"
|
|
130
|
-
},
|
|
131
|
-
"meta": {
|
|
132
|
-
"title": "烛微命盘",
|
|
133
|
-
"description": "二十二套命理排盘与速查,本地计算,每一步都能展开核对。"
|
|
134
|
-
}
|
|
135
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "dsh-metaphysics",
|
|
3
|
+
"displayName": "烛微命盘",
|
|
4
|
+
"version": "0.77.0",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"description": "烛微命盘(玄学 xuanxue)for DeepSeek Harness: twenty-two systems and eleven quick references (almanac, solar–lunar conversion, …), with climate adjustment (tiaohou), the 120 Qiongtong Baojian entries, 1,062-char name library with per-character pinyin, Kangxi stroke counts, five-grid (五格/三才) analysis and mechanical phonetics checks, a 78-card tarot library on the Rider-Waite-Smith base (per-card English name, image description, core meaning and astrological correspondence, cross-checked against three published sources; court cards carry no zodiac by design and the chart says so), classical quotes (Ziping Zhenquan / Di Tian Sui / San Ming Tong Hui), hexagram body relations (六冲/六合/伏吟/反吟/化进神/化退神) plus yongshen placement (用神落位) with month/day strength (月建日辰旺衰) and whole-hexagram per-line strength (全卦逐爻旺衰) and response-time clues (应期线索:逢值/逢冲/逢合 + 月建五态快慢) for liuyao, plus an MBTI-style 16-type questionnaire and exact dayun handover dates (交运日) with annual suiyun hints (岁运并临/伏吟反吟), palace conditions (击刑/入墓), month states (旺相休囚死) and stem–palace relations (天盘干与宫生克) for qimen, flying four-transformations with chained flights (四化飞星串连), three-way-four-corner composite flights (三方四正复合飞化), switchable leap-month policy (闰月按日切分/整月归次月/整月归本月) eleven school switches (亮度/庚干四化/天马/天空/截空旬空/魁钺/天伤天使/长生/晚子时/身主/杂曜全表) for ziwei, the last one opting in to a 61-star minor-star (杂曜) table where each of the twelve extra stars carries its placement verse and the palace it landed in (verses accepted only when at least two independent published editions give the same table, homonymous stars never merged), caliber diffs for bazi/ziwei/qimen (same inputs, one switch, root-field changes), shadow-chart IDs (same normalized params → same ID; version bumps auto-diff chart fields), step-by-step deduction traces (liuyao najia→liuqin→shiying→fushen→strength; bazi strength score and pattern/yongshen; ziwei pattern conditions), and a bundled offline single-file page (命理排盘.html), a panel-to-chat handoff that asks the Harness about a finished chart, per-tab lazy engine chunks so the first-screen client bundle stays under 110KB gzip, and a public verification report (128 classical hexagram cases, 312 Zi Wei charts × 34 patterns, 12 dayun handover cases) generated from the same source that gates CI.",
|
|
7
|
+
"keywords": [
|
|
8
|
+
"玄学",
|
|
9
|
+
"玄学排盘",
|
|
10
|
+
"算命",
|
|
11
|
+
"占卜",
|
|
12
|
+
"运势",
|
|
13
|
+
"传统命理",
|
|
14
|
+
"dsh-plugin",
|
|
15
|
+
"dsh-bundle",
|
|
16
|
+
"dsh-market",
|
|
17
|
+
"metaphysics",
|
|
18
|
+
"bazi",
|
|
19
|
+
"four-pillars",
|
|
20
|
+
"ziwei",
|
|
21
|
+
"ziwei-doushu",
|
|
22
|
+
"liuyao",
|
|
23
|
+
"tarot",
|
|
24
|
+
"divination",
|
|
25
|
+
"命理",
|
|
26
|
+
"烛微命盘",
|
|
27
|
+
"八字",
|
|
28
|
+
"四柱",
|
|
29
|
+
"神煞",
|
|
30
|
+
"紫微斗数",
|
|
31
|
+
"六爻",
|
|
32
|
+
"塔罗",
|
|
33
|
+
"meihua-yishu",
|
|
34
|
+
"da-liu-ren",
|
|
35
|
+
"大六壬",
|
|
36
|
+
"梅花易数",
|
|
37
|
+
"almanac",
|
|
38
|
+
"黄历",
|
|
39
|
+
"择日",
|
|
40
|
+
"称骨",
|
|
41
|
+
"小六壬",
|
|
42
|
+
"feng-shui",
|
|
43
|
+
"风水",
|
|
44
|
+
"起名",
|
|
45
|
+
"numerology",
|
|
46
|
+
"生命数字",
|
|
47
|
+
"horoscope",
|
|
48
|
+
"星座"
|
|
49
|
+
],
|
|
50
|
+
"license": "MIT",
|
|
51
|
+
"author": "xuanfu-web",
|
|
52
|
+
"repository": {
|
|
53
|
+
"type": "git",
|
|
54
|
+
"url": "git+https://github.com/xuanfu-web/dsh-metaphysics.git"
|
|
55
|
+
},
|
|
56
|
+
"homepage": "https://github.com/xuanfu-web/dsh-metaphysics#readme",
|
|
57
|
+
"bugs": {
|
|
58
|
+
"url": "https://github.com/xuanfu-web/dsh-metaphysics/issues"
|
|
59
|
+
},
|
|
60
|
+
"engines": {
|
|
61
|
+
"node": ">=18",
|
|
62
|
+
"dsh": ">=0.2.0"
|
|
63
|
+
},
|
|
64
|
+
"scripts": {
|
|
65
|
+
"build": "node tools/build-client.mjs",
|
|
66
|
+
"build:html": "node tools/build-html.mjs",
|
|
67
|
+
"build:desktop": "node tools/build-html.mjs --desktop",
|
|
68
|
+
"build:verification": "node tools/verification.mjs",
|
|
69
|
+
"build:citations": "node tools/citations.mjs",
|
|
70
|
+
"test": "node tools/test-all.mjs",
|
|
71
|
+
"test:ci": "node tools/build-client.mjs && node tools/check-bundle.mjs && node tools/check-verification.mjs && node tools/test-all.mjs && node tools/check-assertions.mjs && node tools/verify-tests-can-fail.mjs && node tools/check-html-sinks.mjs && node tools/check-patterns.mjs && node tools/check-perf.mjs",
|
|
72
|
+
"test:baseline": "node tools/check-assertions.mjs --update",
|
|
73
|
+
"bench": "node tools/bench.mjs",
|
|
74
|
+
"check:html": "node tools/check-html-sinks.mjs",
|
|
75
|
+
"check:bundle": "node tools/check-bundle.mjs",
|
|
76
|
+
"check:patterns": "node tools/check-patterns.mjs",
|
|
77
|
+
"check:perf": "node tools/check-perf.mjs",
|
|
78
|
+
"gen:zengshan": "node tools/gen-zengshan-cases.mjs",
|
|
79
|
+
"backtest:yingqi": "node tools/backtest-yingqi.mjs",
|
|
80
|
+
"release": "node tools/release.mjs",
|
|
81
|
+
"push:tag": "node tools/push-tag.mjs",
|
|
82
|
+
"rollback:plan": "node tools/release-rollback.mjs",
|
|
83
|
+
"prompt:event": "node tools/event-prompt.mjs",
|
|
84
|
+
"smoke": "node tools/smoke-all.mjs",
|
|
85
|
+
"e2e": "node tools/e2e-dom.mjs && node tools/e2e-panel.mjs",
|
|
86
|
+
"stress": "node test/stress.test.mjs",
|
|
87
|
+
"e2e:page": "node tools/e2e-dom.mjs",
|
|
88
|
+
"e2e:panel": "node tools/e2e-panel.mjs",
|
|
89
|
+
"check:verification": "node tools/check-verification.mjs",
|
|
90
|
+
"gh:release": "node tools/gh-release.mjs"
|
|
91
|
+
},
|
|
92
|
+
"exports": {
|
|
93
|
+
".": "./index.js",
|
|
94
|
+
"./client": "./client.js",
|
|
95
|
+
"./client.*.js": "./client.*.js",
|
|
96
|
+
"./package.json": "./package.json",
|
|
97
|
+
"./locale/*.json": "./locale/*.json",
|
|
98
|
+
"./icon": "./icon.svg",
|
|
99
|
+
"./命理排盘.html": "./命理排盘.html"
|
|
100
|
+
},
|
|
101
|
+
"files": [
|
|
102
|
+
"index.js",
|
|
103
|
+
"client.js",
|
|
104
|
+
"client.*.js",
|
|
105
|
+
"命理排盘.html",
|
|
106
|
+
"engine",
|
|
107
|
+
"cordis.patch.yml",
|
|
108
|
+
"locale/*.json",
|
|
109
|
+
"icon.svg",
|
|
110
|
+
"README.md",
|
|
111
|
+
"CHANGELOG.md",
|
|
112
|
+
"docs/assets",
|
|
113
|
+
"LICENSE"
|
|
114
|
+
],
|
|
115
|
+
"dsh": {
|
|
116
|
+
"bundle": {
|
|
117
|
+
"patch": "./cordis.patch.yml"
|
|
118
|
+
},
|
|
119
|
+
"client": {
|
|
120
|
+
"platform": "web",
|
|
121
|
+
"immediately": true,
|
|
122
|
+
"inject": []
|
|
123
|
+
}
|
|
124
|
+
},
|
|
125
|
+
"devDependencies": {
|
|
126
|
+
"esbuild": "^0.28.2",
|
|
127
|
+
"playwright-core": "^1.49.1",
|
|
128
|
+
"react": "^18.3.1",
|
|
129
|
+
"react-dom": "^18.3.1"
|
|
130
|
+
},
|
|
131
|
+
"meta": {
|
|
132
|
+
"title": "烛微命盘",
|
|
133
|
+
"description": "二十二套命理排盘与速查,本地计算,每一步都能展开核对。"
|
|
134
|
+
}
|
|
135
|
+
}
|