dsh-metaphysics 0.0.0-stage → 0.13.4

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 ADDED
@@ -0,0 +1,71 @@
1
+ # 更新记录
2
+
3
+ 版本按「一组可感知的改动」发,README 与市场条目描述随能力同步。
4
+
5
+ ## 0.13.4
6
+
7
+ - 新增 `npm run build` / `npm run build:html` / `npm test`:`tools/test-all.mjs` 顺序跑完 20 个测试文件并汇总退出码,省掉手敲一长串 `node test/*.mjs`
8
+ - `daliuren` / `meihua` 两处旧测试统一成 `PASS/FAIL` 计数风格(此前只打印 `all pass`,CI 里数不出断言数)
9
+ - 补 `CHANGELOG.md`;`engines.node` 声明 `>=18`;SUBMIT 文档补提交状态与阻塞说明
10
+ - 新增 GitHub Actions(`.github/workflows/test.yml`):先构建并校验 `client.js` 与源码一致,再跑全部回归
11
+
12
+ ## 0.13.3
13
+
14
+ - **工具层打通「解析与详解」**:`compute()` 把 `question` / `direction` 透传给 `interpret()`;工具 schema 新增 `withInterpret`、`direction`(综合/财运/事业/感情/健康/学业/出行)与 `asOf`(流月流日流时的基准时刻);`renderText()` 在带解析时附上解析正文与免责声明
15
+ - 修 `layout` 测试沿用旧类名 `.pn`(0.13.2 已改 `.ft-pn`)导致的假失败
16
+ - 未知体系报错改为列出六种体系(原文案仍写着「紫微斗数尚未接入」)
17
+ - `package.json` 补 `author` / `repository` / `homepage` / `bugs`;中英文案重写
18
+ - 市场条目描述同步到当前能力(主星庙旺、流月流日流时、解析)
19
+ - README 注明真太阳时只按经度修正、未含历史时区与夏令时
20
+
21
+ ## 0.13.2
22
+
23
+ - 叶子类名按语义补前缀(`bz-` / `dt-` / `flow-` / `ft-` / `ct-` / `hb-` / `ss-` / `ask-` 等 192 处),消除泛词类名复用隐患
24
+
25
+ ## 0.13.1
26
+
27
+ - 修三个潜伏的结构性缺陷:孤立「身」角标残骸、解析详解块调色板失效、320px 下六爻盘横向溢出
28
+ - 打印时折叠的详解自动展开;宫格补 `aria-expanded` 同步
29
+
30
+ ## 0.13.0
31
+
32
+ - 八字四柱表按专业排盘版式重排(四列并排、无竖线、干支大字、十神分组着色、藏干逐行)
33
+ - 末行新增五行旺相休囚死;修 `td.big` 选择器长期失效
34
+
35
+ ## 0.12.0
36
+
37
+ - 紫微补流月 / 流日 / 流时(斗君逐级下推),接入盘面与解读
38
+
39
+ ## 0.11.0
40
+
41
+ - 深色主题(盘面颜色全变量化)、存为 PDF / 打印、修 390px 下塔罗 tab 被裁
42
+
43
+ ## 0.10.0
44
+
45
+ - 紫微宫位可点击展开详情、三方四正联动;修「身宫整格消失」的类名撞车
46
+
47
+ ## 0.9.0
48
+
49
+ - 紫微十四主星加庙旺得利平不陷亮度标注;塔罗面板可选 1/3/5 张牌阵
50
+
51
+ ## 0.8.x
52
+
53
+ - 0.8.0 起卦 tab 新增「所问之事 + 询问方向」,解读按问题展开;解析区可折叠
54
+ - 0.8.1 紫微解读补化科、流年四化不再截断
55
+ - 0.8.2 手机竖屏紫微盘恢复 4×4 宫盘
56
+ - 0.8.3 竖屏布局改用容器查询,修窄侧栏下盘面挤成一团
57
+
58
+ ## 0.7.0
59
+
60
+ - 新增「解析与详解」模块:五维度解析、卦象卦辞爻辞动爻、塔罗连贯解读,带免责提示
61
+
62
+ ## 0.6.0
63
+
64
+ - 六爻 / 梅花 / 六壬面板重绘(真爻线、体用标注、天地盘方盘);输入区区分出生时间与起卦时刻
65
+
66
+ ## 0.5.0
67
+
68
+ - 八字 42 神煞(七类、双查法)+ 格局 / 用神 / 大运流年评分
69
+ - 紫微 34 格局、大限一览、流年四化
70
+ - 塔罗模块重写:78 张牌、牌阵位义、6–8 段解读、体系声明
71
+ - 首个进入插件市场投稿流程的版本(awesome-dsh-plugin PR)
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 dsh-metaphysics contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,3 +1,185 @@
1
- # Temporary Holding Version
1
+ # dsh-metaphysics · 命理排盘
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ Chinese metaphysics for [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness): BaZi (Four Pillars), Zi Wei Dou Shu, LiuYao, MeiHua YiShu, Da Liu Ren and Tarot.
4
+
5
+ 给 DeepSeek Harness 用的命理插件:**四柱八字、紫微斗数、六爻纳甲、梅花易数、大六壬、塔罗牌**,同时提供 Agent 工具与 Web 面板。
6
+
7
+ > 传统命理与占卜属文化娱乐用途,不构成医疗、投资、法律或生死判断的依据。
8
+
9
+ ## 插件市场备注
10
+
11
+ **命理排盘 · 八字 / 紫微 / 六爻 / 梅花 / 六壬 / 塔罗** —— 一个插件把六套体系装进 Harness:对话里说一句就排盘,侧栏还有可视化面板。
12
+
13
+ - **八字**:42 颗神煞(分吉凶七类,天干星双查年干与日干、三合星双查年支与日支,悬停看查法)、日主旺衰量化并给出依据、格局与用神(月令取格 + 化气/专旺/从格 + 十神组合,每条附判定依据)、大运流年按喜忌五行与十神打分(大吉/吉/平/忌/大忌,可看逐项理由)
14
+ - **紫微**:十四主星与 49 星曜(主星带**庙旺得利平不陷**亮度标注)、四层十二神、生年四化与宫干自化、34 条格局(标吉/忌倾向与依据)、大限一览、流年四化落宫;本命/大限/流年三视图一键切换,命宫红框、三方四正浅底标出;竖屏与窄侧栏保持 4×4 宫盘(宫位相对位置不丢)
15
+ - **六爻**:摇卦或手动爻值、纳甲、六亲、六神、世应;本卦/变卦并列、真爻线渲染(阳爻整条、阴爻断开、动爻描红)
16
+ - **梅花**:时间/数字起卦、体用生克分档、互变错综四卦齐出,本卦上下卦分块标体用
17
+ - **大六壬**:天地盘 4×4 方盘(天盘大字、地盘小字、天将右下)、四课、九宗门三传、格局(贼克/元首/重审/伏吟/返吟/八专等)
18
+ - **塔罗**:78 张全牌、1/3/5 张牌阵,逐牌牌位义 + 整体解读,体系与逆位口径写明
19
+ - 全部本地计算,不收集数据;结果供文化娱乐参考,不作医疗、投资、法律或生死判断
20
+
21
+ ## 功能
22
+
23
+ ### 四柱八字(bazi)
24
+ - 四柱、藏干、十神、纳音、空亡(**逐柱**)
25
+ - **十二长生**:地势(日干对各支)、自坐(各柱干对本支)
26
+ - **神煞(42 星,7 类)**:贵人(天乙、太极、天德、月德、月德合、福星、天官、国印、天厨、天医)、文星(文昌、德秀)、婚姻(桃花、红鸾、天喜、孤辰、寡宿、金舆)、性情(华盖、羊刃、飞刃、魁罡、童子煞、六秀日、日德、日贵)、事业(禄神、将星、驿马)、凶煞(劫煞、灾煞、亡神、空亡、十恶大败、阴差阳错、四废日、流霞、天罗、地网)、格局(天赦日、金神、三奇贵人)。天干类双查年干与日干,三合类双查年支与日支;每颗星附查法依据,界面悬停可见
27
+ - **日主旺衰**:月令权重 + 通根 + 天干帮扶,量化分档,并给出依据(季节权重、通根地支、帮扶/耗泄明细)
28
+ - **格局与用神**:月令取格(建禄/阳刃/月劫/十神格)+特格(化气、专旺、从格)+十神组合(官印、杀印、食伤生财、财官、伤官配印、伤官见官、羊刃驾杀),每条附判定依据;用神取扶抑为主 + 简化调候提示,并列出喜忌十神
29
+ - **行运吉凶**:大运、流年按喜忌五行与十神加权评分,分大吉/吉/平/忌/大忌五档,悬停可看逐项理由
30
+ - **干支关系**:五合、相冲、相克;六合、三合半合、三会半会拱会、冲、害、破、刑
31
+ - 大运、流年(含与原局地支的关系)、真太阳时(按出生地经度修正)
32
+ - **四柱表版式**:按专业排盘习惯——年/月/日/时四柱并排固定成四列,左侧一列窄行名,列间不画竖线、只用极淡横线分行;天干地支作大字并随五行着色,日柱表头单独标红;藏干按「干·五行」逐行列出,十神按比劫/食伤/财/官杀/印五类分组着色;末行给**五行旺相休囚死**(以月令当令五行为基准,依次推出 旺/相/休/囚/死 五态)
33
+
34
+ ### 紫微斗数(ziwei)
35
+ - 农历(定朔 + 冬至置闰)、命宫、身宫、五行局
36
+ - 紫微/天府、十四主星、六吉六煞、禄存天马、**49 颗星曜**
37
+ - **十四主星庙旺得利平不陷**:按《紫微斗数全书》系通行表标注(各家在太阳/太阴少数宫位有出入,只标主星、不硬标辅星),庙旺标绿、得利平标灰、不陷标红
38
+ - 四层十二神:长生、博士、将前、岁前
39
+ - 生年四化、宫干自化、大限、小限、流年(命宫、三方四正、流禄流羊流陀)、斗君
40
+ - **格局识别(34 条,附判定依据与吉/忌倾向)**:紫府同宫、紫府朝垣、君臣庆会、极向离明、七杀朝斗、英星入庙、石中隐玉、巨日同宫、日月夹命、日月对照、左右/昌曲/魁钺夹命、三奇嘉会、双禄朝垣、机月同梁、府相朝垣、禄马交驰、月朗天门、日出扶桑、武贪同行、火贪铃贪;忌格:火铃夹命、羊陀夹命、羊陀夹忌、铃昌陀武、命里逢空、马头带箭、天罗地网、刑囚夹印、泛水桃花
41
+ - **大限一览**:十二限排序列出宫位、年龄区间、宫干四化落宫、三方主星;**流年四化**:逐年给出四化星落宫与命宫三方主星
42
+ - **流月 / 流日 / 流时**:由流年斗君逐级下推——斗君起正月顺行至该农历月,流月命宫起初一顺行至该农历日,流日命宫起子时顺行至该时辰;每层给落宫、宫干四化落宫与三方四正。基准时刻默认取本机当前时刻(可用 `asOf` 指定以便复现)
43
+ - **宫位点击展开详情**:点任一宫摊开该宫完整星曜(含亮度、四化)、宫干四化、四层十二神、大限/小限,并把三方四正(三合两宫 + 对宫)一起列出、在盘上同步描边;空宫标注「借对宫 XX」;再点一次收起
44
+ - 昌曲专论:与丑未的关系、是否入命三方、吸收面清杂
45
+
46
+ ### 六爻(liuyao)
47
+ - 摇卦或手动爻值、本卦/变卦、纳甲、六亲、六神、世应
48
+ - 面板:本卦与变卦并列对照,真爻线渲染(阳整、阴断、动描红),世应与动爻一目了然
49
+ - 只需起卦时刻(取日辰定六神、月建定旺衰),与出生时间无关
50
+
51
+ ### 梅花易数(meihua)
52
+ - 时间起卦(年月日时数)或数字起卦(两数取余、可手动指定动爻)
53
+ - 本卦 / 互卦 / 变卦 / 错卦 / 综卦五盘齐出;本卦上下卦分块并标「体」「用」
54
+ - 体用生克按五行判吉凶:用生体大吉、比和吉、体克用吉、体生用耗、用克体凶
55
+
56
+ ### 大六壬(daliuren)
57
+ - 月将加时起天地盘(4×4 方盘:天盘大字、地盘小字、天将右下)
58
+ - 四课(干上/支上递推,标注生克与天将)、九宗门发三传(贼克·元首·重审·比用·涉害·遥克·昴星·别责·八专·伏吟·返吟)
59
+ - 昼夜贵人(以天盘临方定顺逆)、旬空标注、格局名与断语
60
+
61
+ ### 塔罗(tarot)
62
+ - 78 张全牌、正逆位、1/3/5 张牌阵(面板可直接选牌阵,换张数自动重抽)
63
+ - 每张牌给编号、牌阶级、核心义与牌阵位义;解读 6–8 段(逐牌、大阿卡纳占比、五行分布、宫廷牌、正逆位比例、关键牌、建议)
64
+ - 明确标注体系:RWS 编号、黄金黎明元素归属、逆位取「弱化/未顺/内化」而非凶断
65
+
66
+ ### 解析与详解(interpret)
67
+ 每个体系的排盘结果下方都会跟一个「解析与详解」模块,帮你把盘面翻译成能看懂、能照着做的事。对话工具里加 `withInterpret: true` 即可一并返回。
68
+
69
+ - **结构化输出**:`{ moduleType, system, title, lead, dimensions[], sections[], disclaimer }`;`moduleType` 为 `natal`(命盘)/ `divination`(卦象)/ `card`(牌阵),`dimensions` 固定五个维度
70
+ - **五个维度**:整体运势、工作与职业选择、事业发展、爱情与感情、健康状况——每项给「解读 + 行动建议」
71
+ - **卦象**(六爻/梅花/大六壬)额外给:卦名与卦辞大意、爻辞与动爻、体用关系、互卦与变卦、落到生活里
72
+ - **塔罗**额外给:整盘连贯解读(把几张牌串成一条线,避免各张互相矛盾)与牌面结构(大阿卡纳占比、元素分布、正逆位)
73
+ - **文案口径**:第二人称、温和、只给倾向与建议,不作绝对判断;底部保留理性参考的免责提示
74
+ - **解读区可折叠**:内容较长(五维度 + 体系模块),点标题栏或箭头即可展开/收起;宽屏默认展开、窄屏默认收起,手动切过之后按你的选择来
75
+
76
+ ### 所问之事与询问方向(六爻 / 梅花 / 大六壬 / 塔罗)
77
+
78
+ 问事的体系要先说清问什么,解读才有落点:
79
+
80
+ - **所问之事**:必填,支持多行,占位示例「用一句话描述所问之事,例如:今年是否适合换工作?」;不填就起卦会给提示,不会给一份没有落点的解读
81
+ - **询问方向**:下拉选择——综合(默认)、财运、事业、感情、健康、学业、出行。选项表 `DIRECTIONS` 由 `engine/interpret.js` 导出,界面与解析层共用一份,不两处维护
82
+ - **联动方式**:`interpret(result, { question, direction })`。所选方向对应的维度会被提到最前并标注「最贴近你的问题」,正文点明你所问的事,引语也会回显;解读开头固定一行「问题:xxx | 询问方向:xxx」供你确认
83
+ - **不重摇卦**:改问题或方向只重出解读,卦象本身不动
84
+ - 命盘类(八字 / 紫微)不问事,不显示这两项,也不会出现回显行
85
+
86
+ ## 安装
87
+
88
+ ### 从 npm
89
+
90
+ ```bash
91
+ dsh plugin install dsh-metaphysics
92
+ ```
93
+
94
+ 或在 Harness 的「插件」面板里搜索 `dsh-metaphysics`。
95
+
96
+ ### 从本地目录
97
+
98
+ ```bash
99
+ dsh plugin install /path/to/dsh-metaphysics
100
+ ```
101
+
102
+ ### 从 tgz
103
+
104
+ ```bash
105
+ dsh plugin install ./dsh-metaphysics-0.6.0.tgz
106
+ ```
107
+
108
+ ## 使用
109
+
110
+ ### 对话里
111
+
112
+ 直接说:
113
+
114
+ - 「排个八字:1990-05-12 14:30,女,河北石家庄」
115
+ - 「排紫微盘:1996-01-19 07:40,男,新疆喀什」
116
+ - 「帮我起一卦,问这个项目能不能成」
117
+ - 「梅花易数,报两个数 17 和 29」
118
+ - 「起个六壬课,问这周谈判顺利吗」
119
+ - 「抽三张塔罗,问这份工作要不要接」
120
+
121
+ 模型会调用 `metaphysics_chart` 工具,参数 `system` 取 `bazi` / `ziwei` / `liuyao` / `meihua` / `daliuren` / `tarot`。
122
+ 注意:八字与紫微要**出生时间**;六爻、梅花、六壬只要**起卦时刻**(通常就是当下),与出生时间无关。
123
+
124
+ ### 面板
125
+
126
+ 重启后侧栏出现**太极图标**,点开是排盘面板,支持以上四类。
127
+
128
+ ### 深色与导出
129
+
130
+ - **深色主题**:跟随系统(`prefers-color-scheme`),盘面与页面同时切换,只换一套 CSS 变量,元素规则一行不改
131
+ - **打印永远是浅色**:深色主题下直接打印会得到一整页耗墨的深底 PDF,所以深色规则用 `@media screen` 限定
132
+ - **存为 PDF / 打印**:结果下方有按钮,走浏览器原生打印(不引第三方库);A4 纵向、隐藏输入区与按钮、盘面与解读不被撕页、四化色块保留颜色。折叠着的「解析与详解」在打印时会自动展开,不会只印出一个标题栏
133
+
134
+ ## 精度与口径
135
+
136
+ - **节气**:Meeus 低精度太阳黄经,与公开历书相差 −3 ~ −8 分钟;出生时刻距「节」不足 15 分钟时会提示复核
137
+ - **农历**:定朔(Meeus 第 49 章,误差约 1 分钟)+ 冬至所在月为十一月 + 无中气置闰
138
+ - **真太阳时**:经度差 + 均时差;内置 34 个省会 + 200 个地级市坐标(±0.2°),地址更细时可开「联网精确到区县」(Nominatim)。只按经度修正,**未含历史时区与夏令时**:海外出生请先把当地钟表时间换算成东八区标准时再输入
139
+ - **紫微四化**:中州派常用表(庚干作太阳禄、武曲权、太阴科、天同忌)
140
+ - **日主旺衰**:量化算法,非唯一流派
141
+
142
+ ## 数据与隐私
143
+
144
+ - 全部计算在本地完成
145
+ - 唯一可能的网络请求:开启「联网精确到区县」时的 OpenStreetMap Nominatim 查询;失败即回退内置坐标表
146
+ - 不收集、不上传任何数据
147
+
148
+ ## 开发
149
+
150
+ ```bash
151
+ npm run build # 生成 client.js(浏览器端产物)
152
+ npm run build:html # 生成独立的 命理排盘.html(可离线双击使用)
153
+ npm test # 顺序跑完 test/ 下全部 *.test.mjs 并汇总
154
+ ```
155
+
156
+ 也可以直接调脚本:`node tools/build-client.mjs`、`node tools/build-html.mjs`、`node tools/test-all.mjs`。
157
+ `client.js` 是构建产物,不要手改;改动记录见 [CHANGELOG.md](CHANGELOG.md)。
158
+
159
+ ### 样式命名约定
160
+
161
+ 面板的 CSS 是以 `<style>` 注入到宿主页面的,**没有 shadow DOM 隔离**,所以每个类名都带命名空间前缀,避免和宿主页面的同名元素互相染色:
162
+
163
+ | 前缀 | 归属 |
164
+ |---|---|
165
+ | `pp-` | 紫微盘骨架(宫格、宫位选中、三方四正、身宫) |
166
+ | `bz-` | 四柱八字表(干支大字、藏干、十神、五行旺衰) |
167
+ | `dt-` | 宫位详情面板 |
168
+ | `flow-` | 流月 / 流日 / 流时 |
169
+ | `ct-` / `ft-` | 盘心 / 盘脚 |
170
+ | `mp-` | 各模块根容器:`mp-it`(解析)、`mp-dl`(六壬)、`mp-hy`(六爻)、`mp-mh`(梅花)、`mp-tt`(塔罗)、`mp-hex`(爻线)、`mp-trib`(体用) |
171
+ | `hb-` / `tritag-` | 卦盒 / 体用标签 |
172
+ | `dl-` / `ss-` / `ssx-` / `ssg-` | 六壬盘块 / 神煞族 |
173
+ | `ask-` | 所问之事回显 |
174
+
175
+ 两条硬规矩:
176
+
177
+ - **不用泛词做类名**(`.body`、`.big`、`.s`、`.p`、`.on`、`.it` 这类)。名字越泛,越容易在同一个文件里被两处语义共用——本项目已经栽过两次:`.pp-body` 同时是「整块视图容器」和「身宫格」,一次导致身宫整格消失,另一次的 `::after` 残骸在页面左上角飘出一个孤立的「身」方块。
178
+ - **模块根类名必须带前缀**。裸用的 `.it` / `.dl` / `.hy` 一旦注入全局,宿主页面的同名元素会被一起改写。
179
+
180
+ *2026-10 做过一轮全量整改:199 个类名按语义分组补齐前缀(约 540 处替换),计算逻辑一行未动,20 组断言与全量视口扫描全绿。*
181
+
182
+
183
+ ## License
184
+
185
+ MIT