dsh-metaphysics 0.56.0 → 0.57.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 +1115 -1102
- package/README.md +8 -3
- package/client.almanac.js +62 -58
- package/client.bazi.js +102 -96
- package/client.chenggu.js +65 -61
- package/client.convert.js +64 -60
- package/client.daliuren.js +103 -97
- package/client.fengshui.js +64 -60
- package/client.hepan.js +103 -97
- package/client.js +302 -253
- package/client.liuyao.js +102 -96
- package/client.mbti.js +63 -59
- package/client.name.js +64 -60
- package/client.numerology.js +65 -61
- package/client.qimen.js +103 -97
- package/client.star.js +62 -58
- package/client.tarot.js +99 -95
- package/client.trend.js +100 -94
- package/client.xiaoliuren.js +63 -59
- package/client.zeri.js +63 -59
- package/client.ziwei.js +102 -96
- package/engine/citations.js +549 -320
- package/engine/diff.js +5 -0
- package/engine/fengshui.js +718 -718
- package/engine/geju.js +16 -0
- package/engine/handle.js +192 -0
- package/engine/index.js +57 -8
- package/engine/interpret-plain.js +4 -1
- package/engine/interpret.js +7 -3
- package/engine/qimen-ganying.js +134 -134
- package/engine/qimen-interpret.js +233 -233
- package/engine/revise.js +162 -0
- package/engine/trace.js +493 -456
- package/index.js +41 -4
- package/package.json +115 -113
- package//345/221/275/347/220/206/346/216/222/347/233/230.html +2701 -1873
package/client.almanac.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
window.__ModuleLoader__.load({id:"dsh-metaphysics",chunk:"client.almanac.js",factory(
|
|
2
|
-
`);const
|
|
3
|
-
`)}const z=(o,r,s,y,k,f)=>({key:o,title:r,short:s,read:c=>{const S=c[o]!==void 0?c[o]:c.schools&&c.schools[o];return f[S]?S:y},alt:c=>c===k?y:k,label:c=>f[c]||c}),Y={bazi:[{key:"lateZi",title:"晚子时:23:00 后是否换日",short:"晚子时",read:o=>o.lateZi!==!1,alt:o=>!o,label:o=>o?"换日":"不换日"},{key:"trueSolar",title:"真太阳时:是否按出生地经度修正",short:"真太阳时",read:o=>o.trueSolar!==!1,alt:o=>!o,label:o=>o?"修正":"不修正"}],ziwei:[{key:"leapMonth",title:"闰月归月:按日切分 / 整月归次月",short:"闰月归月",read:o=>o.leapMonth==="next"||o.leapMonth==="prev"?o.leapMonth:"split",alt:o=>o==="split"?"next":"split",label:o=>({split:"按日切分",next:"整月归次月",prev:"整月归本月"})[o]||o},{key:"trueSolar",title:"真太阳时:是否按出生地经度修正",short:"真太阳时",read:o=>o.trueSolar!==!1,alt:o=>!o,label:o=>o?"修正":"不修正"},z("brightnessSchool","亮度表:默认 / QS 七档","亮度表","default","QS",{default:"默认",QS:"QS(七档)",XD1:"XD1(七档)",ZZ:"ZZ(五档)",XD2:"XD2(五档)"}),z("gengYearSihua","庚干四化:阳武阴同 / 同科阴忌","庚干四化","GYWYT","GYWTY",{GYWYT:"阳武阴同",GYWTY:"同科阴忌",GYWFT:"府科同忌",GYWFX:"府科相忌",GYWTX:"同科相忌"}),z("tianmaSchool","天马:按年支 / 按生月","天马","year-branch","month-branch",{"year-branch":"年支","month-branch":"生月"}),z("tiankongSchool","天空:不排 / 年支顺行","天空","off","normal",{off:"不排",normal:"年支顺行","shun-jia-shi":"加生时"}),z("jiekongSchool","截空旬空:不排 / 正副双星","截空旬空","off","double",{off:"不排",single:"单星",double:"正副双星",zhanyan:"占验派"}),z("kuiyueSchool","魁钺:qs1 / qs2","魁钺","qs1","qs2",{qs1:"qs1",qs2:"qs2","zhong-yiming":"中一鸣",network:"网络"}),z("tianshiTianshang","天伤天使:常规 / 中州互换","天伤天使","normal","zhongzhou",{normal:"常规",zhongzhou:"中州(阴男阳女互换)"}),z("changshengSchool","长生:阴阳顺逆 / 火土起寅","长生","yin-yang-shun-ni","huo-tu",{"yin-yang-shun-ni":"阴阳顺逆","shui-tu":"水二","huo-tu":"火土(土五局起寅)"}),z("lateZishi","晚子时:归当日 / 归次日","晚子时","current-day","next-day",{"current-day":"归当日","next-day":"归次日","all-current":"全归当日","day-cur-time-next":"日归当日·时归次日"}),z("shenzhuSchool","身主:子午皆火星 / 子铃午火","身主","common","verse",{common:"子午皆火星",verse:"子铃午火(安身主诀逐字)"})],qimen:[{key:"juMethod",title:"取局流派:拆补 / 超神接气 / 置闰",short:"取局流派",read:o=>["chaibu","chaoshen","zhirun"].includes(o.juMethod)?o.juMethod:"chaibu",alt:o=>o==="chaibu"?"zhirun":"chaibu",label:o=>({chaibu:"拆补法",chaoshen:"超神接气",zhirun:"置闰法"})[o]||o},{key:"lateZiHourMode",title:"晚子时:23:00 后归当日 / 次日",short:"晚子时归日",read:o=>o.lateZiHourMode==="next-day"?"next-day":"same-day",alt:o=>o==="next-day"?"same-day":"next-day",label:o=>o==="next-day"?"归次日":"归当日"}]};return{diffObjects:I,labelOf:$,categoryOf:v,rootOf:u,sortDiffs:w,summarize:b,formatValue:x,renderDiff:l,CALIBER_SWITCHES:Y}})(),A.fingerprint=(function(){const O="0123456789ABCDEFGHJKMNPQRSTVWXYZ";function q(g){return JSON.stringify(I(g))}function I(g){if(g===null)return null;const $=typeof g;if($==="string")return typeof g.normalize=="function"?g.normalize("NFC"):g;if($==="number")return Number.isFinite(g)?Object.is(g,-0)?0:g:null;if($==="boolean")return g;if(Array.isArray(g))return g.map(I);if($==="object"){const v={};for(const u of Object.keys(g).sort()){const w=g[u];w===void 0||typeof w=="function"||typeof w=="symbol"||(v[u]=I(w))}return v}return null}function M(g){const $=String(g);let v=2166136261,u=2654435769;for(let x=0;x<$.length;x+=1){const l=$.charCodeAt(x);for(const z of[l&255,l>>>8])v=Math.imul(v^z,16777619),u=Math.imul(u^z,2246822507)}let w=(v>>>0)*8+(u>>>29),b="";for(let x=0;x<7;x+=1)b=O[w%32]+b,w=Math.floor(w/32);return b}function E(g={}){const $=String(g.system||""),v=String(g.version||"dev"),u=g.seed===void 0||g.seed===null||g.seed===""?null:Number(g.seed),w=g.asOf?String(g.asOf):null,b=g.params&&typeof g.params=="object"?g.params:{},x=q({system:$,params:b,seed:u,asOf:w}),l=q({base:x,version:v});return{id:`LY-${M(l)}`,baseId:`LY-${M(x)}`,version:v,system:$,payload:x}}return{canonicalJson:q,shortHash:M,fingerprintOf:E}})(),A.validate=(function(){const{fail:O}=A.fail||{},q=1600,I=2400;function M(u){return u%4===0&&u%100!==0||u%400===0}function E(u,w){return w===2?M(u)?29:28:[31,28,31,30,31,30,31,31,30,31,30,31][w-1]||0}const g=u=>typeof u=="string"?`「${u}」`:String(u),$="引擎只接受解析好的公历字段 { year, month, day, hour?, minute? };字符串请先交给宿主层的 parseDateTime 解析";function v(u,w=""){const b=w?`${w} 的`:"";if(!u||typeof u!="object"||Array.isArray(u)){const Y=u===null?"null":Array.isArray(u)?"数组":typeof u;throw O("E_INPUT",`${b}入参必须是对象(收到 ${Y});${$}`)}const x=u.hour===void 0?0:u.hour,l=u.minute===void 0?0:u.minute;for(const[Y,o]of[["year",u.year],["month",u.month],["day",u.day],["hour",x],["minute",l]])if(!Number.isInteger(o))throw O("E_INPUT",`${b}${Y} 必须是整数(收到 ${g(o)});${$}`);if(u.year<q||u.year>I)throw O("E_INPUT",`${b}year 超出支持范围 ${q}–${I}(收到 ${u.year});更早的年份时区与历法口径不可靠`);if(u.month<1||u.month>12)throw O("E_INPUT",`${b}month 超出范围 1–12(收到 ${u.month})`);const z=E(u.year,u.month);if(u.day<1||u.day>z)throw O("E_INPUT",`${b}日期不存在:${u.year}-${u.month}-${u.day}(${u.year} 年 ${u.month} 月只有 ${z} 天)`);if(x<0||x>23)throw O("E_INPUT",`${b}hour 超出范围 0–23(收到 ${x})`);if(l<0||l>59)throw O("E_INPUT",`${b}minute 超出范围 0–59(收到 ${l})`);return u}return{MIN_YEAR:q,MAX_YEAR:I,isLeapYear:M,daysInMonth:E,assertCivil:v}})(),A.lru=(function(){function O({max:q=64,ttlMs:I=0,name:M="lru",now:E=()=>Date.now()}={}){const g=new Map,$={name:M,hits:0,misses:0,evictions:0,expirations:0},v=u=>I>0&&E()-u.at>I;return{name:M,max:q,ttlMs:I,get(u){const w=g.get(u);if(!w||v(w)){w&&(g.delete(u),$.expirations+=1),$.misses+=1;return}return g.delete(u),g.set(u,w),$.hits+=1,w.value},set(u,w){for(g.has(u)&&g.delete(u),g.set(u,{value:w,at:E()});g.size>q;)g.delete(g.keys().next().value),$.evictions+=1;return w},has(u){const w=g.get(u);return w?v(w)?(g.delete(u),$.expirations+=1,!1):!0:!1},delete(u){return g.delete(u)},clear(){g.clear()},get size(){return g.size},stats(){const u=$.hits+$.misses;return{name:M,size:g.size,max:q,hits:$.hits,misses:$.misses,evictions:$.evictions,expirations:$.expirations,hitRate:u?$.hits/u:0}}}}return{createLru:O}})(),A.nayin=(function(){const O=["海中金","炉中火","大林木","路旁土","剑锋金","山头火","涧下水","城头土","白蜡金","杨柳木","泉中水","屋上土","霹雳火","松柏木","长流水","沙中金","山下火","平地木","壁上土","金箔金","覆灯火","天河水","大驿土","钗钏金","桑柘木","大溪水","沙中土","天上火","石榴木","大海水"];function q(I){const M=(Number(I)%60+60)%60,E=O[Math.floor(M/2)];return{name:E,element:E[2]}}return{NAYIN_NAMES:O,nayinOf:q}})(),A.sanhe=(function(){const O=[{branches:["申","子","辰"],element:"水"},{branches:["亥","卯","未"],element:"木"},{branches:["寅","午","戌"],element:"火"},{branches:["巳","酉","丑"],element:"金"}],q=Object.fromEntries(O.map(E=>[E.branches.join(""),E.element])),I=Object.fromEntries(O.flatMap(E=>E.branches.map(g=>[g,E.element])));function M(E){return O.find(g=>g.branches.includes(E))||null}return{SANHE_GROUPS:O,SANHE:q,SANHE_ELEMENT:I,sanheGroupOf:M}})(),A["vsop-earth"]=(function(){const O=[[1.75347045673,0,0],[.03341656453,4.66925680415,6283.0758499914],[.00034894275,4.62610242189,12566.1516999828],[3417572e-11,2.82886579754,3.523118349],[3497056e-11,2.74411783405,5753.3848848968],[3135899e-11,3.62767041756,77713.7714681205],[2676218e-11,4.41808345438,7860.4193924392],[2342691e-11,6.13516214446,3930.2096962196],[1273165e-11,2.03709657878,529.6909650946],[1324294e-11,.74246341673,11506.7697697936],[901854e-11,2.04505446477,26.2983197998],[1199167e-11,1.10962946234,1577.3435424478],[857223e-11,3.50849152283,398.1490034082],[779786e-11,1.17882681962,5223.6939198022],[99025e-10,5.23268072088,5884.9268465832],[753141e-11,2.53339052847,5507.5532386674],[505267e-11,4.58292599973,18849.2275499742],[492392e-11,4.20505711826,775.522611324],[356672e-11,2.91954114478,.0673103028],[284125e-11,1.89869240932,796.2980068164],[242879e-11,.34481445893,5486.777843175],[317087e-11,5.84901948512,11790.6290886588],[271112e-11,.31486255375,10977.078804699],[206217e-11,4.80646631478,2544.3144198834],[205478e-11,1.86953770281,5573.1428014331],[202318e-11,2.45767790232,6069.7767545534],[126225e-11,1.08295459501,20.7753954924],[155516e-11,.83306084617,213.299095438],[115132e-11,.64544911683,.9803210682],[102851e-11,.63599845579,4694.0029547076],[101724e-11,4.2667980198,7.1135470008],[99206e-11,6.20992926918,2146.1654164752],[132212e-11,3.41118292683,2942.4634232916],[97607e-11,.68101342359,155.4203994342],[85128e-11,1.29870764804,6275.9623029906],[74651e-11,1.755089133,5088.6288397668],[101895e-11,.97569280312,15720.8387848784],[84711e-11,3.67080093031,71430.69561812909],[73547e-11,4.67926633877,801.8209311238],[73874e-11,3.50319414955,3154.6870848956],[78757e-11,3.03697458703,12036.4607348882],[79637e-11,1.80791287082,17260.1546546904],[85803e-11,5.9832263126,161000.6857376741],[56963e-11,2.78430458592,6286.5989683404],[61148e-11,1.81839892984,7084.8967811152],[69627e-11,.83297621398,9437.762934887],[56116e-11,4.38694865354,14143.4952424306],[62449e-11,3.97763912806,8827.3902698748],[51145e-11,.28306832879,5856.4776591154],[55577e-11,3.47006059924,6279.5527316424],[41036e-11,5.36817592855,8429.2412664666],[51605e-11,1.33282739866,1748.016413067],[51992e-11,.18914947184,12139.5535091068],[49e-8,.48735014197,1194.4470102246],[392e-9,6.16833020996,10447.3878396044],[3557e-10,1.775968892,6812.766815086],[3677e-10,6.04133863162,10213.285546211],[36596e-11,2.56957481827,1059.3819301892],[33296e-11,.59310278598,17789.845619785],[35954e-11,1.70875808777,2352.8661537718],[40938e-11,2.39850938714,19651.048481098],[30047e-11,2.73975124088,1349.8674096588],[30412e-11,.44294464169,83996.84731811189],[23663e-11,.48473622521,8031.0922630584],[23574e-11,2.06528133162,3340.6124266998],[21089e-11,4.14825468851,951.7184062506],[24738e-11,.21484762138,3.5904286518],[25352e-11,3.16470891653,4690.4798363586],[22823e-11,5.22195230819,4705.7323075436],[21419e-11,1.42563910473,16730.4636895958],[21891e-11,5.55594302779,553.5694028424],[203e-9,.37133792946,283.8593188652]],q=[[6283.0758499914,0,0],[.00206058863,2.67823455808,6283.0758499914],[4303419e-11,2.63512233481,12566.1516999828],[425264e-11,1.59046982018,3.523118349],[109017e-11,2.96631010675,1577.3435424478],[93479e-11,2.59211109542,18849.2275499742],[119305e-11,5.79555765566,26.2983197998],[72121e-11,1.13840581212,529.6909650946],[67784e-11,1.87453300345,398.1490034082],[6735e-10,4.40932832004,5507.5532386674],[59045e-11,2.88815790631,5223.6939198022],[55976e-11,2.17471740035,155.4203994342],[45411e-11,.39799502896,796.2980068164],[36298e-11,.46875437227,775.522611324],[28962e-11,2.64732254645,7.1135470008],[20844e-11,5.34138275149,.9803210682]],I=[[8721859e-11,1.07253635559,6283.0758499914],[99099e-10,3.14159265359,0],[294833e-11,.43717350256,12566.1516999828],[27338e-11,.05295636147,3.523118349],[16333e-11,5.18820215724,26.2983197998],[15745e-11,3.68504712183,155.4203994342],[9425e-11,.29667114694,18849.2275499742],[8938e-11,2.05706319592,77713.7714681205],[694e-10,.82691541038,775.522611324],[5061e-11,4.6624323168,1577.3435424478]],M=[[289058e-11,5.84173149732,6283.0758499914],[20712e-11,6.0498393902,12566.1516999828],[2962e-11,5.1956057957,155.4203994342],[2527e-11,3.14159265359,0],[1288e-11,4.7219761197,3.523118349]],E=[[7714e-11,4.14117321449,6283.0758499914],[1016e-11,3.27573644241,12566.1516999828]];function g($){let v=0;for(const[w,b,x]of O)v+=w*Math.cos(b+x*$);let u=1;for(const w of[q,I,M,E]){u*=$;for(const[b,x,l]of w)v+=b*u*Math.cos(x+l*$)}return v}return{earthL:g}})(),A.calendar=(function(){const{earthL:O}=A["vsop-earth"]||{},{createLru:q}=A.lru||{},I=["甲","乙","丙","丁","戊","己","庚","辛","壬","癸"],M=["子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"],E=["小寒","大寒","立春","雨水","惊蛰","春分","清明","谷雨","立夏","小满","芒种","夏至","小暑","大暑","立秋","处暑","白露","秋分","寒露","霜降","立冬","小雪","大雪","冬至"];function g(N){return(285+15*N)%360}function $(N,T,j){const R=Math.floor((14-T)/12),D=N+4800-R,J=T+12*R-3;return j+Math.floor((153*J+2)/5)+365*D+Math.floor(D/4)-Math.floor(D/100)+Math.floor(D/400)-32045}function v(N){const T=N+32044,j=Math.floor((4*T+3)/146097),R=T-Math.floor(146097*j/4),D=Math.floor((4*R+3)/1461),J=R-Math.floor(1461*D/4),ne=Math.floor((5*J+2)/153);return{year:100*j+D-4800+Math.floor(ne/10),month:ne+3-12*Math.floor(ne/10),day:J-Math.floor((153*ne+2)/5)+1}}function u(N,T){for(let j=0;j<60;j++)if(j%10===N&&j%12===T)return j;return-1}function w(N){const T=(N%60+60)%60;return{index:T,stem:I[T%10],branch:M[T%12],name:I[T%10]+M[T%12]}}function b(N){return((N+49)%60+60)%60}function x(N){const T=N-2451545,j=T/36525,R=T/365250;let D=O(R)*180/Math.PI+180;D=(D%360+360)%360;const J=(5029.0966*j+1.11113*j*j-6e-6*j*j*j)/3600;D+=J,D-=.09033/3600;const ne=(125.04452-1934.136261*j)*Math.PI/180,ye=(280.4665+36000.7698*j)*Math.PI/180,de=(218.3165+481267.8813*j)*Math.PI/180,Le=(-17.2*Math.sin(ne)-1.32*Math.sin(2*ye)-.23*Math.sin(2*de)+.21*Math.sin(2*ne))/3600;D+=Le;const Ee=(357.52911+35999.05029*j-1537e-7*j*j)*Math.PI/180,ze=.016708634-42037e-9*j-1267e-10*j*j,Ie=1.000001018*(1-ze*ze)/(1+ze*Math.cos(Ee+(1.914602-.004817*j)*(Math.PI/180)*Math.sin(Ee)));return D-=20.4898/3600/(Ie||1),(D%360+360)%360}function l(N){const T=[[1900,-2.8],[1920,21.2],[1940,24.3],[1950,29.1],[1960,33.2],[1970,40.2],[1980,50.5],[1990,56.9],[2e3,63.8],[2010,66.1],[2020,69.4],[2030,72],[2050,80],[2100,110]];if(N<=T[0][0])return T[0][1];for(let j=1;j<T.length;j++)if(N<=T[j][0]){const[R,D]=T[j-1],[J,ne]=T[j];return D+(ne-D)*(N-R)/(J-R)}return T[T.length-1][1]}const z=8/24,Y=7.7611/24,o=2425612+4/24;function r(N){return N<o?Y:z}const s=q({max:4096,name:"termInstant"}),y=1e-5,k=new Map,f=365.2422;function c(N,T){const j=g(T),R=$(N,1,5)-.5+T*15.2184,D=k.get(T);let J=D!==void 0?D+f:R;Math.abs(J-R)>20&&(J=R);for(let ye=0;ye<12;ye++){let de=j-x(J);if(de=((de+180)%360+360)%360-180,J+=de/.98564736,Math.abs(de)<y)break}k.set(T,J);const ne=J-l(N)/86400;return ne+r(ne)}function S(N,T){const j=N*24+T,R=s.get(j);if(R!==void 0)return R;const D=c(N,T);return s.set(j,D),D}function _(N){const T=Math.floor(N+.5),j=N+.5-T,R=Math.round(j*1440),{year:D,month:J,day:ne}=v(T);return{year:D,month:J,day:ne,hour:Math.floor(R/60)%24,minute:R%60}}function Q({year:N,month:T,day:j,hour:R=0,minute:D=0}){return $(N,T,j)-.5+(R*60+D)/1440}function ae(N,T,j){const R=$(N,T,j)-$(N,1,1)+1,D=2*Math.PI*(R-81)/364;return 9.87*Math.sin(2*D)-7.53*Math.cos(D)-1.5*Math.sin(D)}const G=q({max:8,name:"termWindow"}),X=q({max:32,name:"termYear"}),ee=Array.from({length:24},(N,T)=>T),ce=ee.filter(N=>N%2===0);function me(N,T){const j=T?`${N}|jie`:`${N}|all`,R=X.get(j);if(R)return R;if(T){const J=X.get(`${N}|all`);if(J){const ne=J.filter(ye=>ye.index%2===0);return X.set(j,ne),ne}}const D=[];for(const J of T?ce:ee)D.push({year:N,index:J,name:E[J],jd:S(N,J)});return D.sort((J,ne)=>J.jd-ne.jd),X.set(j,D),D}function re(N,T={}){const j=T.jieOnly===!0,R=j?`${N}|jie`:N,D=G.get(R);if(D)return D;const J=[...me(N-1,j),...me(N,j),...me(N+1,j)];return J.sort((ne,ye)=>ne.jd-ye.jd),G.set(R,J),J}function ge(N){if(typeof N!="string"||N.length<2)return[];const T=I.indexOf(N[0]),j=M.indexOf(N[1]);if(T<0||j<0)return[];const R=u(T,j);if(R<0)return[];const D=Math.floor(R/10)*10;return[M[(D+10)%12],M[(D+11)%12]]}function be(N,T){let j=null;for(const R of N)if(R.index%2===0)if(R.jd<=T)j=R;else break;return j}function xe(N,T){for(const j of N)if(j.index%2===0&&j.jd>T)return j;return null}function we(N){const T=_(N),j=R=>String(R).padStart(2,"0");return`${T.year}-${j(T.month)}-${j(T.day)} ${j(T.hour)}:${j(T.minute)}`}function Se(){return[s.stats(),X.stats(),G.stats()]}return{STEMS:I,BRANCHES:M,TERM_NAMES:E,termLongitude:g,toJDN:$,fromJDN:v,sexagenaryIndex:u,ganzhiName:w,dayGanzhiIndex:b,sunLongitude:x,deltaTSeconds:l,OFFSET_MODERN:z,OFFSET_BEIJING_LOCAL:Y,CUTOVER_JD:o,localOffsetFor:r,termInstantJd:S,jdToParts:_,partsToJd:Q,equationOfTime:ae,termWindow:re,xunKongOf:ge,previousJie:be,nextJie:xe,formatJd:we,cacheMetrics:Se}})(),A.lunar=(function(){const{toJDN:O,jdToParts:q,termInstantJd:I,deltaTSeconds:M,localOffsetFor:E,OFFSET_MODERN:g}=A.calendar||{},$=29.530588861,v=245155009766e-5,u=Math.PI/180;function w(r){const s=r/1236.85,y=v+$*r+15437e-8*s*s-15e-8*s*s*s+73e-11*s*s*s*s,k=1-.002516*s-74e-7*s*s,f=(2.5534+29.1053567*r-14e-7*s*s-11e-8*s*s*s)*u,c=(201.5643+385.81693528*r+.0107582*s*s+1238e-8*s*s*s-58e-9*s*s*s*s)*u,S=(160.7108+390.67050284*r-.0016118*s*s-227e-8*s*s*s+11e-9*s*s*s*s)*u,_=(124.7746-1.56375588*r+.0020672*s*s+215e-8*s*s*s)*u,Q=-.4072*Math.sin(c)+.17241*k*Math.sin(f)+.01608*Math.sin(2*c)+.01039*Math.sin(2*S)+.00739*k*Math.sin(c-f)-.00514*k*Math.sin(c+f)+.00208*k*k*Math.sin(2*f)-.00111*Math.sin(c-2*S)-57e-5*Math.sin(c+2*S)+56e-5*k*Math.sin(2*c+f)-42e-5*Math.sin(3*c)+42e-5*k*Math.sin(f+2*S)+38e-5*k*Math.sin(f-2*S)-24e-5*k*Math.sin(2*c-f)-17e-5*Math.sin(_)-7e-5*Math.sin(c+2*f)+4e-5*Math.sin(2*c-2*S)+4e-5*Math.sin(3*f)+3e-5*Math.sin(c+f-2*S)+3e-5*Math.sin(2*c+2*S)-3e-5*Math.sin(c+f+2*S)+3e-5*Math.sin(c-f+2*S)-2e-5*Math.sin(c-f-2*S)-2e-5*Math.sin(3*c+f)+2e-5*Math.sin(4*c),ae=y+Q-M(2e3+s*100)/86400;return ae+E(ae)}function b(r){return Math.floor(r+.5)}function x(r){const s=r-g;return s+E(s)}function l(r){return Math.round((r+.5-v)/$)}function z(r,s,y){for(let k=r-1;k<=r+1;k++)for(let f=1;f<24;f+=2){const c=x(I(k,f)),S=b(c);if(S>=s&&S<y)return{index:f,jd:c}}return null}function Y(r,s,y){const k=O(r,s,y),f=b(x(I(r,23))),c=k<f?r-1:r,S=b(x(I(c,23)));let _=l(S);for(;b(w(_))>S;)_--;for(;b(w(_+1))<=S;)_++;const Q=b(x(I(c+1,23)));let ae=_;for(;b(w(ae+1))<=Q;)ae++;const G=ae-_;let X=-1;if(G===13)for(let re=1;re<=G;re++){const ge=b(w(_+re-1)),be=b(w(_+re));if(!z(c,ge,be)){X=re;break}}let ee=11,ce=!1,me=b(w(_));for(let re=1;re<=15;re++){const ge=b(w(_+re-1)),be=b(w(_+re)),xe=z(c,ge,be),we=re===X;if(k>=ge&&k<be){const Se=q(w(_+re-1)),N=we?(ee+10)%12+1:ee;return{year:c,lunarYear:ce?c+1:c,month:N,day:k-ge+1,isLeap:we,monthStart:`${Se.year}-${String(Se.month).padStart(2,"0")}-${String(Se.day).padStart(2,"0")}`,hasZhongQi:!!xe}}we||(ee=ee%12+1,ee===1&&(ce=!0)),me=be}throw new Error(`农历换算失败:${r}-${s}-${y}`)}function o(r,s,y){return O(r,s,y)}return{SYNODIC:$,newMoonJd:w,dayNumberOf:b,solarToLunar:Y,monthStartJd:o}})(),A.geo=(function(){const O=`
|
|
1
|
+
window.__ModuleLoader__.load({id:"dsh-metaphysics",chunk:"client.almanac.js",factory(Fn){const T={};return T.fail=(function(){return{fail:(I,q)=>{const A=new Error(q);return A.code=I,A}}})(),T.diff=(function(){const E=new Set(["summary","interpret","castAt","asOf","precision","disclaimer","note","trueSolarText","civilText","offsetMinutes","input","jd","juMethod","juMethodNote","lateZiHourMode","leapPolicy","schools","bodyMasterSchool","bodyMasterNote","handle","handleError","revision"]),I=o=>o!==null&&typeof o=="object";function q(o,d,s="",u=[]){if(o===d)return u;if(!I(o)||!I(d))return u.push({path:s||"(root)",from:o,to:d}),u;const y=new Set([...Object.keys(o),...Object.keys(d)]);for(const r of y){if(E.has(r))continue;const l=s?`${s}.${r}`:r,S=o[r],N=d[r];I(S)&&I(N)?q(S,N,l,u):JSON.stringify(S)!==JSON.stringify(N)&&u.push({path:l,from:S,to:N})}return u}const A=[[/^pillars\.year\.ganzhi$/,"年柱"],[/^pillars\.month\.ganzhi$/,"月柱"],[/^pillars\.day\.ganzhi$/,"日柱"],[/^pillars\.hour\.ganzhi$/,"时柱"],[/^pillars\.\w+\.hidden/,"藏干"],[/^pillars\.\w+\.stemTenGod$/,"十神"],[/^pillars\.\w+\.kongwang/,"空亡"],[/^pillars\.\w+\.dishi$|^pillars\.\w+\.zizuo$/,"十二长生"],[/^pillars\.\w+\.nayin$/,"纳音"],[/^dayMaster\./,"日主"],[/^palaces\.(taiyuan|minggong|shengong)\./,"命身宫"],[/^palaces\.\d+\.(palace|branch|stem|ganzhi)$/,"宫位"],[/^palaces\.\d+\.stars\.\d+\.(name|brightness|type)$/,"星曜"],[/^palaces\.\d+\.shensha\./,"神煞"],[/^palaces\.\d+\.(daxian|xiaoxian)\./,"大限"],[/^palaces\.\d+\.sanfang\./,"三方四正"],[/^palaces\.\d+\./,"宫位"],[/^palaces\./,"命身宫"],[/^soul\./,"命宫"],[/^body\./,"身宫"],[/^doujun\./,"流年斗君"],[/^siZhu\.year$/,"年柱"],[/^siZhu\.month$/,"月柱"],[/^siZhu\.day$/,"日柱"],[/^siZhu\.time$/,"时柱"],[/^ju$|^juNumber$/,"局数"],[/^yuan$/,"三元"],[/^dun$/,"阴阳遁"],[/^daxian(List)?\./,"大限"],[/^fly(Chains|Composite)?\./,"飞星"],[/^pattern/,"格局"],[/^schools\./,"流派回显"],[/^dayun\.jiao\./,"起运"],[/^dayun\.toNextJieDays$/,"起运时间"],[/^dayun\.list\.(\d+)\.ganzhi$/,"大运干支"],[/^dayun\.startAge\./,"起运时间"],[/^dayun\./,"大运评分"],[/^liunian\./,"流年"],[/^jieqi\./,"节气边界"],[/^solarTime\./,"真太阳时"],[/^dayGanZhi$/,"日辰"],[/^hourZhi$/,"时支"],[/^yueJiang\./,"月将"],[/^xunKong$/,"旬空"],[/^lines\.(\d+)\./,"爻"],[/^shensha\./,"神煞"],[/^frame\./,"格局用神"],[/^strength\./,"旺衰"],[/^wuxing\./,"五行计数"],[/^relations\./,"干支关系"],[/^input\./,"输入回显"]],_=[[/^pillars\./,"四柱"],[/^shensha\./,"神煞"],[/^dayun\./,"大运"],[/^liunian\./,"流年"],[/^frame\./,"格局用神"],[/^strength\./,"旺衰"],[/^wuxing\./,"五行计数"],[/^dayMaster\./,"日主"],[/^relations\./,"干支关系"],[/^palaces\.(taiyuan|minggong|shengong)\./,"命身宫"],[/^palaces\.\d+\./,"宫位"],[/^palaces\./,"命身宫"],[/^soul\.|^body\.|^doujun\./,"命身宫"],[/^siZhu\./,"四柱"],[/^ju$|^juNumber$|^yuan$|^dun$/,"局数"],[/^daxian/,"大限"],[/^fly/,"飞星"],[/^pattern/,"格局"],[/^jieqi\./,"节气"],[/^solarTime\./,"真太阳时"],[/^input\./,"输入回显"],[/^lines\./,"爻"]],b=[[/^pillars\.(year|month|day|hour)\.ganzhi$/,"柱"],[/^palaces\.(minggong|shengong)\.ganzhi$/,"命身宫"],[/^soul\.ganzhi$/,"命宫"],[/^body\.branch$/,"身宫"],[/^siZhu\.(year|month|day|time)$/,"柱"],[/^dayun\.jiao\.at$/,"起运"],[/^dayGanZhi$/,"日辰"],[/^hourZhi$/,"时支"],[/^ju$|^juNumber$|^juName$/,"局数"],[/^dun$/,"阴阳遁"],[/^lines\.\d+\.(ganzhi|yinYang|name)$/,"爻"],[/^yueJiang\.(name|zhi)$/,"月将"]];function p(o){for(const[d,s]of A)if(d.test(o))return s;return v(o)||o}function v(o){for(const[d,s]of _)if(d.test(o))return s;return""}function c(o){for(const[d,s]of b)if(d.test(o))return s;return""}function h(o){return[...o].sort((d,s)=>d.path.localeCompare(s.path,"zh-Hans-CN",{numeric:!0}))}function g(o){if(!o.length)return"本盘不受此口径影响:所有字段一致。";const d=o.filter(r=>c(r.path)),s=[...new Set(o.map(r=>v(r.path)).filter(Boolean))],u=d.length?`根因 ${d.length} 处:`+d.slice(0,4).map(r=>`${p(r.path)} ${w(r.from)}→${w(r.to)}`).join("、")+(d.length>4?" 等":""):"无单一根因",y=s.length?`;连带影响 ${s.slice(0,6).join("、")}${s.length>6?" 等":""} ${s.length} 类,共 ${o.length} 处`:`;共 ${o.length} 处`;return u+y+"。"}const w=o=>o===void 0?"—":o===null?"null":typeof o=="string"?o:Array.isArray(o)?o.join("")||"[]":typeof o=="object"?JSON.stringify(o):String(o);function $(o,{title:d="",limit:s=12}={}){const u=[];if(d&&u.push(`【${d}】`),u.push(g(o)),!o.length)return u.join(`
|
|
2
|
+
`);const y=h(o.filter(l=>c(l.path))),r=h(o.filter(l=>!c(l.path)));if(y.length){u.push(""),u.push(" 根因(口径直接改动):");for(const l of y)u.push(` ${p(l.path).padEnd(6)} ${w(l.from)} → ${w(l.to)}`)}if(r.length){u.push(""),u.push(` 连带变化(${r.length} 处,展示前 ${Math.min(s,r.length)} 处):`);for(const l of r.slice(0,s))u.push(` ${p(l.path).padEnd(6)} ${w(l.from)} → ${w(l.to)}`);if(r.length>s){const l={};for(const S of r.slice(s)){const N=v(S.path)||"其他";l[N]=(l[N]||0)+1}u.push(" 其余:"+Object.entries(l).map(([S,N])=>`${S} ${N} 处`).join("、"))}}return u.join(`
|
|
3
|
+
`)}const z=(o,d,s,u,y,r)=>({key:o,title:d,short:s,read:l=>{const S=l[o]!==void 0?l[o]:l.schools&&l.schools[o];return r[S]?S:u},alt:l=>l===y?u:y,label:l=>r[l]||l}),Z={bazi:[{key:"lateZi",title:"晚子时:23:00 后是否换日",short:"晚子时",read:o=>o.lateZi!==!1,alt:o=>!o,label:o=>o?"换日":"不换日"},{key:"trueSolar",title:"真太阳时:是否按出生地经度修正",short:"真太阳时",read:o=>o.trueSolar!==!1,alt:o=>!o,label:o=>o?"修正":"不修正"}],ziwei:[{key:"leapMonth",title:"闰月归月:按日切分 / 整月归次月",short:"闰月归月",read:o=>o.leapMonth==="next"||o.leapMonth==="prev"?o.leapMonth:"split",alt:o=>o==="split"?"next":"split",label:o=>({split:"按日切分",next:"整月归次月",prev:"整月归本月"})[o]||o},{key:"trueSolar",title:"真太阳时:是否按出生地经度修正",short:"真太阳时",read:o=>o.trueSolar!==!1,alt:o=>!o,label:o=>o?"修正":"不修正"},z("brightnessSchool","亮度表:默认 / QS 七档","亮度表","default","QS",{default:"默认",QS:"QS(七档)",XD1:"XD1(七档)",ZZ:"ZZ(五档)",XD2:"XD2(五档)"}),z("gengYearSihua","庚干四化:阳武阴同 / 同科阴忌","庚干四化","GYWYT","GYWTY",{GYWYT:"阳武阴同",GYWTY:"同科阴忌",GYWFT:"府科同忌",GYWFX:"府科相忌",GYWTX:"同科相忌"}),z("tianmaSchool","天马:按年支 / 按生月","天马","year-branch","month-branch",{"year-branch":"年支","month-branch":"生月"}),z("tiankongSchool","天空:不排 / 年支顺行","天空","off","normal",{off:"不排",normal:"年支顺行","shun-jia-shi":"加生时"}),z("jiekongSchool","截空旬空:不排 / 正副双星","截空旬空","off","double",{off:"不排",single:"单星",double:"正副双星",zhanyan:"占验派"}),z("kuiyueSchool","魁钺:qs1 / qs2","魁钺","qs1","qs2",{qs1:"qs1",qs2:"qs2","zhong-yiming":"中一鸣",network:"网络"}),z("tianshiTianshang","天伤天使:常规 / 中州互换","天伤天使","normal","zhongzhou",{normal:"常规",zhongzhou:"中州(阴男阳女互换)"}),z("changshengSchool","长生:阴阳顺逆 / 火土起寅","长生","yin-yang-shun-ni","huo-tu",{"yin-yang-shun-ni":"阴阳顺逆","shui-tu":"水二","huo-tu":"火土(土五局起寅)"}),z("lateZishi","晚子时:归当日 / 归次日","晚子时","current-day","next-day",{"current-day":"归当日","next-day":"归次日","all-current":"全归当日","day-cur-time-next":"日归当日·时归次日"}),z("shenzhuSchool","身主:子午皆火星 / 子铃午火","身主","common","verse",{common:"子午皆火星",verse:"子铃午火(安身主诀逐字)"})],qimen:[{key:"juMethod",title:"取局流派:拆补 / 超神接气 / 置闰",short:"取局流派",read:o=>["chaibu","chaoshen","zhirun"].includes(o.juMethod)?o.juMethod:"chaibu",alt:o=>o==="chaibu"?"zhirun":"chaibu",label:o=>({chaibu:"拆补法",chaoshen:"超神接气",zhirun:"置闰法"})[o]||o},{key:"lateZiHourMode",title:"晚子时:23:00 后归当日 / 次日",short:"晚子时归日",read:o=>o.lateZiHourMode==="next-day"?"next-day":"same-day",alt:o=>o==="next-day"?"same-day":"next-day",label:o=>o==="next-day"?"归次日":"归当日"}]};return{diffObjects:q,labelOf:p,categoryOf:v,rootOf:c,sortDiffs:h,summarize:g,formatValue:w,renderDiff:$,CALIBER_SWITCHES:Z}})(),T.fingerprint=(function(){const E="0123456789ABCDEFGHJKMNPQRSTVWXYZ";function I(b){return JSON.stringify(q(b))}function q(b){if(b===null)return null;const p=typeof b;if(p==="string")return typeof b.normalize=="function"?b.normalize("NFC"):b;if(p==="number")return Number.isFinite(b)?Object.is(b,-0)?0:b:null;if(p==="boolean")return b;if(Array.isArray(b))return b.map(q);if(p==="object"){const v={};for(const c of Object.keys(b).sort()){const h=b[c];h===void 0||typeof h=="function"||typeof h=="symbol"||(v[c]=q(h))}return v}return null}function A(b){const p=String(b);let v=2166136261,c=2654435769;for(let w=0;w<p.length;w+=1){const $=p.charCodeAt(w);for(const z of[$&255,$>>>8])v=Math.imul(v^z,16777619),c=Math.imul(c^z,2246822507)}let h=(v>>>0)*8+(c>>>29),g="";for(let w=0;w<7;w+=1)g=E[h%32]+g,h=Math.floor(h/32);return g}function _(b={}){const p=String(b.system||""),v=String(b.version||"dev"),c=b.seed===void 0||b.seed===null||b.seed===""?null:Number(b.seed),h=b.asOf?String(b.asOf):null,g=b.params&&typeof b.params=="object"?b.params:{},w=I({system:p,params:g,seed:c,asOf:h}),$=I({base:w,version:v});return{id:`LY-${A($)}`,baseId:`LY-${A(w)}`,version:v,system:p,payload:w}}return{canonicalJson:I,shortHash:A,fingerprintOf:_}})(),T.validate=(function(){const{fail:E}=T.fail||{},I=1600,q=2400;function A(c){return c%4===0&&c%100!==0||c%400===0}function _(c,h){return h===2?A(c)?29:28:[31,28,31,30,31,30,31,31,30,31,30,31][h-1]||0}const b=c=>typeof c=="string"?`「${c}」`:String(c),p="引擎只接受解析好的公历字段 { year, month, day, hour?, minute? };字符串请先交给宿主层的 parseDateTime 解析";function v(c,h=""){const g=h?`${h} 的`:"";if(!c||typeof c!="object"||Array.isArray(c)){const Z=c===null?"null":Array.isArray(c)?"数组":typeof c;throw E("E_INPUT",`${g}入参必须是对象(收到 ${Z});${p}`)}const w=c.hour===void 0?0:c.hour,$=c.minute===void 0?0:c.minute;for(const[Z,o]of[["year",c.year],["month",c.month],["day",c.day],["hour",w],["minute",$]])if(!Number.isInteger(o))throw E("E_INPUT",`${g}${Z} 必须是整数(收到 ${b(o)});${p}`);if(c.year<I||c.year>q)throw E("E_INPUT",`${g}year 超出支持范围 ${I}–${q}(收到 ${c.year});更早的年份时区与历法口径不可靠`);if(c.month<1||c.month>12)throw E("E_INPUT",`${g}month 超出范围 1–12(收到 ${c.month})`);const z=_(c.year,c.month);if(c.day<1||c.day>z)throw E("E_INPUT",`${g}日期不存在:${c.year}-${c.month}-${c.day}(${c.year} 年 ${c.month} 月只有 ${z} 天)`);if(w<0||w>23)throw E("E_INPUT",`${g}hour 超出范围 0–23(收到 ${w})`);if($<0||$>59)throw E("E_INPUT",`${g}minute 超出范围 0–59(收到 ${$})`);return c}return{MIN_YEAR:I,MAX_YEAR:q,isLeapYear:A,daysInMonth:_,assertCivil:v}})(),T.lru=(function(){function E({max:I=64,ttlMs:q=0,name:A="lru",now:_=()=>Date.now()}={}){const b=new Map,p={name:A,hits:0,misses:0,evictions:0,expirations:0},v=c=>q>0&&_()-c.at>q;return{name:A,max:I,ttlMs:q,get(c){const h=b.get(c);if(!h||v(h)){h&&(b.delete(c),p.expirations+=1),p.misses+=1;return}return b.delete(c),b.set(c,h),p.hits+=1,h.value},set(c,h){for(b.has(c)&&b.delete(c),b.set(c,{value:h,at:_()});b.size>I;)b.delete(b.keys().next().value),p.evictions+=1;return h},has(c){const h=b.get(c);return h?v(h)?(b.delete(c),p.expirations+=1,!1):!0:!1},delete(c){return b.delete(c)},clear(){b.clear()},get size(){return b.size},stats(){const c=p.hits+p.misses;return{name:A,size:b.size,max:I,hits:p.hits,misses:p.misses,evictions:p.evictions,expirations:p.expirations,hitRate:c?p.hits/c:0}}}}return{createLru:E}})(),T.nayin=(function(){const E=["海中金","炉中火","大林木","路旁土","剑锋金","山头火","涧下水","城头土","白蜡金","杨柳木","泉中水","屋上土","霹雳火","松柏木","长流水","沙中金","山下火","平地木","壁上土","金箔金","覆灯火","天河水","大驿土","钗钏金","桑柘木","大溪水","沙中土","天上火","石榴木","大海水"];function I(q){const A=(Number(q)%60+60)%60,_=E[Math.floor(A/2)];return{name:_,element:_[2]}}return{NAYIN_NAMES:E,nayinOf:I}})(),T.sanhe=(function(){const E=[{branches:["申","子","辰"],element:"水"},{branches:["亥","卯","未"],element:"木"},{branches:["寅","午","戌"],element:"火"},{branches:["巳","酉","丑"],element:"金"}],I=Object.fromEntries(E.map(_=>[_.branches.join(""),_.element])),q=Object.fromEntries(E.flatMap(_=>_.branches.map(b=>[b,_.element])));function A(_){return E.find(b=>b.branches.includes(_))||null}return{SANHE_GROUPS:E,SANHE:I,SANHE_ELEMENT:q,sanheGroupOf:A}})(),T["vsop-earth"]=(function(){const E=[[1.75347045673,0,0],[.03341656453,4.66925680415,6283.0758499914],[.00034894275,4.62610242189,12566.1516999828],[3417572e-11,2.82886579754,3.523118349],[3497056e-11,2.74411783405,5753.3848848968],[3135899e-11,3.62767041756,77713.7714681205],[2676218e-11,4.41808345438,7860.4193924392],[2342691e-11,6.13516214446,3930.2096962196],[1273165e-11,2.03709657878,529.6909650946],[1324294e-11,.74246341673,11506.7697697936],[901854e-11,2.04505446477,26.2983197998],[1199167e-11,1.10962946234,1577.3435424478],[857223e-11,3.50849152283,398.1490034082],[779786e-11,1.17882681962,5223.6939198022],[99025e-10,5.23268072088,5884.9268465832],[753141e-11,2.53339052847,5507.5532386674],[505267e-11,4.58292599973,18849.2275499742],[492392e-11,4.20505711826,775.522611324],[356672e-11,2.91954114478,.0673103028],[284125e-11,1.89869240932,796.2980068164],[242879e-11,.34481445893,5486.777843175],[317087e-11,5.84901948512,11790.6290886588],[271112e-11,.31486255375,10977.078804699],[206217e-11,4.80646631478,2544.3144198834],[205478e-11,1.86953770281,5573.1428014331],[202318e-11,2.45767790232,6069.7767545534],[126225e-11,1.08295459501,20.7753954924],[155516e-11,.83306084617,213.299095438],[115132e-11,.64544911683,.9803210682],[102851e-11,.63599845579,4694.0029547076],[101724e-11,4.2667980198,7.1135470008],[99206e-11,6.20992926918,2146.1654164752],[132212e-11,3.41118292683,2942.4634232916],[97607e-11,.68101342359,155.4203994342],[85128e-11,1.29870764804,6275.9623029906],[74651e-11,1.755089133,5088.6288397668],[101895e-11,.97569280312,15720.8387848784],[84711e-11,3.67080093031,71430.69561812909],[73547e-11,4.67926633877,801.8209311238],[73874e-11,3.50319414955,3154.6870848956],[78757e-11,3.03697458703,12036.4607348882],[79637e-11,1.80791287082,17260.1546546904],[85803e-11,5.9832263126,161000.6857376741],[56963e-11,2.78430458592,6286.5989683404],[61148e-11,1.81839892984,7084.8967811152],[69627e-11,.83297621398,9437.762934887],[56116e-11,4.38694865354,14143.4952424306],[62449e-11,3.97763912806,8827.3902698748],[51145e-11,.28306832879,5856.4776591154],[55577e-11,3.47006059924,6279.5527316424],[41036e-11,5.36817592855,8429.2412664666],[51605e-11,1.33282739866,1748.016413067],[51992e-11,.18914947184,12139.5535091068],[49e-8,.48735014197,1194.4470102246],[392e-9,6.16833020996,10447.3878396044],[3557e-10,1.775968892,6812.766815086],[3677e-10,6.04133863162,10213.285546211],[36596e-11,2.56957481827,1059.3819301892],[33296e-11,.59310278598,17789.845619785],[35954e-11,1.70875808777,2352.8661537718],[40938e-11,2.39850938714,19651.048481098],[30047e-11,2.73975124088,1349.8674096588],[30412e-11,.44294464169,83996.84731811189],[23663e-11,.48473622521,8031.0922630584],[23574e-11,2.06528133162,3340.6124266998],[21089e-11,4.14825468851,951.7184062506],[24738e-11,.21484762138,3.5904286518],[25352e-11,3.16470891653,4690.4798363586],[22823e-11,5.22195230819,4705.7323075436],[21419e-11,1.42563910473,16730.4636895958],[21891e-11,5.55594302779,553.5694028424],[203e-9,.37133792946,283.8593188652]],I=[[6283.0758499914,0,0],[.00206058863,2.67823455808,6283.0758499914],[4303419e-11,2.63512233481,12566.1516999828],[425264e-11,1.59046982018,3.523118349],[109017e-11,2.96631010675,1577.3435424478],[93479e-11,2.59211109542,18849.2275499742],[119305e-11,5.79555765566,26.2983197998],[72121e-11,1.13840581212,529.6909650946],[67784e-11,1.87453300345,398.1490034082],[6735e-10,4.40932832004,5507.5532386674],[59045e-11,2.88815790631,5223.6939198022],[55976e-11,2.17471740035,155.4203994342],[45411e-11,.39799502896,796.2980068164],[36298e-11,.46875437227,775.522611324],[28962e-11,2.64732254645,7.1135470008],[20844e-11,5.34138275149,.9803210682]],q=[[8721859e-11,1.07253635559,6283.0758499914],[99099e-10,3.14159265359,0],[294833e-11,.43717350256,12566.1516999828],[27338e-11,.05295636147,3.523118349],[16333e-11,5.18820215724,26.2983197998],[15745e-11,3.68504712183,155.4203994342],[9425e-11,.29667114694,18849.2275499742],[8938e-11,2.05706319592,77713.7714681205],[694e-10,.82691541038,775.522611324],[5061e-11,4.6624323168,1577.3435424478]],A=[[289058e-11,5.84173149732,6283.0758499914],[20712e-11,6.0498393902,12566.1516999828],[2962e-11,5.1956057957,155.4203994342],[2527e-11,3.14159265359,0],[1288e-11,4.7219761197,3.523118349]],_=[[7714e-11,4.14117321449,6283.0758499914],[1016e-11,3.27573644241,12566.1516999828]];function b(p){let v=0;for(const[h,g,w]of E)v+=h*Math.cos(g+w*p);let c=1;for(const h of[I,q,A,_]){c*=p;for(const[g,w,$]of h)v+=g*c*Math.cos(w+$*p)}return v}return{earthL:b}})(),T.calendar=(function(){const{earthL:E}=T["vsop-earth"]||{},{createLru:I}=T.lru||{},q=["甲","乙","丙","丁","戊","己","庚","辛","壬","癸"],A=["子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"],_=["小寒","大寒","立春","雨水","惊蛰","春分","清明","谷雨","立夏","小满","芒种","夏至","小暑","大暑","立秋","处暑","白露","秋分","寒露","霜降","立冬","小雪","大雪","冬至"];function b(O){return(285+15*O)%360}function p(O,M,k){const Y=Math.floor((14-M)/12),G=O+4800-Y,J=M+12*Y-3;return k+Math.floor((153*J+2)/5)+365*G+Math.floor(G/4)-Math.floor(G/100)+Math.floor(G/400)-32045}function v(O){const M=O+32044,k=Math.floor((4*M+3)/146097),Y=M-Math.floor(146097*k/4),G=Math.floor((4*Y+3)/1461),J=Y-Math.floor(1461*G/4),ne=Math.floor((5*J+2)/153);return{year:100*k+G-4800+Math.floor(ne/10),month:ne+3-12*Math.floor(ne/10),day:J-Math.floor((153*ne+2)/5)+1}}function c(O,M){for(let k=0;k<60;k++)if(k%10===O&&k%12===M)return k;return-1}function h(O){const M=(O%60+60)%60;return{index:M,stem:q[M%10],branch:A[M%12],name:q[M%10]+A[M%12]}}function g(O){return((O+49)%60+60)%60}function w(O){const M=O-2451545,k=M/36525,Y=M/365250;let G=E(Y)*180/Math.PI+180;G=(G%360+360)%360;const J=(5029.0966*k+1.11113*k*k-6e-6*k*k*k)/3600;G+=J,G-=.09033/3600;const ne=(125.04452-1934.136261*k)*Math.PI/180,ge=(280.4665+36000.7698*k)*Math.PI/180,he=(218.3165+481267.8813*k)*Math.PI/180,ve=(-17.2*Math.sin(ne)-1.32*Math.sin(2*ge)-.23*Math.sin(2*he)+.21*Math.sin(2*ne))/3600;G+=ve;const Me=(357.52911+35999.05029*k-1537e-7*k*k)*Math.PI/180,Ne=.016708634-42037e-9*k-1267e-10*k*k,Ie=1.000001018*(1-Ne*Ne)/(1+Ne*Math.cos(Me+(1.914602-.004817*k)*(Math.PI/180)*Math.sin(Me)));return G-=20.4898/3600/(Ie||1),(G%360+360)%360}function $(O){const M=[[1900,-2.8],[1920,21.2],[1940,24.3],[1950,29.1],[1960,33.2],[1970,40.2],[1980,50.5],[1990,56.9],[2e3,63.8],[2010,66.1],[2020,69.4],[2030,72],[2050,80],[2100,110]];if(O<=M[0][0])return M[0][1];for(let k=1;k<M.length;k++)if(O<=M[k][0]){const[Y,G]=M[k-1],[J,ne]=M[k];return G+(ne-G)*(O-Y)/(J-Y)}return M[M.length-1][1]}const z=8/24,Z=7.7611/24,o=2425612+4/24;function d(O){return O<o?Z:z}const s=I({max:4096,name:"termInstant"}),u=1e-5,y=new Map,r=365.2422;function l(O,M){const k=b(M),Y=p(O,1,5)-.5+M*15.2184,G=y.get(M);let J=G!==void 0?G+r:Y;Math.abs(J-Y)>20&&(J=Y);for(let ge=0;ge<12;ge++){let he=k-w(J);if(he=((he+180)%360+360)%360-180,J+=he/.98564736,Math.abs(he)<u)break}y.set(M,J);const ne=J-$(O)/86400;return ne+d(ne)}function S(O,M){const k=O*24+M,Y=s.get(k);if(Y!==void 0)return Y;const G=l(O,M);return s.set(k,G),G}function N(O){const M=Math.floor(O+.5),k=O+.5-M,Y=Math.round(k*1440),{year:G,month:J,day:ne}=v(M);return{year:G,month:J,day:ne,hour:Math.floor(Y/60)%24,minute:Y%60}}function V({year:O,month:M,day:k,hour:Y=0,minute:G=0}){return p(O,M,k)-.5+(Y*60+G)/1440}function te(O,M,k){const Y=p(O,M,k)-p(O,1,1)+1,G=2*Math.PI*(Y-81)/364;return 9.87*Math.sin(2*G)-7.53*Math.cos(G)-1.5*Math.sin(G)}const L=I({max:8,name:"termWindow"}),X=I({max:32,name:"termYear"}),ee=Array.from({length:24},(O,M)=>M),ue=ee.filter(O=>O%2===0);function me(O,M){const k=M?`${O}|jie`:`${O}|all`,Y=X.get(k);if(Y)return Y;if(M){const J=X.get(`${O}|all`);if(J){const ne=J.filter(ge=>ge.index%2===0);return X.set(k,ne),ne}}const G=[];for(const J of M?ue:ee)G.push({year:O,index:J,name:_[J],jd:S(O,J)});return G.sort((J,ne)=>J.jd-ne.jd),X.set(k,G),G}function oe(O,M={}){const k=M.jieOnly===!0,Y=k?`${O}|jie`:O,G=L.get(Y);if(G)return G;const J=[...me(O-1,k),...me(O,k),...me(O+1,k)];return J.sort((ne,ge)=>ne.jd-ge.jd),L.set(Y,J),J}function pe(O){if(typeof O!="string"||O.length<2)return[];const M=q.indexOf(O[0]),k=A.indexOf(O[1]);if(M<0||k<0)return[];const Y=c(M,k);if(Y<0)return[];const G=Math.floor(Y/10)*10;return[A[(G+10)%12],A[(G+11)%12]]}function we(O,M){let k=null;for(const Y of O)if(Y.index%2===0)if(Y.jd<=M)k=Y;else break;return k}function je(O,M){for(const k of O)if(k.index%2===0&&k.jd>M)return k;return null}function ze(O){const M=N(O),k=Y=>String(Y).padStart(2,"0");return`${M.year}-${k(M.month)}-${k(M.day)} ${k(M.hour)}:${k(M.minute)}`}function ke(){return[s.stats(),X.stats(),L.stats()]}return{STEMS:q,BRANCHES:A,TERM_NAMES:_,termLongitude:b,toJDN:p,fromJDN:v,sexagenaryIndex:c,ganzhiName:h,dayGanzhiIndex:g,sunLongitude:w,deltaTSeconds:$,OFFSET_MODERN:z,OFFSET_BEIJING_LOCAL:Z,CUTOVER_JD:o,localOffsetFor:d,termInstantJd:S,jdToParts:N,partsToJd:V,equationOfTime:te,termWindow:oe,xunKongOf:pe,previousJie:we,nextJie:je,formatJd:ze,cacheMetrics:ke}})(),T.lunar=(function(){const{toJDN:E,jdToParts:I,termInstantJd:q,deltaTSeconds:A,localOffsetFor:_,OFFSET_MODERN:b}=T.calendar||{},p=29.530588861,v=245155009766e-5,c=Math.PI/180;function h(d){const s=d/1236.85,u=v+p*d+15437e-8*s*s-15e-8*s*s*s+73e-11*s*s*s*s,y=1-.002516*s-74e-7*s*s,r=(2.5534+29.1053567*d-14e-7*s*s-11e-8*s*s*s)*c,l=(201.5643+385.81693528*d+.0107582*s*s+1238e-8*s*s*s-58e-9*s*s*s*s)*c,S=(160.7108+390.67050284*d-.0016118*s*s-227e-8*s*s*s+11e-9*s*s*s*s)*c,N=(124.7746-1.56375588*d+.0020672*s*s+215e-8*s*s*s)*c,V=-.4072*Math.sin(l)+.17241*y*Math.sin(r)+.01608*Math.sin(2*l)+.01039*Math.sin(2*S)+.00739*y*Math.sin(l-r)-.00514*y*Math.sin(l+r)+.00208*y*y*Math.sin(2*r)-.00111*Math.sin(l-2*S)-57e-5*Math.sin(l+2*S)+56e-5*y*Math.sin(2*l+r)-42e-5*Math.sin(3*l)+42e-5*y*Math.sin(r+2*S)+38e-5*y*Math.sin(r-2*S)-24e-5*y*Math.sin(2*l-r)-17e-5*Math.sin(N)-7e-5*Math.sin(l+2*r)+4e-5*Math.sin(2*l-2*S)+4e-5*Math.sin(3*r)+3e-5*Math.sin(l+r-2*S)+3e-5*Math.sin(2*l+2*S)-3e-5*Math.sin(l+r+2*S)+3e-5*Math.sin(l-r+2*S)-2e-5*Math.sin(l-r-2*S)-2e-5*Math.sin(3*l+r)+2e-5*Math.sin(4*l),te=u+V-A(2e3+s*100)/86400;return te+_(te)}function g(d){return Math.floor(d+.5)}function w(d){const s=d-b;return s+_(s)}function $(d){return Math.round((d+.5-v)/p)}function z(d,s,u){for(let y=d-1;y<=d+1;y++)for(let r=1;r<24;r+=2){const l=w(q(y,r)),S=g(l);if(S>=s&&S<u)return{index:r,jd:l}}return null}function Z(d,s,u){const y=E(d,s,u),r=g(w(q(d,23))),l=y<r?d-1:d,S=g(w(q(l,23)));let N=$(S);for(;g(h(N))>S;)N--;for(;g(h(N+1))<=S;)N++;const V=g(w(q(l+1,23)));let te=N;for(;g(h(te+1))<=V;)te++;const L=te-N;let X=-1;if(L===13)for(let oe=1;oe<=L;oe++){const pe=g(h(N+oe-1)),we=g(h(N+oe));if(!z(l,pe,we)){X=oe;break}}let ee=11,ue=!1,me=g(h(N));for(let oe=1;oe<=15;oe++){const pe=g(h(N+oe-1)),we=g(h(N+oe)),je=z(l,pe,we),ze=oe===X;if(y>=pe&&y<we){const ke=I(h(N+oe-1)),O=ze?(ee+10)%12+1:ee;return{year:l,lunarYear:ue?l+1:l,month:O,day:y-pe+1,isLeap:ze,monthStart:`${ke.year}-${String(ke.month).padStart(2,"0")}-${String(ke.day).padStart(2,"0")}`,hasZhongQi:!!je}}ze||(ee=ee%12+1,ee===1&&(ue=!0)),me=we}throw new Error(`农历换算失败:${d}-${s}-${u}`)}function o(d,s,u){return E(d,s,u)}return{SYNODIC:p,newMoonJd:h,dayNumberOf:g,solarToLunar:Z,monthStartJd:o}})(),T.geo=(function(){const E=`
|
|
4
4
|
北京 116.41 39.90;上海 121.47 31.23;天津 117.20 39.13;重庆 106.55 29.56
|
|
5
5
|
广州 113.26 23.13;深圳 114.06 22.55;珠海 113.58 22.27;东莞 113.75 23.02;佛山 113.12 23.02
|
|
6
6
|
汕头 116.68 23.35;中山 113.39 22.52;惠州 114.42 23.11;江门 113.08 22.58;湛江 110.36 21.27
|
|
@@ -63,67 +63,71 @@ window.__ModuleLoader__.load({id:"dsh-metaphysics",chunk:"client.almanac.js",fac
|
|
|
63
63
|
贵港 109.60 23.11;贺州 111.57 24.40;来宾 109.23 23.75;崇左 107.36 22.40
|
|
64
64
|
海口 110.20 20.04;三亚 109.51 18.25;儋州 109.58 19.52;琼海 110.47 19.26
|
|
65
65
|
香港 114.17 22.32;澳门 113.55 22.20;台北 121.52 25.03;高雄 120.31 22.63;台中 120.68 24.14
|
|
66
|
-
`,
|
|
67
|
-
`))for(const l of x.split(";")){const z=l.trim().split(/\s+/);if(z.length!==3)continue;const[Y,o,r]=z;b[Y]={lon:Number(o),lat:Number(r)}}for(const[x,[l,z]]of Object.entries(I))b[x]||(b[x]={lon:l,lat:z});return b})(),E=/(省|市|地区|盟|自治州|自治县|自治区|特别行政区|县|区|镇|乡|街道|村|小区|社区)/g;function g(b){const x=String(b||"").trim();if(!x)return null;const l=Number(x);if(Number.isFinite(l)&&/^-?\d+(\.\d+)?$/.test(x)&&l>=60&&l<=150)return{lon:l,lat:null,matched:`${l}°E`,level:"经度",note:"按你输入的经度计算"};const z=x.replace(/\s/g,"").replace(E,""),Y=Object.keys(M).sort((r,s)=>s.length-r.length);for(const r of Y)if(z.includes(r)){const s=M[r];return{lon:s.lon,lat:s.lat,matched:r,level:"地级市",note:`按 ${r} 估算(约 ${s.lon}°E)`}}const o=x.replace(/\s/g,"");for(const[r,s]of Object.entries(q)){const y=o.indexOf(r);if(y<0)continue;const k=o.charAt(y+r.length);if(k==="区"||k==="县")continue;const f=M[s]||{lon:I[s][0],lat:I[s][1]};return{lon:f.lon,lat:f.lat,matched:s,level:"省会",note:`未匹配到具体城市,按 ${r} 省会 ${s} 估算(约 ${f.lon}°E)`}}return{lon:null,lat:null,matched:null,level:"未匹配",note:`没查到「${x}」,可改填经度(如 116.4)`}}const $=/(区|县|镇|乡|村|小区|街道|路|号|巷|弄|组|队)/,v="dsh-metaphysics/0.23.0 (+https://github.com/xuanfu-web/dsh-metaphysics)";async function u(b,{timeoutMs:x=2500}={}){if(typeof fetch!="function")return null;let l=null;try{const z=typeof AbortController=="function"?new AbortController:null;z&&(l=setTimeout(()=>z.abort(),x));const Y="https://nominatim.openstreetmap.org/search?format=jsonv2&limit=1&accept-language=zh-CN&countrycodes=cn&q="+encodeURIComponent(b),o=await fetch(Y,{signal:z?z.signal:void 0,headers:{"User-Agent":v}});if(!o||!o.ok)return null;const r=await o.json();if(!Array.isArray(r)||r.length===0)return null;const s=r[0],y=Number(s.lon),k=Number(s.lat);return Number.isFinite(y)?{lon:y,lat:k,matched:s.display_name,level:"在线",note:`在线解析:${s.display_name}`}:null}catch{return null}finally{l&&clearTimeout(l)}}async function w(b,x={}){const l=g(b),z=String(b||"").trim();if(!z||!(x.online===!0)||l&&typeof l.lon=="number"&&!$.test(z))return l;const o=await u(z,x);return o?{...o,local:l&&l.lon!=null?l:null}:l&&typeof l.lon=="number"?{...l,onlineFailed:!0,note:`${l.note}(联网解析失败或超时,已退回内置坐标表)`}:{...l,onlineFailed:!0}}return{CITIES:M,PROVINCES:q,resolveAddress:g,geocodeAddress:w}})(),A.random=(function(){function O(M){let E=Number(M)>>>0;return E||(E=2654435769),function(){E=E+1831565813>>>0;let $=E;return $=Math.imul($^$>>>15,$|1),$^=$+Math.imul($^$>>>7,$|61),(($^$>>>14)>>>0)/4294967296}}function q(M){if(M==null||M==="")return Math.random;const E=Number(M);return Number.isFinite(E)?O(E):Math.random}function I(M){return M==null||M===""?!0:Number.isFinite(Number(M))}return{mulberry32:O,randomOf:q,isSeed:I}})(),A.dst=(function(){const{daysInMonth:O}=A.validate||{},q={1986:["1986-05-04","1986-09-14"],1987:["1987-04-12","1987-09-13"],1988:["1988-04-10","1988-09-11"],1989:["1989-04-16","1989-09-17"],1990:["1990-04-15","1990-09-16"],1991:["1991-04-14","1991-09-15"]},I=($,v,u)=>$*1e4+v*100+u;function M($){const v=q[$.year];if(!v)return!1;const[u,w,b]=v[0].split("-").map(Number),[x,l,z]=v[1].split("-").map(Number),Y=I($.year,$.month,$.day);if(Y<I(u,w,b)||Y>I(x,l,z))return!1;const o=$.hour*60+($.minute||0);return!(Y===I(u,w,b)&&o<120||Y===I(x,l,z)&&o>=120)}function E($){const v=$.minute||0;if(!M($))return{year:$.year,month:$.month,day:$.day,hour:$.hour,minute:v,applied:!1,note:null};let{year:u,month:w,day:b,hour:x}=$;return x-=1,x<0&&(x+=24,b-=1,b<1&&(w-=1,w<1&&(w=12,u-=1),b=O(u,w))),{year:u,month:w,day:b,hour:x,minute:v,applied:!0,note:`检出自 ${q[$.year][0]} 至 ${q[$.year][1]} 的中国夏令时:出生钟面时间已减 1 小时校正`}}function g($,v){const u=Array.isArray($)?$.slice():[];return v&&v.applied&&v.note&&u.push(v.note),u}return{DST_SPANS:q,inDstSpan:M,applyDst:E,withDstNote:g}})(),A.classics=(function(){const O={ziping:{name:"子平真诠",author:"清·沈孝瞻",base:"https://www.diancang.xyz/xuanxuewushu/zipingzhenquan/"},ditian:{name:"滴天髓",author:"明·京图(通行本)",base:"https://www.diancang.xyz/xuanxuewushu/ditiansui/"},sanming:{name:"三命通会",author:"明·万民英",base:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/"}},q=[{id:"zp-yongshen",book:"ziping",chapter:"八、论用神",scene:"用神",tags:[],quote:"八字用神,专求月令,以日干配月令地支,而生克不同,格局分焉。财官印食,此用神之善而顺用之者也;煞伤劫刃,用神之不善而逆用之者也。",plain:"用神从月令里找:财、官、印、食四吉神顺用(生之护之),煞、伤、劫、刃四凶神逆用(制之化之)。",url:"https://www.diancang.xyz/xuanxuewushu/zipingzhenquan/53628.html"},{id:"zp-zhenguan",book:"ziping",chapter:"三十一、论正官",scene:"格局",tags:["正官"],quote:"以刑冲破害为忌,则以生之护之为喜矣。存其喜而去其忌则贵,而贵之中又有高低者,何也?",plain:"正官格最忌刑冲破害,喜财生官、印护官;去忌存喜才谈得上贵,贵的层次还要看财印是否并透、有无伤官七煞混杂。",url:"https://www.diancang.xyz/xuanxuewushu/zipingzhenquan/53651.html"},{id:"zp-cai",book:"ziping",chapter:"三十三、论财",scene:"格局",tags:["财","正财","偏财"],quote:"财为我克,使用之物也,以能生官,所以为美。为财帛,为妻妾,为才能,为驿马,皆财类也。",plain:"财是我所克、能为我用之物,因能生官而美;它同时代表钱财、配偶、才能、走动,不只「钱」一项。",url:"https://www.diancang.xyz/xuanxuewushu/zipingzhenquan/53653.html"},{id:"zp-yin",book:"ziping",chapter:"三十五、论印绶",scene:"格局",tags:["印"],quote:"印绶喜其生身,正偏同为美格,故财与印不分偏正,同为一格而论之。",plain:"印能生身,正印偏印都算美格,不分偏正而论;印格的关键在身印强弱与官杀、食伤、财的配合。",url:"https://www.diancang.xyz/xuanxuewushu/zipingzhenquan/53655.html"},{id:"zp-shishen",book:"ziping",chapter:"三十七、论食神",scene:"格局",tags:["食神"],quote:"食神本属泄气,以其能生正财,所以喜之。故食神生财,美格也。财要有根,不必偏正叠出,如身强食旺而财透,大贵之格。",plain:"食神本是泄气,可贵在能生财;食神生财要财有根,身强、食旺、财透三者齐,格局才大。",url:"https://www.diancang.xyz/xuanxuewushu/zipingzhenquan/53657.html"},{id:"zp-pianguan",book:"ziping",chapter:"三十九、论偏官",scene:"格局",tags:["七杀","偏官"],quote:"煞以攻身,似非美物,百大贵之格,多存七煞。盖控制得宜,煞为我用,如大英雄大豪杰,似难驾驭,而处之有方,则惊天动地之功,忽焉而就。",plain:"七煞攻身,看着不美,但大贵之格多有七煞——能控制住就为我所用,像驾驭豪杰,处之有方就能成大事。",url:"https://www.diancang.xyz/xuanxuewushu/zipingzhenquan/53659.html"},{id:"zp-shangguan",book:"ziping",chapter:"四十一、论伤官",scene:"格局",tags:["伤官"],quote:"伤官虽非吉神,实为秀气,故文人学士,多于伤官格内得之。而夏木见水,冬金见火,则又为秀之尤秀者也。",plain:"伤官不是吉神,却是秀气所在,文人多出伤官格;夏木得水、冬金得火,是秀气里更秀的两种。",url:"https://www.diancang.xyz/xuanxuewushu/zipingzhenquan/53661.html"},{id:"zp-yangren",book:"ziping",chapter:"四十三、论阳刃",scene:"格局",tags:["劫财","阳刃"],quote:"阳刃者,劫我正财之神,乃正财之七煞也。禄前一位,惟五阳有之,故为阳刃。不曰劫而曰刃,劫之甚也。刃宜伏制,官煞皆宜,财印相随,尤为贵显。",verifiedQuote:"阳刃者,劫我正财之神,乃正财之七煞也。禄前一位,惟五阳有之",variantNote:"典藏网此页把「故为阳刃」刻作「故为旭刃」,与通行本异文;前段仍可逐字核验",plain:"阳刃是劫财之极(只有五阳干有),宜用官煞制伏;财印相随而不相碍,格局更显。",url:"https://www.diancang.xyz/xuanxuewushu/zipingzhenquan/53663.html"},{id:"zp-lujie",book:"ziping",chapter:"四十五、论建禄月劫",scene:"格局",tags:["比肩","建禄","月劫"],quote:"故建禄与月劫,可同一格,不必加分,皆以透干支,别取财官煞食为用。",plain:"建禄、月劫同看一格,月令本身不算用神,要另看透出的财官煞食取用。",url:"https://www.diancang.xyz/xuanxuewushu/zipingzhenquan/53665.html"},{id:"zp-qihou",book:"ziping",chapter:"十四、论用神配气候得失",scene:"调候",tags:[],quote:"论命惟以月令用神为主,然亦须配气候而互参之。譬如英雄豪杰,生得其时,自然事半功倍;遭时不顺,虽有奇才,成功不易。",plain:"月令用神为主,但必须配气候参看;同样的格局,生在得时的气候里事半功倍,逆着气候就费劲。",url:"https://www.diancang.xyz/xuanxuewushu/zipingzhenquan/53634.html"},{id:"zp-chengbai",book:"ziping",chapter:"九、论用神成败救应",scene:"格局",tags:[],quote:"成中有败,必是带忌;败中有成,全凭救应。",plain:"成格不等于一路顺:成中带忌(官逢财又逢伤、官被合之类)就打了折;败格也未必无救——印来解伤、合来清煞,败中还能转成。",url:"https://www.diancang.xyz/xuanxuewushu/zipingzhenquan/53629.html"},{id:"zp-zaji",book:"ziping",chapter:"十六、论杂气如何取用",scene:"用神",tags:[],quote:"何谓透干?如甲生辰月,透戊则用偏财,透癸则用正印,透乙则用月劫是也。何谓会支?如甲生辰月,逢申与子会局,则用水印是也。一透则一用,兼透则兼用,透而又会,则透与会并用。",plain:"四墓(辰戌丑未)所藏不止一气,所以叫杂气:取用先看哪一藏干透到天干,透一个用一个;没有透干,再看地支有没有与月支会成三合局,会成什么局就取局中那一气。透干与会支同时成立时两样并用。原文对「兼透」只给原则,没有给取舍次序。",url:"https://www.diancang.xyz/xuanxuewushu/zipingzhenquan/53636.html"},{id:"zp-bianhua",book:"ziping",chapter:"十、论用神变化",scene:"格局",tags:[],quote:"故若丁生亥月,本为正官,支全卯未,则化为印。己生申月,本属伤官。藏庚透壬,则化为财。凡此之类皆用神之变化也。",plain:"用神本从月令取,但月令藏干不一:丁生亥月本为正官,支会卯未就化为印;己生申月本属伤官,庚藏壬透就化为财。起点相同,合化一变,取用也跟着变(原文只说变化之由,不断定某盘必化)。",url:"https://www.diancang.xyz/xuanxuewushu/zipingzhenquan/53630.html"},{id:"dt-hannuan",book:"ditian",chapter:"通神论·寒暖",scene:"调候",tags:[],quote:"天道有寒暖,生育万物,人道行之,不可过也。",plain:"天有寒暖才能生养万物,人命里寒暖也不能过——过寒过热都要调。",url:"https://www.diancang.xyz/xuanxuewushu/ditiansui/153091.html"},{id:"dt-zaoshi",book:"ditian",chapter:"通神论·燥湿",scene:"调候",tags:[],quote:"地道有燥湿,生成品汇,人道得之,不可偏也。",plain:"地有燥湿才有品类生成,人命得燥湿之气也不能偏。",url:"https://www.diancang.xyz/xuanxuewushu/ditiansui/153091.html"},{id:"dt-shuaiwang",book:"ditian",chapter:"通神论·衰旺",scene:"调候",tags:[],quote:"能知旺衰之真机,其于三命之奥,思过半矣。",plain:"真正看懂旺衰的机关,命理之奥就过了一半——旺衰不是数个数,要看真机。",url:"https://www.diancang.xyz/xuanxuewushu/ditiansui/153091.html"},{id:"dt-zhonghe",book:"ditian",chapter:"通神论·中和",scene:"调候",tags:[],quote:"既识中和之正理,而于五行之妙,有全能焉。",plain:"懂得中和的道理,五行的妙处就都在其中了。",url:"https://www.diancang.xyz/xuanxuewushu/ditiansui/153091.html"},{id:"dt-guansha",book:"ditian",chapter:"通神论·官杀",scene:"十神",tags:["正官","七杀"],quote:"官杀混杂来问我,有可有不可。",plain:"官杀混杂不是一律不好,要看能不能去留取清。",url:"https://www.diancang.xyz/xuanxuewushu/ditiansui/153091.html"},{id:"dt-shangguan",book:"ditian",chapter:"通神论·伤官",scene:"十神",tags:["伤官"],quote:"伤官见官最难辨,可见不可见。",plain:"伤官见官是最难分辨的一条:有的能见,有的不能见,不能一句「伤官见官为祸百端」了事。",url:"https://www.diancang.xyz/xuanxuewushu/ditiansui/153091.html"},{id:"dt-yueling",book:"ditian",chapter:"通神论·月令",scene:"用神",tags:[],quote:"月令乃提纲之府,譬之宅也,人元为用事之神,宅之定向也,不可以不卜。",plain:"月令像宅子,藏干是用事之神,像宅子的朝向,必须细看。",url:"https://www.diancang.xyz/xuanxuewushu/ditiansui/153091.html"},{id:"dt-tiyong",book:"ditian",chapter:"通神论·体用",scene:"用神",tags:[],quote:"道有体用,不可以一端论也,要在扶之抑之得其宜。",plain:"体用不能只看一头,关键是扶抑得宜。",url:"https://www.diancang.xyz/xuanxuewushu/ditiansui/153091.html"},{id:"dt-jingshen",book:"ditian",chapter:"通神论·精神",scene:"用神",tags:[],quote:"人有精神,不可以一偏求也,要在损之益之得其中。",plain:"看精神不能偏执一端,要在损益之间求其中。",url:"https://www.diancang.xyz/xuanxuewushu/ditiansui/153091.html"},{id:"dt-tongguan",book:"ditian",chapter:"通神论·通关",scene:"用神",tags:[],quote:"关内有织女,关外有牛郎,此关若通也,相邀入洞房。",plain:"两股力隔着一道关相望:一边织女、一边牛郎,中间若有一行能把两边接上(一方生它、它再生另一方),对峙就化成相生。原文只给取象,哪一行为关要按五行生克定。",url:"https://www.diancang.xyz/xuanxuewushu/ditiansui/153091.html"},{id:"smt-zhenguan",book:"sanming",chapter:"卷五·论正官",scene:"格局",tags:["正官"],quote:"正官者,乃甲见辛、乙见庚之例。阴阳配合,相制有用,成其道也。故正官为六格之首,止许一位,多则不宜。",plain:"正官取「克我而阴阳相配」,有制而能成用;六格以正官居首,只宜一位,多见就杂。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7582.html"},{id:"smt-zhengcai",book:"sanming",chapter:"卷六·论正财",scene:"格局",tags:["财","正财"],quote:"正财者,乃甲见己、乙见戊之例。受我克制,为我之妻,譬人娶妻,妻赍财嫁我,我必精神康强,而后可享用,若衰微不振,虽妻财丰厚,但能目视,终不得用。",plain:"正财是我克制之物,古人以「娶妻带财」作比:自身精神康强才受用得起,身弱不振,财再厚也只是看着。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7645.html"},{id:"smt-piancai",book:"sanming",chapter:"卷六·论偏财",scene:"格局",tags:["财","偏财"],quote:"何谓偏财?乃甲见戊、乙见己之例。非妻所带,乃众人之财也。切忌有姊妹兄弟分夺,柱无官星,祸患百出。",plain:"偏财取「我克而阴阳不同」:不是妻家带来的私财,而是众人之财,宜流通不宜独占。原文最忌比肩劫财来分夺,又说柱中无官星则多事(旧说的重话照录,本插件只记原文、不作断语)。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7650.html"},{id:"smt-yinshou",book:"sanming",chapter:"卷六·论印绶",scene:"格局",tags:["印"],quote:"印绶者,乃五行生我之名。如甲乙在亥子月,丙丁在寅卯月之类,乃我气之源,为生气,为父母,能护我官星,使无伤克",plain:"印是生我之气,像源头与父母:它能护住官星,使官不受伤克;反过来说,印重就怕财来破。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7655.html"},{id:"smt-shishen",book:"sanming",chapter:"卷六·论食神",scene:"格局",tags:["食神"],quote:"凡命遇财煞之地,食神旺相,煞被食制,不敢为祸,财被食生,充裕不竭,故食神一名寿星,一名爵星,良有以也。",plain:"食神旺,一头制煞、一头生财:煞被制住不敢为祸,财被生起不至枯竭;所以食神又叫寿星、爵星。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7663.html"},{id:"smt-shangguan",book:"sanming",chapter:"卷六·论伤官",scene:"格局",tags:["伤官"],quote:"伤官虽凶,乃我所生,自家之物,伤尽则能生财,财旺则能生官,造化展转有情。",plain:"伤官虽称凶,却是我自己生出来的:伤尽(柱中不见官星)反能生财,财旺再生官,辗转还是有情。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7662.html"},{id:"smt-yangren",book:"sanming",chapter:"卷六·论阳刃",scene:"格局",tags:["阳刃","劫财"],quote:"阳者,阴阳之阳,刃者,刀刃之刃,即禄前一位,言旺越其分,故险。",plain:"阳刃指禄前一位,旺过了本分,所以险;甲丙戊庚壬五阳干才有刃,阴干见伤官同论。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7671.html"},{id:"smt-jianlu",book:"sanming",chapter:"卷六·论建禄",scene:"格局",tags:["建禄","比肩","月劫"],quote:"凡命月令建禄,难招祖业,必主平生见财不聚,却病少寿长,行运再见比肩,克妻妨父损子",plain:"月令建禄是日主临官之地,身旺而财官难取:古说难承祖业、见财不聚,但病少寿长;再走比肩运,古书说克妻妨父损子(属于旧说的重话,本插件只记原文、不作断语)。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7672.html"},{id:"smt-guansha-liu",book:"sanming",chapter:"卷五·官煞去留杂论",scene:"格局",tags:["七杀","偏官"],quote:"凡看去留,要详柱中官煞孰重孰轻,天干透者易去,月支所藏者难去,须伤官食神去官煞之物众而有力,方才去得。",plain:"官煞混见时先比谁重谁轻:天干透出的容易去,月支藏着的难去;用来去官煞的伤官食神要成众、有根有力,才真去得掉。七杀格遇正官混杂,就按这一篇看取舍。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7599.html"},{id:"smt-quzhi",book:"sanming",chapter:"卷六·曲直",scene:"格局",tags:["曲直格","专旺"],quote:"甲乙日得亥卯未局,柱中须有亥字带印为入格,若无亥有卯,止是木之本气,却要见金土为贵,既无亥字,又无金土,则木不秀不实,难以言贵。",plain:"曲直格要木局成方(亥卯未)且带亥字为印,才算入格;只有卯、没有亥,只是木的本气,得另见金土才谈得上贵;两样都没有,木虽旺而无成,难称贵格。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7630.html"},{id:"smt-yanshang",book:"sanming",chapter:"卷六·炎上",scene:"格局",tags:["炎上格","专旺"],quote:"丙丁日遇寅午戌局,柱中须有寅字带印为入格,无寅止是九流近贵之命,若火自旺,无亥水相济,不贵。喜东北方运,忌见辰丑戊己,晦火光明,多主眼疾,或患风气,柱有木制成贵,忌水金乡,怕冲。",plain:"炎上格要火局成方(寅午戌)且带寅字为印才入格;无寅只是偏贵的命。火自旺还要一点水相济,过燥不贵;行运喜东北、忌湿土晦火,也怕冲。原文另带「多主眼疾」一句,属于旧说,本插件只记原文、不作健康判断。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7631.html"},{id:"smt-congge",book:"sanming",chapter:"卷六·从革",scene:"格局",tags:["从革格","专旺"],quote:"庚辛日见巳酉丑局,须带丙丁巳午一二位方成其器,但不可火多。如辛巳、辛酉、辛丑三日不喜五月生,被火所伤,宜八月或水土养育食神印绶为吉。",plain:"从革格是金局成方(巳酉丑),但金要火炼才成器:须带丙丁或巳午一二位,火又不能多。辛巳、辛酉、辛丑三日出身在五月(火旺)被伤,原文说宜八月或水土养育。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7632.html"},{id:"smt-runxia",book:"sanming",chapter:"卷六·润下",scene:"格局",tags:["润下格","专旺"],quote:"壬癸日见申子辰全,忌引卯巳死绝之地,三刑四冲之乡,死绝则不流,冲刑则横流,岁运同。或曰水太泛须柱有土神一两位制之,得成堤岸,既有土怕会木为凶,如有木伤土要金印救解,终是一生成败。",plain:"润下格是水局三合全(申子辰),最忌卯巳死绝与三刑四冲:死绝水不流,冲刑水横流,行运也一样看。水太泛要一两位土作堤,有土又怕木来破堤,木伤土再用金印解救——原文把成败条件摊开讲。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7633.html"},{id:"smt-jiasi",book:"sanming",chapter:"卷六·稼穑",scene:"格局",tags:["稼穑格","专旺"],quote:"赋云:戊己忻逢四季,乃为稼穑之名。是戊己生逢季月,喜见木为官,止得一木为妙,木多则土虚,主虚诈为破家不仁之人。",plain:"稼穑格取戊己生于四季月(辰戌丑未)。原文说喜见一木为官,木多则土虚;后半对木多之人的评语是旧说的重话,本插件只照录条件、不拿来评价人。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7634.html"},{id:"smt-congsha",book:"sanming",chapter:"卷五·弃命从煞",scene:"格局",tags:["从杀格"],quote:"《独步》云:弃命从煞,须要会煞从财,忌煞从煞。盖言从煞格,以煞神太重,身无所归,不得已从之,要行煞旺及财乡,四柱无一点比肩印绶方论,如遇运扶身旺,与煞为敌,从煞不专,故为祸患。",plain:"从煞格是煞太重、日主无所归才「弃命」相从:条件是四柱没有一点比肩印绶扶身,行运喜煞旺与财乡;一旦走扶身之运,与煞为敌,就从得不专。本插件只作结构说明,不据此断寿夭。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7598.html"},{id:"smt-congcai",book:"sanming",chapter:"卷六·弃命从财",scene:"格局",tags:["从财格"],quote:"《独步》云:弃命从财,须要会财,若逢根气,命损无猜。假如丁生酉月,柱多庚辛,日干无气,只得弃命相从,运入北方财官旺地,乃为入格,南行灾。",plain:"从财格要财会成局、日干无气;一见根气就破格,原文用「命损无猜」这种重话写明。以丁生酉月、柱多庚辛为例:只能弃命相从,行北方财官旺地为入格,南行则灾。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7652.html"},{id:"smt-suiyun",book:"sanming",chapter:"卷二·总论岁运",scene:"岁运",tags:[],quote:"行运以生月为运元,最怕行运与太岁冲克,若岁运冲月必祸;若岁运与日相对,谓之返吟,岁运压日,谓之伏吟,二者不利六亲,非横破财,不为吉兆。",plain:"大运以生月为起点,最怕与流年(太岁)冲克:原文说岁运冲月为祸,又把「岁运与日柱相对」叫返吟、「岁运压日」叫伏吟。这两句是按「对日柱」说的,与本插件「干支相同为伏吟、天克地冲为反吟」不是同一套定义(本插件取后者);末句「不利六亲、破财」是旧说的重话,只作变动提示,不作断语。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7539.html"},{id:"smt-renyuan",book:"sanming",chapter:"卷二·论人元司事",scene:"人元",tags:[],quote:"故支吕所藏者主命,谓之人元,名为司事之神,以命术言之为月令。如正月建寅,寅中有艮土用事五日,丙火长生五日,甲木二十日;二月建卯,卯中有甲木用事七日,乙木二十三日;",plain:"地支所藏为「人元」,按月令分日轮值。三命通会这一本给的是另一套日数:寅月艮土(戊土)五日、丙火五日、甲木二十日,卯月甲七日、乙二十三日。它与本插件采用的通行 30 日表(寅月戊7丙7甲16,即 7/7/16;卯月甲10乙20,即 10/20)不是同一套分法;两表各照原样并列,本插件仍按通行表给「第几日谁当权」,不改取格。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7529.html"}],I=q.reduce((l,z)=>(l[z.id]=z,l),{}),M={正官格:"正官",七杀格:"七杀",偏官格:"偏官",正财格:"正财",偏财格:"偏财",正印格:"印",偏印格:"印",食神格:"食神",伤官格:"伤官",阳刃格:"阳刃",月劫格:"月劫",建禄格:"建禄"},E={曲直格:"smt-quzhi",炎上格:"smt-yanshang",从革格:"smt-congge",润下格:"smt-runxia",稼穑格:"smt-jiasi",从财格:"smt-congcai",从杀格:"smt-congsha"};function g(l){return I[l]||null}function $(l){return(l&&Array.isArray(l.liunian)?l.liunian:[]).some(o=>o&&o.suiyun&&Array.isArray(o.suiyun.signals)&&o.suiyun.signals.length)?g("smt-suiyun"):null}function v(l){const z=String(l||"");if(M[z])return M[z];const Y=z.replace(/格$/,"");return M[Y+"格"]||Y}function u(l,z){return q.find(Y=>Y.scene==="格局"&&Y.tags.includes(l)&&(!z||Y.book===z))||null}function w(l){return l.chapter.replace(/^.*[、·]/,"").replace(/^论/,"")}function b(l,z=5){if(!l)return[];const Y=[],o=new Set,r=(G,X)=>{!G||o.has(G.id)||Y.length>=z||(o.add(G.id),Y.push({...G,why:X}))},s=Array.isArray(l.geju)?l.geju:l.frame&&Array.isArray(l.frame.geju)?l.frame.geju:[],y=s.some(G=>G&&G.kind==="化气格");for(const G of s){if(G&&G.status==="破格"||y&&G&&G.status==="假从")continue;const X=G&&E[G.name]?g(E[G.name]):null;X&&r(X,`本盘列有「${G.name}」,故取${O[X.book].name}「${w(X)}」一条`)}for(const G of s){if(!G||G.kind&&G.kind!=="月令格")continue;const X=v(G.name),ee=u(X,"ziping")||u(X);ee&&r(ee,`你的月令格局是「${G.name}」,故取${O[ee.book].name}「${w(ee)}」一条`);const ce=q.find(me=>me.scene==="格局"&&me.tags.includes(X)&&(!ee||me.book!==ee.book));ce&&r(ce,`同是「${G.name}」,${O[ce.book].name}「${w(ce)}」另有取法,可对照读`)}const k=l.climate||l.frame&&l.frame.yongshen&&(l.frame.yongshen.climate||l.frame.yongshen.tiaohou),f=l.frame&&l.frame.yongshen&&l.frame.yongshen.tongguan,c=f&&f.usable?g("dt-tongguan"):null;if(k&&k.kind&&k.kind!=="平和"){const G=!!(k.cold||k.kind.indexOf("寒")>=0),X=!!(k.hot||k.kind.indexOf("热")>=0);r(g(G?"dt-hannuan":"dt-zaoshi"),`本盘气候判为「${k.kind}」,故取${O.ditian.name}寒暖燥湿一条`),c||r(g("zp-qihou"),"气候与月令用神要互参,故取子平真诠「用神配气候」一条"),X&&r(g("dt-hannuan"),"本盘偏热,寒暖一条正对")}c&&r(c,`本盘忌${f.foe}克用${f.use},局中${f.bridge}${f.weight}分可作通关,故取${O.ditian.name}「通关」一条`);const S=s.find(G=>G&&G.kind==="化气格"),_=s.find(G=>G&&G.kind==="组合"),Q=l.monthBranch||l.frame&&l.frame.monthBranch||l.pillars&&l.pillars.month&&l.pillars.month.branch,ae=["辰","未","戌","丑"].includes(Q);return S?r(g("zp-bianhua"),`本盘列有「${S.name}」:用神由月令合化而变,总纲一位改取${O.ziping.name}论用神变化`):ae?r(g("zp-zaji"),`月令${Q}属四墓杂气,取用先看透干、再看会支,总纲一位取${O.ziping.name}论杂气如何取用`):_?r(g("zp-chengbai"),`本盘另有「${_.name}」组合:成格还要看带忌与救应,总纲一位改取${O.ziping.name}论用神成败救应`):r(g("zp-yongshen"),"用神从月令取、四吉顺用四凶逆用,是通用总纲"),Y}function x(l){return!l||!l.length?"":l.map(z=>`《${O[z.book].name}·${z.chapter}》「${z.quote}」`).join(`
|
|
68
|
-
`)}return{CLASSIC_BOOKS:O,CLASSICS:q,classicOf:g,suiyunClassicOf:$,classicsFor:b,classicsText:x}})(),A["interpret-data"]=(function(){const O={乾:{nature:"天",trait:"刚健、主导",element:"金"},坤:{nature:"地",trait:"承载、柔顺",element:"土"},震:{nature:"雷",trait:"启动、震动",element:"木"},巽:{nature:"风",trait:"渗透、顺势",element:"木"},坎:{nature:"水",trait:"险陷、流动",element:"水"},离:{nature:"火",trait:"明丽、附著",element:"火"},艮:{nature:"山",trait:"静止、阻挡",element:"土"},兑:{nature:"泽",trait:"愉悦、口舌",element:"金"}},q=[{pos:1,name:"初爻",gist:"事之始,根基与起点",tone:"宜稳不宜急"},{pos:2,name:"二爻",gist:"初步展开,能力初显",tone:"宜务实积累"},{pos:3,name:"三爻",gist:"进退交界的关口,多劳少得",tone:"宜守拙退让"},{pos:4,name:"四爻",gist:"接近决策层,转机初现",tone:"宜谨慎措辞"},{pos:5,name:"五爻",gist:"得位居中,事态最盛",tone:"宜把握主节奏"},{pos:6,name:"上爻",gist:"发展至极,盛极思变",tone:"宜留余地收尾"}],I={yang:"阳极转阴:原本强势、推进得很快的那个环节,接下来需要收一收、留余地",yin:"阴极转阳:原本停滞、迟迟没动静的那个环节,接下来会出现变化,可以主动推一把"},M={乾为天:{meaning:"刚健运行,自强不息",scene:"主动权在你手上,宜自己定节奏"},坤为地:{meaning:"厚德载物,顺势而成",scene:"配合与承接比抢先更有利"},水雷屯:{meaning:"初生艰难,如草木破土",scene:"事情刚起步会乱,先把基础扎稳"},山水蒙:{meaning:"蒙昧待启,问道则通",scene:"信息不全时先请教,不要硬闯"},水天需:{meaning:"等待时机,不可冒进",scene:"条件没齐,耐心等一等反而快"},天水讼:{meaning:"争讼之象,宜和解",scene:"有分歧先谈,别把关系推上对抗"},地水师:{meaning:"用众之道,纪律为先",scene:"靠团队成事,规矩要立在前"},水地比:{meaning:"亲附相辅,择善而从",scene:"选对合作对象,比单打独斗重要"},风天小畜:{meaning:"小有积蓄,力量未充",scene:"先攒资源,暂不大举投入"},天泽履:{meaning:"循礼而行,如履虎尾",scene:"按规则走,谨慎就不会出事"},地天泰:{meaning:"上下交泰,通达和顺",scene:"沟通顺畅,是推进的好时候"},天地否:{meaning:"阴阳不交,闭塞不通",scene:"卡住时先停下来,别硬顶"},天火同人:{meaning:"与人同心,众志可成",scene:"找同频的人一起做,事半倍"},火天大有:{meaning:"丰盛富有,如日中天",scene:"收获可观,记得分享与收敛"},地山谦:{meaning:"谦逊受益,卑以自牧",scene:"放低姿态,反而更容易被接纳"},雷地豫:{meaning:"悦乐振奋,顺势而动",scene:"士气高,适合启动与造势"},泽雷随:{meaning:"随时而动,择善而随",scene:"跟随大势走,别拧着来"},山风蛊:{meaning:"积弊待治,破而后立",scene:"旧问题该清一清了,别拖"},地泽临:{meaning:"居高临下,督导亲近",scene:"亲自盯一盯,效果比放手好"},风地观:{meaning:"观仰教化,观察而明",scene:"先看清楚再表态"},火雷噬嗑:{meaning:"咬合去梗,明断是非",scene:"障碍要正面处理,绕不过去"},山火贲:{meaning:"文饰之美,适度为宜",scene:"包装有用,但别盖过实质"},山地剥:{meaning:"剥落衰败,宜守不宜进",scene:"在消耗期,止损优先"},地雷复:{meaning:"一阳来复,去而复返",scene:"转机回来了,可以小步重启"},天雷无妄:{meaning:"不妄为,守正即吉",scene:"按本分做,别投机"},山天大畜:{meaning:"大有蓄养,厚积待发",scene:"积累期,学东西最有价值"},山雷颐:{meaning:"养正自守,节饮食慎言语",scene:"养身体、养口碑,别透支"},泽风大过:{meaning:"过甚有险,栋梁将折",scene:"担子太重,该减负或加固"},坎为水:{meaning:"重险叠至,惟诚可济",scene:"困难接连来,稳住心神最要紧"},离为火:{meaning:"附丽光明,柔顺守中",scene:"借助光亮的东西,别孤军奋战"},泽山咸:{meaning:"感应相和,男女相悦",scene:"情感互动顺畅,宜真诚表达"},雷风恒:{meaning:"恒久不易,持之则成",scene:"长期坚持才有结果"},天山遁:{meaning:"退避为智,以退为进",scene:"适时抽身,不是认输"},雷天大壮:{meaning:"阳刚壮盛,宜正不宜猛",scene:"气势足,但别用力过猛"},火地晋:{meaning:"晋升初进,如日上升",scene:"有上升机会,主动争取"},地火明夷:{meaning:"光明受掩,韬光养晦",scene:"暂时低调,保存实力"},风火家人:{meaning:"内治为先,各安其位",scene:"先把身边人和日常安顿好"},火泽睽:{meaning:"睽违背离,同中有异",scene:"意见不合是常态,求同存异"},水山蹇:{meaning:"蹇难阻滞,宜反身修德",scene:"走不通就绕,回头补短板"},雷水解:{meaning:"险难消解,宜速不宜缓",scene:"结打开了,趁势把事办了"},山泽损:{meaning:"损己益人,损中有得",scene:"先让一点,后面有回报"},风雷益:{meaning:"增益利民,顺势施为",scene:"投入会有产出,可以加码"},泽天夬:{meaning:"决而去之,果决除弊",scene:"该断的事果断断,别拖泥带水"},天风姤:{meaning:"不期而遇,柔遇刚",scene:"有意外的人或机会出现"},泽地萃:{meaning:"聚合众力,物以类聚",scene:"聚人聚资源的时候到了"},地风升:{meaning:"积小以高大,循序上升",scene:"一步一步往上走,别跳级"},泽水困:{meaning:"困穷待援,安贫守正",scene:"资源受限时先守住基本盘"},水风井:{meaning:"井养不穷,修井得清",scene:"把现有的渠道维护好"},泽火革:{meaning:"革故鼎新,时至则变",scene:"该改就改,时机已经到了"},火风鼎:{meaning:"鼎新烹饪,稳重得位",scene:"新格局已立,按新规矩办"},震为雷:{meaning:"震惊百里,惧而后安",scene:"突发变动会来,先稳住再应对"},艮为山:{meaning:"止其所止,静而定",scene:"该停就停,停下来才看得清"},风山渐:{meaning:"渐进有序,如鸿渐于陆",scene:"慢慢来反而到得快"},雷泽归妹:{meaning:"归嫁失序,宜守本分",scene:"关系里别越位,按本分处"},雷火丰:{meaning:"丰大光明,宜及时施为",scene:"盛时要做事,别浪费势头"},火山旅:{meaning:"旅居在外,谨慎自守",scene:"处在变动环境,低调稳当些"},巽为风:{meaning:"顺入以柔,申命行事",scene:"用柔的方式渗透,别硬碰"},兑为泽:{meaning:"喜悦相悦,朋友讲习",scene:"多交流多请教,气氛是好的"},风水涣:{meaning:"涣散离散,宜聚人心",scene:"人心散了,先把共识找回来"},水泽节:{meaning:"节制有度,苦节不可",scene:"设边界、控节奏,别过头"},风泽中孚:{meaning:"诚信居中,信则人任",scene:"诚意是当下最有效的通行证"},雷山小过:{meaning:"小事可过,大事不可",scene:"细节可以灵活,大方向别偏"},水火既济:{meaning:"事已成,慎终如始",scene:"做成之后更要防松懈"},火水未济:{meaning:"事未成,慎辨慎行",scene:"还差一步,别急着庆祝"}},E=Object.fromEntries(Object.keys(M).map(l=>[l.length>2?l.slice(2):l.slice(0,1),l]));return{TRIGRAM:O,YAO_POSITION:q,MOVING_NATURE:I,HEX64:M,HEX_BY_CORE:E,ZIWEI_STARS:{紫微:{trait:"有主见、重体面,习惯站在统筹的位置",work:"适合需要拍板与统筹的岗位,管理、政务、项目负责一类",love:"在关系里需要被尊重,慢热但认真",health:"留意血压与作息紊乱"},天机:{trait:"脑子转得快,兴趣多、想法多",work:"适合策划、技术、咨询、研发一类动脑的岗位",love:"容易被有趣的人吸引,需要精神共鸣",health:"思虑多,留意神经紧张与睡眠"},太阳:{trait:"外放热心,愿意付出、也愿意被看见",work:"适合对外型岗位,教学、销售、公关、公益一类",love:"主动付出型,注意别一厢情愿",health:"留意心血管与用眼过度"},武曲:{trait:"务实、讲效率,认结果不认空话",work:"适合金融、财务、工程、执行类岗位",love:"感情表达偏实在,用行动多于言语",health:"留意呼吸系统与过劳"},天同:{trait:"温和好相处,重感受,凡事求舒服",work:"适合服务、文职、教育、文创一类低对抗的岗位",love:"需要陪伴感,容易被温柔的人打动",health:"留意免疫力与情绪性不适"},廉贞:{trait:"细腻又较真,审美与原则都在意",work:"适合需要精细度的岗位,法务、审计、设计、医疗一类",love:"感情投入深,也容易较劲",health:"留意炎症与情绪郁结"},天府:{trait:"稳重可靠,善于守成与资源调度",work:"适合行政、财务、运营、仓储一类守盘型岗位",love:"倾向稳定长久的关系",health:"留意体重与消化负担"},太阴:{trait:"内敛敏感,心思细,重安全感",work:"适合研究、文案、财务、艺术一类安静专注的岗位",love:"慢热、重细节,需要被照顾到感受",health:"留意睡眠与内分泌节律"},贪狼:{trait:"好奇心强、人缘好,兴趣广泛",work:"适合业务、市场、传媒、跨界的开拓型岗位",love:"桃花偏旺,需要自己划清边界",health:"留意肝火与作息不规律"},巨门:{trait:"善于分析,也容易多疑,嘴上功夫好",work:"适合法务、教学、咨询、谈判一类靠口才与逻辑的岗位",love:"容易因多想而生误会,宜多说清楚",health:"留意口腔、呼吸道与思虑过度"},天相:{trait:"讲规矩、重协调,习惯做辅佐者",work:"适合秘书、执行、协调、后勤一类支撑型岗位",love:"关系里偏迁就,需要学会表达需求",health:"留意皮肤与免疫波动"},天梁:{trait:"有长者气,爱操心、乐意帮人",work:"适合教育、医护、公益、顾问一类助人的岗位",love:"照顾型伴侣,别把对方当孩子",health:"留意慢病管理与过劳"},七杀:{trait:"果断敢冲,抗压但容易硬碰硬",work:"适合开拓、销售、创业、外勤一类高挑战岗位",love:"感情来得快,需要留给对方缓冲",health:"留意意外伤害与旧伤复发"},破军:{trait:"喜新厌旧,敢破敢立,不走老路",work:"适合变革、创业、项目从零到一的岗位",love:"感情变动偏多,稳定需要共同目标",health:"留意泌尿与外伤"}},WUXING_INDUSTRY:{木:"教育培训、出版撰稿、文职行政、农林园艺、中医药、服装与设计、文创",火:"互联网、传媒影视、能源电力、餐饮与品牌、演艺传播、电子科技",土:"地产建筑、物业管理、行政人事、农业种植、供应链仓储、财会",金:"金融银行、法律法务、机械制造、审计风控、医疗器械、军警安保",水:"物流贸易、咨询顾问、传媒公关、旅游出行、科研水产、信息技术"},WUXING_ORGAN:{木:{part:"肝胆、筋骨",note:"情绪疏泄与久坐久视是主要负担"},火:{part:"心脏、小肠、血脉",note:"睡眠节律与情绪起伏最需留意"},土:{part:"脾胃、肌肉",note:"饮食规律与消化吸收是关键"},金:{part:"肺、大肠、呼吸道与皮肤",note:"空气质量与换季是敏感点"},水:{part:"肾、膀胱、内分泌与腰膝",note:"过劳与熬夜最先反映在这里"}},TENGOD_STYLE:{正官:"守规矩、重名分,适合在成体系的组织里按规则上升",七杀:"抗压敢拼,适合高挑战、需要快速决断的岗位",正财:"稳定务实,适合按劳取酬、积累型的路径",偏财:"善抓机会、人脉广,适合业务、投资、资源整合类",食神:"表达与创造见长,适合技术、创作、教育一类",伤官:"想法多、不服旧规,适合改革、创业、专业创意",正印:"学习力强、有耐心,适合研究、文教、需要资质的岗位",偏印:"偏门钻研,适合冷门专业、技术深耕",比肩:"独立能扛,适合并肩作战或独立负责一块",劫财:"行动快、竞争心强,适合业务冲刺型工作"},LIUREN_JIANG:{贵人:"贵人、助力、被提携",螣蛇:"缠绕、反复、惊扰不定",朱雀:"口舌、文书、消息是非",六合:"合作、契约、和合之事",勾陈:"牵绊、拖延、纠缠难断",青龙:"喜庆、财禄、顺利推进",天空:"虚空、不实、计划落空",白虎:"压力、病丧、突发阻碍",太常:"衣食、常规、平稳运行",玄武:"暗昧、失物、信息不明",太阴:"隐秘、暗中助力、私下的事",天后:"女性、恩泽、情感与照料"},DISCLAIMER:"以上解析由本插件依据你提供的出生信息(或起卦时刻)按传统命理规则生成,属文化娱乐与自我觉察的参考,不构成医疗、心理、投资、法律或人事决策的依据。涉及健康请咨询医生,涉及重大决定请以现实信息与专业人士意见为准。",TAROT_ELEMENT_FOCUS:{火:{area:"行动力与热情",advice:"把能量投到一件具体的事上,别同时开太多头"},水:{area:"情感与关系",advice:"先照顾好感受,再谈效率"},风:{area:"思考与沟通",advice:"把想法写下来,与相关的人说清楚"},土:{area:"现实与资源",advice:"落实成可执行的步骤,写明时间和预算"}}}})(),A.almanac=(function(){const{solarToLunar:O}=A.lunar||{},{nayinOf:q}=A.nayin||{},{toJDN:I,fromJDN:M,dayGanzhiIndex:E,ganzhiName:g,termWindow:$,termInstantJd:v,partsToJd:u,STEMS:w,BRANCHES:b,TERM_NAMES:x}=A.calendar||{},{HEX64:l}=A["interpret-data"]||{},{sanheGroupOf:z}=A.sanhe||{},{assertCivil:Y,daysInMonth:o}=A.validate||{},r=["建","除","满","平","定","执","破","危","成","收","开","闭"],s={建:["出行","上任","会友","上书","见工"],除:["除服","疗病","扫舍","出行"],满:["祈福","祭祀","结亲","开市","交易"],平:["修饰垣墙","平治道涂"],定:["嫁娶","订盟","纳采","祭祀","祈福"],执:["祭祀","祈福","捕捉","纳畜"],破:["破屋","坏垣","求医"],危:["祭祀","祈福","安床"],成:["嫁娶","开市","入学","上任","修造"],收:["纳财","收账","进人口"],开:["开市","交易","嫁娶","入学","动土"],闭:["筑堤","埋穴","补垣"]},y={建:["动土","开仓","出货财","安葬"],除:["求财","赴任","嫁娶"],满:["服药","栽种","安葬"],平:["祈福","求嗣"],定:["诉讼","出行"],执:["开市","求财","出行"],破:["嫁娶","开市","动土"],危:["登高","行船","出行"],成:["诉讼"],收:["开市","出行","安葬"],开:["安葬"],闭:["开市","出行","求医"]},k={甲:"东北",乙:"东北",丙:"西南",丁:"西南",戊:"正北",己:"正北",庚:"正东",辛:"正东",壬:"正南",癸:"正南"},f={甲:"东北",乙:"西北",丙:"西南",丁:"正南",戊:"东南",己:"东北",庚:"西北",辛:"西南",壬:"正南",癸:"东南"},c=["鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪"],S={申子辰:"南",寅午戌:"北",巳酉丑:"东",亥卯未:"西"};function _(B){const U=z(B);return U&&S[U.branches.join("")]||null}function Q(B,U=0){const W=Number.isInteger(B)?(B%24+24)%24:12;return b[Math.floor((W+1)%24/2)]}function ae(B,U){const W=b.indexOf(B),oe=b.indexOf(U);return r[((W-oe)%12+12)%12]}const G=["正","二","三","四","五","六","七","八","九","十","冬","腊"],X=["初","十","廿"],ee=["十","一","二","三","四","五","六","七","八","九"];function ce(B){return B===10?"初十":B===20?"二十":B===30?"三十":`${X[Math.floor(B/10)]}${ee[B%10]}`}function me(B,U=!1){return`${U?"闰":""}${G[B-1]||B}月`}const re=["青龙","明堂","天刑","朱雀","金匮","天德","白虎","玉堂","天牢","玄武","司命","勾陈"],ge={青龙:"黄道",明堂:"黄道",金匮:"黄道",天德:"黄道",玉堂:"黄道",司命:"黄道",天刑:"黑道",朱雀:"黑道",白虎:"黑道",天牢:"黑道",玄武:"黑道",勾陈:"黑道"},be={子:4,丑:2,寅:0,卯:10,辰:8,巳:6,午:4,未:2,申:0,酉:10,戌:8,亥:6};function xe(B,U){const W=b.indexOf(B),oe=be[U];if(W<0||oe==null)return null;const fe=re[(W+oe)%12],he=ge[fe];return{name:fe,type:he,luck:he==="黄道"?"吉":"凶"}}const we={角:{luck:"吉",zheng:"木",animal:"蛟",gong:"东"},亢:{luck:"凶",zheng:"金",animal:"龙",gong:"东"},氐:{luck:"凶",zheng:"土",animal:"貉",gong:"东"},房:{luck:"吉",zheng:"日",animal:"兔",gong:"东"},心:{luck:"凶",zheng:"月",animal:"狐",gong:"东"},尾:{luck:"吉",zheng:"火",animal:"虎",gong:"东"},箕:{luck:"吉",zheng:"水",animal:"豹",gong:"东"},斗:{luck:"吉",zheng:"木",animal:"獬",gong:"北"},牛:{luck:"凶",zheng:"金",animal:"牛",gong:"北"},女:{luck:"凶",zheng:"土",animal:"蝠",gong:"北"},虚:{luck:"凶",zheng:"日",animal:"鼠",gong:"北"},危:{luck:"凶",zheng:"月",animal:"燕",gong:"北"},室:{luck:"吉",zheng:"火",animal:"猪",gong:"北"},壁:{luck:"吉",zheng:"水",animal:"貐",gong:"北"},奎:{luck:"凶",zheng:"木",animal:"狼",gong:"西"},娄:{luck:"吉",zheng:"金",animal:"狗",gong:"西"},胃:{luck:"吉",zheng:"土",animal:"雉",gong:"西"},昴:{luck:"凶",zheng:"日",animal:"鸡",gong:"西"},毕:{luck:"吉",zheng:"月",animal:"乌",gong:"西"},觜:{luck:"凶",zheng:"火",animal:"猴",gong:"西"},参:{luck:"吉",zheng:"水",animal:"猿",gong:"西"},井:{luck:"吉",zheng:"木",animal:"犴",gong:"南"},鬼:{luck:"凶",zheng:"金",animal:"羊",gong:"南"},柳:{luck:"凶",zheng:"土",animal:"獐",gong:"南"},星:{luck:"凶",zheng:"日",animal:"马",gong:"南"},张:{luck:"吉",zheng:"月",animal:"鹿",gong:"南"},翼:{luck:"凶",zheng:"火",animal:"蛇",gong:"南"},轸:{luck:"吉",zheng:"水",animal:"蚓",gong:"南"}},Se={A:["虚","毕","翼","箕","奎","鬼","氐"],B:["房","危","觜","轸","斗","娄","柳"],C:["星","心","室","参","角","牛","胃"],D:["昴","张","尾","壁","井","亢","女"]},N={子:"A",辰:"A",申:"A",丑:"B",巳:"B",酉:"B",寅:"C",午:"C",戌:"C",卯:"D",未:"D",亥:"D"};function T(B,U){const W=N[B];if(!W)return null;const oe=Se[W][U],fe=we[oe];return fe?{name:oe,...fe}:null}const j={坎:"正北",艮:"东北",震:"正东",巽:"东南",离:"正南",坤:"西南",兑:"正西",乾:"西北"},R={甲:"艮",乙:"乾",丙:"坤",丁:"离",戊:"巽",己:"艮",庚:"乾",辛:"坤",壬:"离",癸:"巽"},D={甲:"艮",乙:"艮",丙:"坤",丁:"坤",戊:"坎",己:"坎",庚:"震",辛:"震",壬:"离",癸:"离"},J={甲:"坎",乙:"坤",丙:"乾",丁:"巽",戊:"艮",己:"坎",庚:"坤",辛:"乾",壬:"巽",癸:"艮"},ne={甲:"坤",乙:"坤",丙:"兑",丁:"乾",戊:"艮",己:"坎",庚:"离",辛:"艮",壬:"震",癸:"巽"},ye={甲:"艮",乙:"坎",丙:"乾",丁:"兑",戊:"坤",己:"坤",庚:"艮",辛:"离",壬:"巽",癸:"震"},de=(B,U)=>B[U]?{gua:B[U],dir:j[B[U]]}:null,Le={甲子:"占门碓 外东南",乙丑:"碓磨厕 外东南",丙寅:"厨灶炉 外正南",丁卯:"仓库门 外正南",戊辰:"房床栖 外正南",己巳:"占门床 外正南",庚午:"占碓磨 外正南",辛未:"厨灶厕 外西南",壬申:"仓库炉 外西南",癸酉:"房床门 外西南",甲戌:"占门栖 外西南",乙亥:"碓磨床 外西南",丙子:"厨灶碓 外西南",丁丑:"仓库厕 外正西",戊寅:"房床炉 外正西",己卯:"占大门 外正西",庚辰:"碓磨栖 外正西",辛巳:"厨灶床 外正西",壬午:"仓库碓 外西北",癸未:"房床厕 外西北",甲申:"占门炉 外西北",乙酉:"碓磨门 外西北",丙戌:"厨灶栖 外西北",丁亥:"仓库床 外西北",戊子:"房床碓 外正北",己丑:"占门厕 外正北",庚寅:"碓磨炉 外正北",辛卯:"厨灶门 外正北",壬辰:"仓库栖 外正北",癸巳:"占房床 房内北",甲午:"占门碓 房内北",乙未:"碓磨厕 房内北",丙申:"厨灶炉 房内北",丁酉:"仓库门 房内北",戊戌:"房床栖 房内中",己亥:"占门床 房内中",庚子:"占碓磨 房内南",辛丑:"厨灶厕 房内南",壬寅:"仓库炉 房内南",癸卯:"房床门 房内西",甲辰:"占门栖 房内东",乙巳:"碓磨床 房内东",丙午:"厨灶碓 房内东",丁未:"仓库厕 房内东",戊申:"房床炉 房内中",己酉:"占大门 外东北",庚戌:"碓磨栖 外东北",辛亥:"厨灶床 外东北",壬子:"仓库碓 外东北",癸丑:"房床厕 外东北",甲寅:"占门炉 外东北",乙卯:"碓磨门 外正东",丙辰:"厨灶栖 外正东",丁巳:"仓库床 外正东",戊午:"房床碓 外正东",己未:"占门厕 外正东",庚申:"碓磨炉 外东南",辛酉:"厨灶门 外东南",壬戌:"仓库栖 外东南",癸亥:"占房床 外东南"},Ee={子:"丑",丑:"子",寅:"亥",亥:"寅",卯:"戌",戌:"卯",辰:"酉",酉:"辰",巳:"申",申:"巳",午:"未",未:"午"};function ze(B,U,W){const oe=Object.keys(l);if(!oe.length)return null;const fe=((B*10007^U*911^W*97)>>>0)%oe.length,he=oe[fe];return{name:he,...l[he]}}const Ie=B=>B&&(B.name||x[B.index])||"";function en(B){Y(B,"黄历");const{year:U,month:W,day:oe}=B;if(oe>o(U,W))throw new Error(`非法日期:${U} 年 ${W} 月没有 ${oe} 日`);const fe=u({year:U,month:W,day:oe,hour:12,minute:0}),he=O(U,W,oe),_e=I(U,W,oe),qe=v(U,2),$n=(((fe<qe?U-1:U)-4)%60+60)%60,Ne=g($n),Ge=he.lunarYear,je=g(((Ge-4)%60+60)%60),Ue=$(U,{jieOnly:!0});let De=null,Fe=null;for(const ue of Ue)ue.jd<=fe?De=ue:Fe||(Fe=ue);const V=((2+(De.index-2)/2)%12+12)%12,gn=((w.indexOf(Ne.stem)%5*2+2)%10+(V-2+12)%12)%10,nn=g(Be(gn,V)),$e=g(E(_e)),se=$e.branch,Ze=ae(se,b[V]),Je=(b.indexOf(se)+6)%12,te=c[Je],tn=$(U);let ve=null,Oe=null;for(const ue of tn)ue.jd<=fe?ve=ue:Oe||(Oe=ue);const Xe=ue=>{const ke=M(Math.floor(ue+.5));return`${ke.year}-${String(ke.month).padStart(2,"0")}-${String(ke.day).padStart(2,"0")}`},We=(_e+1)%7,an=["日","一","二","三","四","五","六"][We],on=xe(se,b[V]),sn=T(se,We),rn=Le[$e.name]||null,Qe=w.indexOf($e.stem)%5*2,un=b.map((ue,ke)=>{const hn=w[(Qe+ke)%10],Ve=g(He((Qe+ke)%10,ke)),Te=xe(ue,se);return{zhi:ue,name:`${ue}时`,ganZhi:Ve.name,gan:hn,shen:Te?Te.name:null,type:Te?Te.type:null,luck:Te?Te.luck:null}}),cn=z(se)?.branches.join("")||"",Ce=Ee[se]||null,Pe={liuhe:Ce?c[b.indexOf(Ce)]:null,sanhe:[...cn].filter(ue=>ue!==se).map(ue=>c[b.indexOf(ue)])},Re={caiShen:k[$e.stem]||null,xiShen:f[$e.stem]||null,fuShen:de(J,$e.stem),yangGui:de(ne,$e.stem),yinGui:de(ye,$e.stem),xiShenFull:de(R,$e.stem),caiShenFull:de(D,$e.stem)},ln=`农历${je.name}年${me(he.month,he.isLeap)}${ce(he.day)}`,Ke=Ne.name!==je.name?`年界:本条按立春界作${Ne.name}年·属${c[b.indexOf(Ne.branch)]}(命理排盘用);春节界为${je.name}年·属${c[b.indexOf(je.branch)]},两种都对,取用场合不同`:null;return{system:"almanac",meta:{date:`${U}-${String(W).padStart(2,"0")}-${String(oe).padStart(2,"0")}`,weekday:`星期${an}`,...Ke?{boundaryNote:Ke}:{},scope:"通行口径:宜忌按建除十二神简表;已收录值日十二神(黄道/黑道)、时辰吉凶、二十八宿、胎神、吉神方位、纳音、六合三合吉配;逐日全量吉神凶煞与彭祖百忌未收录"},lunar:{year:Ge,month:he.month,day:he.day,isLeap:he.isLeap,text:ln},ganzhi:{year:Ne.name,month:nn.name,day:$e.name,shengXiao:c[b.indexOf(Ne.branch)],springYear:je.name,springShengXiao:c[b.indexOf(je.branch)]},jieQi:{prev:ve?{name:Ie(ve),date:Xe(ve.jd)}:null,next:Oe?{name:Ie(Oe),date:Xe(Oe.jd)}:null},positions:Re,dayGod:on,xiu:sn,taiShen:rn,nayin:{day:q(E(_e))},lucky:Pe,hours:un,zhiXing:Ze,yi:s[Ze].slice(),ji:y[Ze].slice(),chong:{shengXiao:te,text:`冲${te}`,sha:_(se)?`煞${_(se)}`:null},dailyHexagram:ze(U,W,oe),sources:["农历与节气:本地天文历法(定朔 + 节气黄经)","建除十二神与冲煞:传统通行口径","值日/时家十二神(青龙…勾陈)、二十八宿、胎神、吉神方位:通行表","宜忌:建除十二神通行简表(非逐日全量黄历)","每日一卦:按公历日期确定性取卦(同日同卦)"],disclaimer:"黄历为传统民俗口径的本地确定性计算;宜忌仅按建除简表,属娱乐参考,不构成择日结论。"}}function Be(B,U){for(let W=0;W<60;W++)if(W%10===B&&W%12===U)return W;return 0}function He(B,U){for(let W=0;W<60;W++)if(W%10===B&&W%12===U)return W;return 0}return{ZHIXING:r,ZHIXING_YI:s,ZHIXING_JI:y,SHENGXIAO:c,hourToBranch:Q,zhixingOf:ae,lunarMonthText:me,TIAN_SHEN:re,TIAN_SHEN_TYPE:ge,tianShenOf:xe,MANSIONS:we,xiuOf:T,dailyHexagram:ze,buildAlmanac:en}})(),A.followup=(function(){const{ZIWEI_STARS:O}=A["interpret-data"]||{},q=[{key:"career",label:"事业",words:["事业","工作","跳槽","升职","创业","职业","岗位","离职","加薪","面试","offer"]},{key:"wealth",label:"财富",words:["财","钱","收入","投资","买房","存款","亏","赚","分红"]},{key:"love",label:"感情",words:["感情","婚","恋","对象","分手","复合","姻缘","结婚","桃花"]},{key:"health",label:"健康",words:["健康","病","身体","手术","失眠","体检","医院"]},{key:"study",label:"学业",words:["学业","考试","学习","考研","考公","证书","升学"]},{key:"travel",label:"出行",words:["出行","搬家","旅行","出国","迁","远行"]}],I={career:"官禄",wealth:"财帛",love:"夫妻",health:"疾厄",study:"官禄",travel:"迁移",overall:"命宫"},M=(o,r)=>{const s=String(o).match(/(20\d{2})\s*年?/);if(s)return Number(s[1]);const y=Array.isArray(r.liunian)&&r.liunian[0]?Number(r.liunian[0].year):null;return y?/明年/.test(o)?y+1:/后年/.test(o)?y+2:/去年/.test(o)?y-1:/今年|本年/.test(o)?y:null:null},E=o=>q.find(r=>r.words.some(s=>String(o).includes(s)))||null;function g(o,r){const s=M(r,o),y=E(r),k=Array.isArray(o.liunian)?o.liunian:[],f=Array.isArray(o.dayun?.list)?o.dayun.list:[],c=k.map(S=>S.year);if(s&&!k.some(S=>Number(S.year)===s))return{ok:!1,year:s,topic:y,answer:`这一盘已排的流年范围是 ${c[0]}–${c[c.length-1]},没有 ${s} 年。可以把问题改到范围内,或用 asOf 指定你想看的年份重新排盘。`,evidence:[`已排流年:${c.join("、")}`],confidence:"弱"};if(s){const S=k.find(ee=>Number(ee.year)===s),_=f.find(ee=>Number(ee.startAge)<=Number(S.age)&&Number(S.age)<=Number(ee.startAge)+9)||null,Q=S.luck?.tier||"平",ae=(S.luck?.reasons||[]).slice(0,3),G=(S.relations||[]).join("、"),X=y?v(o,y.key):"";return{ok:!0,year:s,topic:y,answer:`${s} 年(${S.ganzhi})流年,十神为${S.stemTenGod||"—"},档位「${Q}」;所行大运 ${_?`${_.ganzhi}(${_.luck?.tier||"平"})`:"未取到"}。${ae.length?`理由:${ae.join(",")}。`:""}${G?`与该年地支相关的原局关系:${G}。`:""}${X}`,evidence:[`流年 ${S.year} ${S.ganzhi}·${S.stemTenGod||""}·${Q}`,_?`大运 ${_.ganzhi}·${_.luck?.tier||"平"}`:"",G?`原局关系 ${G}`:"",y?`问题方向:${y.label}`:""].filter(Boolean),confidence:_&&ae.length?"强":"中"}}if(y){const S={wealth:"overall",study:"work",travel:"overall"}[y.key]||y.key,_=(o.interpret?.dimensions||[]).find(Q=>Q.key===y.key||Q.key===S);if(_){const Q=o.frame&&o.frame.godStats&&o.frame.godStats.groups||{},ae=y.key==="wealth"?` 财星权重 ${Number(Q.财||0)}(只作结构参考,不含金额)。`:"";return{ok:!0,year:null,topic:y,answer:`按${y.label}这条线看:${_.text}${ae}${_.advice?` 建议:${_.advice}`:""}`,evidence:(_.evidence||[]).slice(0,4),confidence:_.confidence||"中"}}}return{ok:!1,year:null,topic:y,answer:`这个问题里没有识别到具体的年份或方面。可以这样问:「2027 年事业怎么样」「财运如何」「感情在 2028 年」;已排流年是 ${c[0]}–${c[c.length-1]}。`,evidence:[`可问年份:${c.join("、")}`],confidence:"弱"}}function $(o,r){const s=M(r,o),y=E(r),k=Array.isArray(o.liunian)?o.liunian:[];if(s&&!k.some(f=>Number(f.year)===s))return{ok:!1,year:s,topic:y,answer:`这一盘的流年表覆盖 ${k[0]?.year}–${k[k.length-1]?.year},没有 ${s} 年;可以换一个年份,或用 asOf 指定起点重新排盘。`,evidence:[`流年表:${k.map(f=>f.year).join("、")}`],confidence:"弱"};if(s){const f=k.find(S=>Number(S.year)===s),c=f.daxian||{};return{ok:!0,year:s,topic:y,answer:`${s} 年(${f.ganzhi},${f.age} 岁)流年命宫落在「${f.lifePalace?f.lifePalace.palace:"—"}」,四化为 ${(f.mutagen||[]).join("、")||"不明显"};所行大限${c.palace?`在${c.palace}(${c.start}–${c.end} 岁)`:"未取到"}。${y?`与「${y.label}」对应的宫位信号见下条依据。`:""}`,evidence:[`流年命宫 ${f.lifePalace?f.lifePalace.palace:"—"}(${f.lifePalace?f.lifePalace.branch:"—"})`,`四化 ${(f.mutagen||[]).join("、")||"不明显"}`,c.palace?`大限 ${c.palace}·${c.start}–${c.end}岁`:""].filter(Boolean),confidence:(f.mutagen||[]).length>=3?"强":"中"}}if(y){const f=I[y.key]||"命宫",c=(o.palaces||[]).find(S=>S.palace===f);if(c){const S=(c.stars||[]).filter(Q=>Q.type==="主星").map(Q=>Q.name),_=S.map(Q=>O[Q]?.trait).filter(Boolean).slice(0,2).join(";");return{ok:!0,year:null,topic:y,answer:`「${y.label}」看${f}:主星${S.length?S.join("、"):"无正曜(借对宫)"}${_?`——${_}`:""}。宫支${c.branch},${c.stems,""}生年四化与煞星的影响需结合报告里的对应分节一起看。`,evidence:[`${f} ${c.branch}·${S.join("、")||"无正曜"}`,...(c.shensha||[]).slice(0,3)],confidence:S.length?"强":"弱"}}}return{ok:!1,year:null,topic:y,answer:"没有识别到具体年份或方面。可以问「2028 年事业」「感情怎么样」「财运在 2030 年」;也可以直接问某个宫位,如「夫妻宫」。",evidence:[],confidence:"弱"}}function v(o,r){return`这段时间可以重点对照报告里「${{career:"事业",wealth:"财富",love:"感情",health:"健康",study:"学业",travel:"出行"}[r]||"整体"}」一节看。`}function u(o,r){const s=E(r),y=Array.isArray(o.interpret?.sections)?o.interpret.sections:[],k=s?y.find(c=>c.label.includes(s.label)||c.text.includes(s.label)):null;if(k)return{ok:!0,year:null,topic:s,answer:k.text,evidence:[`引用分节:${k.label}`],confidence:"中"};const f=y[0];return{ok:!1,year:null,topic:s,answer:f?`这一盘的追问需要落到具体方面(事业 / 财富 / 感情 / 健康 / 学业 / 出行)。先看「${f.label}」这一节,或把问题说得更具体一点。`:"这一盘暂时没有可追问的分节;先看完整解析,再问具体方面。",evidence:[],confidence:"弱"}}function w(o,r){const s=String(r||"").trim(),y=o&&o.system==="bazi"?g(o,s):o&&o.system==="ziwei"?$(o,s):u(o,s);return{question:s,...y}}const b={bazi:"八字(四柱)",ziwei:"紫微斗数",liuyao:"六爻",meihua:"梅花易数",daliuren:"大六壬",qimen:"奇门遁甲",tarot:"塔罗",hepan:"合盘",chenggu:"称骨",almanac:"黄历",zeri:"择日",star:"星座",numerology:"生命数字",mbti:"十六型人格",trend:"人生 K 线",fengshui:"风水",name:"起名",convert:"公农历互转"},x=Object.freeze({bazi:["基本信息","四柱(日主/十神/藏干)","旺衰·格局·用神","合冲·神煞","起运·大运·流年","古籍依据"],ziwei:["基本信息","命宫/身宫与五行局","十二宫(主星/辅煞/四化)","格局与三方四正","大限/流年","古籍依据"],liuyao:["所问与用神","本卦/变卦(世应/动爻/六亲)","月建日辰(旺衰/空破)","应期线索","卦辞与依据"],meihua:["所问与体用","本卦/互卦/变卦","五行生克","应期与依据"],daliuren:["天地盘(月将/贵人)","四课","三传","课体与神将","依据"],qimen:["四柱与局数","九宫(星门神/天盘干)","用神落宫","门宫·干宫·十干克应","旺衰·击刑入墓","依据"],tarot:["问题与牌阵","逐牌(正逆/元素)","牌间关系","综合倾向","边界"],fengshui:["坐向与元运","运盘/山盘/向盘","旺山旺向","取象与边界"]}),l=Object.freeze(["基本信息","盘面事实","结构与关系","倾向","边界"]);function z(o){return x[o]||l}function Y(o,r={}){const s=b[o&&o.system]||o&&o.system||"未知体系",k=String(r&&r.question||"").trim()||"请先用一句白话讲清这张盘的主线,再指出最值得注意的一两处,并说明每处的具体依据。",f=Number.isFinite(r&&r.maxChars)&&r.maxChars>=400?r.maxChars:3e3,c=String(o&&o.summary||"").trim(),S=c.length>f,_=S?`${c.slice(0,f)}…(摘要已截断)`:c,Q=r&&typeof r.interpret=="object"&&r.interpret||o&&typeof o.interpret=="object"&&o.interpret||null,ae=String(Q&&Q.answer||"").trim(),G=String(Q&&Q.plain||"").trim(),X=[];ae&&X.push(`直答:${ae}`),G&&X.push(`说人话:${G}`);const ce=["【命理追问】下面这张盘是命理插件刚排好的,请就着它回答我的问题;不用重新排盘,盘面字段已经够用。",`体系:${s}`,`所问:${k}`,"",...X.length?["——开场结论(插件已按同一套规则算好,开场先沿用这句;措辞可改,口径别换)——",...X,""]:[],"——盘面层次(从上到下读,别跳层)——",`${s}:${z(o&&o.system).join(" → ")}`,"先复述事实,再讲结构与时间;上一层没交代清楚,不要跳到下一层。","","——盘面摘要——",_||"(这张盘没有摘要字段,请先让我重新排一次。)","","——回答要求——","读者不懂命理。按下面的骨架答;任何一句他看不懂,就算没写完:",X.length?"1) 开头一句结论:先沿用上面的「开场结论」,再用一句不用术语的话说清这张盘的主线——只读这一句也该有收获;":"1) 开头一句结论:不用术语,一句话说清这张盘的主线,只读这一句也该有收获;","2) 第二段只复述盘面骨架:按上面的层次用 2–4 行写事实(如四柱、格局、用神、大运),不掺倾向,让读者知道后面的判断从哪来;","3) 判断最多两条,按重要性排序,每条分四行写:"," 盘面|只引盘面已有的字(具体的柱、宫或爻、字段名),不掺解释;"," 白话|把上一行的术语当场翻成日常话——调候 / 化气 / 通关 / 空亡 / 争合 这类词必须落地,一个词只翻一次,不连续堆三个以上;"," 倾向|说「更可能……」,讲清它在现实里大概意味着什么,用概率语气;"," 边界|这条在什么情况下不成立;盘面没给的,直接写「这盘里看不出来」;","4) 收尾一句「如果只记一件事」:给一条能核对、能动手的观察点,并说明它出自上面哪条盘面依据;","5) 别把传统说法当成已证实的事实:不下绝对断言,也不用「肯定」「绝对」这类词,更不写「格局很好」「运程不顺」这种没有信息的空话。"].join(`
|
|
69
|
-
`);return{text:ce,question:k,system:o&&o.system||"",label:s,chars:ce.length,truncated:S}}return{followup:w,READING_ORDERS:x,READING_ORDER_FALLBACK:l,readingOrderOf:z,askPrompt:Y}})(),A.index=(function(){const{buildBazi:O}=A.bazi||{},{buildLiuyao:q,tossLines:I,bodyLabels:M,yongshenOf:E,yongshenStrength:g,fushenAccess:$,hexagramStrength:v,jinTuiPower:u,yingqiWindow:w}=A.liuyao||{},{buildZiwei:b,BRIGHTNESS:x,flowOf:l,asOfParts:z,ZIWEI_SCHOOL_DEFAULTS:Y}=A.ziwei||{},{drawTarot:o}=A.tarot||{},{buildMeihua:r}=A.meihua||{},{buildDaliuren:s}=A.daliuren||{},{buildHepan:y}=A.hepan||{},{buildZiweiHepan:k}=A["ziwei-hepan"]||{},{buildQimen:f,buildSnapshot:c}=A.qimen||{},{geocodeAddress:S,resolveAddress:_}=A.geo||{},{toJDN:Q,ganzhiName:ae,dayGanzhiIndex:G}=A.calendar||{},{randomOf:X,isSeed:ee}=A.random||{},{interpret:ce,DIRECTIONS:me,DIRECTION_DEFAULT:re}=A.interpret||{},{followup:ge,askPrompt:be}=A.followup||{},{crossCheck:xe,crossText:we,crossSection:Se}=A.crosscheck||{},{pastSignals:N,verifyFit:T}=A.verify||{},{rectifyBirth:j}=A.rectify||{},{buildAlmanac:R}=A.almanac||{},{buildZeri:D}=A.zeri||{},{buildChenggu:J}=A.chenggu||{},{buildXiaoliuren:ne}=A.xiaoliuren||{},{buildStar:ye}=A.star||{},{buildNumerology:de}=A.numerology||{},{buildMbti:Le,mbtiPaper:Ee}=A.mbti||{},{buildConvert:ze}=A.convert||{},{classicsFor:Ie,classicsText:en,suiyunClassicOf:Be,classicOf:He,CLASSIC_BOOKS:B}=A.classics||{},{diffObjects:U,summarize:W,sortDiffs:oe,labelOf:fe,rootOf:he,categoryOf:_e,formatValue:qe,CALIBER_SWITCHES:fn}=A.diff||{},{canonicalJson:$n,fingerprintOf:Ne}=A.fingerprint||{},{buildTrend:Ge}=A.trend||{},{buildFengshui:je}=A.fengshui||{},{buildName:Ue}=A.name||{},{buildTrace:De,SYSTEM_LABEL:Fe}=A.trace||{},{fail:V}=A.fail||{},{assertCivil:pn}=A.validate||{},gn=e=>String(e).padStart(2,"0"),nn=["male","female"];function $e(e,a){return a===2?e%4===0&&e%100!==0||e%400===0?29:28:[31,28,31,30,31,30,31,31,30,31,30,31][a-1]}function se(e,a=""){if(nn.includes(e))return e;const n=e==null||e===""?"(未提供)":`「${e}」`;throw V("E_INPUT",`${a?a+"的":""}gender 必须是 male 或 female${n};性别决定大运/大限顺逆,不能靠默认值`)}const Ze=["brightnessSchool","gengYearSihua","tianmaSchool","tiankongSchool","jiekongSchool","kuiyueSchool","tianshiTianshang","changshengSchool","lateZishi","shenzhuSchool"];function Je(e){const a={};for(const n of Ze)e[n]!==void 0&&(a[n]=e[n]);return e.schools&&typeof e.schools=="object"&&(a.schools=e.schools),a}function te(e){if(typeof e!="string"||!e.trim())throw V("E_INPUT","缺少 datetime(公历日期时间),例如 1990-05-12T14:30");const a=e.trim().match(/^(\d{4})-(\d{1,2})-(\d{1,2})(?:[T\s](\d{1,2}):(\d{1,2})(?::(\d{1,2}))?)?$/);if(!a)throw V("E_INPUT",`无法解析 datetime:「${e}」,请用 1990-05-12T14:30 这种格式`);const n={year:Number(a[1]),month:Number(a[2]),day:Number(a[3]),hour:Number(a[4]??0),minute:Number(a[5]??0)};if(n.month<1||n.month>12)throw V("E_INPUT",`月份超出范围:${n.month}`);const t=$e(n.year,n.month);if(n.day<1||n.day>t)throw V("E_INPUT",`日期不存在:${n.year}-${n.month}-${n.day}(${n.year} 年 ${n.month} 月只有 ${t} 天)`);if(n.hour>23||n.minute>59)throw V("E_INPUT",`时间超出范围:${n.hour}:${n.minute}`);if(n.year<1600||n.year>2400)throw V("E_RANGE",`年份 ${n.year} 超出可计算范围(1600–2400)`);return(n.year<1900||n.year>2100)&&(n.precision={level:"approx",note:`ΔT 模型仅覆盖 1900–2100,${n.year} 年按端点值外推,节气与朔望时刻可能有分钟级偏差,月柱在交节前后需复核`}),n}function tn(e){const a=e.pillars,n=(P,ie)=>`${P}:${ie.ganzhi} ${ie.stemTenGod?`十神 ${ie.stemTenGod} `:""}藏干 ${ie.hidden.map(Me=>`${Me.stem}(${Me.tenGod})`).join(" ")} 纳音 ${ie.nayin} 地势 ${ie.dishi} 自坐 ${ie.zizuo} 空亡 ${ie.kongwang.join("")}`+(ie.shensha&&ie.shensha.length?` 神煞 ${ie.shensha.join("、")}`:""),t=Object.entries(e.wuxing).map(([P,ie])=>`${P}${ie}`).join(" "),i=e.palaces?`【胎元】${e.palaces.taiyuan.ganzhi} 胎息 ${e.palaces.taixi?e.palaces.taixi.ganzhi:"—"} 命宫 ${e.palaces.minggong.ganzhi} 身宫 ${e.palaces.shengong.ganzhi}`:"",d=e.dayun.list.slice(0,8).map(P=>`${P.startAge}岁 ${P.ganzhi}(${P.stemTenGod})${P.luck?`·${P.luck.tier}`:""}${P.relations&&P.relations.length?`[${P.relations.join("")}]`:""}`).join(" "),h=e.dayun.jiao&&e.dayun.jiao.at?`;交运 ${e.dayun.jiao.at}(${e.dayun.jiao.frame},距${e.dayun.jiao.from.name} ${e.dayun.jiao.spanDays} 天,三日折一年)`:"",p=e.jieqi.nearBoundaryMinutes<20?`
|
|
70
|
-
⚠ 出生时刻距「节」仅 ${e.jieqi.nearBoundaryMinutes} 分钟,而节气时刻本身有最多约 14 分钟的偏差,月柱与年柱建议人工复核。`:"",
|
|
71
|
-
`)+
|
|
72
|
-
`)}const
|
|
73
|
-
`)}function
|
|
74
|
-
`)}const a=
|
|
75
|
-
`)}function
|
|
76
|
-
`)}function
|
|
77
|
-
`)}function
|
|
78
|
-
`)}function
|
|
79
|
-
`)},
|
|
80
|
-
`)}function
|
|
66
|
+
`,I={河北:"石家庄",山西:"太原",内蒙古:"呼和浩特",辽宁:"沈阳",吉林:"长春",黑龙江:"哈尔滨",江苏:"南京",浙江:"杭州",安徽:"合肥",福建:"福州",江西:"南昌",山东:"济南",河南:"郑州",湖北:"武汉",湖南:"长沙",广东:"广州",广西:"南宁",海南:"海口",四川:"成都",贵州:"贵阳",云南:"昆明",西藏:"拉萨",陕西:"西安",甘肃:"兰州",青海:"西宁",宁夏:"银川",新疆:"乌鲁木齐",台湾:"台北"},q={石家庄:[114.51,38.04],太原:[112.55,37.87],沈阳:[123.43,41.8],长春:[125.32,43.82],哈尔滨:[126.53,45.8],南京:[118.8,32.06],杭州:[120.15,30.28],合肥:[117.23,31.82],福州:[119.3,26.08],南昌:[115.86,28.68],济南:[117,36.65],郑州:[113.62,34.75],武汉:[114.3,30.59],长沙:[112.94,28.23],广州:[113.26,23.13],南宁:[108.37,22.82],海口:[110.2,20.04],成都:[104.07,30.67],贵阳:[106.63,26.65],昆明:[102.83,24.88],拉萨:[91.13,29.65],西安:[108.94,34.34],兰州:[103.83,36.06],西宁:[101.78,36.62],银川:[106.23,38.49],乌鲁木齐:[87.62,43.82],台北:[121.52,25.03]},A=(()=>{const g={};for(const w of E.trim().split(`
|
|
67
|
+
`))for(const $ of w.split(";")){const z=$.trim().split(/\s+/);if(z.length!==3)continue;const[Z,o,d]=z;g[Z]={lon:Number(o),lat:Number(d)}}for(const[w,[$,z]]of Object.entries(q))g[w]||(g[w]={lon:$,lat:z});return g})(),_=/(省|市|地区|盟|自治州|自治县|自治区|特别行政区|县|区|镇|乡|街道|村|小区|社区)/g;function b(g){const w=String(g||"").trim();if(!w)return null;const $=Number(w);if(Number.isFinite($)&&/^-?\d+(\.\d+)?$/.test(w)&&$>=60&&$<=150)return{lon:$,lat:null,matched:`${$}°E`,level:"经度",note:"按你输入的经度计算"};const z=w.replace(/\s/g,"").replace(_,""),Z=Object.keys(A).sort((d,s)=>s.length-d.length);for(const d of Z)if(z.includes(d)){const s=A[d];return{lon:s.lon,lat:s.lat,matched:d,level:"地级市",note:`按 ${d} 估算(约 ${s.lon}°E)`}}const o=w.replace(/\s/g,"");for(const[d,s]of Object.entries(I)){const u=o.indexOf(d);if(u<0)continue;const y=o.charAt(u+d.length);if(y==="区"||y==="县")continue;const r=A[s]||{lon:q[s][0],lat:q[s][1]};return{lon:r.lon,lat:r.lat,matched:s,level:"省会",note:`未匹配到具体城市,按 ${d} 省会 ${s} 估算(约 ${r.lon}°E)`}}return{lon:null,lat:null,matched:null,level:"未匹配",note:`没查到「${w}」,可改填经度(如 116.4)`}}const p=/(区|县|镇|乡|村|小区|街道|路|号|巷|弄|组|队)/,v="dsh-metaphysics/0.23.0 (+https://github.com/xuanfu-web/dsh-metaphysics)";async function c(g,{timeoutMs:w=2500}={}){if(typeof fetch!="function")return null;let $=null;try{const z=typeof AbortController=="function"?new AbortController:null;z&&($=setTimeout(()=>z.abort(),w));const Z="https://nominatim.openstreetmap.org/search?format=jsonv2&limit=1&accept-language=zh-CN&countrycodes=cn&q="+encodeURIComponent(g),o=await fetch(Z,{signal:z?z.signal:void 0,headers:{"User-Agent":v}});if(!o||!o.ok)return null;const d=await o.json();if(!Array.isArray(d)||d.length===0)return null;const s=d[0],u=Number(s.lon),y=Number(s.lat);return Number.isFinite(u)?{lon:u,lat:y,matched:s.display_name,level:"在线",note:`在线解析:${s.display_name}`}:null}catch{return null}finally{$&&clearTimeout($)}}async function h(g,w={}){const $=b(g),z=String(g||"").trim();if(!z||!(w.online===!0)||$&&typeof $.lon=="number"&&!p.test(z))return $;const o=await c(z,w);return o?{...o,local:$&&$.lon!=null?$:null}:$&&typeof $.lon=="number"?{...$,onlineFailed:!0,note:`${$.note}(联网解析失败或超时,已退回内置坐标表)`}:{...$,onlineFailed:!0}}return{CITIES:A,PROVINCES:I,resolveAddress:b,geocodeAddress:h}})(),T.random=(function(){function E(A){let _=Number(A)>>>0;return _||(_=2654435769),function(){_=_+1831565813>>>0;let p=_;return p=Math.imul(p^p>>>15,p|1),p^=p+Math.imul(p^p>>>7,p|61),((p^p>>>14)>>>0)/4294967296}}function I(A){if(A==null||A==="")return Math.random;const _=Number(A);return Number.isFinite(_)?E(_):Math.random}function q(A){return A==null||A===""?!0:Number.isFinite(Number(A))}return{mulberry32:E,randomOf:I,isSeed:q}})(),T.dst=(function(){const{daysInMonth:E}=T.validate||{},I={1986:["1986-05-04","1986-09-14"],1987:["1987-04-12","1987-09-13"],1988:["1988-04-10","1988-09-11"],1989:["1989-04-16","1989-09-17"],1990:["1990-04-15","1990-09-16"],1991:["1991-04-14","1991-09-15"]},q=(p,v,c)=>p*1e4+v*100+c;function A(p){const v=I[p.year];if(!v)return!1;const[c,h,g]=v[0].split("-").map(Number),[w,$,z]=v[1].split("-").map(Number),Z=q(p.year,p.month,p.day);if(Z<q(c,h,g)||Z>q(w,$,z))return!1;const o=p.hour*60+(p.minute||0);return!(Z===q(c,h,g)&&o<120||Z===q(w,$,z)&&o>=120)}function _(p){const v=p.minute||0;if(!A(p))return{year:p.year,month:p.month,day:p.day,hour:p.hour,minute:v,applied:!1,note:null};let{year:c,month:h,day:g,hour:w}=p;return w-=1,w<0&&(w+=24,g-=1,g<1&&(h-=1,h<1&&(h=12,c-=1),g=E(c,h))),{year:c,month:h,day:g,hour:w,minute:v,applied:!0,note:`检出自 ${I[p.year][0]} 至 ${I[p.year][1]} 的中国夏令时:出生钟面时间已减 1 小时校正`}}function b(p,v){const c=Array.isArray(p)?p.slice():[];return v&&v.applied&&v.note&&c.push(v.note),c}return{DST_SPANS:I,inDstSpan:A,applyDst:_,withDstNote:b}})(),T.classics=(function(){const E={ziping:{name:"子平真诠",author:"清·沈孝瞻",base:"https://www.diancang.xyz/xuanxuewushu/zipingzhenquan/"},ditian:{name:"滴天髓",author:"明·京图(通行本)",base:"https://www.diancang.xyz/xuanxuewushu/ditiansui/"},sanming:{name:"三命通会",author:"明·万民英",base:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/"}},I=[{id:"zp-yongshen",book:"ziping",chapter:"八、论用神",scene:"用神",tags:[],quote:"八字用神,专求月令,以日干配月令地支,而生克不同,格局分焉。财官印食,此用神之善而顺用之者也;煞伤劫刃,用神之不善而逆用之者也。",plain:"用神从月令里找:财、官、印、食四吉神顺用(生之护之),煞、伤、劫、刃四凶神逆用(制之化之)。",url:"https://www.diancang.xyz/xuanxuewushu/zipingzhenquan/53628.html"},{id:"zp-zhenguan",book:"ziping",chapter:"三十一、论正官",scene:"格局",tags:["正官"],quote:"以刑冲破害为忌,则以生之护之为喜矣。存其喜而去其忌则贵,而贵之中又有高低者,何也?",plain:"正官格最忌刑冲破害,喜财生官、印护官;去忌存喜才谈得上贵,贵的层次还要看财印是否并透、有无伤官七煞混杂。",url:"https://www.diancang.xyz/xuanxuewushu/zipingzhenquan/53651.html"},{id:"zp-cai",book:"ziping",chapter:"三十三、论财",scene:"格局",tags:["财","正财","偏财"],quote:"财为我克,使用之物也,以能生官,所以为美。为财帛,为妻妾,为才能,为驿马,皆财类也。",plain:"财是我所克、能为我用之物,因能生官而美;它同时代表钱财、配偶、才能、走动,不只「钱」一项。",url:"https://www.diancang.xyz/xuanxuewushu/zipingzhenquan/53653.html"},{id:"zp-yin",book:"ziping",chapter:"三十五、论印绶",scene:"格局",tags:["印"],quote:"印绶喜其生身,正偏同为美格,故财与印不分偏正,同为一格而论之。",plain:"印能生身,正印偏印都算美格,不分偏正而论;印格的关键在身印强弱与官杀、食伤、财的配合。",url:"https://www.diancang.xyz/xuanxuewushu/zipingzhenquan/53655.html"},{id:"zp-shishen",book:"ziping",chapter:"三十七、论食神",scene:"格局",tags:["食神"],quote:"食神本属泄气,以其能生正财,所以喜之。故食神生财,美格也。财要有根,不必偏正叠出,如身强食旺而财透,大贵之格。",plain:"食神本是泄气,可贵在能生财;食神生财要财有根,身强、食旺、财透三者齐,格局才大。",url:"https://www.diancang.xyz/xuanxuewushu/zipingzhenquan/53657.html"},{id:"zp-pianguan",book:"ziping",chapter:"三十九、论偏官",scene:"格局",tags:["七杀","偏官"],quote:"煞以攻身,似非美物,百大贵之格,多存七煞。盖控制得宜,煞为我用,如大英雄大豪杰,似难驾驭,而处之有方,则惊天动地之功,忽焉而就。",plain:"七煞攻身,看着不美,但大贵之格多有七煞——能控制住就为我所用,像驾驭豪杰,处之有方就能成大事。",url:"https://www.diancang.xyz/xuanxuewushu/zipingzhenquan/53659.html"},{id:"zp-shangguan",book:"ziping",chapter:"四十一、论伤官",scene:"格局",tags:["伤官"],quote:"伤官虽非吉神,实为秀气,故文人学士,多于伤官格内得之。而夏木见水,冬金见火,则又为秀之尤秀者也。",plain:"伤官不是吉神,却是秀气所在,文人多出伤官格;夏木得水、冬金得火,是秀气里更秀的两种。",url:"https://www.diancang.xyz/xuanxuewushu/zipingzhenquan/53661.html"},{id:"zp-yangren",book:"ziping",chapter:"四十三、论阳刃",scene:"格局",tags:["劫财","阳刃"],quote:"阳刃者,劫我正财之神,乃正财之七煞也。禄前一位,惟五阳有之,故为阳刃。不曰劫而曰刃,劫之甚也。刃宜伏制,官煞皆宜,财印相随,尤为贵显。",verifiedQuote:"阳刃者,劫我正财之神,乃正财之七煞也。禄前一位,惟五阳有之",variantNote:"典藏网此页把「故为阳刃」刻作「故为旭刃」,与通行本异文;前段仍可逐字核验",plain:"阳刃是劫财之极(只有五阳干有),宜用官煞制伏;财印相随而不相碍,格局更显。",url:"https://www.diancang.xyz/xuanxuewushu/zipingzhenquan/53663.html"},{id:"zp-lujie",book:"ziping",chapter:"四十五、论建禄月劫",scene:"格局",tags:["比肩","建禄","月劫"],quote:"故建禄与月劫,可同一格,不必加分,皆以透干支,别取财官煞食为用。",plain:"建禄、月劫同看一格,月令本身不算用神,要另看透出的财官煞食取用。",url:"https://www.diancang.xyz/xuanxuewushu/zipingzhenquan/53665.html"},{id:"zp-qihou",book:"ziping",chapter:"十四、论用神配气候得失",scene:"调候",tags:[],quote:"论命惟以月令用神为主,然亦须配气候而互参之。譬如英雄豪杰,生得其时,自然事半功倍;遭时不顺,虽有奇才,成功不易。",plain:"月令用神为主,但必须配气候参看;同样的格局,生在得时的气候里事半功倍,逆着气候就费劲。",url:"https://www.diancang.xyz/xuanxuewushu/zipingzhenquan/53634.html"},{id:"zp-chengbai",book:"ziping",chapter:"九、论用神成败救应",scene:"格局",tags:[],quote:"成中有败,必是带忌;败中有成,全凭救应。",plain:"成格不等于一路顺:成中带忌(官逢财又逢伤、官被合之类)就打了折;败格也未必无救——印来解伤、合来清煞,败中还能转成。",url:"https://www.diancang.xyz/xuanxuewushu/zipingzhenquan/53629.html"},{id:"zp-zaji",book:"ziping",chapter:"十六、论杂气如何取用",scene:"用神",tags:[],quote:"何谓透干?如甲生辰月,透戊则用偏财,透癸则用正印,透乙则用月劫是也。何谓会支?如甲生辰月,逢申与子会局,则用水印是也。一透则一用,兼透则兼用,透而又会,则透与会并用。",plain:"四墓(辰戌丑未)所藏不止一气,所以叫杂气:取用先看哪一藏干透到天干,透一个用一个;没有透干,再看地支有没有与月支会成三合局,会成什么局就取局中那一气。透干与会支同时成立时两样并用。原文对「兼透」只给原则,没有给取舍次序。",url:"https://www.diancang.xyz/xuanxuewushu/zipingzhenquan/53636.html"},{id:"zp-bianhua",book:"ziping",chapter:"十、论用神变化",scene:"格局",tags:[],quote:"故若丁生亥月,本为正官,支全卯未,则化为印。己生申月,本属伤官。藏庚透壬,则化为财。凡此之类皆用神之变化也。",plain:"用神本从月令取,但月令藏干不一:丁生亥月本为正官,支会卯未就化为印;己生申月本属伤官,庚藏壬透就化为财。起点相同,合化一变,取用也跟着变(原文只说变化之由,不断定某盘必化)。",url:"https://www.diancang.xyz/xuanxuewushu/zipingzhenquan/53630.html"},{id:"dt-hannuan",book:"ditian",chapter:"通神论·寒暖",scene:"调候",tags:[],quote:"天道有寒暖,生育万物,人道行之,不可过也。",plain:"天有寒暖才能生养万物,人命里寒暖也不能过——过寒过热都要调。",url:"https://www.diancang.xyz/xuanxuewushu/ditiansui/153091.html"},{id:"dt-zaoshi",book:"ditian",chapter:"通神论·燥湿",scene:"调候",tags:[],quote:"地道有燥湿,生成品汇,人道得之,不可偏也。",plain:"地有燥湿才有品类生成,人命得燥湿之气也不能偏。",url:"https://www.diancang.xyz/xuanxuewushu/ditiansui/153091.html"},{id:"dt-shuaiwang",book:"ditian",chapter:"通神论·衰旺",scene:"调候",tags:[],quote:"能知旺衰之真机,其于三命之奥,思过半矣。",plain:"真正看懂旺衰的机关,命理之奥就过了一半——旺衰不是数个数,要看真机。",url:"https://www.diancang.xyz/xuanxuewushu/ditiansui/153091.html"},{id:"dt-zhonghe",book:"ditian",chapter:"通神论·中和",scene:"调候",tags:[],quote:"既识中和之正理,而于五行之妙,有全能焉。",plain:"懂得中和的道理,五行的妙处就都在其中了。",url:"https://www.diancang.xyz/xuanxuewushu/ditiansui/153091.html"},{id:"dt-guansha",book:"ditian",chapter:"通神论·官杀",scene:"十神",tags:["正官","七杀"],quote:"官杀混杂来问我,有可有不可。",plain:"官杀混杂不是一律不好,要看能不能去留取清。",url:"https://www.diancang.xyz/xuanxuewushu/ditiansui/153091.html"},{id:"dt-shangguan",book:"ditian",chapter:"通神论·伤官",scene:"十神",tags:["伤官"],quote:"伤官见官最难辨,可见不可见。",plain:"伤官见官是最难分辨的一条:有的能见,有的不能见,不能一句「伤官见官为祸百端」了事。",url:"https://www.diancang.xyz/xuanxuewushu/ditiansui/153091.html"},{id:"dt-yueling",book:"ditian",chapter:"通神论·月令",scene:"用神",tags:[],quote:"月令乃提纲之府,譬之宅也,人元为用事之神,宅之定向也,不可以不卜。",plain:"月令像宅子,藏干是用事之神,像宅子的朝向,必须细看。",url:"https://www.diancang.xyz/xuanxuewushu/ditiansui/153091.html"},{id:"dt-tiyong",book:"ditian",chapter:"通神论·体用",scene:"用神",tags:[],quote:"道有体用,不可以一端论也,要在扶之抑之得其宜。",plain:"体用不能只看一头,关键是扶抑得宜。",url:"https://www.diancang.xyz/xuanxuewushu/ditiansui/153091.html"},{id:"dt-jingshen",book:"ditian",chapter:"通神论·精神",scene:"用神",tags:[],quote:"人有精神,不可以一偏求也,要在损之益之得其中。",plain:"看精神不能偏执一端,要在损益之间求其中。",url:"https://www.diancang.xyz/xuanxuewushu/ditiansui/153091.html"},{id:"dt-tongguan",book:"ditian",chapter:"通神论·通关",scene:"用神",tags:[],quote:"关内有织女,关外有牛郎,此关若通也,相邀入洞房。",plain:"两股力隔着一道关相望:一边织女、一边牛郎,中间若有一行能把两边接上(一方生它、它再生另一方),对峙就化成相生。原文只给取象,哪一行为关要按五行生克定。",url:"https://www.diancang.xyz/xuanxuewushu/ditiansui/153091.html"},{id:"smt-zhenguan",book:"sanming",chapter:"卷五·论正官",scene:"格局",tags:["正官"],quote:"正官者,乃甲见辛、乙见庚之例。阴阳配合,相制有用,成其道也。故正官为六格之首,止许一位,多则不宜。",plain:"正官取「克我而阴阳相配」,有制而能成用;六格以正官居首,只宜一位,多见就杂。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7582.html"},{id:"smt-zhengcai",book:"sanming",chapter:"卷六·论正财",scene:"格局",tags:["财","正财"],quote:"正财者,乃甲见己、乙见戊之例。受我克制,为我之妻,譬人娶妻,妻赍财嫁我,我必精神康强,而后可享用,若衰微不振,虽妻财丰厚,但能目视,终不得用。",plain:"正财是我克制之物,古人以「娶妻带财」作比:自身精神康强才受用得起,身弱不振,财再厚也只是看着。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7645.html"},{id:"smt-piancai",book:"sanming",chapter:"卷六·论偏财",scene:"格局",tags:["财","偏财"],quote:"何谓偏财?乃甲见戊、乙见己之例。非妻所带,乃众人之财也。切忌有姊妹兄弟分夺,柱无官星,祸患百出。",plain:"偏财取「我克而阴阳不同」:不是妻家带来的私财,而是众人之财,宜流通不宜独占。原文最忌比肩劫财来分夺,又说柱中无官星则多事(旧说的重话照录,本插件只记原文、不作断语)。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7650.html"},{id:"smt-yinshou",book:"sanming",chapter:"卷六·论印绶",scene:"格局",tags:["印"],quote:"印绶者,乃五行生我之名。如甲乙在亥子月,丙丁在寅卯月之类,乃我气之源,为生气,为父母,能护我官星,使无伤克",plain:"印是生我之气,像源头与父母:它能护住官星,使官不受伤克;反过来说,印重就怕财来破。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7655.html"},{id:"smt-shishen",book:"sanming",chapter:"卷六·论食神",scene:"格局",tags:["食神"],quote:"凡命遇财煞之地,食神旺相,煞被食制,不敢为祸,财被食生,充裕不竭,故食神一名寿星,一名爵星,良有以也。",plain:"食神旺,一头制煞、一头生财:煞被制住不敢为祸,财被生起不至枯竭;所以食神又叫寿星、爵星。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7663.html"},{id:"smt-shangguan",book:"sanming",chapter:"卷六·论伤官",scene:"格局",tags:["伤官"],quote:"伤官虽凶,乃我所生,自家之物,伤尽则能生财,财旺则能生官,造化展转有情。",plain:"伤官虽称凶,却是我自己生出来的:伤尽(柱中不见官星)反能生财,财旺再生官,辗转还是有情。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7662.html"},{id:"smt-yangren",book:"sanming",chapter:"卷六·论阳刃",scene:"格局",tags:["阳刃","劫财"],quote:"阳者,阴阳之阳,刃者,刀刃之刃,即禄前一位,言旺越其分,故险。",plain:"阳刃指禄前一位,旺过了本分,所以险;甲丙戊庚壬五阳干才有刃,阴干见伤官同论。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7671.html"},{id:"smt-jianlu",book:"sanming",chapter:"卷六·论建禄",scene:"格局",tags:["建禄","比肩","月劫"],quote:"凡命月令建禄,难招祖业,必主平生见财不聚,却病少寿长,行运再见比肩,克妻妨父损子",plain:"月令建禄是日主临官之地,身旺而财官难取:古说难承祖业、见财不聚,但病少寿长;再走比肩运,古书说克妻妨父损子(属于旧说的重话,本插件只记原文、不作断语)。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7672.html"},{id:"smt-guansha-liu",book:"sanming",chapter:"卷五·官煞去留杂论",scene:"格局",tags:["七杀","偏官"],quote:"凡看去留,要详柱中官煞孰重孰轻,天干透者易去,月支所藏者难去,须伤官食神去官煞之物众而有力,方才去得。",plain:"官煞混见时先比谁重谁轻:天干透出的容易去,月支藏着的难去;用来去官煞的伤官食神要成众、有根有力,才真去得掉。七杀格遇正官混杂,就按这一篇看取舍。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7599.html"},{id:"smt-quzhi",book:"sanming",chapter:"卷六·曲直",scene:"格局",tags:["曲直格","专旺"],quote:"甲乙日得亥卯未局,柱中须有亥字带印为入格,若无亥有卯,止是木之本气,却要见金土为贵,既无亥字,又无金土,则木不秀不实,难以言贵。",plain:"曲直格要木局成方(亥卯未)且带亥字为印,才算入格;只有卯、没有亥,只是木的本气,得另见金土才谈得上贵;两样都没有,木虽旺而无成,难称贵格。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7630.html"},{id:"smt-yanshang",book:"sanming",chapter:"卷六·炎上",scene:"格局",tags:["炎上格","专旺"],quote:"丙丁日遇寅午戌局,柱中须有寅字带印为入格,无寅止是九流近贵之命,若火自旺,无亥水相济,不贵。喜东北方运,忌见辰丑戊己,晦火光明,多主眼疾,或患风气,柱有木制成贵,忌水金乡,怕冲。",plain:"炎上格要火局成方(寅午戌)且带寅字为印才入格;无寅只是偏贵的命。火自旺还要一点水相济,过燥不贵;行运喜东北、忌湿土晦火,也怕冲。原文另带「多主眼疾」一句,属于旧说,本插件只记原文、不作健康判断。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7631.html"},{id:"smt-congge",book:"sanming",chapter:"卷六·从革",scene:"格局",tags:["从革格","专旺"],quote:"庚辛日见巳酉丑局,须带丙丁巳午一二位方成其器,但不可火多。如辛巳、辛酉、辛丑三日不喜五月生,被火所伤,宜八月或水土养育食神印绶为吉。",plain:"从革格是金局成方(巳酉丑),但金要火炼才成器:须带丙丁或巳午一二位,火又不能多。辛巳、辛酉、辛丑三日出身在五月(火旺)被伤,原文说宜八月或水土养育。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7632.html"},{id:"smt-runxia",book:"sanming",chapter:"卷六·润下",scene:"格局",tags:["润下格","专旺"],quote:"壬癸日见申子辰全,忌引卯巳死绝之地,三刑四冲之乡,死绝则不流,冲刑则横流,岁运同。或曰水太泛须柱有土神一两位制之,得成堤岸,既有土怕会木为凶,如有木伤土要金印救解,终是一生成败。",plain:"润下格是水局三合全(申子辰),最忌卯巳死绝与三刑四冲:死绝水不流,冲刑水横流,行运也一样看。水太泛要一两位土作堤,有土又怕木来破堤,木伤土再用金印解救——原文把成败条件摊开讲。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7633.html"},{id:"smt-jiasi",book:"sanming",chapter:"卷六·稼穑",scene:"格局",tags:["稼穑格","专旺"],quote:"赋云:戊己忻逢四季,乃为稼穑之名。是戊己生逢季月,喜见木为官,止得一木为妙,木多则土虚,主虚诈为破家不仁之人。",plain:"稼穑格取戊己生于四季月(辰戌丑未)。原文说喜见一木为官,木多则土虚;后半对木多之人的评语是旧说的重话,本插件只照录条件、不拿来评价人。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7634.html"},{id:"smt-congsha",book:"sanming",chapter:"卷五·弃命从煞",scene:"格局",tags:["从杀格"],quote:"《独步》云:弃命从煞,须要会煞从财,忌煞从煞。盖言从煞格,以煞神太重,身无所归,不得已从之,要行煞旺及财乡,四柱无一点比肩印绶方论,如遇运扶身旺,与煞为敌,从煞不专,故为祸患。",plain:"从煞格是煞太重、日主无所归才「弃命」相从:条件是四柱没有一点比肩印绶扶身,行运喜煞旺与财乡;一旦走扶身之运,与煞为敌,就从得不专。本插件只作结构说明,不据此断寿夭。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7598.html"},{id:"smt-congcai",book:"sanming",chapter:"卷六·弃命从财",scene:"格局",tags:["从财格"],quote:"《独步》云:弃命从财,须要会财,若逢根气,命损无猜。假如丁生酉月,柱多庚辛,日干无气,只得弃命相从,运入北方财官旺地,乃为入格,南行灾。",plain:"从财格要财会成局、日干无气;一见根气就破格,原文用「命损无猜」这种重话写明。以丁生酉月、柱多庚辛为例:只能弃命相从,行北方财官旺地为入格,南行则灾。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7652.html"},{id:"smt-suiyun",book:"sanming",chapter:"卷二·总论岁运",scene:"岁运",tags:[],quote:"行运以生月为运元,最怕行运与太岁冲克,若岁运冲月必祸;若岁运与日相对,谓之返吟,岁运压日,谓之伏吟,二者不利六亲,非横破财,不为吉兆。",plain:"大运以生月为起点,最怕与流年(太岁)冲克:原文说岁运冲月为祸,又把「岁运与日柱相对」叫返吟、「岁运压日」叫伏吟。这两句是按「对日柱」说的,与本插件「干支相同为伏吟、天克地冲为反吟」不是同一套定义(本插件取后者);末句「不利六亲、破财」是旧说的重话,只作变动提示,不作断语。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7539.html"},{id:"smt-renyuan",book:"sanming",chapter:"卷二·论人元司事",scene:"人元",tags:[],quote:"故支吕所藏者主命,谓之人元,名为司事之神,以命术言之为月令。如正月建寅,寅中有艮土用事五日,丙火长生五日,甲木二十日;二月建卯,卯中有甲木用事七日,乙木二十三日;",plain:"地支所藏为「人元」,按月令分日轮值。三命通会这一本给的是另一套日数:寅月艮土(戊土)五日、丙火五日、甲木二十日,卯月甲七日、乙二十三日。它与本插件采用的通行 30 日表(寅月戊7丙7甲16,即 7/7/16;卯月甲10乙20,即 10/20)不是同一套分法;两表各照原样并列,本插件仍按通行表给「第几日谁当权」,不改取格。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7529.html"}],q=I.reduce(($,z)=>($[z.id]=z,$),{}),A={正官格:"正官",七杀格:"七杀",偏官格:"偏官",正财格:"正财",偏财格:"偏财",正印格:"印",偏印格:"印",食神格:"食神",伤官格:"伤官",阳刃格:"阳刃",月劫格:"月劫",建禄格:"建禄"},_={曲直格:"smt-quzhi",炎上格:"smt-yanshang",从革格:"smt-congge",润下格:"smt-runxia",稼穑格:"smt-jiasi",从财格:"smt-congcai",从杀格:"smt-congsha"};function b($){return q[$]||null}function p($){return($&&Array.isArray($.liunian)?$.liunian:[]).some(o=>o&&o.suiyun&&Array.isArray(o.suiyun.signals)&&o.suiyun.signals.length)?b("smt-suiyun"):null}function v($){const z=String($||"");if(A[z])return A[z];const Z=z.replace(/格$/,"");return A[Z+"格"]||Z}function c($,z){return I.find(Z=>Z.scene==="格局"&&Z.tags.includes($)&&(!z||Z.book===z))||null}function h($){return $.chapter.replace(/^.*[、·]/,"").replace(/^论/,"")}function g($,z=5){if(!$)return[];const Z=[],o=new Set,d=(L,X)=>{!L||o.has(L.id)||Z.length>=z||(o.add(L.id),Z.push({...L,why:X}))},s=Array.isArray($.geju)?$.geju:$.frame&&Array.isArray($.frame.geju)?$.frame.geju:[],u=s.some(L=>L&&L.kind==="化气格");for(const L of s){if(L&&L.status==="破格"||u&&L&&L.status==="假从")continue;const X=L&&_[L.name]?b(_[L.name]):null;X&&d(X,`本盘列有「${L.name}」,故取${E[X.book].name}「${h(X)}」一条`)}for(const L of s){if(!L||L.kind&&L.kind!=="月令格")continue;const X=v(L.name),ee=c(X,"ziping")||c(X);ee&&d(ee,`你的月令格局是「${L.name}」,故取${E[ee.book].name}「${h(ee)}」一条`);const ue=I.find(me=>me.scene==="格局"&&me.tags.includes(X)&&(!ee||me.book!==ee.book));ue&&d(ue,`同是「${L.name}」,${E[ue.book].name}「${h(ue)}」另有取法,可对照读`)}const y=$.climate||$.frame&&$.frame.yongshen&&($.frame.yongshen.climate||$.frame.yongshen.tiaohou),r=$.frame&&$.frame.yongshen&&$.frame.yongshen.tongguan,l=r&&r.usable?b("dt-tongguan"):null;if(y&&y.kind&&y.kind!=="平和"){const L=!!(y.cold||y.kind.indexOf("寒")>=0),X=!!(y.hot||y.kind.indexOf("热")>=0);d(b(L?"dt-hannuan":"dt-zaoshi"),`本盘气候判为「${y.kind}」,故取${E.ditian.name}寒暖燥湿一条`),l||d(b("zp-qihou"),"气候与月令用神要互参,故取子平真诠「用神配气候」一条"),X&&d(b("dt-hannuan"),"本盘偏热,寒暖一条正对")}l&&d(l,`本盘忌${r.foe}克用${r.use},局中${r.bridge}${r.weight}分可作通关,故取${E.ditian.name}「通关」一条`);const S=s.find(L=>L&&L.kind==="化气格"),N=s.find(L=>L&&L.kind==="组合"),V=$.monthBranch||$.frame&&$.frame.monthBranch||$.pillars&&$.pillars.month&&$.pillars.month.branch,te=["辰","未","戌","丑"].includes(V);return S?d(b("zp-bianhua"),`本盘列有「${S.name}」:用神由月令合化而变,总纲一位改取${E.ziping.name}论用神变化`):te?d(b("zp-zaji"),`月令${V}属四墓杂气,取用先看透干、再看会支,总纲一位取${E.ziping.name}论杂气如何取用`):N?d(b("zp-chengbai"),`本盘另有「${N.name}」组合:成格还要看带忌与救应,总纲一位改取${E.ziping.name}论用神成败救应`):d(b("zp-yongshen"),"用神从月令取、四吉顺用四凶逆用,是通用总纲"),Z}function w($){return!$||!$.length?"":$.map(z=>`《${E[z.book].name}·${z.chapter}》「${z.quote}」`).join(`
|
|
68
|
+
`)}return{CLASSIC_BOOKS:E,CLASSICS:I,classicOf:b,suiyunClassicOf:p,classicsFor:g,classicsText:w}})(),T["interpret-data"]=(function(){const E={乾:{nature:"天",trait:"刚健、主导",element:"金"},坤:{nature:"地",trait:"承载、柔顺",element:"土"},震:{nature:"雷",trait:"启动、震动",element:"木"},巽:{nature:"风",trait:"渗透、顺势",element:"木"},坎:{nature:"水",trait:"险陷、流动",element:"水"},离:{nature:"火",trait:"明丽、附著",element:"火"},艮:{nature:"山",trait:"静止、阻挡",element:"土"},兑:{nature:"泽",trait:"愉悦、口舌",element:"金"}},I=[{pos:1,name:"初爻",gist:"事之始,根基与起点",tone:"宜稳不宜急"},{pos:2,name:"二爻",gist:"初步展开,能力初显",tone:"宜务实积累"},{pos:3,name:"三爻",gist:"进退交界的关口,多劳少得",tone:"宜守拙退让"},{pos:4,name:"四爻",gist:"接近决策层,转机初现",tone:"宜谨慎措辞"},{pos:5,name:"五爻",gist:"得位居中,事态最盛",tone:"宜把握主节奏"},{pos:6,name:"上爻",gist:"发展至极,盛极思变",tone:"宜留余地收尾"}],q={yang:"阳极转阴:原本强势、推进得很快的那个环节,接下来需要收一收、留余地",yin:"阴极转阳:原本停滞、迟迟没动静的那个环节,接下来会出现变化,可以主动推一把"},A={乾为天:{meaning:"刚健运行,自强不息",scene:"主动权在你手上,宜自己定节奏"},坤为地:{meaning:"厚德载物,顺势而成",scene:"配合与承接比抢先更有利"},水雷屯:{meaning:"初生艰难,如草木破土",scene:"事情刚起步会乱,先把基础扎稳"},山水蒙:{meaning:"蒙昧待启,问道则通",scene:"信息不全时先请教,不要硬闯"},水天需:{meaning:"等待时机,不可冒进",scene:"条件没齐,耐心等一等反而快"},天水讼:{meaning:"争讼之象,宜和解",scene:"有分歧先谈,别把关系推上对抗"},地水师:{meaning:"用众之道,纪律为先",scene:"靠团队成事,规矩要立在前"},水地比:{meaning:"亲附相辅,择善而从",scene:"选对合作对象,比单打独斗重要"},风天小畜:{meaning:"小有积蓄,力量未充",scene:"先攒资源,暂不大举投入"},天泽履:{meaning:"循礼而行,如履虎尾",scene:"按规则走,谨慎就不会出事"},地天泰:{meaning:"上下交泰,通达和顺",scene:"沟通顺畅,是推进的好时候"},天地否:{meaning:"阴阳不交,闭塞不通",scene:"卡住时先停下来,别硬顶"},天火同人:{meaning:"与人同心,众志可成",scene:"找同频的人一起做,事半倍"},火天大有:{meaning:"丰盛富有,如日中天",scene:"收获可观,记得分享与收敛"},地山谦:{meaning:"谦逊受益,卑以自牧",scene:"放低姿态,反而更容易被接纳"},雷地豫:{meaning:"悦乐振奋,顺势而动",scene:"士气高,适合启动与造势"},泽雷随:{meaning:"随时而动,择善而随",scene:"跟随大势走,别拧着来"},山风蛊:{meaning:"积弊待治,破而后立",scene:"旧问题该清一清了,别拖"},地泽临:{meaning:"居高临下,督导亲近",scene:"亲自盯一盯,效果比放手好"},风地观:{meaning:"观仰教化,观察而明",scene:"先看清楚再表态"},火雷噬嗑:{meaning:"咬合去梗,明断是非",scene:"障碍要正面处理,绕不过去"},山火贲:{meaning:"文饰之美,适度为宜",scene:"包装有用,但别盖过实质"},山地剥:{meaning:"剥落衰败,宜守不宜进",scene:"在消耗期,止损优先"},地雷复:{meaning:"一阳来复,去而复返",scene:"转机回来了,可以小步重启"},天雷无妄:{meaning:"不妄为,守正即吉",scene:"按本分做,别投机"},山天大畜:{meaning:"大有蓄养,厚积待发",scene:"积累期,学东西最有价值"},山雷颐:{meaning:"养正自守,节饮食慎言语",scene:"养身体、养口碑,别透支"},泽风大过:{meaning:"过甚有险,栋梁将折",scene:"担子太重,该减负或加固"},坎为水:{meaning:"重险叠至,惟诚可济",scene:"困难接连来,稳住心神最要紧"},离为火:{meaning:"附丽光明,柔顺守中",scene:"借助光亮的东西,别孤军奋战"},泽山咸:{meaning:"感应相和,男女相悦",scene:"情感互动顺畅,宜真诚表达"},雷风恒:{meaning:"恒久不易,持之则成",scene:"长期坚持才有结果"},天山遁:{meaning:"退避为智,以退为进",scene:"适时抽身,不是认输"},雷天大壮:{meaning:"阳刚壮盛,宜正不宜猛",scene:"气势足,但别用力过猛"},火地晋:{meaning:"晋升初进,如日上升",scene:"有上升机会,主动争取"},地火明夷:{meaning:"光明受掩,韬光养晦",scene:"暂时低调,保存实力"},风火家人:{meaning:"内治为先,各安其位",scene:"先把身边人和日常安顿好"},火泽睽:{meaning:"睽违背离,同中有异",scene:"意见不合是常态,求同存异"},水山蹇:{meaning:"蹇难阻滞,宜反身修德",scene:"走不通就绕,回头补短板"},雷水解:{meaning:"险难消解,宜速不宜缓",scene:"结打开了,趁势把事办了"},山泽损:{meaning:"损己益人,损中有得",scene:"先让一点,后面有回报"},风雷益:{meaning:"增益利民,顺势施为",scene:"投入会有产出,可以加码"},泽天夬:{meaning:"决而去之,果决除弊",scene:"该断的事果断断,别拖泥带水"},天风姤:{meaning:"不期而遇,柔遇刚",scene:"有意外的人或机会出现"},泽地萃:{meaning:"聚合众力,物以类聚",scene:"聚人聚资源的时候到了"},地风升:{meaning:"积小以高大,循序上升",scene:"一步一步往上走,别跳级"},泽水困:{meaning:"困穷待援,安贫守正",scene:"资源受限时先守住基本盘"},水风井:{meaning:"井养不穷,修井得清",scene:"把现有的渠道维护好"},泽火革:{meaning:"革故鼎新,时至则变",scene:"该改就改,时机已经到了"},火风鼎:{meaning:"鼎新烹饪,稳重得位",scene:"新格局已立,按新规矩办"},震为雷:{meaning:"震惊百里,惧而后安",scene:"突发变动会来,先稳住再应对"},艮为山:{meaning:"止其所止,静而定",scene:"该停就停,停下来才看得清"},风山渐:{meaning:"渐进有序,如鸿渐于陆",scene:"慢慢来反而到得快"},雷泽归妹:{meaning:"归嫁失序,宜守本分",scene:"关系里别越位,按本分处"},雷火丰:{meaning:"丰大光明,宜及时施为",scene:"盛时要做事,别浪费势头"},火山旅:{meaning:"旅居在外,谨慎自守",scene:"处在变动环境,低调稳当些"},巽为风:{meaning:"顺入以柔,申命行事",scene:"用柔的方式渗透,别硬碰"},兑为泽:{meaning:"喜悦相悦,朋友讲习",scene:"多交流多请教,气氛是好的"},风水涣:{meaning:"涣散离散,宜聚人心",scene:"人心散了,先把共识找回来"},水泽节:{meaning:"节制有度,苦节不可",scene:"设边界、控节奏,别过头"},风泽中孚:{meaning:"诚信居中,信则人任",scene:"诚意是当下最有效的通行证"},雷山小过:{meaning:"小事可过,大事不可",scene:"细节可以灵活,大方向别偏"},水火既济:{meaning:"事已成,慎终如始",scene:"做成之后更要防松懈"},火水未济:{meaning:"事未成,慎辨慎行",scene:"还差一步,别急着庆祝"}},_=Object.fromEntries(Object.keys(A).map($=>[$.length>2?$.slice(2):$.slice(0,1),$]));return{TRIGRAM:E,YAO_POSITION:I,MOVING_NATURE:q,HEX64:A,HEX_BY_CORE:_,ZIWEI_STARS:{紫微:{trait:"有主见、重体面,习惯站在统筹的位置",work:"适合需要拍板与统筹的岗位,管理、政务、项目负责一类",love:"在关系里需要被尊重,慢热但认真",health:"留意血压与作息紊乱"},天机:{trait:"脑子转得快,兴趣多、想法多",work:"适合策划、技术、咨询、研发一类动脑的岗位",love:"容易被有趣的人吸引,需要精神共鸣",health:"思虑多,留意神经紧张与睡眠"},太阳:{trait:"外放热心,愿意付出、也愿意被看见",work:"适合对外型岗位,教学、销售、公关、公益一类",love:"主动付出型,注意别一厢情愿",health:"留意心血管与用眼过度"},武曲:{trait:"务实、讲效率,认结果不认空话",work:"适合金融、财务、工程、执行类岗位",love:"感情表达偏实在,用行动多于言语",health:"留意呼吸系统与过劳"},天同:{trait:"温和好相处,重感受,凡事求舒服",work:"适合服务、文职、教育、文创一类低对抗的岗位",love:"需要陪伴感,容易被温柔的人打动",health:"留意免疫力与情绪性不适"},廉贞:{trait:"细腻又较真,审美与原则都在意",work:"适合需要精细度的岗位,法务、审计、设计、医疗一类",love:"感情投入深,也容易较劲",health:"留意炎症与情绪郁结"},天府:{trait:"稳重可靠,善于守成与资源调度",work:"适合行政、财务、运营、仓储一类守盘型岗位",love:"倾向稳定长久的关系",health:"留意体重与消化负担"},太阴:{trait:"内敛敏感,心思细,重安全感",work:"适合研究、文案、财务、艺术一类安静专注的岗位",love:"慢热、重细节,需要被照顾到感受",health:"留意睡眠与内分泌节律"},贪狼:{trait:"好奇心强、人缘好,兴趣广泛",work:"适合业务、市场、传媒、跨界的开拓型岗位",love:"桃花偏旺,需要自己划清边界",health:"留意肝火与作息不规律"},巨门:{trait:"善于分析,也容易多疑,嘴上功夫好",work:"适合法务、教学、咨询、谈判一类靠口才与逻辑的岗位",love:"容易因多想而生误会,宜多说清楚",health:"留意口腔、呼吸道与思虑过度"},天相:{trait:"讲规矩、重协调,习惯做辅佐者",work:"适合秘书、执行、协调、后勤一类支撑型岗位",love:"关系里偏迁就,需要学会表达需求",health:"留意皮肤与免疫波动"},天梁:{trait:"有长者气,爱操心、乐意帮人",work:"适合教育、医护、公益、顾问一类助人的岗位",love:"照顾型伴侣,别把对方当孩子",health:"留意慢病管理与过劳"},七杀:{trait:"果断敢冲,抗压但容易硬碰硬",work:"适合开拓、销售、创业、外勤一类高挑战岗位",love:"感情来得快,需要留给对方缓冲",health:"留意意外伤害与旧伤复发"},破军:{trait:"喜新厌旧,敢破敢立,不走老路",work:"适合变革、创业、项目从零到一的岗位",love:"感情变动偏多,稳定需要共同目标",health:"留意泌尿与外伤"}},WUXING_INDUSTRY:{木:"教育培训、出版撰稿、文职行政、农林园艺、中医药、服装与设计、文创",火:"互联网、传媒影视、能源电力、餐饮与品牌、演艺传播、电子科技",土:"地产建筑、物业管理、行政人事、农业种植、供应链仓储、财会",金:"金融银行、法律法务、机械制造、审计风控、医疗器械、军警安保",水:"物流贸易、咨询顾问、传媒公关、旅游出行、科研水产、信息技术"},WUXING_ORGAN:{木:{part:"肝胆、筋骨",note:"情绪疏泄与久坐久视是主要负担"},火:{part:"心脏、小肠、血脉",note:"睡眠节律与情绪起伏最需留意"},土:{part:"脾胃、肌肉",note:"饮食规律与消化吸收是关键"},金:{part:"肺、大肠、呼吸道与皮肤",note:"空气质量与换季是敏感点"},水:{part:"肾、膀胱、内分泌与腰膝",note:"过劳与熬夜最先反映在这里"}},TENGOD_STYLE:{正官:"守规矩、重名分,适合在成体系的组织里按规则上升",七杀:"抗压敢拼,适合高挑战、需要快速决断的岗位",正财:"稳定务实,适合按劳取酬、积累型的路径",偏财:"善抓机会、人脉广,适合业务、投资、资源整合类",食神:"表达与创造见长,适合技术、创作、教育一类",伤官:"想法多、不服旧规,适合改革、创业、专业创意",正印:"学习力强、有耐心,适合研究、文教、需要资质的岗位",偏印:"偏门钻研,适合冷门专业、技术深耕",比肩:"独立能扛,适合并肩作战或独立负责一块",劫财:"行动快、竞争心强,适合业务冲刺型工作"},LIUREN_JIANG:{贵人:"贵人、助力、被提携",螣蛇:"缠绕、反复、惊扰不定",朱雀:"口舌、文书、消息是非",六合:"合作、契约、和合之事",勾陈:"牵绊、拖延、纠缠难断",青龙:"喜庆、财禄、顺利推进",天空:"虚空、不实、计划落空",白虎:"压力、病丧、突发阻碍",太常:"衣食、常规、平稳运行",玄武:"暗昧、失物、信息不明",太阴:"隐秘、暗中助力、私下的事",天后:"女性、恩泽、情感与照料"},DISCLAIMER:"以上解析由本插件依据你提供的出生信息(或起卦时刻)按传统命理规则生成,属文化娱乐与自我觉察的参考,不构成医疗、心理、投资、法律或人事决策的依据。涉及健康请咨询医生,涉及重大决定请以现实信息与专业人士意见为准。",TAROT_ELEMENT_FOCUS:{火:{area:"行动力与热情",advice:"把能量投到一件具体的事上,别同时开太多头"},水:{area:"情感与关系",advice:"先照顾好感受,再谈效率"},风:{area:"思考与沟通",advice:"把想法写下来,与相关的人说清楚"},土:{area:"现实与资源",advice:"落实成可执行的步骤,写明时间和预算"}}}})(),T.almanac=(function(){const{solarToLunar:E}=T.lunar||{},{nayinOf:I}=T.nayin||{},{toJDN:q,fromJDN:A,dayGanzhiIndex:_,ganzhiName:b,termWindow:p,termInstantJd:v,partsToJd:c,STEMS:h,BRANCHES:g,TERM_NAMES:w}=T.calendar||{},{HEX64:$}=T["interpret-data"]||{},{sanheGroupOf:z}=T.sanhe||{},{assertCivil:Z,daysInMonth:o}=T.validate||{},d=["建","除","满","平","定","执","破","危","成","收","开","闭"],s={建:["出行","上任","会友","上书","见工"],除:["除服","疗病","扫舍","出行"],满:["祈福","祭祀","结亲","开市","交易"],平:["修饰垣墙","平治道涂"],定:["嫁娶","订盟","纳采","祭祀","祈福"],执:["祭祀","祈福","捕捉","纳畜"],破:["破屋","坏垣","求医"],危:["祭祀","祈福","安床"],成:["嫁娶","开市","入学","上任","修造"],收:["纳财","收账","进人口"],开:["开市","交易","嫁娶","入学","动土"],闭:["筑堤","埋穴","补垣"]},u={建:["动土","开仓","出货财","安葬"],除:["求财","赴任","嫁娶"],满:["服药","栽种","安葬"],平:["祈福","求嗣"],定:["诉讼","出行"],执:["开市","求财","出行"],破:["嫁娶","开市","动土"],危:["登高","行船","出行"],成:["诉讼"],收:["开市","出行","安葬"],开:["安葬"],闭:["开市","出行","求医"]},y={甲:"东北",乙:"东北",丙:"西南",丁:"西南",戊:"正北",己:"正北",庚:"正东",辛:"正东",壬:"正南",癸:"正南"},r={甲:"东北",乙:"西北",丙:"西南",丁:"正南",戊:"东南",己:"东北",庚:"西北",辛:"西南",壬:"正南",癸:"东南"},l=["鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪"],S={申子辰:"南",寅午戌:"北",巳酉丑:"东",亥卯未:"西"};function N(H){const F=z(H);return F&&S[F.branches.join("")]||null}function V(H,F=0){const W=Number.isInteger(H)?(H%24+24)%24:12;return g[Math.floor((W+1)%24/2)]}function te(H,F){const W=g.indexOf(H),ie=g.indexOf(F);return d[((W-ie)%12+12)%12]}const L=["正","二","三","四","五","六","七","八","九","十","冬","腊"],X=["初","十","廿"],ee=["十","一","二","三","四","五","六","七","八","九"];function ue(H){return H===10?"初十":H===20?"二十":H===30?"三十":`${X[Math.floor(H/10)]}${ee[H%10]}`}function me(H,F=!1){return`${F?"闰":""}${L[H-1]||H}月`}const oe=["青龙","明堂","天刑","朱雀","金匮","天德","白虎","玉堂","天牢","玄武","司命","勾陈"],pe={青龙:"黄道",明堂:"黄道",金匮:"黄道",天德:"黄道",玉堂:"黄道",司命:"黄道",天刑:"黑道",朱雀:"黑道",白虎:"黑道",天牢:"黑道",玄武:"黑道",勾陈:"黑道"},we={子:4,丑:2,寅:0,卯:10,辰:8,巳:6,午:4,未:2,申:0,酉:10,戌:8,亥:6};function je(H,F){const W=g.indexOf(H),ie=we[F];if(W<0||ie==null)return null;const fe=oe[(W+ie)%12],le=pe[fe];return{name:fe,type:le,luck:le==="黄道"?"吉":"凶"}}const ze={角:{luck:"吉",zheng:"木",animal:"蛟",gong:"东"},亢:{luck:"凶",zheng:"金",animal:"龙",gong:"东"},氐:{luck:"凶",zheng:"土",animal:"貉",gong:"东"},房:{luck:"吉",zheng:"日",animal:"兔",gong:"东"},心:{luck:"凶",zheng:"月",animal:"狐",gong:"东"},尾:{luck:"吉",zheng:"火",animal:"虎",gong:"东"},箕:{luck:"吉",zheng:"水",animal:"豹",gong:"东"},斗:{luck:"吉",zheng:"木",animal:"獬",gong:"北"},牛:{luck:"凶",zheng:"金",animal:"牛",gong:"北"},女:{luck:"凶",zheng:"土",animal:"蝠",gong:"北"},虚:{luck:"凶",zheng:"日",animal:"鼠",gong:"北"},危:{luck:"凶",zheng:"月",animal:"燕",gong:"北"},室:{luck:"吉",zheng:"火",animal:"猪",gong:"北"},壁:{luck:"吉",zheng:"水",animal:"貐",gong:"北"},奎:{luck:"凶",zheng:"木",animal:"狼",gong:"西"},娄:{luck:"吉",zheng:"金",animal:"狗",gong:"西"},胃:{luck:"吉",zheng:"土",animal:"雉",gong:"西"},昴:{luck:"凶",zheng:"日",animal:"鸡",gong:"西"},毕:{luck:"吉",zheng:"月",animal:"乌",gong:"西"},觜:{luck:"凶",zheng:"火",animal:"猴",gong:"西"},参:{luck:"吉",zheng:"水",animal:"猿",gong:"西"},井:{luck:"吉",zheng:"木",animal:"犴",gong:"南"},鬼:{luck:"凶",zheng:"金",animal:"羊",gong:"南"},柳:{luck:"凶",zheng:"土",animal:"獐",gong:"南"},星:{luck:"凶",zheng:"日",animal:"马",gong:"南"},张:{luck:"吉",zheng:"月",animal:"鹿",gong:"南"},翼:{luck:"凶",zheng:"火",animal:"蛇",gong:"南"},轸:{luck:"吉",zheng:"水",animal:"蚓",gong:"南"}},ke={A:["虚","毕","翼","箕","奎","鬼","氐"],B:["房","危","觜","轸","斗","娄","柳"],C:["星","心","室","参","角","牛","胃"],D:["昴","张","尾","壁","井","亢","女"]},O={子:"A",辰:"A",申:"A",丑:"B",巳:"B",酉:"B",寅:"C",午:"C",戌:"C",卯:"D",未:"D",亥:"D"};function M(H,F){const W=O[H];if(!W)return null;const ie=ke[W][F],fe=ze[ie];return fe?{name:ie,...fe}:null}const k={坎:"正北",艮:"东北",震:"正东",巽:"东南",离:"正南",坤:"西南",兑:"正西",乾:"西北"},Y={甲:"艮",乙:"乾",丙:"坤",丁:"离",戊:"巽",己:"艮",庚:"乾",辛:"坤",壬:"离",癸:"巽"},G={甲:"艮",乙:"艮",丙:"坤",丁:"坤",戊:"坎",己:"坎",庚:"震",辛:"震",壬:"离",癸:"离"},J={甲:"坎",乙:"坤",丙:"乾",丁:"巽",戊:"艮",己:"坎",庚:"坤",辛:"乾",壬:"巽",癸:"艮"},ne={甲:"坤",乙:"坤",丙:"兑",丁:"乾",戊:"艮",己:"坎",庚:"离",辛:"艮",壬:"震",癸:"巽"},ge={甲:"艮",乙:"坎",丙:"乾",丁:"兑",戊:"坤",己:"坤",庚:"艮",辛:"离",壬:"巽",癸:"震"},he=(H,F)=>H[F]?{gua:H[F],dir:k[H[F]]}:null,ve={甲子:"占门碓 外东南",乙丑:"碓磨厕 外东南",丙寅:"厨灶炉 外正南",丁卯:"仓库门 外正南",戊辰:"房床栖 外正南",己巳:"占门床 外正南",庚午:"占碓磨 外正南",辛未:"厨灶厕 外西南",壬申:"仓库炉 外西南",癸酉:"房床门 外西南",甲戌:"占门栖 外西南",乙亥:"碓磨床 外西南",丙子:"厨灶碓 外西南",丁丑:"仓库厕 外正西",戊寅:"房床炉 外正西",己卯:"占大门 外正西",庚辰:"碓磨栖 外正西",辛巳:"厨灶床 外正西",壬午:"仓库碓 外西北",癸未:"房床厕 外西北",甲申:"占门炉 外西北",乙酉:"碓磨门 外西北",丙戌:"厨灶栖 外西北",丁亥:"仓库床 外西北",戊子:"房床碓 外正北",己丑:"占门厕 外正北",庚寅:"碓磨炉 外正北",辛卯:"厨灶门 外正北",壬辰:"仓库栖 外正北",癸巳:"占房床 房内北",甲午:"占门碓 房内北",乙未:"碓磨厕 房内北",丙申:"厨灶炉 房内北",丁酉:"仓库门 房内北",戊戌:"房床栖 房内中",己亥:"占门床 房内中",庚子:"占碓磨 房内南",辛丑:"厨灶厕 房内南",壬寅:"仓库炉 房内南",癸卯:"房床门 房内西",甲辰:"占门栖 房内东",乙巳:"碓磨床 房内东",丙午:"厨灶碓 房内东",丁未:"仓库厕 房内东",戊申:"房床炉 房内中",己酉:"占大门 外东北",庚戌:"碓磨栖 外东北",辛亥:"厨灶床 外东北",壬子:"仓库碓 外东北",癸丑:"房床厕 外东北",甲寅:"占门炉 外东北",乙卯:"碓磨门 外正东",丙辰:"厨灶栖 外正东",丁巳:"仓库床 外正东",戊午:"房床碓 外正东",己未:"占门厕 外正东",庚申:"碓磨炉 外东南",辛酉:"厨灶门 外东南",壬戌:"仓库栖 外东南",癸亥:"占房床 外东南"},Me={子:"丑",丑:"子",寅:"亥",亥:"寅",卯:"戌",戌:"卯",辰:"酉",酉:"辰",巳:"申",申:"巳",午:"未",未:"午"};function Ne(H,F,W){const ie=Object.keys($);if(!ie.length)return null;const fe=((H*10007^F*911^W*97)>>>0)%ie.length,le=ie[fe];return{name:le,...$[le]}}const Ie=H=>H&&(H.name||w[H.index])||"";function He(H){Z(H,"黄历");const{year:F,month:W,day:ie}=H;if(ie>o(F,W))throw new Error(`非法日期:${F} 年 ${W} 月没有 ${ie} 日`);const fe=c({year:F,month:W,day:ie,hour:12,minute:0}),le=E(F,W,ie),Ce=q(F,W,ie),Be=v(F,2),Ue=(((fe<Be?F-1:F)-4)%60+60)%60,Te=b(Ue),De=le.lunarYear,xe=b(((De-4)%60+60)%60),on=p(F,{jieOnly:!0});let sn=null,Fe=null;for(const re of on)re.jd<=fe?sn=re:Fe||(Fe=re);const _e=((2+(sn.index-2)/2)%12+12)%12,Je=((h.indexOf(Te.stem)%5*2+2)%10+(_e-2+12)%12)%10,Xe=b(nn(Je,_e)),$e=b(_(Ce)),be=$e.branch,Q=te(be,g[_e]),bn=(g.indexOf(be)+6)%12,rn=l[bn],ln=p(F);let qe=null,de=null;for(const re of ln)re.jd<=fe?qe=re:de||(de=re);const We=re=>{const Se=A(Math.floor(re+.5));return`${Se.year}-${String(Se.month).padStart(2,"0")}-${String(Se.day).padStart(2,"0")}`},Ge=(Ce+1)%7,ae=["日","一","二","三","四","五","六"][Ge],un=je(be,g[_e]),cn=M(be,Ge),hn=ve[$e.name]||null,Ve=h.indexOf($e.stem)%5*2,dn=g.map((re,Se)=>{const Pe=h[(Ve+Se)%10],Ze=b(tn((Ve+Se)%10,Se)),Ee=je(re,be);return{zhi:re,name:`${re}时`,ganZhi:Ze.name,gan:Pe,shen:Ee?Ee.name:null,type:Ee?Ee.type:null,luck:Ee?Ee.luck:null}}),mn=z(be)?.branches.join("")||"",Ke=Me[be]||null,fn={liuhe:Ke?l[g.indexOf(Ke)]:null,sanhe:[...mn].filter(re=>re!==be).map(re=>l[g.indexOf(re)])},$n={caiShen:y[$e.stem]||null,xiShen:r[$e.stem]||null,fuShen:he(J,$e.stem),yangGui:he(ne,$e.stem),yinGui:he(ge,$e.stem),xiShenFull:he(Y,$e.stem),caiShenFull:he(G,$e.stem)},gn=`农历${xe.name}年${me(le.month,le.isLeap)}${ue(le.day)}`,Qe=Te.name!==xe.name?`年界:本条按立春界作${Te.name}年·属${l[g.indexOf(Te.branch)]}(命理排盘用);春节界为${xe.name}年·属${l[g.indexOf(xe.branch)]},两种都对,取用场合不同`:null;return{system:"almanac",meta:{date:`${F}-${String(W).padStart(2,"0")}-${String(ie).padStart(2,"0")}`,weekday:`星期${ae}`,...Qe?{boundaryNote:Qe}:{},scope:"通行口径:宜忌按建除十二神简表;已收录值日十二神(黄道/黑道)、时辰吉凶、二十八宿、胎神、吉神方位、纳音、六合三合吉配;逐日全量吉神凶煞与彭祖百忌未收录"},lunar:{year:De,month:le.month,day:le.day,isLeap:le.isLeap,text:gn},ganzhi:{year:Te.name,month:Xe.name,day:$e.name,shengXiao:l[g.indexOf(Te.branch)],springYear:xe.name,springShengXiao:l[g.indexOf(xe.branch)]},jieQi:{prev:qe?{name:Ie(qe),date:We(qe.jd)}:null,next:de?{name:Ie(de),date:We(de.jd)}:null},positions:$n,dayGod:un,xiu:cn,taiShen:hn,nayin:{day:I(_(Ce))},lucky:fn,hours:dn,zhiXing:Q,yi:s[Q].slice(),ji:u[Q].slice(),chong:{shengXiao:rn,text:`冲${rn}`,sha:N(be)?`煞${N(be)}`:null},dailyHexagram:Ne(F,W,ie),sources:["农历与节气:本地天文历法(定朔 + 节气黄经)","建除十二神与冲煞:传统通行口径","值日/时家十二神(青龙…勾陈)、二十八宿、胎神、吉神方位:通行表","宜忌:建除十二神通行简表(非逐日全量黄历)","每日一卦:按公历日期确定性取卦(同日同卦)"],disclaimer:"黄历为传统民俗口径的本地确定性计算;宜忌仅按建除简表,属娱乐参考,不构成择日结论。"}}function nn(H,F){for(let W=0;W<60;W++)if(W%10===H&&W%12===F)return W;return 0}function tn(H,F){for(let W=0;W<60;W++)if(W%10===H&&W%12===F)return W;return 0}return{ZHIXING:d,ZHIXING_YI:s,ZHIXING_JI:u,SHENGXIAO:l,hourToBranch:V,zhixingOf:te,lunarMonthText:me,TIAN_SHEN:oe,TIAN_SHEN_TYPE:pe,tianShenOf:je,MANSIONS:ze,xiuOf:M,dailyHexagram:Ne,buildAlmanac:He}})(),T.followup=(function(){const{ZIWEI_STARS:E}=T["interpret-data"]||{},I=[{key:"career",label:"事业",words:["事业","工作","跳槽","升职","创业","职业","岗位","离职","加薪","面试","offer"]},{key:"wealth",label:"财富",words:["财","钱","收入","投资","买房","存款","亏","赚","分红"]},{key:"love",label:"感情",words:["感情","婚","恋","对象","分手","复合","姻缘","结婚","桃花"]},{key:"health",label:"健康",words:["健康","病","身体","手术","失眠","体检","医院"]},{key:"study",label:"学业",words:["学业","考试","学习","考研","考公","证书","升学"]},{key:"travel",label:"出行",words:["出行","搬家","旅行","出国","迁","远行"]}],q={career:"官禄",wealth:"财帛",love:"夫妻",health:"疾厄",study:"官禄",travel:"迁移",overall:"命宫"},A=(o,d)=>{const s=String(o).match(/(20\d{2})\s*年?/);if(s)return Number(s[1]);const u=Array.isArray(d.liunian)&&d.liunian[0]?Number(d.liunian[0].year):null;return u?/明年/.test(o)?u+1:/后年/.test(o)?u+2:/去年/.test(o)?u-1:/今年|本年/.test(o)?u:null:null},_=o=>I.find(d=>d.words.some(s=>String(o).includes(s)))||null;function b(o,d){const s=A(d,o),u=_(d),y=Array.isArray(o.liunian)?o.liunian:[],r=Array.isArray(o.dayun?.list)?o.dayun.list:[],l=y.map(S=>S.year);if(s&&!y.some(S=>Number(S.year)===s))return{ok:!1,year:s,topic:u,answer:`这一盘已排的流年范围是 ${l[0]}–${l[l.length-1]},没有 ${s} 年。可以把问题改到范围内,或用 asOf 指定你想看的年份重新排盘。`,evidence:[`已排流年:${l.join("、")}`],confidence:"弱"};if(s){const S=y.find(ee=>Number(ee.year)===s),N=r.find(ee=>Number(ee.startAge)<=Number(S.age)&&Number(S.age)<=Number(ee.startAge)+9)||null,V=S.luck?.tier||"平",te=(S.luck?.reasons||[]).slice(0,3),L=(S.relations||[]).join("、"),X=u?v(o,u.key):"";return{ok:!0,year:s,topic:u,answer:`${s} 年(${S.ganzhi})流年,十神为${S.stemTenGod||"—"},档位「${V}」;所行大运 ${N?`${N.ganzhi}(${N.luck?.tier||"平"})`:"未取到"}。${te.length?`理由:${te.join(",")}。`:""}${L?`与该年地支相关的原局关系:${L}。`:""}${X}`,evidence:[`流年 ${S.year} ${S.ganzhi}·${S.stemTenGod||""}·${V}`,N?`大运 ${N.ganzhi}·${N.luck?.tier||"平"}`:"",L?`原局关系 ${L}`:"",u?`问题方向:${u.label}`:""].filter(Boolean),confidence:N&&te.length?"强":"中"}}if(u){const S={wealth:"overall",study:"work",travel:"overall"}[u.key]||u.key,N=(o.interpret?.dimensions||[]).find(V=>V.key===u.key||V.key===S);if(N){const V=o.frame&&o.frame.godStats&&o.frame.godStats.groups||{},te=u.key==="wealth"?` 财星权重 ${Number(V.财||0)}(只作结构参考,不含金额)。`:"";return{ok:!0,year:null,topic:u,answer:`按${u.label}这条线看:${N.text}${te}${N.advice?` 建议:${N.advice}`:""}`,evidence:(N.evidence||[]).slice(0,4),confidence:N.confidence||"中"}}}return{ok:!1,year:null,topic:u,answer:`这个问题里没有识别到具体的年份或方面。可以这样问:「2027 年事业怎么样」「财运如何」「感情在 2028 年」;已排流年是 ${l[0]}–${l[l.length-1]}。`,evidence:[`可问年份:${l.join("、")}`],confidence:"弱"}}function p(o,d){const s=A(d,o),u=_(d),y=Array.isArray(o.liunian)?o.liunian:[];if(s&&!y.some(r=>Number(r.year)===s))return{ok:!1,year:s,topic:u,answer:`这一盘的流年表覆盖 ${y[0]?.year}–${y[y.length-1]?.year},没有 ${s} 年;可以换一个年份,或用 asOf 指定起点重新排盘。`,evidence:[`流年表:${y.map(r=>r.year).join("、")}`],confidence:"弱"};if(s){const r=y.find(S=>Number(S.year)===s),l=r.daxian||{};return{ok:!0,year:s,topic:u,answer:`${s} 年(${r.ganzhi},${r.age} 岁)流年命宫落在「${r.lifePalace?r.lifePalace.palace:"—"}」,四化为 ${(r.mutagen||[]).join("、")||"不明显"};所行大限${l.palace?`在${l.palace}(${l.start}–${l.end} 岁)`:"未取到"}。${u?`与「${u.label}」对应的宫位信号见下条依据。`:""}`,evidence:[`流年命宫 ${r.lifePalace?r.lifePalace.palace:"—"}(${r.lifePalace?r.lifePalace.branch:"—"})`,`四化 ${(r.mutagen||[]).join("、")||"不明显"}`,l.palace?`大限 ${l.palace}·${l.start}–${l.end}岁`:""].filter(Boolean),confidence:(r.mutagen||[]).length>=3?"强":"中"}}if(u){const r=q[u.key]||"命宫",l=(o.palaces||[]).find(S=>S.palace===r);if(l){const S=(l.stars||[]).filter(V=>V.type==="主星").map(V=>V.name),N=S.map(V=>E[V]?.trait).filter(Boolean).slice(0,2).join(";");return{ok:!0,year:null,topic:u,answer:`「${u.label}」看${r}:主星${S.length?S.join("、"):"无正曜(借对宫)"}${N?`——${N}`:""}。宫支${l.branch},${l.stems,""}生年四化与煞星的影响需结合报告里的对应分节一起看。`,evidence:[`${r} ${l.branch}·${S.join("、")||"无正曜"}`,...(l.shensha||[]).slice(0,3)],confidence:S.length?"强":"弱"}}}return{ok:!1,year:null,topic:u,answer:"没有识别到具体年份或方面。可以问「2028 年事业」「感情怎么样」「财运在 2030 年」;也可以直接问某个宫位,如「夫妻宫」。",evidence:[],confidence:"弱"}}function v(o,d){return`这段时间可以重点对照报告里「${{career:"事业",wealth:"财富",love:"感情",health:"健康",study:"学业",travel:"出行"}[d]||"整体"}」一节看。`}function c(o,d){const s=_(d),u=Array.isArray(o.interpret?.sections)?o.interpret.sections:[],y=s?u.find(l=>l.label.includes(s.label)||l.text.includes(s.label)):null;if(y)return{ok:!0,year:null,topic:s,answer:y.text,evidence:[`引用分节:${y.label}`],confidence:"中"};const r=u[0];return{ok:!1,year:null,topic:s,answer:r?`这一盘的追问需要落到具体方面(事业 / 财富 / 感情 / 健康 / 学业 / 出行)。先看「${r.label}」这一节,或把问题说得更具体一点。`:"这一盘暂时没有可追问的分节;先看完整解析,再问具体方面。",evidence:[],confidence:"弱"}}function h(o,d){const s=String(d||"").trim(),u=o&&o.system==="bazi"?b(o,s):o&&o.system==="ziwei"?p(o,s):c(o,s);return{question:s,...u}}const g={bazi:"八字(四柱)",ziwei:"紫微斗数",liuyao:"六爻",meihua:"梅花易数",daliuren:"大六壬",qimen:"奇门遁甲",tarot:"塔罗",hepan:"合盘",chenggu:"称骨",almanac:"黄历",zeri:"择日",star:"星座",numerology:"生命数字",mbti:"十六型人格",trend:"人生 K 线",fengshui:"风水",name:"起名",convert:"公农历互转"},w=Object.freeze({bazi:["基本信息","四柱(日主/十神/藏干)","旺衰·格局·用神","合冲·神煞","起运·大运·流年","古籍依据"],ziwei:["基本信息","命宫/身宫与五行局","十二宫(主星/辅煞/四化)","格局与三方四正","大限/流年","古籍依据"],liuyao:["所问与用神","本卦/变卦(世应/动爻/六亲)","月建日辰(旺衰/空破)","应期线索","卦辞与依据"],meihua:["所问与体用","本卦/互卦/变卦","五行生克","应期与依据"],daliuren:["天地盘(月将/贵人)","四课","三传","课体与神将","依据"],qimen:["四柱与局数","九宫(星门神/天盘干)","用神落宫","门宫·干宫·十干克应","旺衰·击刑入墓","依据"],tarot:["问题与牌阵","逐牌(正逆/元素)","牌间关系","综合倾向","边界"],fengshui:["坐向与元运","运盘/山盘/向盘","旺山旺向","取象与边界"]}),$=Object.freeze(["基本信息","盘面事实","结构与关系","倾向","边界"]);function z(o){return w[o]||$}function Z(o,d={}){const s=g[o&&o.system]||o&&o.system||"未知体系",y=String(d&&d.question||"").trim()||"请先用一句白话讲清这张盘的主线,再指出最值得注意的一两处,并说明每处的具体依据。",r=Number.isFinite(d&&d.maxChars)&&d.maxChars>=400?d.maxChars:3e3,l=String(o&&o.summary||"").trim(),S=l.length>r,N=S?`${l.slice(0,r)}…(摘要已截断)`:l,V=d&&typeof d.interpret=="object"&&d.interpret||o&&typeof o.interpret=="object"&&o.interpret||null,te=String(V&&V.answer||"").trim(),L=String(V&&V.plain||"").trim(),X=[];te&&X.push(`直答:${te}`),L&&X.push(`说人话:${L}`);const ue=["【命理追问】下面这张盘是命理插件刚排好的,请就着它回答我的问题;不用重新排盘,盘面字段已经够用。",`体系:${s}`,`所问:${y}`,"",...X.length?["——开场结论(插件已按同一套规则算好,开场先沿用这句;措辞可改,口径别换)——",...X,""]:[],"——盘面层次(从上到下读,别跳层)——",`${s}:${z(o&&o.system).join(" → ")}`,"先复述事实,再讲结构与时间;上一层没交代清楚,不要跳到下一层。","","——盘面摘要——",N||"(这张盘没有摘要字段,请先让我重新排一次。)","","——回答要求——","读者不懂命理。按下面的骨架答;任何一句他看不懂,就算没写完:",X.length?"1) 开头一句结论:先沿用上面的「开场结论」,再用一句不用术语的话说清这张盘的主线——只读这一句也该有收获;":"1) 开头一句结论:不用术语,一句话说清这张盘的主线,只读这一句也该有收获;","2) 第二段只复述盘面骨架:按上面的层次用 2–4 行写事实(如四柱、格局、用神、大运),不掺倾向,让读者知道后面的判断从哪来;","3) 判断最多两条,按重要性排序,每条分四行写:"," 盘面|只引盘面已有的字(具体的柱、宫或爻、字段名),不掺解释;"," 白话|把上一行的术语当场翻成日常话——调候 / 化气 / 通关 / 空亡 / 争合 这类词必须落地,一个词只翻一次,不连续堆三个以上;"," 倾向|说「更可能……」,讲清它在现实里大概意味着什么,用概率语气;"," 边界|这条在什么情况下不成立;盘面没给的,直接写「这盘里看不出来」;","4) 收尾一句「如果只记一件事」:给一条能核对、能动手的观察点,并说明它出自上面哪条盘面依据;","5) 别把传统说法当成已证实的事实:不下绝对断言,也不用「肯定」「绝对」这类词,更不写「格局很好」「运程不顺」这种没有信息的空话。"].join(`
|
|
69
|
+
`);return{text:ue,question:y,system:o&&o.system||"",label:s,chars:ue.length,truncated:S}}return{followup:h,READING_ORDERS:w,READING_ORDER_FALLBACK:$,readingOrderOf:z,askPrompt:Z}})(),T.revise=(function(){const E=[{key:"ziwei",label:"紫微",re:/紫微|斗数/},{key:"bazi",label:"八字",re:/八字|四柱/},{key:"liuyao",label:"六爻",re:/六爻|摇卦/},{key:"qimen",label:"奇门",re:/奇门/},{key:"daliuren",label:"大六壬",re:/大六壬|六壬/},{key:"tarot",label:"塔罗",re:/塔罗|抽牌/},{key:"meihua",label:"梅花",re:/梅花/},{key:"hepan",label:"合盘",re:/合盘|合婚/},{key:"almanac",label:"黄历",re:/黄历|老黄历/},{key:"zeri",label:"择日",re:/择日|挑日子/},{key:"fengshui",label:"风水",re:/风水/},{key:"name",label:"起名",re:/起名|取名/},{key:"chenggu",label:"称骨",re:/称骨/},{key:"xiaoliuren",label:"小六壬",re:/小六壬/},{key:"star",label:"星座",re:/星座/},{key:"numerology",label:"生命数字",re:/生命数字|生命灵数/},{key:"mbti",label:"MBTI",re:/mbti|人格测试|十六型/i},{key:"trend",label:"人生 K 线",re:/k\s*线|人生曲线/i},{key:"convert",label:"公农历互转",re:/农历转公历|公历转农历|公农历/}],I=[{key:"love",label:"感情",re:/感情|婚姻|恋爱|对象|夫妻/},{key:"wealth",label:"财运",re:/财运|财富|赚钱|收入|破财/},{key:"career",label:"事业",re:/事业|工作|升职|跳槽/},{key:"health",label:"健康",re:/健康|身体|疾病|病/},{key:"study",label:"学业",re:/学业|考试|考研|升学|读书/},{key:"travel",label:"出行",re:/出行|搬家|迁移|旅行|外地/}],q=/换成|改成|改为|换到|改看|再看|再看一下|换一套|排一?张|用|按|看/,A=c=>String(c||"").replace(/(出生|出生地|所在地|人)$/,"").replace(/[的了].*$/,"").trim();function _(c){const h=String(c??"").trim(),g={},w=[],$=[];if(!h)return{text:"",patch:g,labels:w,ignored:$};if(q.test(h)){for(const o of E)if(o.re.test(h)){g.system=o.key,w.push({key:"system",label:"体系",value:o.key,display:o.label});break}}/女命|女性|换成女|改成女|女盘/.test(h)?(g.gender="female",w.push({key:"gender",label:"性别",value:"female",display:"女"})):/男命|男性|换成男|改成男|男盘/.test(h)&&(g.gender="male",w.push({key:"gender",label:"性别",value:"male",display:"男"})),/晚子时/.test(h)&&(/不换日|不换天|算当日|归当日|按当日|当天/.test(h)?(g.lateZi=!1,w.push({key:"lateZi",label:"晚子时",value:!1,display:"23:00 后仍算当日"})):/换日|算次日|归次日|按次日|第二天|次日/.test(h)&&(g.lateZi=!0,w.push({key:"lateZi",label:"晚子时",value:!0,display:"23:00 后算次日"}))),/真太阳时/.test(h)&&(/不用|不要|关闭|关掉|取消|不算/.test(h)?(g.trueSolar=!1,w.push({key:"trueSolar",label:"真太阳时",value:!1,display:"用东八区平太阳时"})):(g.trueSolar=!0,w.push({key:"trueSolar",label:"真太阳时",value:!0,display:"按出生地经度校正"}))),/夏令时/.test(h)&&(/不用|不要|关闭|关掉|取消|不校正/.test(h)?(g.dst=!1,w.push({key:"dst",label:"夏令时",value:!1,display:"不自动校正 1986–1991 夏令时"})):(g.dst=!0,w.push({key:"dst",label:"夏令时",value:!0,display:"自动校正 1986–1991 夏令时"})));const z=h.match(/出生在\s*([\u4e00-\u9fa5]{2,12})/)||h.match(/出生地(?:改成|改为|换成|换到|是|为)?\s*([\u4e00-\u9fa5]{2,12})/)||h.match(/改到\s*([\u4e00-\u9fa5]{2,12})\s*出生/);if(z){const o=A(z[1]);o.length>=2&&(g.address=o,w.push({key:"address",label:"出生地",value:o,display:o}))}const Z=h.match(/(?:看|查|问|到|到了|临近)\s*((?:19|20)\d{2})\s*年/)||h.match(/((?:19|20)\d{2})\s*年(?:的)?(?:运势|怎么样|如何|会怎样|流年)/);if(Z){const o=Number(Z[1]);g.asOf=`${o}-01-01T00:00`,w.push({key:"asOf",label:"流年基准",value:g.asOf,display:`${o} 年`})}else/(出生|生年)/.test(h)&&/(19|20)\d{2}\s*年/.test(h)&&$.push("出生年份没改:一句话改不出日与时辰,请直接传 datetime(如 1993-04-08T06:20)");for(const o of I)if(o.re.test(h)){g.direction=o.key,w.push({key:"direction",label:"询问方向",value:o.key,display:o.label});break}return/解读|详解|详细说|说人话/.test(h)&&!/不要解读|不用解读|别解读/.test(h)&&(g.withInterpret=!0,w.push({key:"withInterpret",label:"解读",value:!0,display:"附解析与详解"})),{text:h,patch:g,labels:w,ignored:$}}const b=E,p=I;function v(c,h){if(h==null)return null;if(c==="system"){const g=E.find(w=>w.key===h);return g?g.label:String(h)}if(c==="gender")return h==="female"?"女":h==="male"?"男":String(h);if(c==="direction"){const g=I.find(w=>w.key===h);return g?g.label:String(h)}if(typeof h=="boolean")return h?"开":"关";if(c==="asOf"){const g=String(h).match(/^(\d{4})/);return g?`${g[1]} 年`:String(h)}return String(h)}return{parseRevision:_,REVISE_SYSTEMS:b,REVISE_DIRECTIONS:p,displayValue:v}})(),T.handle=(function(){const{fail:E}=T.fail||{},I="mc1.",q=new Set(["handle","trace","shadow","shadowVersion","diff","withInterpret","cross","verifyPast","rectify","events","ask","followup","question","geocode","caliber","revise"]),A=s=>s!==null&&typeof s=="object"&&!Array.isArray(s);function _(s){if(Array.isArray(s))return`[${s.map(y=>_(y===void 0?null:y)).join(",")}]`;if(A(s))return`{${Object.keys(s).filter(r=>s[r]!==void 0).sort().map(r=>`${JSON.stringify(r)}:${_(s[r])}`).join(",")}}`;const u=JSON.stringify(s===void 0?null:s);return u===void 0?"null":u}function b(s){let u=2166136261;for(let y=0;y<s.length;y++)u^=s.charCodeAt(y),u=Math.imul(u,16777619)>>>0;return u.toString(16).padStart(8,"0")}const p="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";function v(s){const u=[];for(const y of String(s)){let r=y.codePointAt(0);r<128?u.push(r):r<2048?u.push(192|r>>6,128|r&63):r<65536?u.push(224|r>>12,128|r>>6&63,128|r&63):u.push(240|r>>18,128|r>>12&63,128|r>>6&63,128|r&63)}return u}function c(s){let u="";for(let y=0;y<s.length;){const r=s[y];let l,S;r<128?(l=r,S=1):r<224?(l=r&31,S=2):r<240?(l=r&15,S=3):(l=r&7,S=4);for(let N=1;N<S;N++)l=l<<6|s[y+N]&63;y+=S,u+=String.fromCodePoint(l)}return u}function h(s){const u=v(s);let y="";for(let r=0;r<u.length;r+=3){const l=u[r],S=u[r+1],N=u[r+2];if(y+=p[l>>2],y+=p[(l&3)<<4|(S===void 0?0:S)>>4],S===void 0||(y+=p[(S&15)<<2|(N===void 0?0:N)>>6],N===void 0))break;y+=p[N&63]}return y}function g(s){const u=[];let y=0,r=0;for(const l of s){const S=p.indexOf(l);if(S<0)throw new Error(`不是 base64url 字符:${l}`);y=y<<6|S,r+=6,r>=8&&(r-=8,u.push(y>>r&255))}return c(u)}function w(s={}){const u={};for(const[y,r]of Object.entries(s||{}))q.has(y)||r===void 0||(u[y]=r);return u}function $(s={}){const u=w(s);if(!Object.keys(u).length)return"";const y=h(_(u));return`${I}${y}.${b(y)}`}function z(s){if(typeof s!="string"||!s.trim())throw E("E_HANDLE","handle 必须是非空字符串;没拿到句柄时照常传 system + datetime 等原始参数即可");const u=s.trim();if(!u.startsWith(I))throw E("E_HANDLE",`handle 前缀不对(应以 ${I} 开头):句柄来自旧版本或复制不全,重新排一次盘取新的 handle`);const y=u.slice(I.length),r=y.lastIndexOf(".");if(r<=0)throw E("E_HANDLE","handle 缺少校验位:复制时可能被截断,重新取一次");const l=y.slice(0,r),S=y.slice(r+1);if(b(l)!==S)throw E("E_HANDLE","handle 校验不通过:内容被改动或截断,重新排一次盘取新的 handle");let N;try{N=JSON.parse(g(l))}catch{throw E("E_HANDLE","handle 内容无法解析(不是本插件生成的句柄),重新排一次盘取新的 handle")}if(!A(N))throw E("E_HANDLE","handle 内容不是参数对象,重新排一次盘取新的 handle");return N}function Z(s={}){if(!A(s))return s;const{handle:u,...y}=s;if(u==null||u==="")return{...y};const l={...z(u)};for(const[S,N]of Object.entries(y))N!==void 0&&(l[S]=N);return l}return{handlePayload:w,encodeHandle:$,decodeHandle:z,resolveHandle:Z,HANDLE_PREFIX:I,handleChecksum:b}})(),T.index=(function(){const{buildBazi:E}=T.bazi||{},{buildLiuyao:I,tossLines:q,bodyLabels:A,yongshenOf:_,yongshenStrength:b,fushenAccess:p,hexagramStrength:v,jinTuiPower:c,yingqiWindow:h}=T.liuyao||{},{buildZiwei:g,BRIGHTNESS:w,flowOf:$,asOfParts:z,ZIWEI_SCHOOL_DEFAULTS:Z}=T.ziwei||{},{drawTarot:o}=T.tarot||{},{buildMeihua:d}=T.meihua||{},{buildDaliuren:s}=T.daliuren||{},{buildHepan:u}=T.hepan||{},{buildZiweiHepan:y}=T["ziwei-hepan"]||{},{buildQimen:r,buildSnapshot:l}=T.qimen||{},{geocodeAddress:S,resolveAddress:N}=T.geo||{},{toJDN:V,ganzhiName:te,dayGanzhiIndex:L}=T.calendar||{},{randomOf:X,isSeed:ee}=T.random||{},{encodeHandle:ue,decodeHandle:me,resolveHandle:oe}=T.handle||{},{parseRevision:pe,displayValue:we}=T.revise||{},{interpret:je,DIRECTIONS:ze,DIRECTION_DEFAULT:ke}=T.interpret||{},{followup:O,askPrompt:M}=T.followup||{},{crossCheck:k,crossText:Y,crossSection:G}=T.crosscheck||{},{pastSignals:J,verifyFit:ne}=T.verify||{},{rectifyBirth:ge}=T.rectify||{},{buildAlmanac:he}=T.almanac||{},{buildZeri:ve}=T.zeri||{},{buildChenggu:Me}=T.chenggu||{},{buildXiaoliuren:Ne}=T.xiaoliuren||{},{buildStar:Ie}=T.star||{},{buildNumerology:He}=T.numerology||{},{buildMbti:nn,mbtiPaper:tn}=T.mbti||{},{buildConvert:H}=T.convert||{},{classicsFor:F,classicsText:W,suiyunClassicOf:ie,classicOf:fe,CLASSIC_BOOKS:le}=T.classics||{},{diffObjects:Ce,summarize:Be,sortDiffs:an,labelOf:Ue,rootOf:Te,categoryOf:De,formatValue:xe,CALIBER_SWITCHES:on}=T.diff||{},{canonicalJson:sn,fingerprintOf:Fe}=T.fingerprint||{},{buildTrend:_e}=T.trend||{},{buildFengshui:Le}=T.fengshui||{},{buildName:Je}=T.name||{},{buildTrace:Xe,traceMarkdown:$e,SYSTEM_LABEL:be}=T.trace||{},{fail:Q}=T.fail||{},{assertCivil:bn}=T.validate||{},rn=e=>String(e).padStart(2,"0"),ln=["male","female"];function qe(e,a){return a===2?e%4===0&&e%100!==0||e%400===0?29:28:[31,28,31,30,31,30,31,31,30,31,30,31][a-1]}function de(e,a=""){if(ln.includes(e))return e;const t=e==null||e===""?"(未提供)":`「${e}」`;throw Q("E_INPUT",`${a?a+"的":""}gender 必须是 male 或 female${t};性别决定大运/大限顺逆,不能靠默认值`)}const We=["brightnessSchool","gengYearSihua","tianmaSchool","tiankongSchool","jiekongSchool","kuiyueSchool","tianshiTianshang","changshengSchool","lateZishi","shenzhuSchool"];function Ge(e){const a={};for(const t of We)e[t]!==void 0&&(a[t]=e[t]);return e.schools&&typeof e.schools=="object"&&(a.schools=e.schools),a}function ae(e){if(typeof e!="string"||!e.trim())throw Q("E_INPUT","缺少 datetime(公历日期时间),例如 1990-05-12T14:30");const a=e.trim().match(/^(\d{4})-(\d{1,2})-(\d{1,2})(?:[T\s](\d{1,2}):(\d{1,2})(?::(\d{1,2}))?)?$/);if(!a)throw Q("E_INPUT",`无法解析 datetime:「${e}」,请用 1990-05-12T14:30 这种格式`);const t={year:Number(a[1]),month:Number(a[2]),day:Number(a[3]),hour:Number(a[4]??0),minute:Number(a[5]??0)};if(t.month<1||t.month>12)throw Q("E_INPUT",`月份超出范围:${t.month}`);const n=qe(t.year,t.month);if(t.day<1||t.day>n)throw Q("E_INPUT",`日期不存在:${t.year}-${t.month}-${t.day}(${t.year} 年 ${t.month} 月只有 ${n} 天)`);if(t.hour>23||t.minute>59)throw Q("E_INPUT",`时间超出范围:${t.hour}:${t.minute}`);if(t.year<1600||t.year>2400)throw Q("E_RANGE",`年份 ${t.year} 超出可计算范围(1600–2400)`);return(t.year<1900||t.year>2100)&&(t.precision={level:"approx",note:`ΔT 模型仅覆盖 1900–2100,${t.year} 年按端点值外推,节气与朔望时刻可能有分钟级偏差,月柱在交节前后需复核`}),t}function un(e){const a=e.pillars,t=(R,se)=>`${R}:${se.ganzhi} ${se.stemTenGod?`十神 ${se.stemTenGod} `:""}藏干 ${se.hidden.map(Oe=>`${Oe.stem}(${Oe.tenGod})`).join(" ")} 纳音 ${se.nayin} 地势 ${se.dishi} 自坐 ${se.zizuo} 空亡 ${se.kongwang.join("")}`+(se.shensha&&se.shensha.length?` 神煞 ${se.shensha.join("、")}`:""),n=Object.entries(e.wuxing).map(([R,se])=>`${R}${se}`).join(" "),i=e.palaces?`【胎元】${e.palaces.taiyuan.ganzhi} 胎息 ${e.palaces.taixi?e.palaces.taixi.ganzhi:"—"} 命宫 ${e.palaces.minggong.ganzhi} 身宫 ${e.palaces.shengong.ganzhi}`:"",f=e.dayun.list.slice(0,8).map(R=>`${R.startAge}岁 ${R.ganzhi}(${R.stemTenGod})${R.luck?`·${R.luck.tier}`:""}${R.relations&&R.relations.length?`[${R.relations.join("")}]`:""}`).join(" "),m=e.dayun.jiao&&e.dayun.jiao.at?`;交运 ${e.dayun.jiao.at}(${e.dayun.jiao.frame},距${e.dayun.jiao.from.name} ${e.dayun.jiao.spanDays} 天,三日折一年)`:"",j=e.jieqi.nearBoundaryMinutes<20?`
|
|
70
|
+
⚠ 出生时刻距「节」仅 ${e.jieqi.nearBoundaryMinutes} 分钟,而节气时刻本身有最多约 14 分钟的偏差,月柱与年柱建议人工复核。`:"",D={year:"年",month:"月",day:"日",hour:"时"},U=e.shensha&&e.shensha.groups&&e.shensha.groups.length?`神煞(${e.shensha.count} 见):`+e.shensha.groups.map(R=>`${R.cat}|`+R.items.map(se=>`${se.name}(${se.pillars.map(Oe=>D[Oe]).join("")})`).join("、")).join(";"):"神煞:—",P=e.renyuan,B=fe("smt-renyuan"),x=P?`人元:${P.month}月第${P.day}日,${P.active}${P.activeElement}司权(${P.segments.map(R=>`${R.stem}${R.from}–${R.to}`).join(" ")})${P.beyond?";已过 30 日表,按本气算":""}${B?`|原文见《${le[B.book].name}·${B.chapter}》`:""}`:"",C=e.frame&&e.frame.yongshen&&e.frame.yongshen.disputed||[],K=C.length?` 有争议:${C.map(R=>`${R.element}(${R.favorRole};${R.climate}盘调候忌${R.element})`).join("、")}`:"",ce=new Set(C.map(R=>R.element)),Ae=e.frame&&e.frame.yongshen&&e.frame.yongshen.neutral||[],en=Ae.length?` 中性偏忌:${Ae.map(R=>`${R.element} ${R.weight} 分`).join("、")}(近零,不作实忌)`:"",Ye=e.frame?[`格局:${e.frame.primary?`${e.frame.primary.name}(${e.frame.primary.evidence})`:"—"}`,` ${e.frame.geju.map(R=>`${R.name}[${R.kind}${R.status?`·${R.status}`:""}]`).join(" ")}`,`用神:喜${e.frame.yongshen.favor.join("")}(${e.frame.yongshen.favorTenGods.join("、")}) 忌${e.frame.yongshen.avoid.join("")}(${e.frame.yongshen.avoidTenGods.join("、")})${K}${en} ${e.frame.yongshen.method}`,` ${e.frame.yongshen.detail}`,`寒暖:${e.climate?`${e.climate.label}(${(e.climate.evidence||[]).join("、")})${e.climate.need?` 调候取${e.climate.need.stem}${e.climate.need.element} 忌${e.climate.avoidElement}${ce.has(e.climate.avoidElement)?"(有争议)":""}`:""}`:"—"}`+(e.frame.yongshen.qt?` 穷通:${e.frame.yongshen.qt.month}${e.frame.yongshen.qt.stem}取${e.frame.yongshen.qt.yong.join("、")}(首取${e.frame.yongshen.qt.primary})`:""),`十神权重:${Object.entries(e.frame.godStats.groups).map(([R,se])=>`${R}${se}`).join(" ")}`]:[];return[`【四柱】${a.year.ganzhi} ${a.month.ganzhi} ${a.day.ganzhi} ${a.hour.ganzhi}`,`日主:${e.dayMaster.stem}${e.dayMaster.element}(${e.dayMaster.yinYang}) 空亡:${e.kongwang.join("")}`,t("年柱",a.year),t("月柱",a.month),t("日柱",a.day),t("时柱",a.hour),`五行:${n}`,...i?[i]:[],`日主强弱:${e.strength.level}(${e.strength.score}) ${e.strength.detail}`,...Ye,`天干关系:${e.relations&&e.relations.stems.length?e.relations.stems.join(" "):"—"}`,`地支关系:${e.relations&&e.relations.branches.length?e.relations.branches.join(" "):"—"}`,U,`真太阳时:${e.solarTime.trueSolarText}(${e.input.geo?e.input.geo.note+";":""}${e.solarTime.note}) 晚子时:${e.input.lateZi?"23:00 后算次日":"23:00 后仍算当日"}`,`节气:上一节 ${e.jieqi.previous.name} ${e.jieqi.previous.time} 下一节 ${e.jieqi.next.name} ${e.jieqi.next.time}`,...x?[x]:[],`大运:${e.dayun.rule}(${e.dayun.direction}),${e.dayun.startAge.years}岁${e.dayun.startAge.months}个月起运${m}`,` ${f}`,`流年:${e.liunian.slice(0,10).map(R=>`${R.year}${R.ganzhi}(${R.stemTenGod})${R.luck?`·${R.luck.tier}`:""}`).join(" ")}`,(()=>{const R=e.liunian.filter(ye=>ye.suiyun&&ye.suiyun.signals&&ye.suiyun.signals.length);if(!R.length)return"岁运提示:近十年无岁运并临、运年反吟或大运/流年伏吟、反吟(只标干支,不判吉凶)";const se=ye=>`${ye.type}${(ye.type.startsWith("流年")||ye.type.startsWith("大运"))&&ye.target?`(${ye.target})`:""}`,Oe=ie(e),Un=Oe?`|古籍见《${le[Oe.book].name}·${Oe.chapter}》`:"";return"岁运提示(只标干支变动,不判吉凶):"+R.map(ye=>`${ye.year}${ye.ganzhi} ${ye.suiyun.signals.map(se).join("/")}`).join(";")+Un})(),"(格局、用神、行运吉凶为扶抑+简化调候的量化提示,非断语。)"].join(`
|
|
71
|
+
`)+j}function cn(e){const a=e.lunar.monthRaw||e.lunar.month,t=`${e.lunar.year}年${e.lunar.isLeap?`闰${a}`:e.lunar.month}月${e.lunar.day}日`+(e.lunar.isLeap&&e.lunar.month!==a?`(按${e.lunar.month}月起盘)`:""),n=(()=>{if(!e.schools)return"";const C=Object.entries({brightnessSchool:"亮度",gengYearSihua:"庚干四化",tianmaSchool:"天马",tiankongSchool:"天空",jiekongSchool:"截空",kuiyueSchool:"魁钺",tianshiTianshang:"天伤天使",changshengSchool:"长生",lateZishi:"晚子时",shenzhuSchool:"身主"}).filter(([K])=>e.schools[K]&&e.schools[K]!==Z[K]).map(([K,ce])=>`${ce} ${e.schools[K]}`);return C.length?`【流派】${C.join(" ")}`:""})(),i=x=>x.length?x.map(C=>`${C.name}${C.mutagen?`化${C.mutagen}`:""}`).join(" "):"—",f=x=>`神煞:长生(${x.changsheng}) 博士(${x.boshi}) 将前(${x.jiangqian}) 岁前(${x.suiqi})`,m=[];for(const x of e.palaces){const C=x.isSoul?"【命】":x.isBody?"【身】":" ";m.push(` ${x.palace} ${x.branch} ${x.ganzhi} ${C} 大限${String(x.daxian.start).padStart(2)}-${x.daxian.end} 小限${String(x.xiaoxian.age).padStart(2)} ${i(x.stars)}`),m.push(` ${f(x.shensha)}`)}const j=(e.liunian??[]).slice(0,6).map(x=>` ${x.year} ${x.ganzhi} ${String(x.age).padStart(2)}岁 命宫${x.lifePalace.branch}(${x.lifePalace.palace}) 流禄${x.liulu} 流羊${x.liuyang} 流陀${x.liutuo} | ${x.mutagen.map(C=>C.replace("化","")).join(" ")}`+(x.mutagenHits?` 四化落宫 ${x.mutagenHits.map(C=>`${C.star}${C.type}→${C.palace||"未上盘"}`).join("、")}`:"")+(x.sanfangMainStars?` 三方主星 ${x.sanfangMainStars.join("")}`:"")),D=(e.patterns??[]).length?e.patterns.map(x=>`${x.name}(${x.tone==="good"?"吉格":x.tone==="bad"?"忌格":"中"}:${x.evidence})`).join(";"):"无明显格局(按内置规则)",U=(e.daxianList??[]).slice(0,8).map(x=>` ${x.branch}宫(${x.palace})${x.ages[0]}-${x.ages[1]}岁 ${x.ganzhi} 会${x.mainStars.join("")||"—"} 化 ${x.mutagenHits.map(C=>`${C.star}${C.type}→${C.palace||"未上盘"}`).join("、")}`),P=(()=>{const x=e.flyChains;if(!x)return"";const C=ce=>{const Ae=x[ce];return!Ae||!Ae.steps.length?"":`${ce}:${Ae.path.join("→")}${Ae.closed?"(成环)":""}`},K=["禄","权","科","忌"].map(C).filter(Boolean).join(" ");return K?`【命宫飞星】${K}`:""})(),B=(()=>{const x=e.flyComposite;if(!x||!Array.isArray(x.sources)||!x.sources.length)return"";const C=x.labels.length?x.labels.join(" · "):"无同宫会聚",K=["禄","权","科","忌"].map(ce=>{const Ae=(x.byType&&x.byType[ce]||[]).filter(Ye=>!Ye.self),en=[...new Set(Ae.map(Ye=>String(Ye.to).replace(/宫$/,"")))];return en.length?`${ce}→${en.join("/")}`:""}).filter(Boolean).join(" ");return`【三方四正飞化】${x.sanfang.join("·")}:${C}${K?` ${K}`:""}`})();return[`【农历】${t}(月首 ${e.lunar.monthStart}) 时支:${e.hourBranch} 年干支:${e.yearGanzhi}`,`【时刻】${e.solarTime?`${e.solarTime.civilText} → 真太阳时 ${e.solarTime.trueSolarText}${e.input.geo?"("+e.input.geo.note+")":""}`:""}`,`【命宫】${e.soul.branch}(${e.soul.ganzhi}·${e.soul.nayin}) 【身宫】${e.body.branch}(落${e.body.lands}) 【五行局】${e.bureau.name}`,`【紫微】${e.ziwei} 【天府】${e.tianfu} 【命主】${e.lifeMaster} 【身主】${e.bodyMaster}${e.bodyMasterNote?`(${e.bodyMasterSchool==="common"?"子午皆火星":"子铃午火"})`:""}`,`【大限】${e.daxian.rule},${e.daxian.startAge}岁起 【小限】${e.xiaoxianRule.direction}`,n,`【昌曲】文昌${e.changqu.wenchang.branch}(${e.changqu.wenchang.palace}${e.changqu.wenchang.mutagen?"·化"+e.changqu.wenchang.mutagen:""}) 文曲${e.changqu.wenqu.branch}(${e.changqu.wenqu.palace}${e.changqu.wenqu.mutagen?"·化"+e.changqu.wenqu.mutagen:""})`,` ${e.changqu.relation} 入命三方:${e.changqu.inSoulSanfang?"是":"否"} 吸收面:${e.changqu.absorb.label}(${e.changqu.absorb.reason})`,P,B,"十二宫:",...m,"大限(按起运年龄排序,前 8 限,宫干四化落宫):",...U,"流年(前 6 年,完整 12 年在结构化数据里):",...j,`【格局】${D}`,e.patternSummary?`【结构统计】吉格 ${e.patternSummary.good.length}、中性 ${e.patternSummary.neutral.length}、忌格 ${e.patternSummary.bad.length}${e.patternSummary.broken.length?`、破格 ${e.patternSummary.broken.length}(${e.patternSummary.broken.join("、")})`:""};${e.patternSummary.note}`:"",e.lunar.note?`注:${e.lunar.note}`:""].filter(Boolean).join(`
|
|
72
|
+
`)}const hn=["旺","相","休","囚","死"];function Ve(e){const a=e.states,t=e.month;if(!a||!t)return"无月令数据";const n=i=>hn.filter(f=>i&&Array.isArray(i[f])&&i[f].length).map(f=>`${f} ${i[f].join("/")}`).join(" ");return`月令 ${t.branch}(${t.element}) 门 ${n(a.gate)||"—"} 星 ${n(a.star)||"—"} 干 ${n(a.stem)||"—"}`}function dn(e){const a=e.palaces,t=n=>`${n.palace}宫 ${n.star||"—"}/${n.gate||"—"}/${n.god||"—"}${n.kong?" 空":""}${n.ma?" 马":""}`;return[`【四柱】${e.siZhu.year} ${e.siZhu.month} ${e.siZhu.day} ${e.siZhu.time}`,`【局数】${e.ju} 节气 ${e.jieqi}(${e.jieqiTime})`,`【值符】${e.zhiFu.star}(${e.zhiFu.gong}宫) 【值使】${e.zhiShi.gate}(${e.zhiShi.gong}宫) 旬首 ${e.xunshou}`,`【空亡】${e.kongWang.join("")||"—"} 驿马 ${e.ma.zhi||"—"}(${e.ma.gong||"—"}宫)`,`【宫位条件】击刑 ${(e.conditions&&e.conditions.jiXing||[]).map(n=>`${n.palace}宫${n.stem}`).join("、")||"无"} 三奇入墓 ${(e.conditions&&e.conditions.ruMu||[]).map(n=>`${n.palace}宫${n.stem}`).join("、")||"无"} 六仪入墓 ${(e.conditions&&e.conditions.liuYiRuMu||[]).map(n=>`${n.palace}宫${n.stem}`).join("、")||"无"}`,`【十干克应】${[...a,e.centerPalace].filter(n=>n&&n.ganYing).map(n=>`${n.palace}宫 ${n.ganYing.tian}加${n.ganYing.di} ${n.ganYing.name}`).join(" ")||"—"}`,`【旺衰】${Ve(e)}`,`【九宫】${a.map(t).join(" ")}`,`※ 晚子时:${e.lateZiHourMode==="next-day"?"23:00 后归次日":"23:00 后仍归当日"}(可用 lateZiHourMode / lateZi 指定)`,`※ ${e.rules[e.rules.length-1]}`].join(`
|
|
73
|
+
`)}function mn(e){if(e.chart==="ziwei"){const n=i=>`${i.label}:${i.score>=0?"+":""}${i.score} ${i.text}`;return[`【紫微合盘】${e.score.level}(${e.score.total}/100)`,`你 命宫 ${e.a.soul.branch}(${e.a.soulStars.join("、")||"无主星"}) 夫妻 ${e.a.spouseStars.join("、")||"无主星"} ${e.a.bureau}`,`对方 命宫 ${e.b.soul.branch}(${e.b.soulStars.join("、")||"无主星"}) 夫妻 ${e.b.spouseStars.join("、")||"无主星"} ${e.b.bureau}`,...e.dimensions.map(n),...e.interactions.map(i=>` · ${i.text}`),...e.notes.map(i=>`※ ${i}`)].join(`
|
|
74
|
+
`)}const a=n=>`${n.label}:${n.score>=0?"+":""}${n.score} ${n.text}`,t=n=>!n||!n.solarNote?"—":`${n.longitude==null?"未含经度修正":`${n.longitude}°E`}(${n.solarNote})`;return[`【合盘】${e.score.level}(${e.score.total}/100)`,`你 ${e.a.pillars.join(" ")} 日主 ${e.a.dayMaster} 日支 ${e.a.dayBranch} ${e.a.strength||""}`,`对方 ${e.b.pillars.join(" ")} 日主 ${e.b.dayMaster} 日支 ${e.b.dayBranch} ${e.b.strength||""}`,`真太阳时:你 ${t(e.a)};对方 ${t(e.b)}`,...e.dimensions.map(a),...e.detail?[`属相:${e.detail.yearRelation.label}——${e.detail.yearRelation.text}`,`日干:${e.detail.stems.text}`,...e.detail.crossBranches&&e.detail.crossBranches.length?[`跨盘地支:${e.detail.crossBranches.map(n=>`${n.name}(${n.a}${n.b})`).join("、")}`]:[],`年命纳音:${e.detail.nayin.a} / ${e.detail.nayin.b}(${e.detail.nayin.label})——${e.detail.nayin.text}`,`吉凶象:吉 ${e.detail.tally.good} / 凶 ${e.detail.tally.bad}(${e.detail.tally.lean};分档只数象,总分以上面三维度为准)`]:[],...e.notes.map(n=>`※ ${n}`)].join(`
|
|
75
|
+
`)}function Ke(e){const a=e.sanChuan,t=n=>`${n.zhi}(${n.jiang}${n.liuQin}${n.xunKong?"空":""})`;return[`【日时】${e.dayGanZhi}日 ${e.hourZhi}时(${e.dayNight}贵) 月将 ${e.yueJiang.name}${e.yueJiang.zhi} 节气 ${e.jieqi.name} ${e.lateZi===!1?"晚子时不换日":"晚子时换日"}`,`【三传】初 ${t(a.chu)} → 中 ${t(a.zhong)} → 末 ${t(a.mo)}`,`【四课】${e.siKe.map(n=>`${n.position}课 ${n.shang}上${n.xia}下(${n.relation}·${n.jiang})`).join(" ")}`,`【天地盘】${e.pan.map(n=>`${n.di}:${n.tian}(${n.jiang})`).join(" ")}`,`【格局】${e.geJu.name}·${e.geJu.detail}`,...e.shensha&&e.shensha.length?[`【神煞】${e.shensha.map(n=>`${n.name}${n.branch}`).join(" ")}`]:[]].join(`
|
|
76
|
+
`)}function fn(e){const a=[`【起卦】${e.source}`,`【本卦】${e.ben.name}(上${e.ben.upper} 下${e.ben.lower}) 动爻:${e.movingName}`,`【互卦】${e.hu.name} 【变卦】${e.bian.name} 【错卦】${e.cuo.name} 【综卦】${e.zong.name}`,`【体用】体 ${e.bodyUse.body.trigram}${e.bodyUse.body.element} 用 ${e.bodyUse.use.trigram}${e.bodyUse.use.element} ${e.bodyUse.level}`,` ${e.bodyUse.relation}`],t=e.lines.slice().reverse().map(n=>` ${n.name} ${n.yinYang==="阳"?"━━━━━":"━━ ━━"}${n.moving?" ←动":""}`);return[...a,"【爻】",...t].join(`
|
|
77
|
+
`)}function $n(e){const a=[e.question?`【所问】${e.question}`:"(未填写提问)",`【牌阵】${e.spread}${e.castAt?` 抽牌于 ${e.castAt}`:""}`];for(const t of e.cards)a.push(` ${t.position}:${t.name}(${t.orientation}) ${t.keywords.join("、")}`);if(e.reading&&e.reading.length){a.push("【解读】");for(const t of e.reading)a.push(` ${t}`)}return a.join(`
|
|
78
|
+
`)}function gn(e){const a=D=>{const U=D.lines.slice().reverse().map(P=>{const B=P.position===D.shi?"世":P.position===D.ying?"应":" ";return` ${P.name} ${B} ${P.symbol} ${P.ganzhi}${P.element} ${P.liuqin}/${P.liushen}`});return[`${D.name}(${D.palace}·${D.palaceElement})`,...U].join(`
|
|
79
|
+
`)},t=[`起卦:${e.cast.notation.join("、")}(自下而上)`,`日辰:${e.dayGanZhi.name}`,e.xunShou?`旬首:${e.xunShou} 旬空:${(e.xunKong||[]).join("")||"—"}`:"",e.question?`所问:${e.question}`:"","本卦:",a(e.ben)];e.bian?t.push(`动爻:第 ${e.cast.movingPositions.join("、")} 爻`,"变卦(六亲以变卦自身宫论):",a(e.bian)):t.push("六爻安静,无变卦。");const n=e.body&&Array.isArray(e.body.labels)?e.body.labels:A(e.body);t.push(`卦体:${n.length?n.join(" · "):"无六冲、六合、伏吟、反吟"}`);const i=e.useGod||_(e,{});if(i&&i.liuqin){const D=i.found.length?i.found.map(C=>`${C.position}爻${C.ganzhi}${C.element}${C.kong?"(空)":""}`).join("、"):i.fushen.length?i.fushen.map(C=>`伏 ${C.position}爻${C.ganzhi}${C.element}(${C.relation||"飞伏关系未知"})`).join("、"):"不上卦";t.push(`用神:${i.byShi?"世爻":i.liuqin}(${i.ask})→ ${D}${i.side?`(${i.side})`:""}`);const U=i.byShi?"用神 世爻":`用神 ${i.liuqin}`,P=i.labels.filter(C=>C!==U&&!C.startsWith(U));P.length&&t.push(`用神联动:${P.join(" · ")}`);const B=e.useGodStrength;if(B&&B.labels.length){const C=B.month&&B.month.branch?`月建 ${B.month.branch}(${B.month.element}) `:"";t.push(`用神旺衰:${C}${B.labels.join(" · ")}`)}const x=e.fushenAccess;x&&Array.isArray(x.labels)&&x.labels.length&&t.push(`伏神出伏:${x.labels.join(" · ")}`)}else t.push("用神:未取(未指明所问之事;用「询问方向」指定后即按六亲取用)");const f=e.hexStrength;if(f&&Array.isArray(f.labels)&&f.labels.length){const D=f.month&&f.month.branch?`月建 ${f.month.branch}(${f.month.element}) `:"无月建(未给起卦时间) ";t.push(`全卦旺衰:${D}${f.labels.join(" · ")}`)}const m=e.jinTuiPower;m&&Array.isArray(m.lines)&&m.lines.length&&t.push(`进退力重:${m.lines.map(D=>`${D.position}爻${D.from}→${D.to}${D.type}·${D.verdict}`).join(" · ")}`);const j=e.yingqi;return j&&Array.isArray(j.triggers)&&j.triggers.length&&t.push(`应期线索:${j.tempo} · ${j.triggers.map(D=>`${D.labels.join("/")}${D.branch}`).join(" · ")}(只列地支,不出日期)`),t.filter(Boolean).join(`
|
|
80
|
+
`)}function Qe(e){const a=new WeakSet,t=(n,i)=>{switch((n instanceof Number||n instanceof String||n instanceof Boolean)&&(n=n.valueOf()),n&&typeof n=="object"&&typeof n.toJSON=="function"&&(n=n.toJSON(i)),typeof n){case"string":case"boolean":return n;case"number":return Number.isFinite(n)?Object.is(n,-0)?0:n:null;case"bigint":throw new TypeError("Do not know how to serialize a BigInt");case"object":{if(n===null)return null;if(a.has(n))throw new TypeError("Converting circular structure to JSON");a.add(n);let f;if(Array.isArray(n)){f=new Array(n.length);for(let m=0;m<n.length;m++){const j=t(n[m],String(m));f[m]=j===void 0?null:j}}else{f={};for(const m of Object.keys(n)){const j=t(n[m],m);j!==void 0&&(f[m]=j)}}return a.delete(n),f}default:return}};return t(e,"")}const re=new Set(["shadow","shadowVersion","diff","trace","traceError","withInterpret","cross","verifyPast","rectify","events","geocode","ask","followup","caliber","seed","asOf","handle","revise"]),Se=e=>{if(e==null||e==="")return null;const a=Number(e);return Number.isFinite(a)?Number(a.toFixed(6)):null};function Pe(e){if(e==null||e==="")return null;try{const a=ae(e);return{y:a.year,m:a.month,d:a.day,h:a.hour,mi:a.minute,precision:a.precision}}catch{return String(e).trim()}}function Ze(e={}){const a={};return e.datetime&&(a.datetime=Pe(e.datetime)),e.gender&&(a.gender=String(e.gender).toLowerCase()),e.longitude!==void 0?a.longitude=Se(e.longitude):e.address&&(a.address=String(e.address).trim()),e.lateZi!==void 0&&(a.lateZi=e.lateZi!==!1),e.trueSolar!==void 0&&(a.trueSolar=e.trueSolar!==!1),e.dst!==void 0&&(a.dst=e.dst!==!1),a}function Ee(e){return e.lateZiHourMode==="next-day"||e.lateZi===!0?"next-day":"same-day"}function jn(e,a){const t=String(a&&a.system||e.system||""),n=a&&a.input&&typeof a.input=="object"?a.input:null;if(t==="bazi"&&n)return{civil:n.civil,gender:n.gender,longitude:Se(n.longitude),lateZi:n.lateZi!==!1,trueSolar:n.trueSolar!==!1,dst:!!(n.dst&&n.dst.applied)};if(t==="ziwei"&&n)return{civil:{year:n.year,month:n.month,day:n.day,hour:n.hour,minute:n.minute},gender:n.gender,longitude:Se(n.longitude),leapMonth:n.leapMonth||"split",leapAsNext:n.leapAsNext===!0,schools:n.schools||Z,trueSolar:n.trueSolar!==!1,dst:!!(n.dst&&n.dst.applied)};if(t==="qimen")return{datetime:Pe(e.datetime),juMethod:e.juMethod||"chaibu",lateZiHourMode:Ee(e)};if(t==="hepan")return{chart:e.chart==="ziwei"?"ziwei":"bazi",a:Ze({...e,datetime:e.datetime}),b:Ze(e.partner||{})};const i={};for(const[f,m]of Object.entries(e))if(!(re.has(f)||m===void 0))if(f==="datetime")i.datetime=Pe(m);else if(f==="partner")i.partner=Ze(m);else if(f==="gender")i.gender=String(m).toLowerCase();else{if(f==="address")continue;typeof m=="number"?i[f]=Number.isFinite(m)?Object.is(m,-0)?0:m:null:typeof m=="string"?i[f]=m.trim():i[f]=m}return t==="daliuren"&&i.lateZi===void 0&&(i.lateZi=!0),t==="tarot"&&i.count===void 0&&(i.count=3),t==="meihua"&&i.mode===void 0&&(i.mode="time"),t==="xiaoliuren"&&i.mode===void 0&&(i.mode="time"),t==="convert"&&i.mode===void 0&&(i.mode="solar2lunar"),t==="fengshui"&&i.action===void 0&&(i.action="natal"),t==="tarot"&&a&&Array.isArray(a.cards)&&a.cards.length&&(i.cards=a.cards.map(f=>`${f.name||""}|${f.upright?"正":"逆"}`)),t==="liuyao"&&a&&a.cast&&Array.isArray(a.cast.lines)&&(i.cast=a.cast.lines.join("")),i}function zn(e,a){const t=a.seed,n=!(t==null||t==="");return e==="liuyao"&&Array.isArray(a.lines)&&a.lines.length===6?{reproducible:!0}:(e==="tarot"||e==="liuyao")&&!n?{reproducible:!1,reason:"未给 seed:重算会变成另一副牌 / 另一卦"}:e==="bazi"||e==="ziwei"||e==="trend"||e==="fengshui"?{reproducible:!0,asOfPinned:!!a.asOf}:{reproducible:!0}}function wn(e={},a={}){const t=a.result||null,n=String(t&&t.system||e.system||""),i=String(a.version||typeof globalThis<"u"&&globalThis.__MP_VER||"dev");return{...Fe({system:n,params:jn(e,t),seed:e.seed,asOf:e.asOf?String(e.asOf):null,version:i}),...zn(n,e),system:n,version:i}}const kn=new Set(["shadow","trace","traceText","traceError","interpret","summary","classics","suiyunClassic","renyuanClassic","cross","past","rectify","followup","caliber","input","reading","knowledge","outline","sections","answer","plain","tables","glossary","caveats","lead","dimensions","moduleType","technique","disclaimer","ask","followups","knowledgeCount","title","systemLabel","handle","handleError","revision"]);function xn(e){const a={};for(const[t,n]of Object.entries(e||{}))kn.has(t)||(a[t]=n);return a}function Nn(e){return!e||!e.shadow||!e.shadow.baseId?null:{snapshot:!0,shadow:e.shadow,data:xn(e)}}function Tn(e,a,t={}){const n=e&&e.shadow,i=a&&a.shadow;if(!n||!i)return{sameId:!1,total:0,reason:"缺少影子盘信息"};if(n.baseId&&i.baseId&&n.baseId!==i.baseId)return{sameId:!1,total:0,fromId:n.id,toId:i.id,fromBaseId:n.baseId,toBaseId:i.baseId,reason:"基础指纹不同,不是同一张盘"};const f=x=>x.snapshot===!0&&x.data&&typeof x.data=="object"?x.data:xn(x),m=Ce(f(e),f(a)),j=an(m.filter(x=>Te(x.path))).map(x=>({path:x.path,label:Ue(x.path),from:xe(x.from),to:xe(x.to)})),D=new Map;for(const x of m){const C=De(x.path)||"其他";D.set(C,(D.get(C)||0)+1)}const U=[...D.entries()].map(([x,C])=>({name:x,count:C})).sort((x,C)=>C.count-x.count||x.name.localeCompare(C.name,"zh-Hans-CN")),P=t.fromVersion||n.version||"",B=t.toVersion||i.version||"";return{sameId:!0,versionChanged:P!==B,fromVersion:P,toVersion:B,total:m.length,summary:Be(m),roots:j,categories:U,diffs:m}}function yn(e={}){let a=oe(e),t;if(typeof a.revise=="string"&&a.revise.trim()){const i=pe(a.revise),f={...a};a={...a,...i.patch},t={text:i.text,applied:i.labels.map(m=>{const j=f[m.key]===void 0?null:f[m.key];return{...m,from:j,fromDisplay:we(m.key,j)}}),ignored:i.ignored}}const n=Qe(_n(a));if(t&&(n.revision=t),n&&n.system==="bazi"){n.classics=F(n);const i=W(n.classics);i&&(n.summary=`${n.summary}
|
|
81
81
|
【古籍】
|
|
82
|
-
${
|
|
83
|
-
${
|
|
84
|
-
${
|
|
85
|
-
依据:${
|
|
86
|
-
规则·${
|
|
87
|
-
`)));return Array.isArray(e.followups)&&e.followups.length&&a.push("还可以这样追问:"+e.followups.map(
|
|
88
|
-
`)}const wn=["cross","verifyPast","withInterpret","question","direction","ask","geocode","rectify","events","shadow","trace"];function jn(e={},a={}){const n=a.system||e.system,t=a.switches||fn[n]||[];if(!t.length)return{system:n,switches:[],affected:0,total:0};const i={...e};for(const h of wn)delete i[h];const d=t.map(h=>{const p=h.read(i),L=h.alt(p);let F=[],Z="";try{F=U(dn({...i,[h.key]:p}),dn({...i,[h.key]:L}))}catch(K){Z=K&&K.message||String(K)}const H=oe(F.filter(K=>he(K.path))).map(K=>({path:K.path,label:fe(K.path),from:qe(K.from),to:qe(K.to)})),m=new Map;for(const K of F){const le=_e(K.path)||"其他";m.set(le,(m.get(le)||0)+1)}const C=[...m.entries()].map(([K,le])=>({name:K,count:le})).sort((K,le)=>le.count-K.count||K.name.localeCompare(le.name,"zh-Hans-CN"));return{key:h.key,title:h.title,short:h.short,current:p,alt:L,currentLabel:h.label(p),altLabel:h.label(L),total:F.length,summary:Z?"":W(F),roots:H,categories:C,error:Z}});return{system:n,switches:d,affected:d.filter(h=>!h.error&&h.total>0).length,total:d.reduce((h,p)=>h+p.total,0)}}const xn=["chaibu","chaoshen","zhirun"],Sn=[1,3,5],zn=["same-day","next-day"];function Ye(e){if(e==null||e==="")return;const a=z(e);if(!a)throw V("E_ASOF",`无法解析 asOf:「${e}」,请用 2026-10-22T16:00 这种格式`);const{year:n,month:t,day:i}=a;if(!(t>=1&&t<=12)||!(i>=1&&i<=$e(n,t)))throw V("E_ASOF",`asOf 指向的日期不存在:${e}`);return a}function kn(e={}){const a=e.system;if(a==="bazi"){const n=te(e.datetime),t=Ye(e.asOf),i=O({...n,gender:se(e.gender),longitude:typeof e.longitude=="number"?e.longitude:void 0,address:typeof e.address=="string"?e.address:void 0,geo:e.geo&&typeof e.geo=="object"?e.geo:void 0,lateZi:e.lateZi!==!1,trueSolar:e.trueSolar!==!1,dst:e.dst!==!1,nowYear:t?t.year:void 0});return{...i,...t?{asOf:t}:{},precision:n.precision,summary:tn(i)}}if(a==="ziwei"){const n=te(e.datetime),t=Ye(e.asOf),i=b({...n,gender:se(e.gender),leapMonth:e.leapMonth,leapAsNext:e.leapAsNext===!0,...Je(e),longitude:typeof e.longitude=="number"?e.longitude:void 0,address:typeof e.address=="string"?e.address:void 0,geo:e.geo&&typeof e.geo=="object"?e.geo:void 0,trueSolar:e.trueSolar,dst:e.dst!==!1,asOf:t});return{...i,precision:n.precision,summary:ve(i)}}if(a==="tarot"){const n=e.count===void 0||e.count===null||e.count===""?3:Number(e.count);if(!Sn.includes(n))throw V("E_COUNT",`塔罗张数只能是 1 / 3 / 5,收到「${e.count}」`);if(!ee(e.seed))throw V("E_INPUT",`seed 必须是数字,收到「${e.seed}」`);const t=Ye(e.asOf),i=o({count:n,question:e.question,at:e.asOf,random:X(e.seed)});return e.seed!==void 0&&e.seed!==null&&e.seed!==""&&(i.seed=Number(e.seed)),{...i,...t?{asOf:t}:{},summary:rn(i)}}if(a==="daliuren"){const n=te(e.datetime),t=e.lateZi!==!1,i=s({...n,lateZi:t});return i.lateZi=t,{...i,precision:n.precision,summary:on(i)}}if(a==="qimen"){const n=te(e.datetime);if(e.juMethod!==void 0&&!xn.includes(e.juMethod))throw V("E_INPUT",`juMethod 只能是 chaibu / chaoshen / zhirun,收到「${e.juMethod}」`);const t=e.lateZiHourMode!==void 0?e.lateZiHourMode:e.lateZi===!0?"next-day":e.lateZi===!1?"same-day":void 0;if(t!==void 0&&!zn.includes(t))throw V("E_INPUT",`lateZiHourMode 只能是 same-day / next-day,收到「${t}」`);const i=t==="next-day"?"next-day":"same-day",d=f({...n,lateZiHourMode:i,juMethod:e.juMethod});return d.lateZiHourMode=i,{...d,summary:We(d)}}if(a==="hepan"){const n=e.partner;if(!n||typeof n!="object")throw V("E_PARTNER","合盘需要 partner:{ datetime, gender, address? },其中 partner.datetime 是对方的公历出生时间");if(!n.datetime)throw V("E_PARTNER",'缺少 partner.datetime(对方的公历出生时间),例如 partner: {"datetime":"1992-03-03T10:00","gender":"female"}');const t=te(e.datetime),i=te(n.datetime),d=e.chart==="ziwei"?"ziwei":"bazi",h={...t,gender:se(e.gender,"你(主方)"),trueSolar:e.trueSolar,lateZi:e.lateZi,dst:e.dst!==!1,address:typeof e.address=="string"?e.address:void 0,longitude:typeof e.longitude=="number"?e.longitude:void 0,geo:e.geo&&typeof e.geo=="object"?e.geo:void 0},p={...i,gender:se(n.gender,"对方"),trueSolar:n.trueSolar,lateZi:n.lateZi,dst:n.dst!==!1,address:typeof n.address=="string"?n.address:void 0,longitude:typeof n.longitude=="number"?n.longitude:void 0,geo:n.geo&&typeof n.geo=="object"?n.geo:void 0},L=d==="ziwei"?k({a:h,b:p}):y({a:h,b:p});return{...L,summary:an(L)}}if(a==="meihua"){let n;try{n=r({mode:e.mode==="number"?"number":"time",datetime:e.datetime,upper:e.upper,lower:e.lower,changing:e.changing})}catch(t){throw V("E_INPUT",`梅花起卦参数不完整:${t&&t.message?t.message:t}`)}return{...n,summary:sn(n)}}if(a==="liuyao"){if(!ee(e.seed))throw V("E_INPUT",`seed 必须是数字,收到「${e.seed}」`);let n;if(e.lines===void 0||e.lines===null)n=I(X(e.seed));else{if(!Array.isArray(e.lines))throw V("E_LINES","lines 必须是数组:自下而上 6 个爻值(6 老阴 / 7 少阳 / 8 少阴 / 9 老阳)");if(e.lines.length!==6)throw V("E_LINES",`六爻需要正好 6 个爻值(自下而上),收到 ${e.lines.length} 个;留空则由引擎随机摇卦`);n=e.lines.map(Number)}let t,i=null;const d=e.datetime?te(e.datetime):Ye(e.asOf);if(d){e.datetime||(i=d);const H=ae(G(Q(d.year,d.month,d.day)));t={stem:H.stem,branch:H.branch,name:H.name}}let h;try{h=q({lines:n,question:e.question,dayGanZhi:t})}catch(H){throw V("E_LINES",H&&H.message?H.message:H)}const p=E(h,{direction:e.direction,gender:e.gender});p.liuqin&&(h.useGod=p);let L=null;if(d)try{L=(c({year:d.year,month:d.month,day:d.day,hour:d.hour,minute:d.minute}).monthGanZhi||"")[1]||null}catch{L=null}const F=v(h,{monthBranch:L,dayBranch:h.dayGanZhi.branch});F&&(h.hexStrength=F);const Z=u(h,{monthBranch:L,dayBranch:h.dayGanZhi.branch});if(Z&&(h.jinTuiPower=Z),p.liuqin){const H=g(h,p,{monthBranch:L,dayBranch:h.dayGanZhi.branch});H&&(h.useGodStrength=H);const m=$(h,p,{monthBranch:L,dayBranch:h.dayGanZhi.branch});m&&(h.fushenAccess=m);const C=w(h,p,{monthBranch:L});C&&(h.yingqi=C)}return e.seed!==void 0&&e.seed!==null&&e.seed!==""&&(h.seed=Number(e.seed)),{...h,...i?{asOf:i}:{},summary:Qe(h)}}if(a==="almanac"){const n=te(e.datetime),t=R({year:n.year,month:n.month,day:n.day});return{...t,summary:Nn(t)}}if(a==="zeri"){if(typeof e.startDate!="string"||!e.startDate.trim())throw V("E_INPUT","择日需要 startDate(公历 YYYY-MM-DD,起算日);可另给 days(1–60,默认 30)与 shengXiao(当事人属相)");const n=D({task:e.task,startDate:e.startDate,days:e.days,shengXiao:e.shengXiao});return{...n,summary:Tn(n)}}if(a==="chenggu"){const n=te(e.datetime),t=/[T\s]\d{1,2}:\d{1,2}/.test(String(e.datetime)),i=Number.isInteger(e.hour)?e.hour:t?n.hour:null;if(i===null||i<0||i>23)throw V("E_INPUT","称骨必须给时辰:datetime 带时分(如 1990-08-15T10:00),或额外给 hour(0–23)——缺时辰四柱不齐");const d=J({year:n.year,month:n.month,day:n.day,hour:i,minute:t?n.minute:0});return{...d,summary:An(d)}}if(a==="convert"){const n=e.mode==="lunar2solar"?"lunar2solar":"solar2lunar";let t;if(n==="lunar2solar"){if(e.lunarYear==null||e.lunarMonth==null||e.lunarDay==null)throw V("E_INPUT","农历转公历需要 lunarYear / lunarMonth / lunarDay(闰月另加 isLeapMonth: true)");t=ze({mode:n,lunarYear:Number(e.lunarYear),lunarMonth:Number(e.lunarMonth),lunarDay:Number(e.lunarDay),isLeapMonth:e.isLeapMonth===!0})}else{const i=te(e.datetime);t=ze({mode:n,year:i.year,month:i.month,day:i.day})}return{...t,summary:En(t)}}if(a==="xiaoliuren"){const n=e.datetime?te(e.datetime):null,t=ne({mode:e.mode==="number"?"number":"time",date:typeof e.date=="string"&&e.date.trim()?e.date:n?`${n.year}-${n.month}-${n.day}`:void 0,hour:Number.isInteger(e.hour)?e.hour:n&&/[T\s]\d{1,2}:\d{1,2}/.test(String(e.datetime))?n.hour:void 0,num1:e.num1,num2:e.num2,num3:e.num3,question:e.question});return{...t,summary:Mn(t)}}if(a==="star"){const n=te(e.datetime),t=ye({year:n.year,month:n.month,day:n.day});return{...t,summary:On(t)}}if(a==="numerology"){const n=te(e.datetime),t=de({year:n.year,month:n.month,day:n.day});return{...t,summary:In(t)}}if(a==="mbti"){if(e.answers===void 0||e.answers===null){const t=Ee();return{...t,summary:qn(t)}}const n=Le({answers:e.answers});return{...n,summary:_n(n)}}if(a==="trend"){const n=te(e.datetime),t=Ge({...n,gender:se(e.gender),toAge:e.toAge,lateZi:e.lateZi!==!1,trueSolar:e.trueSolar!==!1,dst:e.dst!==!1,longitude:typeof e.longitude=="number"?e.longitude:void 0,address:typeof e.address=="string"?e.address:void 0,geo:e.geo&&typeof e.geo=="object"?e.geo:void 0});return{...t,precision:n.precision,summary:vn(t)}}if(a==="fengshui"){const n=e.action==="advise"?"advise":e.action==="xuankong"?"xuankong":"natal";if(n==="xuankong"){const d=je({action:n,sitting:e.sitting,facing:e.facing,...e.period!==void 0?{period:e.period}:{},...Number.isInteger(e.fortuneYear)?{fortuneYear:e.fortuneYear}:{},...typeof e.sittingOffset=="number"?{sittingOffset:e.sittingOffset}:{},...typeof e.sittingDegree=="number"?{sittingDegree:e.sittingDegree}:{},...typeof e.facingOffset=="number"?{facingOffset:e.facingOffset}:{},...typeof e.facingDegree=="number"?{facingDegree:e.facingDegree}:{},...typeof e.fortuneDate=="string"?{fortuneDate:e.fortuneDate}:{},...typeof e.fortuneTime=="string"?{fortuneTime:e.fortuneTime}:{},dst:e.dst!==!1});return{...d,summary:mn(d)}}if(n==="advise"){const d=je({action:n,sitting:e.sitting,facing:e.facing,...e.datetime?te(e.datetime):{},...e.gender==="male"||e.gender==="female"?{gender:e.gender}:{},dst:e.dst!==!1});return{...d,summary:mn(d)}}const t=te(e.datetime),i=je({action:"natal",year:t.year,month:t.month,day:t.day,gender:se(e.gender),fortuneYear:Number.isInteger(e.fortuneYear)?e.fortuneYear:void 0,dst:e.dst!==!1});return{...i,summary:mn(i)}}if(a==="name"){const n=e.action==="generate"?"generate":"assess",t=e.datetime?te(e.datetime):Number.isInteger(e.year)&&Number.isInteger(e.month)&&Number.isInteger(e.day)?{year:e.year,month:e.month,day:e.day,...Number.isInteger(e.hour)?{hour:e.hour}:{},...Number.isInteger(e.minute)?{minute:e.minute}:{}}:{},i=Ue({action:n,surname:e.surname,givenName:e.givenName,limit:e.limit,charElements:e.charElements&&typeof e.charElements=="object"?e.charElements:void 0,strokeOverrides:e.strokeOverrides&&typeof e.strokeOverrides=="object"?e.strokeOverrides:void 0,surnameStrokes:e.surnameStrokes&&typeof e.surnameStrokes=="object"?e.surnameStrokes:void 0,...t,...e.gender==="male"||e.gender==="female"?{gender:e.gender}:{},...e.datetime?{lateZi:e.lateZi!==!1,trueSolar:e.trueSolar!==!1,dst:e.dst!==!1,longitude:typeof e.longitude=="number"?e.longitude:void 0,address:typeof e.address=="string"?e.address:void 0,geo:e.geo&&typeof e.geo=="object"?e.geo:void 0}:{}});return{...i,summary:Cn(i)}}throw a?V("E_SYSTEM",`未知体系「${a}」,可选:bazi(四柱八字)、ziwei(紫微斗数)、liuyao(六爻)、meihua(梅花易数)、daliuren(大六壬)、qimen(奇门遁甲)、hepan(合盘)、tarot(塔罗)、almanac(黄历)、zeri(择日)、chenggu(称骨)、xiaoliuren(小六壬)、star(星座)、numerology(生命数字)、mbti(十六型人格问卷)、trend(人生 K 线)、fengshui(风水)、name(起名)、convert(公农历互转)。`):V("E_INPUT","缺少 system,可选:bazi(四柱八字)、ziwei(紫微斗数)、liuyao(六爻)、meihua(梅花易数)、daliuren(大六壬)、qimen(奇门遁甲)、hepan(合盘)、tarot(塔罗)、almanac(黄历)、zeri(择日)、chenggu(称骨)、xiaoliuren(小六壬)、star(星座)、numerology(生命数字)、mbti(十六型人格问卷)、trend(人生 K 线)、fengshui(风水)、name(起名)、convert(公农历互转)。")}function Nn(e){const a=e.ganzhi,n=e.jieQi&&e.jieQi.next?` 下一节:${e.jieQi.next.name} ${e.jieQi.next.date}`:"",t=e.dayGod?`值日:${e.dayGod.name}(${e.dayGod.type}·${e.dayGod.luck})`:"",i=e.xiu?`二十八宿:${e.xiu.name}宿(${e.xiu.luck}·${e.xiu.zheng}·${e.xiu.animal})`:"",d=e.taiShen?`胎神:${e.taiShen}`:"",h=e.positions?`吉神方位:喜神${e.positions.xiShen||"—"} 财神${e.positions.caiShen||"—"} 福神${e.positions.fuShen?e.positions.fuShen.dir:"—"} 阳贵${e.positions.yangGui?e.positions.yangGui.dir:"—"} 阴贵${e.positions.yinGui?e.positions.yinGui.dir:"—"}`:"",p=e.lucky?`吉配生肖:六合${e.lucky.liuhe||"—"} 三合${(e.lucky.sanhe||[]).join("、")||"—"}`:"",L=e.nayin&&e.nayin.day?`日柱纳音:${e.nayin.day.name}`:"",F=(e.hours||[]).map(Z=>`${Z.zhi}${Z.ganZhi.slice(0,1)}·${Z.shen}${Z.luck==="吉"?"吉":"凶"}`).join(" ");return[`【黄历】${e.meta.date} ${e.meta.weekday} ${e.lunar.text}`,`干支:${a.year}年 ${a.month}月 ${a.day}日 属${a.shengXiao}`,...e.meta.boundaryNote?[` ${e.meta.boundaryNote}`]:[],`建除:${e.zhiXing}日 冲:${e.chong.text}${e.chong.sha?`(${e.chong.sha})`:""} ${t}`,[i,L,d].filter(Boolean).join(" "),`宜:${e.yi.join("、")}`,`忌:${e.ji.join("、")}`,h,p,F?`时辰吉凶:${F}`:"",`节气:上一节 ${e.jieQi.prev?`${e.jieQi.prev.name} ${e.jieQi.prev.date}`:"—"}${n}`,e.dailyHexagram?`每日一卦:${e.dailyHexagram.name} ${e.dailyHexagram.meaning||""}`:"",`口径:${e.meta.scope}`].filter(Boolean).join(`
|
|
89
|
-
`)}function
|
|
90
|
-
`)}function
|
|
91
|
-
`)}function
|
|
92
|
-
`)}function
|
|
82
|
+
${i}`);const f=ie(n);if(f&&(n.suiyunClassic={...f,bookName:le[f.book].name}),n.renyuan){const m=fe("smt-renyuan");m&&(n.renyuanClassic={...m,bookName:le[m.book].name})}}if(n&&n.precision&&n.precision.level==="approx"&&n.summary&&(n.summary=`⚠ ${n.precision.note}
|
|
83
|
+
${n.summary}`),n&&(n.system==="bazi"||n.system==="ziwei")&&n.input&&n.input.longitude==null&&n.summary&&(n.summary=`⚠ 未提供出生地或经度:按东八区平太阳时排盘,时柱可能与本命盘相差一个时辰;海外出生请先把当地时间换算成东八区标准时。
|
|
84
|
+
${n.summary}`),a.withInterpret&&(n.interpret=je(n,{question:typeof a.question=="string"?a.question:"",direction:typeof a.direction=="string"?a.direction:"general"})),a.cross===!0&&(n.system==="bazi"||n.system==="ziwei")){const f={...ae(a.datetime),gender:de(a.gender),longitude:typeof a.longitude=="number"?a.longitude:void 0,address:typeof a.address=="string"?a.address:void 0,geo:a.geo&&typeof a.geo=="object"?a.geo:void 0,trueSolar:a.trueSolar!==!1,dst:a.dst!==!1},m=Re(a.asOf),j=n.system==="bazi"?g({...f,leapMonth:a.leapMonth,leapAsNext:a.leapAsNext===!0,...Ge(a),asOf:m}):E({...f,lateZi:a.lateZi!==!1,nowYear:m?m.year:void 0});n.cross=k(n.system==="bazi"?n:j,n.system==="ziwei"?n:j),n.interpret&&n.interpret.sections.push(G(n.cross))}if(Number.isInteger(a.verifyPast)&&a.verifyPast>0&&n.system==="bazi"){const i=Math.min(Math.max(a.verifyPast,1),10),f=Number(n.liunianFrom)-i,m=E({...ae(a.datetime),gender:de(a.gender),lateZi:a.lateZi!==!1,trueSolar:a.trueSolar!==!1,longitude:typeof a.longitude=="number"?a.longitude:void 0,address:typeof a.address=="string"?a.address:void 0,geo:a.geo&&typeof a.geo=="object"?a.geo:void 0,dst:a.dst!==!1,nowYear:f});n.past={rows:J(m,Number(n.liunianFrom)-1),years:i,until:Number(n.liunianFrom)-1}}if(a.rectify===!0&&n.system==="bazi"){const i=ae(a.datetime);n.rectify=ge({base:{year:i.year,month:i.month,day:i.day,minute:i.minute},gender:de(a.gender),events:Array.isArray(a.events)?a.events:[],hours:Array.isArray(a.rectifyHours)?a.rectifyHours:void 0,lateZi:a.lateZi!==!1,trueSolar:a.trueSolar!==!1,dst:a.dst!==!1,longitude:typeof a.longitude=="number"?a.longitude:void 0,address:typeof a.address=="string"?a.address:void 0,geo:a.geo&&typeof a.geo=="object"?a.geo:void 0})}if(typeof a.ask=="string"&&a.ask.trim()&&(n.followup=O(n,a.ask)),a.trace===!0)try{const i=Xe(n,{direction:a.direction,gender:a.gender});i&&(n.trace=i,n.traceText=$e(i,{system:n.system}))}catch(i){n.traceError=String(i&&i.message||i)}if(a.shadow===!0)try{n.shadow=wn(a,{result:n,version:a.shadowVersion})}catch(i){n.shadow={error:String(i&&i.message||i)}}try{const i=ue(a);i&&(n.handle=i)}catch(i){n.handleError=String(i&&i.message||i)}return n}function Sn(e){if(!e)return"";const a=[`【${e.title||"解析与详解"}】${e.ask&&e.ask.echo?e.ask.echo:""}`];e.answer&&a.push(`▶ ${e.ask&&e.ask.question?"先答所问":"先看结论"}:${e.answer}`),e.plain&&a.push(`▶ 说人话:${e.plain}`),e.lead&&a.push(e.lead),Array.isArray(e.outline)&&e.outline.length&&a.push("一页读懂:"+e.outline.map(t=>`${t.label}·${t.text}`).join(" ")),e.error&&a.push(`⚠ 解析生成失败:${e.error}(上方盘面数据本身可用)`);for(const t of e.dimensions||[]){const n=Array.isArray(t.evidence)&&t.evidence.length?`
|
|
85
|
+
依据:${t.evidence.join(";")}${t.confidence?` 置信度:${t.confidence}`:""}`:"",i=t.plain?`(${t.plain})`:"",f=(t.knowledge||[]).map(m=>`
|
|
86
|
+
规则·${m.gist}〔${m.statusLabel}〕${m.detail} 出处:${m.source}${m.note?` 注:${m.note}`:""}`).join("");a.push(`${t.label}:${i}${t.text}${t.advice?` 建议:${t.advice}`:""}${n}${f}`)}for(const t of e.sections||[])a.push(`${t.label}:${t.text}`);for(const t of e.tables||[])!Array.isArray(t.rows)||!t.rows.length||(a.push(`【${t.title}】`),a.push([t.columns.join(" | "),...t.rows.map(n=>n.join(" | "))].join(`
|
|
87
|
+
`)));return Array.isArray(e.followups)&&e.followups.length&&a.push("还可以这样追问:"+e.followups.map(t=>`「${t}」`).join(" ")),Array.isArray(e.glossary)&&e.glossary.length&&a.push("名词解释:"+e.glossary.map(t=>`${t.term}=${t.plain}`).join(" ")),e.disclaimer&&a.push(e.disclaimer),a.join(`
|
|
88
|
+
`)}const An=["cross","verifyPast","withInterpret","question","direction","ask","geocode","rectify","events","shadow","trace"];function En(e={},a={}){const t=a.system||e.system,n=a.switches||on[t]||[];if(!n.length)return{system:t,switches:[],affected:0,total:0};const i={...e};for(const m of An)delete i[m];const f=n.map(m=>{const j=m.read(i),D=m.alt(j);let U=[],P="";try{U=Ce(yn({...i,[m.key]:j}),yn({...i,[m.key]:D}))}catch(K){P=K&&K.message||String(K)}const B=an(U.filter(K=>Te(K.path))).map(K=>({path:K.path,label:Ue(K.path),from:xe(K.from),to:xe(K.to)})),x=new Map;for(const K of U){const ce=De(K.path)||"其他";x.set(ce,(x.get(ce)||0)+1)}const C=[...x.entries()].map(([K,ce])=>({name:K,count:ce})).sort((K,ce)=>ce.count-K.count||K.name.localeCompare(ce.name,"zh-Hans-CN"));return{key:m.key,title:m.title,short:m.short,current:j,alt:D,currentLabel:m.label(j),altLabel:m.label(D),total:U.length,summary:P?"":Be(U),roots:B,categories:C,error:P}});return{system:t,switches:f,affected:f.filter(m=>!m.error&&m.total>0).length,total:f.reduce((m,j)=>m+j.total,0)}}const On=["chaibu","chaoshen","zhirun"],Mn=[1,3,5],In=["same-day","next-day"];function Re(e){if(e==null||e==="")return;const a=z(e);if(!a)throw Q("E_ASOF",`无法解析 asOf:「${e}」,请用 2026-10-22T16:00 这种格式`);const{year:t,month:n,day:i}=a;if(!(n>=1&&n<=12)||!(i>=1&&i<=qe(t,n)))throw Q("E_ASOF",`asOf 指向的日期不存在:${e}`);return a}function _n(e={}){const a=e.system;if(a==="bazi"){const t=ae(e.datetime),n=Re(e.asOf),i=E({...t,gender:de(e.gender),longitude:typeof e.longitude=="number"?e.longitude:void 0,address:typeof e.address=="string"?e.address:void 0,geo:e.geo&&typeof e.geo=="object"?e.geo:void 0,lateZi:e.lateZi!==!1,trueSolar:e.trueSolar!==!1,dst:e.dst!==!1,nowYear:n?n.year:void 0});return{...i,...n?{asOf:n}:{},precision:t.precision,summary:un(i)}}if(a==="ziwei"){const t=ae(e.datetime),n=Re(e.asOf),i=g({...t,gender:de(e.gender),leapMonth:e.leapMonth,leapAsNext:e.leapAsNext===!0,...Ge(e),longitude:typeof e.longitude=="number"?e.longitude:void 0,address:typeof e.address=="string"?e.address:void 0,geo:e.geo&&typeof e.geo=="object"?e.geo:void 0,trueSolar:e.trueSolar,dst:e.dst!==!1,asOf:n});return{...i,precision:t.precision,summary:cn(i)}}if(a==="tarot"){const t=e.count===void 0||e.count===null||e.count===""?3:Number(e.count);if(!Mn.includes(t))throw Q("E_COUNT",`塔罗张数只能是 1 / 3 / 5,收到「${e.count}」`);if(!ee(e.seed))throw Q("E_INPUT",`seed 必须是数字,收到「${e.seed}」`);const n=Re(e.asOf),i=o({count:t,question:e.question,at:e.asOf,random:X(e.seed)});return e.seed!==void 0&&e.seed!==null&&e.seed!==""&&(i.seed=Number(e.seed)),{...i,...n?{asOf:n}:{},summary:$n(i)}}if(a==="daliuren"){const t=ae(e.datetime),n=e.lateZi!==!1,i=s({...t,lateZi:n});return i.lateZi=n,{...i,precision:t.precision,summary:Ke(i)}}if(a==="qimen"){const t=ae(e.datetime);if(e.juMethod!==void 0&&!On.includes(e.juMethod))throw Q("E_INPUT",`juMethod 只能是 chaibu / chaoshen / zhirun,收到「${e.juMethod}」`);const n=e.lateZiHourMode!==void 0?e.lateZiHourMode:e.lateZi===!0?"next-day":e.lateZi===!1?"same-day":void 0;if(n!==void 0&&!In.includes(n))throw Q("E_INPUT",`lateZiHourMode 只能是 same-day / next-day,收到「${n}」`);const i=n==="next-day"?"next-day":"same-day",f=r({...t,lateZiHourMode:i,juMethod:e.juMethod});return f.lateZiHourMode=i,{...f,summary:dn(f)}}if(a==="hepan"){const t=e.partner;if(!t||typeof t!="object")throw Q("E_PARTNER","合盘需要 partner:{ datetime, gender, address? },其中 partner.datetime 是对方的公历出生时间");if(!t.datetime)throw Q("E_PARTNER",'缺少 partner.datetime(对方的公历出生时间),例如 partner: {"datetime":"1992-03-03T10:00","gender":"female"}');const n=ae(e.datetime),i=ae(t.datetime),f=e.chart==="ziwei"?"ziwei":"bazi",m={...n,gender:de(e.gender,"你(主方)"),trueSolar:e.trueSolar,lateZi:e.lateZi,dst:e.dst!==!1,address:typeof e.address=="string"?e.address:void 0,longitude:typeof e.longitude=="number"?e.longitude:void 0,geo:e.geo&&typeof e.geo=="object"?e.geo:void 0},j={...i,gender:de(t.gender,"对方"),trueSolar:t.trueSolar,lateZi:t.lateZi,dst:t.dst!==!1,address:typeof t.address=="string"?t.address:void 0,longitude:typeof t.longitude=="number"?t.longitude:void 0,geo:t.geo&&typeof t.geo=="object"?t.geo:void 0},D=f==="ziwei"?y({a:m,b:j}):u({a:m,b:j});return{...D,summary:mn(D)}}if(a==="meihua"){let t;try{t=d({mode:e.mode==="number"?"number":"time",datetime:e.datetime,upper:e.upper,lower:e.lower,changing:e.changing})}catch(n){throw Q("E_INPUT",`梅花起卦参数不完整:${n&&n.message?n.message:n}`)}return{...t,summary:fn(t)}}if(a==="liuyao"){if(!ee(e.seed))throw Q("E_INPUT",`seed 必须是数字,收到「${e.seed}」`);let t;if(e.lines===void 0||e.lines===null)t=q(X(e.seed));else{if(!Array.isArray(e.lines))throw Q("E_LINES","lines 必须是数组:自下而上 6 个爻值(6 老阴 / 7 少阳 / 8 少阴 / 9 老阳)");if(e.lines.length!==6)throw Q("E_LINES",`六爻需要正好 6 个爻值(自下而上),收到 ${e.lines.length} 个;留空则由引擎随机摇卦`);t=e.lines.map(Number)}let n,i=null;const f=e.datetime?ae(e.datetime):Re(e.asOf);if(f){e.datetime||(i=f);const B=te(L(V(f.year,f.month,f.day)));n={stem:B.stem,branch:B.branch,name:B.name}}let m;try{m=I({lines:t,question:e.question,dayGanZhi:n})}catch(B){throw Q("E_LINES",B&&B.message?B.message:B)}const j=_(m,{direction:e.direction,gender:e.gender});j.liuqin&&(m.useGod=j);let D=null;if(f)try{D=(l({year:f.year,month:f.month,day:f.day,hour:f.hour,minute:f.minute}).monthGanZhi||"")[1]||null}catch{D=null}const U=v(m,{monthBranch:D,dayBranch:m.dayGanZhi.branch});U&&(m.hexStrength=U);const P=c(m,{monthBranch:D,dayBranch:m.dayGanZhi.branch});if(P&&(m.jinTuiPower=P),j.liuqin){const B=b(m,j,{monthBranch:D,dayBranch:m.dayGanZhi.branch});B&&(m.useGodStrength=B);const x=p(m,j,{monthBranch:D,dayBranch:m.dayGanZhi.branch});x&&(m.fushenAccess=x);const C=h(m,j,{monthBranch:D});C&&(m.yingqi=C)}return e.seed!==void 0&&e.seed!==null&&e.seed!==""&&(m.seed=Number(e.seed)),{...m,...i?{asOf:i}:{},summary:gn(m)}}if(a==="almanac"){const t=ae(e.datetime),n=he({year:t.year,month:t.month,day:t.day});return{...n,summary:qn(n)}}if(a==="zeri"){if(typeof e.startDate!="string"||!e.startDate.trim())throw Q("E_INPUT","择日需要 startDate(公历 YYYY-MM-DD,起算日);可另给 days(1–60,默认 30)与 shengXiao(当事人属相)");const t=ve({task:e.task,startDate:e.startDate,days:e.days,shengXiao:e.shengXiao});return{...t,summary:vn(t)}}if(a==="chenggu"){const t=ae(e.datetime),n=/[T\s]\d{1,2}:\d{1,2}/.test(String(e.datetime)),i=Number.isInteger(e.hour)?e.hour:n?t.hour:null;if(i===null||i<0||i>23)throw Q("E_INPUT","称骨必须给时辰:datetime 带时分(如 1990-08-15T10:00),或额外给 hour(0–23)——缺时辰四柱不齐");const f=Me({year:t.year,month:t.month,day:t.day,hour:i,minute:n?t.minute:0});return{...f,summary:Cn(f)}}if(a==="convert"){const t=e.mode==="lunar2solar"?"lunar2solar":"solar2lunar";let n;if(t==="lunar2solar"){if(e.lunarYear==null||e.lunarMonth==null||e.lunarDay==null)throw Q("E_INPUT","农历转公历需要 lunarYear / lunarMonth / lunarDay(闰月另加 isLeapMonth: true)");n=H({mode:t,lunarYear:Number(e.lunarYear),lunarMonth:Number(e.lunarMonth),lunarDay:Number(e.lunarDay),isLeapMonth:e.isLeapMonth===!0})}else{const i=ae(e.datetime);n=H({mode:t,year:i.year,month:i.month,day:i.day})}return{...n,summary:Gn(n)}}if(a==="xiaoliuren"){const t=e.datetime?ae(e.datetime):null,n=Ne({mode:e.mode==="number"?"number":"time",date:typeof e.date=="string"&&e.date.trim()?e.date:t?`${t.year}-${t.month}-${t.day}`:void 0,hour:Number.isInteger(e.hour)?e.hour:t&&/[T\s]\d{1,2}:\d{1,2}/.test(String(e.datetime))?t.hour:void 0,num1:e.num1,num2:e.num2,num3:e.num3,question:e.question});return{...n,summary:Dn(n)}}if(a==="star"){const t=ae(e.datetime),n=Ie({year:t.year,month:t.month,day:t.day});return{...n,summary:Ln(n)}}if(a==="numerology"){const t=ae(e.datetime),n=He({year:t.year,month:t.month,day:t.day});return{...n,summary:Pn(n)}}if(a==="mbti"){if(e.answers===void 0||e.answers===null){const n=tn();return{...n,summary:Rn(n)}}const t=nn({answers:e.answers});return{...t,summary:Zn(t)}}if(a==="trend"){const t=ae(e.datetime),n=_e({...t,gender:de(e.gender),toAge:e.toAge,lateZi:e.lateZi!==!1,trueSolar:e.trueSolar!==!1,dst:e.dst!==!1,longitude:typeof e.longitude=="number"?e.longitude:void 0,address:typeof e.address=="string"?e.address:void 0,geo:e.geo&&typeof e.geo=="object"?e.geo:void 0});return{...n,precision:t.precision,summary:Yn(n)}}if(a==="fengshui"){const t=e.action==="advise"?"advise":e.action==="xuankong"?"xuankong":"natal";if(t==="xuankong"){const f=Le({action:t,sitting:e.sitting,facing:e.facing,...e.period!==void 0?{period:e.period}:{},...Number.isInteger(e.fortuneYear)?{fortuneYear:e.fortuneYear}:{},...typeof e.sittingOffset=="number"?{sittingOffset:e.sittingOffset}:{},...typeof e.sittingDegree=="number"?{sittingDegree:e.sittingDegree}:{},...typeof e.facingOffset=="number"?{facingOffset:e.facingOffset}:{},...typeof e.facingDegree=="number"?{facingDegree:e.facingDegree}:{},...typeof e.fortuneDate=="string"?{fortuneDate:e.fortuneDate}:{},...typeof e.fortuneTime=="string"?{fortuneTime:e.fortuneTime}:{},dst:e.dst!==!1});return{...f,summary:pn(f)}}if(t==="advise"){const f=Le({action:t,sitting:e.sitting,facing:e.facing,...e.datetime?ae(e.datetime):{},...e.gender==="male"||e.gender==="female"?{gender:e.gender}:{},dst:e.dst!==!1});return{...f,summary:pn(f)}}const n=ae(e.datetime),i=Le({action:"natal",year:n.year,month:n.month,day:n.day,gender:de(e.gender),fortuneYear:Number.isInteger(e.fortuneYear)?e.fortuneYear:void 0,dst:e.dst!==!1});return{...i,summary:pn(i)}}if(a==="name"){const t=e.action==="generate"?"generate":"assess",n=e.datetime?ae(e.datetime):Number.isInteger(e.year)&&Number.isInteger(e.month)&&Number.isInteger(e.day)?{year:e.year,month:e.month,day:e.day,...Number.isInteger(e.hour)?{hour:e.hour}:{},...Number.isInteger(e.minute)?{minute:e.minute}:{}}:{},i=Je({action:t,surname:e.surname,givenName:e.givenName,limit:e.limit,charElements:e.charElements&&typeof e.charElements=="object"?e.charElements:void 0,strokeOverrides:e.strokeOverrides&&typeof e.strokeOverrides=="object"?e.strokeOverrides:void 0,surnameStrokes:e.surnameStrokes&&typeof e.surnameStrokes=="object"?e.surnameStrokes:void 0,...n,...e.gender==="male"||e.gender==="female"?{gender:e.gender}:{},...e.datetime?{lateZi:e.lateZi!==!1,trueSolar:e.trueSolar!==!1,dst:e.dst!==!1,longitude:typeof e.longitude=="number"?e.longitude:void 0,address:typeof e.address=="string"?e.address:void 0,geo:e.geo&&typeof e.geo=="object"?e.geo:void 0}:{}});return{...i,summary:Hn(i)}}throw a?Q("E_SYSTEM",`未知体系「${a}」,可选:bazi(四柱八字)、ziwei(紫微斗数)、liuyao(六爻)、meihua(梅花易数)、daliuren(大六壬)、qimen(奇门遁甲)、hepan(合盘)、tarot(塔罗)、almanac(黄历)、zeri(择日)、chenggu(称骨)、xiaoliuren(小六壬)、star(星座)、numerology(生命数字)、mbti(十六型人格问卷)、trend(人生 K 线)、fengshui(风水)、name(起名)、convert(公农历互转)。`):Q("E_INPUT","缺少 system,可选:bazi(四柱八字)、ziwei(紫微斗数)、liuyao(六爻)、meihua(梅花易数)、daliuren(大六壬)、qimen(奇门遁甲)、hepan(合盘)、tarot(塔罗)、almanac(黄历)、zeri(择日)、chenggu(称骨)、xiaoliuren(小六壬)、star(星座)、numerology(生命数字)、mbti(十六型人格问卷)、trend(人生 K 线)、fengshui(风水)、name(起名)、convert(公农历互转)。")}function qn(e){const a=e.ganzhi,t=e.jieQi&&e.jieQi.next?` 下一节:${e.jieQi.next.name} ${e.jieQi.next.date}`:"",n=e.dayGod?`值日:${e.dayGod.name}(${e.dayGod.type}·${e.dayGod.luck})`:"",i=e.xiu?`二十八宿:${e.xiu.name}宿(${e.xiu.luck}·${e.xiu.zheng}·${e.xiu.animal})`:"",f=e.taiShen?`胎神:${e.taiShen}`:"",m=e.positions?`吉神方位:喜神${e.positions.xiShen||"—"} 财神${e.positions.caiShen||"—"} 福神${e.positions.fuShen?e.positions.fuShen.dir:"—"} 阳贵${e.positions.yangGui?e.positions.yangGui.dir:"—"} 阴贵${e.positions.yinGui?e.positions.yinGui.dir:"—"}`:"",j=e.lucky?`吉配生肖:六合${e.lucky.liuhe||"—"} 三合${(e.lucky.sanhe||[]).join("、")||"—"}`:"",D=e.nayin&&e.nayin.day?`日柱纳音:${e.nayin.day.name}`:"",U=(e.hours||[]).map(P=>`${P.zhi}${P.ganZhi.slice(0,1)}·${P.shen}${P.luck==="吉"?"吉":"凶"}`).join(" ");return[`【黄历】${e.meta.date} ${e.meta.weekday} ${e.lunar.text}`,`干支:${a.year}年 ${a.month}月 ${a.day}日 属${a.shengXiao}`,...e.meta.boundaryNote?[` ${e.meta.boundaryNote}`]:[],`建除:${e.zhiXing}日 冲:${e.chong.text}${e.chong.sha?`(${e.chong.sha})`:""} ${n}`,[i,D,f].filter(Boolean).join(" "),`宜:${e.yi.join("、")}`,`忌:${e.ji.join("、")}`,m,j,U?`时辰吉凶:${U}`:"",`节气:上一节 ${e.jieQi.prev?`${e.jieQi.prev.name} ${e.jieQi.prev.date}`:"—"}${t}`,e.dailyHexagram?`每日一卦:${e.dailyHexagram.name} ${e.dailyHexagram.meaning||""}`:"",`口径:${e.meta.scope}`].filter(Boolean).join(`
|
|
89
|
+
`)}function vn(e){const a=`【择日·${e.meta.task}】${e.meta.startDate} 起 ${e.meta.days} 天${e.meta.shengXiao?` 当事人属${e.meta.shengXiao}`:"(未给属相,未做冲煞排除)"}`,t=e.days.slice().sort((n,i)=>i.score-n.score).slice(0,5).map(n=>`· ${n.date} ${n.weekday} ${n.verdict}(${n.score}分) 宜${n.yi.slice(0,3).join("/")} ${n.reasons.join(";")||"无特别加减分"}`);return[a,`推荐日:${e.best.length?e.best.join("、"):"本期无(都不够推荐分)"}`,`可用日:${e.usable.length?e.usable.join("、"):"无"}`,`回避日:${e.avoid.length?e.avoid.slice(0,6).join("、"):"无"}`,"逐日排序:",...t,`口径:${e.meta.scope}`].join(`
|
|
90
|
+
`)}function Cn(e){const a=e.song||{};return[`【称骨】${e.input.solar} ${e.lunar.text}`,`四项:${e.weights.year.label} ${e.weights.month.label} ${e.weights.day.label} ${e.weights.hour.label}`,`合计:${e.total.label}(${e.verdict.band})`,`歌诀(${e.total.label}):${a.text||"—"}`,`释义:${a.plain||"—"}`,`分档白话:${e.verdict.text}`,"口径:骨重与歌诀为通行本口径(各版本歌诀有异文),释义为白话自撰,属民俗娱乐参考。"].join(`
|
|
91
|
+
`)}function Dn(e){return[`【小六壬·${e.meta.mode}】${e.meta.question?`所问:${e.meta.question}`:""}`,e.meta.originText,`落宫:${e.steps.join(" → ")}`,`断语:${e.result.palace}(${e.result.luck}) ${e.result.text}`].join(`
|
|
92
|
+
`)}function Ln(e){return[`【星座】${e.meta.date} ${e.sign.name}(${e.sign.element}·守护星${e.sign.planet})`,`区间:${e.sign.range} 关键词:${e.sign.keywords} 契合:${e.sign.compatible}`,`当日基调:${e.daily.tone}`,e.daily.dims.map(a=>`· ${a.name}:${"★".repeat(a.stars)}${"☆".repeat(5-a.stars)} ${a.text}`).join(`
|
|
93
93
|
`),`幸运色:${e.daily.luckyColor} 幸运数字:${e.daily.luckyNumber}`,"口径:当日基调由日期哈希确定性生成(同日同结果),纯娱乐向。"].join(`
|
|
94
|
-
`)}function
|
|
95
|
-
`)}function
|
|
94
|
+
`)}function Gn(e){const a=e.ganzhi;return[`【公农历转换·${e.meta.mode==="lunar2solar"?"农历 → 公历":"公历 → 农历"}】${e.lunar.text} ⇄ ${e.solar.text} ${e.meta.weekday}`,`干支:${a.year}年 ${a.month}月 ${a.day}日 属${a.shengXiao}${a.springYear&&a.springYear!==a.year?`(春节界为${a.springYear}年)`:""}`,...e.meta.note?[`注:${e.meta.note}`]:[],`口径:${e.meta.scope}`].join(`
|
|
95
|
+
`)}function Pn(e){return[`【生命数字】${e.meta.date}(西方数字学,与八字/紫微不可互证)`,...e.parts.map(a=>`${a.name}:${a.number}(${a.meaning.title}) ${a.meaning.keywords}
|
|
96
96
|
倾向:${a.meaning.tendency}
|
|
97
97
|
课题:${a.meaning.lesson}`)].join(`
|
|
98
|
-
`)}function
|
|
99
|
-
${
|
|
100
|
-
`)}`:"";return[`【十六型人格】${e.type}(${
|
|
101
|
-
`)}function
|
|
102
|
-
`)}function
|
|
98
|
+
`)}function Zn(e){const a=e.dims.map(i=>{const f=i.picked===i.left?i.leftSay:i.rightSay,m=Math.round(i.pct*100);return`${i.left}/${i.right} 取 ${i.picked}(${i.strength} ${m}%,净分 ${i.sum}) ${f}`}),t=e.profile,n=Array.isArray(t.stack)&&t.stack.length?t.stack.map((i,f)=>`${f===0?"主导 ":""}${i.code}`).join(" → ")+`
|
|
99
|
+
${t.stack.map(i=>`${i.code}:${i.say}`).join(`
|
|
100
|
+
`)}`:"";return[`【十六型人格】${e.type}(${t.title})· ${t.keywords} 已答 ${e.answered}/${e.total} 题`,`一句:${t.oneLine}`,"【四维】",...a,`【优势】${t.strengths.join(";")}`,`【留意】${t.blindspots.join(";")}`,`【课题】${t.growth}`,`【认知功能】${n}`,`【工作】${t.work}`,`【关系】${t.love}`,`【学习】${t.study}`,`注:${e.note}`].join(`
|
|
101
|
+
`)}function Rn(e){return[`【十六型人格问卷】${e.total} 题,每题按 1(完全不像我)到 5(很像我)打分`,...e.questions.map(a=>`${a.no}. ${a.text}`),`请把 ${e.total} 个分数按顺序交给 answers(如 [4,2,5,3,…]);可以跳过某些题(填 null),至少答 12 题。`,`注:${e.note}`].join(`
|
|
102
|
+
`)}function Yn(e){const a=e.meta.strength,t=e.meta.dayMaster,n=t&&typeof t=="object"?`${t.stem}(${t.element})`:String(t||"");return[`【人生 K 线】${e.meta.birth} ${e.meta.gender} 日主 ${n} 旺衰 ${a.level}(${a.score})`,e.meta.boundaryNote?`※ ${e.meta.boundaryNote}`:"",`【大运分段】${e.segments.map(i=>`${i.ganZhi} ${i.startAge}-${i.endAge}岁`).join(" ")}`,`【走势】${Array.isArray(e.sparkline)?e.sparkline.join(" "):e.sparkline}`,...e.highlights&&e.highlights.best&&e.highlights.best.length?[`【关键年】最佳 ${e.highlights.best.join(";")}${e.highlights.worst&&e.highlights.worst.length?`
|
|
103
103
|
最需留意 ${e.highlights.worst.join(";")}`:""}`]:[],`※ ${e.disclaimer}`].filter(Boolean).join(`
|
|
104
|
-
`)}function
|
|
105
|
-
`)}if(e.meta.action==="advise"){const
|
|
106
|
-
`)}const a=e.mingGua;return[`【命卦】${a.num}${a.gua}(${a.group}) 方位 ${a.direction}`,`【四吉】${e.luckyDirections.map(
|
|
107
|
-
`)}function
|
|
108
|
-
`);const a=
|
|
109
|
-
`)}function
|
|
110
|
-
基础指纹 ${
|
|
111
|
-
⚠ 不可复算:${
|
|
112
|
-
提示:未固定 asOf,流年/流月随「此刻」变化;要比对请传 asOf。`:""))}if(
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
`+
|
|
104
|
+
`)}function pn(e){if(e.meta.action==="xuankong"){const t=e.meta.period,n=U=>{const P=e.palaces.find(B=>B.palace===U);return`${U}${P.yun}/${P.shan}/${P.xiang}`},i=U=>U.map(n).join(" "),f=e.wangShanWangXiang,m=e.meta.jianXiang,j=e.timeFlying,D=j?`【年月日时】${[["year","年"],["month","月"],["day","日"],["hour","时"]].filter(([U])=>j[U]).map(([U,P])=>`${P}${j[U].centerName}${j[U].fly?`·${j[U].fly}`:""}`).join(" ")}${j.meta&&j.meta.note?`(${j.meta.note})`:""}`:"";return[`【玄空】${e.meta.periodLabel}${m&&m.active?"·替卦":"·下卦"} 坐 ${e.meta.sitting} 向 ${e.meta.facing}`,...m&&m.active?[`【替卦】${m.note}`]:[],`【入中】山盘 ${e.meta.shanCenter.star}${e.meta.shanCenter.name}(${e.meta.shanCenter.fly},${e.meta.shanCenter.basis}${e.meta.shanCenter.mode==="替卦"?`;原运星 ${e.meta.shanCenter.original}${e.meta.shanCenter.replaced?",已替":",用替而未替"}`:""});向盘 ${e.meta.xiangCenter.star}${e.meta.xiangCenter.name}(${e.meta.xiangCenter.fly},${e.meta.xiangCenter.basis}${e.meta.xiangCenter.mode==="替卦"?`;原运星 ${e.meta.xiangCenter.original}${e.meta.xiangCenter.replaced?",已替":",用替而未替"}`:""})`,`【九宫】${i(["巽","离","坤"])}|${i(["震","中","兑"])}|${i(["艮","坎","乾"])}`,`【当运】山星${t}到${e.dangYun.shan.text};向星${t}到${e.dangYun.xiang.text}`,`【表法】${f.byTable===null?"替卦不套正向表;":""}${f.table.length?f.table.join("、"):"无"};${f.note}`,`【合十】山星合十 ${e.heshi.shan.join("、")||"无"};向星合十 ${e.heshi.xiang.join("、")||"无"}`,...D?[D]:[],...e.meta.note?[`※ ${e.meta.note}`]:[],`※ ${e.disclaimer}`].join(`
|
|
105
|
+
`)}if(e.meta.action==="advise"){const t=e.mingMatch?[`【命宅配】${e.mingMatch.text}`]:[`※ ${e.meta.birthNote||"未提供生辰,未做命宅配。"}`];return[`【宅卦】坐 ${e.meta.sitting} 向 ${e.meta.facing} ${e.meta.houseGua}宅(${e.meta.houseGroup})`,`【八星】${e.houseStars.map(n=>`${n.star}·${n.direction}${n.palace?`(${n.palace})`:""}`).join(" ")}`,`【门】${e.layout.door}`,`【灶】${e.layout.stove}`,`【床】${e.layout.bed}`,`【厕】${e.layout.toilet}`,...t,`※ ${e.disclaimer}`].join(`
|
|
106
|
+
`)}const a=e.mingGua;return[`【命卦】${a.num}${a.gua}(${a.group}) 方位 ${a.direction}`,`【四吉】${e.luckyDirections.map(t=>`${t.star}·${t.direction}${t.palace?`(${t.palace})`:""}`).join(" ")}`,`【四凶】${e.unluckyDirections.map(t=>`${t.star}·${t.direction}`).join(" ")}`,...e.yearlyFlying?[`【${e.meta.fortuneYear} 年九宫飞星】中宫 ${e.yearlyFlying.centerName};${e.yearlyFlying.palaces.filter(t=>t.palace!=="中").map(t=>`${t.palace}${t.name}`).join(" ")}`]:[`※ ${e.meta.note||""}`],`※ ${e.disclaimer}`].filter(Boolean).join(`
|
|
107
|
+
`)}function Hn(e){if(e.action==="generate")return[`【候选名】姓 ${e.surname}(${e.gender},喜用 ${e.bazi.favorable.join("、")})${e.bazi.basis}`,...e.candidates.map(j=>{const D=j.wuge&&j.wuge.available?` 五格 ${j.wuge.summary}`:"",U=j.phonetics&&j.phonetics.available?` 音韵 ${j.phonetics.level}(${j.phonetics.tonePattern})`:"";return`${j.rank}. ${j.name} ${j.chars.map(P=>`${P.char}(${P.element})${P.meaning}`).join(" ")}${D}${U}`}),...e.notes.map(j=>`※ ${j}`)].join(`
|
|
108
|
+
`);const a=j=>j.source==="lib"?"字库":j.source==="user"?"用户指定":"未收录",t=j=>{const D=j.element==="未收录"?"未收录(不猜五行)":`${j.element}(${a(j)})`,U=j.favorable===!0?"合喜用":j.favorable===!1?"不合喜用":"不判",P=j.suggest&&j.suggest.length?` 可换:${j.suggest.map(B=>`${B.char}(${B.element})`).join("、")}`:"";return`· ${j.char}:${D}|${U}|${j.meaning}${P}`},n=e.wuge,i=n&&n.available?`【五格】${n.strokes.map(j=>`${j.char}${j.strokes}画`).join("+")}|${n.summary}|三才 ${n.sancai.text}`:`【五格】${n?n.reason:"未算"}`,f=e.phonetics,m=f&&f.available?`【音韵】${f.chars.map(j=>`${j.char}${j.py}${j.tone}`).join(" ")}|声调 ${f.tonePattern}|${f.level}${f.issues.length?`:${f.issues.map(j=>j.text).join(";")}`:""}`:`【音韵】${f?f.reason:"未算"}`;return[`【名字评估】${e.fullName}`,...e.chars.map(t),e.bazi?`【八字】日主 ${e.bazi.dayMaster&&e.bazi.dayMaster.stem?`${e.bazi.dayMaster.stem}(${e.bazi.dayMaster.element})`:e.bazi.dayMaster},旺衰 ${e.bazi.strength.level}(${e.bazi.strength.score}),${e.bazi.basis}`:"",i,m,`【结论】${e.verdict}`,...e.notes.map(j=>`※ ${j}`)].filter(Boolean).join(`
|
|
109
|
+
`)}function Bn(e){const t=[e.summary??JSON.stringify(e,null,2)];if(e.shadow&&e.shadow.id){const n=e.shadow;t.push(`【影子盘】${n.id}(同参数同 ID;版本 ${n.version})
|
|
110
|
+
基础指纹 ${n.baseId}(不含版本,跨版本可比对)`+(n.reproducible===!1?`
|
|
111
|
+
⚠ 不可复算:${n.reason}`:"")+(n.reproducible===!0&&n.asOfPinned===!1&&(n.system==="bazi"||n.system==="ziwei")?`
|
|
112
|
+
提示:未固定 asOf,流年/流月随「此刻」变化;要比对请传 asOf。`:""))}if(e.revision&&((e.revision.applied||[]).length||(e.revision.ignored||[]).length)){const n=e.revision,i=(n.applied||[]).map(f=>`${f.label}:${f.fromDisplay==null?"(未设)":f.fromDisplay} → ${f.display}`);t.push(`【改参】${n.text}${i.length?`
|
|
113
|
+
${i.join(";")}`:`
|
|
114
|
+
没有识别到可改的参数,仍按原参数排盘`}`+((n.ignored||[]).length?`
|
|
115
|
+
未处理:${n.ignored.join(";")}`:""))}if(typeof e.handle=="string"&&e.handle&&t.push(`【排盘句柄】${e.handle}
|
|
116
|
+
追问同一张盘:传 handle + 增量参数(asOf / direction / question,或换 system 看另一套盘),不必重报出生信息。`),Array.isArray(e.trace)&&e.trace.length&&t.push(`【推导链】${be[e.system]||e.system} · ${e.trace.length} 层
|
|
117
|
+
`+e.trace.map((n,i)=>`${i+1}. ${n.field}|${n.result}
|
|
118
|
+
规则:${n.rule} 出处:${n.source}`).join(`
|
|
119
|
+
`)),e.interpret){const n=Sn(e.interpret);n&&t.push(n)}if(e.cross&&t.push(`【八字 × 紫微 交叉验证】
|
|
120
|
+
${Y(e.cross)}`),e.caliber&&Array.isArray(e.caliber.switches)&&e.caliber.switches.length){const n=e.caliber;t.push(`【口径对照】同一组输入,只换一个口径(不判哪套更准,也不改盘面)
|
|
121
|
+
`+n.switches.map(i=>i.error?`· ${i.title}:未能对照(${i.error})`:i.total?`· ${i.title}:${i.currentLabel} → ${i.altLabel}
|
|
118
122
|
${i.summary}`:`· ${i.title}:${i.currentLabel} → ${i.altLabel},本盘无变化`).join(`
|
|
119
|
-
`))}if(e.followup){const
|
|
120
|
-
${
|
|
121
|
-
依据:${
|
|
122
|
-
`+e.past.rows.map(
|
|
123
|
+
`))}if(e.followup){const n=e.followup;t.push(`【追问】${n.question}
|
|
124
|
+
${n.answer}${n.evidence&&n.evidence.length?`
|
|
125
|
+
依据:${n.evidence.join(";")} 置信度:${n.confidence}`:""}`)}if(e.past&&Array.isArray(e.past.rows)&&e.past.rows.length&&t.push(`【验前事】过去 ${e.past.years} 年的流年信号(只读,不改盘)
|
|
126
|
+
`+e.past.rows.map(n=>`· ${n.year} ${n.ganzhi} · ${n.theme}(${n.tier}${n.tenGod?`,${n.tenGod}`:""})`).join(`
|
|
123
127
|
`)+`
|
|
124
|
-
用法:在面板里勾「准 / 不准 / 不确定」后算贴合度;贴合度低时先核对出生时间、时区与晚子时口径。`),e.rectify&&Array.isArray(e.rectify.candidates)){const
|
|
125
|
-
`+
|
|
128
|
+
用法:在面板里勾「准 / 不准 / 不确定」后算贴合度;贴合度低时先核对出生时间、时区与晚子时口径。`),e.rectify&&Array.isArray(e.rectify.candidates)){const n=e.rectify;t.push(`【生时校正】候选时辰 ${n.candidates.length} 个(固定规则打分,只缩小范围)
|
|
129
|
+
`+n.candidates.slice(0,8).map(i=>`· ${i.label} 时柱 ${i.hourGanzhi} / 日柱 ${i.dayGanzhi} · 命中 ${i.hits}/${i.total}`).join(`
|
|
126
130
|
`)+`
|
|
127
|
-
${
|
|
131
|
+
${n.note}`)}return t.filter(Boolean).join(`
|
|
128
132
|
|
|
129
|
-
`)}return{interpret:
|
|
133
|
+
`)}return{interpret:je,DIRECTIONS:ze,DIRECTION_DEFAULT:ke,BRIGHTNESS:w,flowOf:$,geocodeAddress:S,resolveAddress:N,buildBazi:E,buildLiuyao:I,tossLines:q,followup:O,askPrompt:M,pastSignals:J,verifyFit:ne,rectifyBirth:ge,crossCheck:k,crossText:Y,crossSection:G,buildAlmanac:he,buildZeri:ve,buildChenggu:Me,buildXiaoliuren:Ne,buildStar:Ie,buildNumerology:He,buildConvert:H,buildTrend:_e,buildFengshui:Le,buildName:Je,buildTrace:Xe,traceMarkdown:$e,encodeHandle:ue,decodeHandle:me,resolveHandle:oe,parseDateTime:ae,chartFingerprint:wn,shadowSnapshot:Nn,shadowDiff:Tn,compute:yn,interpretText:Sn,caliberCompare:En,renderText:Bn}})(),{Engine:T.index}}});
|