dsh-metaphysics 0.70.0 → 0.71.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/engine/taiyi.js CHANGED
@@ -286,6 +286,8 @@ export function verdictOf(o) {
286
286
  }
287
287
 
288
288
  /** 《太乙金镜式经》这一层覆盖的算法清单(面板与文案都从这里取) */
289
+
290
+
289
291
  export const TAIYI_SCOPE = {
290
292
  covered: [
291
293
  '太乙积年与五元六纪',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-metaphysics",
3
- "version": "0.70.0",
3
+ "version": "0.71.0",
4
4
  "type": "module",
5
5
  "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.",
6
6
  "keywords": [
@@ -361,7 +361,7 @@ h3::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,var(--li
361
361
  <div class="wrap">
362
362
  <header>
363
363
  <div class="brand-row">
364
- <div class="brand"><span class="seal" aria-hidden="true">命</span><span class="brand-txt">命理排盘<span class="ver">v0.70.0</span><small>八字 · 紫微 · 六爻 · 梅花 · 六壬 · 奇门 · 合盘 · 塔罗 全部在本机计算</small></span></div>
364
+ <div class="brand"><span class="seal" aria-hidden="true">命</span><span class="brand-txt">命理排盘<span class="ver">v0.71.0</span><small>八字 · 紫微 · 六爻 · 梅花 · 六壬 · 奇门 · 合盘 · 塔罗 全部在本机计算</small></span></div>
365
365
  <div class="view-switch">
366
366
  <span class="hint">熟练了可以换回平铺</span>
367
367
  <span class="seg" role="group" aria-label="首屏样式">
@@ -679,7 +679,7 @@ h3::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,var(--li
679
679
  <h3>对拍:把典籍当期望值</h3>
680
680
  <ul><li>六爻:京房八宫卦序与世应,64 卦全表;旬空六旬表</li><li>六壬:日干寄宫、中气换将;紫微:纳音定五行局、紫微天府相照</li><li>卦例:《增删卜易》9 条 +《卜筮正宗》128 条(93 成对 + 35 静卦),核本变卦 / 动爻数 / 卦宫 / 缺爻 / 旬空</li><li>奇门:20 个时辰 × 9 宫,核四柱 / 局数 / 值符 / 值使 / 星门神 / 天盘干</li></ul>
681
681
  <h3>工程验证</h3>
682
- <ul><li>测试:177 个测试文件 / 10072 条断言;七道闸(回归 · 断言基线 · 测试可失败自检 · HTML 注入面 · 工程约定 · 产物宿主形态 · 随机扫射)</li><li>可复现:seed / asOf 显式;同一输入同一输出</li><li>口径:晚子时、真太阳时、奇门三流派、闰月归月都可切换,并有字段级差异对照</li></ul>
682
+ <ul><li>测试:177 个测试文件 / 10078 条断言;七道闸(回归 · 断言基线 · 测试可失败自检 · HTML 注入面 · 工程约定 · 产物宿主形态 · 随机扫射)</li><li>可复现:seed / asOf 显式;同一输入同一输出</li><li>口径:晚子时、真太阳时、奇门三流派、闰月归月都可切换,并有字段级差异对照</li></ul>
683
683
 
684
684
  <h3>已知边界(不猜)</h3>
685
685
  <ul><li>六爻应期(具体哪天应验)不做;卦例只录动爻个数,不录爻位</li><li>财富/健康只给结构判断与档位,不给金额区间、不作诊断</li><li>紫微飞星已做「单一支化逐宫追到成环」与「三方四正 16 条按落宫归堆」,但都未叠大限流年四化、不折吉凶;八字交运日已能算到日/时,但未与第三方排盘案例批量对拍</li></ul>
@@ -19545,6 +19545,8 @@ function verdictOf(o) {
19545
19545
  }
19546
19546
 
19547
19547
  /** 《太乙金镜式经》这一层覆盖的算法清单(面板与文案都从这里取) */
19548
+
19549
+
19548
19550
  const TAIYI_SCOPE = {
19549
19551
  covered: [
19550
19552
  '太乙积年与五元六纪',
@@ -31988,7 +31990,7 @@ return { interpret, DIRECTIONS, DIRECTION_DEFAULT, BRIGHTNESS, flowOf, parseDate
31988
31990
  })();
31989
31991
 
31990
31992
  window.Engine = __mods.index;
31991
- window.__MP_VER = "0.70.0";
31993
+ window.__MP_VER = "0.71.0";
31992
31994
  </script>
31993
31995
  <script>
31994
31996
  // 两个 UI 共用的表单规则:宿主面板(src/app.js)与独立页(src/web-ui.js)。
@@ -32733,6 +32735,9 @@ window.__MP_VER = "0.70.0";
32733
32735
  .mp-ty-y{font-size:15px;font-weight:700}
32734
32736
  .mp-ty-j{font-weight:600;color:var(--lu)}
32735
32737
  .mp-ty-m{font-size:11px;color:var(--label)}
32738
+ .mp-pl{padding:8px 2px 2px;margin-top:6px}
32739
+ .mp-pl-lead{margin:0 0 4px;font-size:14px;font-weight:600;color:var(--ink)}
32740
+ .mp-pl-how{margin:0;font-size:13px;line-height:1.6;color:var(--ink2)}
32736
32741
  .mp-ty-plain{padding:9px 2px 10px;border-top:1px solid var(--hair);margin-top:8px}
32737
32742
  .mp-ty-plain p{margin:0 0 6px;font-size:13px;line-height:1.65;color:var(--ink2)}
32738
32743
  .mp-ty-plain .mp-ty-lead{font-size:14px;font-weight:600;color:var(--ink)}
@@ -36239,6 +36244,24 @@ window.__MP_VER = "0.70.0";
36239
36244
  // 太乙神数:九宫地盘 + 太乙/文昌落点 + 八门 + 五元六纪。
36240
36245
  // 地盘按「南上北下」排:巽离坤 / 震中兑 / 艮坎乾。中五宫太乙不入,只作方位补全。
36241
36246
  // 太乙、八门、文昌、计神、始击、主客算与四将都是算实的;定目、三基五福十精、击格不在盘上出现。
36247
+
36248
+ // 盘面下一句人话 + 怎么读;太乙自带白话层,返回空避重复。
36249
+ const PC = ' liuyao tarot meihua daliuren qimen xiaoliuren ';
36250
+ const PD = ' almanac zeri convert star numerology wuyunliuqi ';
36251
+ const SAY = {
36252
+ cast: '先看卦名或牌名——事情此刻的样子;再看动爻、正逆位,变化在那里。',
36253
+ person: '先找「你」那一格(日主、命宫或主质);再看被强调的字或星。',
36254
+ day: '先看今天值什么,再看宜忌那几栏。',
36255
+ };
36256
+ pp.plainHTML = function (r) {
36257
+ if (!r || r.system === 'taiyi') return '';
36258
+ const lead = (r.brief && r.brief.lead) || '';
36259
+ if (!lead) return '';
36260
+ const s = ' ' + String(r.system || '') + ' ';
36261
+ const say = PC.indexOf(s) >= 0 ? SAY.cast : PD.indexOf(s) >= 0 ? SAY.day : SAY.person;
36262
+ return '<div class="mp-pl"><p class="mp-pl-lead">' + esc(lead) + '</p><p class="mp-pl-how">' + esc(say) + '</p></div>';
36263
+ };
36264
+
36242
36265
  pp.taiyiHTML = function (r) {
36243
36266
  if (!r || !r.taiyi || !r.meta) return '';
36244
36267
  const t = r.taiyi;
@@ -37779,7 +37802,7 @@ document.head.appendChild(Object.assign(document.createElement('style'), { textC
37779
37802
  if (window.Engine.caliberCompare) {
37780
37803
  try { caliber = window.Engine.caliberCompare(args); } catch (e) { caliber = null; }
37781
37804
  }
37782
- const html = (lineWarn ? `<div class="note">${lineWarn}</div>` : '') + (tab === 'ziwei' ? window.__PP.ziweiHTML(r)
37805
+ const chart0 = (tab === 'ziwei' ? window.__PP.ziweiHTML(r)
37783
37806
  : tab === 'bazi' ? (window.__PP.baziHTML(r) + (trend ? window.__PP.trendHTML(trend, { brief: false }) : ''))
37784
37807
  : tab === 'hepan' ? (r.chart === 'ziwei' ? window.__PP.ziweiHepanHTML(r) : window.__PP.hepanHTML(r))
37785
37808
  : tab === 'qimen' ? (window.__PP.qimenHTML(r) + window.__PP.qimenFactsHTML(r))
@@ -37798,6 +37821,12 @@ document.head.appendChild(Object.assign(document.createElement('style'), { textC
37798
37821
  : tab === 'taiyi' ? window.__PP.taiyiHTML(r)
37799
37822
  : tab === 'fengshui' ? window.__PP.fengshuiHTML(r)
37800
37823
  : window.__PP.quickHTML(r));
37824
+ // 独立页按和面板一样的口径:盘面第一、白话其次、结论方框最后(早前只在 app.js 做,独立页没跟上)。
37825
+ const cut = chart0.startsWith('<section class="mp-br"') ? chart0.indexOf('</section>') : -1;
37826
+ const html = (lineWarn ? `<div class="note">${lineWarn}</div>` : '')
37827
+ + (cut < 0 ? chart0 : chart0.slice(cut + 10))
37828
+ + window.__PP.plainHTML(r)
37829
+ + (cut < 0 ? '' : chart0.slice(0, cut + 10));
37801
37830
  // 新盘就是新的一轮:上一次的自评、贴合度、候选时辰不能跟着贴到这张盘上
37802
37831
  // (它们只在模块里存着,重绘不会自己清)。
37803
37832
  pastMarks = {}; pastFit = null; rectOut = null;