guanwei 1.1.1
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/LICENSE +21 -0
- package/README.en.md +202 -0
- package/README.md +247 -0
- package/dist/assets/index-CsOD5rSo.js +102 -0
- package/dist/assets/index-CsOD5rSo.js.map +1 -0
- package/dist/assets/index-DQx62TUr.css +1 -0
- package/dist/favicon.svg +12 -0
- package/dist/index.html +15 -0
- package/eslint.config.js +28 -0
- package/index.html +25 -0
- package/package.json +96 -0
- package/postcss.config.js +10 -0
- package/public/favicon.svg +12 -0
- package/scripts/guanwei +245 -0
- package/scripts/install.sh +79 -0
- package/scripts/release.sh +42 -0
- package/scripts/setup.bat +36 -0
- package/scripts/setup.sh +123 -0
- package/server/src/data/db.json +12059 -0
- package/server/src/data/guanwei.db +0 -0
- package/server/src/data/lifeContext.ts +423 -0
- package/server/src/data/spreads.ts +255 -0
- package/server/src/data/tarotCards.ts +2353 -0
- package/server/src/index.ts +71 -0
- package/server/src/routes/ai.ts +376 -0
- package/server/src/routes/divine.ts +140 -0
- package/server/src/routes/hour.ts +40 -0
- package/server/src/routes/tarot.ts +129 -0
- package/server/src/routes/users.ts +140 -0
- package/server/src/services/chartBrief.ts +131 -0
- package/server/src/services/divineStore.ts +188 -0
- package/server/src/services/hourInference.ts +150 -0
- package/server/src/services/llmProvider.ts +181 -0
- package/server/src/services/promptBuilder.ts +327 -0
- package/server/src/services/relativesCheck.ts +139 -0
- package/server/src/services/sixRelatives.ts +70 -0
- package/server/src/services/skills.ts +116 -0
- package/server/src/types/index.ts +104 -0
- package/server/src/utils/semanticAnalyzer.ts +555 -0
- package/server/src/utils/tarotEngine.ts +849 -0
- package/server/tsconfig.json +18 -0
- package/shared/core/data/classics.ts +276 -0
- package/shared/core/data/courses.ts +211 -0
- package/shared/core/data/duanyu.ts +148 -0
- package/shared/core/data/ganzhi.ts +53 -0
- package/shared/core/data/gua64.ts +93 -0
- package/shared/core/data/liuren.ts +18 -0
- package/shared/core/data/liuyao.ts +73 -0
- package/shared/core/data/qimen.ts +27 -0
- package/shared/core/data/region-full.ts +3 -0
- package/shared/core/data/region.ts +310 -0
- package/shared/core/data/tarotSpreads.ts +78 -0
- package/shared/core/data/xiaoliuren.ts +18 -0
- package/shared/core/data/ziwei.ts +97 -0
- package/shared/core/data/zodiac.ts +20 -0
- package/shared/core/engine/astrology.ts +169 -0
- package/shared/core/engine/bazi.ts +306 -0
- package/shared/core/engine/calendar.ts +127 -0
- package/shared/core/engine/daily.ts +133 -0
- package/shared/core/engine/liuren.ts +86 -0
- package/shared/core/engine/liuyao.ts +93 -0
- package/shared/core/engine/meihua.ts +87 -0
- package/shared/core/engine/qimen.ts +78 -0
- package/shared/core/engine/questionFit.ts +94 -0
- package/shared/core/engine/tarot.ts +69 -0
- package/shared/core/engine/trueSolarTime.ts +86 -0
- package/shared/core/engine/xiaoliuren.ts +19 -0
- package/shared/core/engine/ziwei.ts +217 -0
- package/shared/core/engine/ziweiInterpret.ts +161 -0
- package/shared/core/types.ts +206 -0
- package/src/App.tsx +69 -0
- package/src/arts/registry.ts +31 -0
- package/src/assets/react.svg +1 -0
- package/src/components/Backdrop.tsx +27 -0
- package/src/components/BambooArt.tsx +41 -0
- package/src/components/CalendarInput.tsx +131 -0
- package/src/components/DateInput.tsx +103 -0
- package/src/components/Disclaimer.tsx +12 -0
- package/src/components/Empty.tsx +8 -0
- package/src/components/ErrorBoundary.tsx +38 -0
- package/src/components/HomeSideAnchor.tsx +62 -0
- package/src/components/InkVein.tsx +10 -0
- package/src/components/LifeEventsInput.tsx +47 -0
- package/src/components/LocationPicker.tsx +117 -0
- package/src/components/Motes.tsx +65 -0
- package/src/components/Navigation.tsx +80 -0
- package/src/components/ProfileForm.tsx +40 -0
- package/src/components/ProfilePicker.tsx +40 -0
- package/src/components/QuestionFields.tsx +47 -0
- package/src/components/ReportView.tsx +211 -0
- package/src/components/ResultCard.tsx +40 -0
- package/src/components/SealButton.tsx +18 -0
- package/src/components/SiteFooter.tsx +17 -0
- package/src/components/SiteNav.tsx +103 -0
- package/src/components/SongDialog.tsx +64 -0
- package/src/components/SongSearchSelect.tsx +81 -0
- package/src/components/SongSelect.tsx +61 -0
- package/src/components/StarField.tsx +119 -0
- package/src/components/TarotCard.tsx +129 -0
- package/src/components/TimeShichenInput.tsx +29 -0
- package/src/components/arts/AstrologyArt.tsx +141 -0
- package/src/components/arts/BaziArt.tsx +269 -0
- package/src/components/arts/LiurenArt.tsx +87 -0
- package/src/components/arts/LiuyaoArt.tsx +111 -0
- package/src/components/arts/MeihuaArt.tsx +105 -0
- package/src/components/arts/QimenArt.tsx +86 -0
- package/src/components/arts/TarotArt.tsx +110 -0
- package/src/components/arts/XiaoliurenArt.tsx +93 -0
- package/src/components/arts/ZiweiArt.tsx +296 -0
- package/src/data/arts.ts +84 -0
- package/src/data/lifeContext.ts +423 -0
- package/src/data/sample-report.json +146 -0
- package/src/data/shichen.ts +21 -0
- package/src/data/spreads.ts +255 -0
- package/src/data/tarotCards.ts +2353 -0
- package/src/hooks/useAIInterpret.ts +76 -0
- package/src/hooks/useDivine.ts +39 -0
- package/src/hooks/useTheme.ts +29 -0
- package/src/index.css +190 -0
- package/src/lib/utils.ts +6 -0
- package/src/main.tsx +12 -0
- package/src/pages/AboutPage.tsx +25 -0
- package/src/pages/AcademyPage.tsx +128 -0
- package/src/pages/AstrologyPage.tsx +33 -0
- package/src/pages/AuthPage.tsx +263 -0
- package/src/pages/BaZiPage.tsx +33 -0
- package/src/pages/ClassicsPage.tsx +120 -0
- package/src/pages/DemoPage.tsx +161 -0
- package/src/pages/HistoryPage.tsx +133 -0
- package/src/pages/Home.tsx +179 -0
- package/src/pages/HomePage.tsx +174 -0
- package/src/pages/ModulePage.tsx +320 -0
- package/src/pages/SpreadEditor.tsx +230 -0
- package/src/pages/SpreadEditorPage.tsx +105 -0
- package/src/pages/SpreadLibrary.tsx +199 -0
- package/src/pages/SpreadLibraryPage.tsx +17 -0
- package/src/pages/TarotPage.tsx +738 -0
- package/src/pages/ZiWeiPage.tsx +33 -0
- package/src/services/api.ts +342 -0
- package/src/stores/useDivinationStore.ts +22 -0
- package/src/styles/song.css +1066 -0
- package/src/styles/tokens.css +60 -0
- package/src/types/index.ts +104 -0
- package/src/utils/astrologyCalc.ts +61 -0
- package/src/utils/comboEngine.ts +134 -0
- package/src/utils/dst.ts +24 -0
- package/src/utils/panTone.ts +206 -0
- package/src/utils/recordStore.ts +60 -0
- package/src/utils/semanticAnalyzer.ts +555 -0
- package/src/utils/spreadStorage.ts +32 -0
- package/src/utils/storage.ts +27 -0
- package/src/utils/tarotEngine.ts +849 -0
- package/src/utils/userStore.ts +234 -0
- package/src/vite-env.d.ts +1 -0
- package/tailwind.config.js +52 -0
- package/tsconfig.json +40 -0
- package/vite.config.ts +34 -0
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
// 九术 Agent 与 Skills 编排:不同 agent 沉淀不同 skills 调用 AI
|
|
2
|
+
|
|
3
|
+
export interface Skill {
|
|
4
|
+
id: string;
|
|
5
|
+
name: string;
|
|
6
|
+
instruction: string; // 该 skill 的解读指令
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export interface AgentDef {
|
|
10
|
+
artId: string;
|
|
11
|
+
name: string; // Agent 名(如:紫微斗数专家)
|
|
12
|
+
role: string; // 人设
|
|
13
|
+
skills: Skill[];
|
|
14
|
+
classics: string;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export const AGENTS: Record<string, AgentDef> = {
|
|
18
|
+
bazi: {
|
|
19
|
+
artId: 'bazi', name: '子平命理师',
|
|
20
|
+
role: '深谙子平术的资深命理师,精于《渊海子平》《滴天髓》《子平真诠》,为人谦和温润。语言通俗易懂,能用通俗的语言解读命盘结果。',
|
|
21
|
+
classics: '《渊海子平》《滴天髓阐微》《三命通会》',
|
|
22
|
+
skills: [
|
|
23
|
+
{ id: 'pillars', name: '四柱解析', instruction: '解读年/月/日/时四柱干支,含纳音、五行配置与四柱各自所主(祖上/父母/自身/子女)。' },
|
|
24
|
+
{ id: 'balance', name: '五行喜忌', instruction: '依日主强弱(身强/身弱/中和)推五行喜忌,指出宜引宜戒之五行及调候要点。' },
|
|
25
|
+
{ id: 'shishen', name: '十神格局', instruction: '解析四柱十神配置,判格局倾向(官杀/财/印/食伤/比劫),结合月令提纲述性情与事业倾向。' },
|
|
26
|
+
{ id: 'dayun', name: '大运流年', instruction: '结合日主喜忌谈行运起伏的总体方向(如有大运表则按表分述各阶段)。' },
|
|
27
|
+
{ id: 'stages', name: '人生阶段', instruction: '按根苗花果(年/月/日/时)分述幼年、青年、中年、暮年各阶段的人生侧重与建议,需含学业、事业、爱情、财富。' },
|
|
28
|
+
],
|
|
29
|
+
},
|
|
30
|
+
ziwei: {
|
|
31
|
+
artId: 'ziwei', name: '紫微斗数专家',
|
|
32
|
+
role: '紫微斗数名家,通晓十四主星与十二宫垣,师承陈抟一脉,言语平和而洞察入微,语言通俗易懂,能用通俗的语言解读紫微盘结果,。',
|
|
33
|
+
classics: '《紫微斗数全书》',
|
|
34
|
+
skills: [
|
|
35
|
+
{ id: 'structure', name: '命盘结构', instruction: '解读命宫地支、五行局、紫微落宫与大限顺逆,概述盘面骨架。' },
|
|
36
|
+
{ id: 'stars', name: '星曜落宫', instruction: '逐宫解析十四主星落宫之义(含得地与否),命宫主星组合重点详解。' },
|
|
37
|
+
{ id: 'palaces', name: '十二宫解读', instruction: '依十二宫主题(命/兄弟/夫妻/子女/财帛/疾厄/迁移/仆役/官禄/田宅/福德/父母)逐宫言其吉凶侧重。' },
|
|
38
|
+
{ id: 'dayun', name: '大限流年', instruction: '解读当前大限(年龄段与宫位主星)与流年宫位主星,给出行运建议。' },
|
|
39
|
+
{ id: 'stages', name: '人生阶段', instruction: '按大限序列分述各人生阶段的主题与功课,指出关键转折期,需含学业、事业、爱情、财富。' },
|
|
40
|
+
],
|
|
41
|
+
},
|
|
42
|
+
qimen: {
|
|
43
|
+
artId: 'qimen', name: '奇门遁甲师',
|
|
44
|
+
role: '精于奇门遁甲的策略师,熟悉九宫八门九星与三奇六仪,善析时机方位,语言通俗易懂,能用通俗的语言解读奇门盘结果。',
|
|
45
|
+
classics: '《奇门遁甲统宗》《烟波钓叟歌》',
|
|
46
|
+
skills: [
|
|
47
|
+
{ id: 'board', name: '局式解析', instruction: '解读阴阳遁局数、日时干支、旬首与九宫布盘(奇仪/门/星)。' },
|
|
48
|
+
{ id: 'doors', name: '门星神组合', instruction: '解析值符值使与八门九星组合之义,指出吉门凶门所在方位。' },
|
|
49
|
+
{ id: 'use', name: '用神方位', instruction: '依所问何事(出行/求财/讼事/功名/婚恋/疾病等)取用神,指方向与时机宜忌。' },
|
|
50
|
+
{ id: 'timing', name: '择时建议', instruction: '结合阳遁/阴遁之气机给出行动节奏建议(宜进宜守、宜动宜静)。' },
|
|
51
|
+
],
|
|
52
|
+
},
|
|
53
|
+
meihua: {
|
|
54
|
+
artId: 'meihua', name: '梅花易数家',
|
|
55
|
+
role: '梅花易数大家,得邵雍观梅之法,重体用生克,善以象数观照人事,语言通俗易懂,能用通俗的语言解读卦盘结果。',
|
|
56
|
+
classics: '《梅花易数》(宋·邵雍)',
|
|
57
|
+
skills: [
|
|
58
|
+
{ id: 'gua', name: '卦象解析', instruction: '解读本卦卦名/卦辞/象辞与上下卦之象义。' },
|
|
59
|
+
{ id: 'tiyong', name: '体用生克', instruction: '辨体卦用卦,依生克判吉凶,译成通俗建议。' },
|
|
60
|
+
{ id: 'hu-bian', name: '互变推演', instruction: '解读互卦(事之中)与变卦(事之归)的象义与演进逻辑。' },
|
|
61
|
+
{ id: 'advice', name: '占断建议', instruction: '结合动爻位置与体用关系给出具体行动建议。' },
|
|
62
|
+
],
|
|
63
|
+
},
|
|
64
|
+
liuyao: {
|
|
65
|
+
artId: 'liuyao', name: '六爻占验师',
|
|
66
|
+
role: '六爻占验师,承京房纳甲之法,通六十四卦卦爻辞与动变之机,语言通俗易懂,能用通俗的语言解读六爻盘结果。',
|
|
67
|
+
classics: '《周易》《增删卜易》《卜筮正宗》',
|
|
68
|
+
skills: [
|
|
69
|
+
{ id: 'yao', name: '卦爻结构', instruction: '解读六爻阴阳老少、本卦卦名卦辞与象辞。' },
|
|
70
|
+
{ id: 'dong', name: '动变解析', instruction: '解读动爻位置与变卦归趋,静卦则言守常之道。' },
|
|
71
|
+
{ id: 'judge', name: '断卦建议', instruction: '结合爻位(初至上)分位语义给出综合占断建议。' },
|
|
72
|
+
],
|
|
73
|
+
},
|
|
74
|
+
liuren: {
|
|
75
|
+
artId: 'liuren', name: '大六壬课师',
|
|
76
|
+
role: '大六壬课师,号称人事之王,精四课三传与十二天将,语言通俗易懂,能用通俗的语言解读课盘结果。',
|
|
77
|
+
classics: '《六壬大全》',
|
|
78
|
+
skills: [
|
|
79
|
+
{ id: 'ke', name: '课式结构', instruction: '解读月将加时、天地盘与四课(干上/干阴/支上/支阴)之义。' },
|
|
80
|
+
{ id: 'chuan', name: '三传推演', instruction: '解读初/中/末三传之事理(事发之端/事进之中/事成之归)。' },
|
|
81
|
+
{ id: 'advice', name: '断课建议', instruction: '结合三传五行与所问之事给出综合断语。' },
|
|
82
|
+
],
|
|
83
|
+
},
|
|
84
|
+
xiaoliuren: {
|
|
85
|
+
artId: 'xiaoliuren', name: '掌诀占时师',
|
|
86
|
+
role: '通晓掌诀的占时师,精于小六壬六掌玄机,断事简明果断,语言通俗易懂,能用通俗的语言解读掌诀盘结果。',
|
|
87
|
+
classics: '李淳风六壬时课一脉掌诀',
|
|
88
|
+
skills: [
|
|
89
|
+
{ id: 'locate', name: '掌诀定位', instruction: '依月日时/三数推演轨迹说明掌诀落位。' },
|
|
90
|
+
{ id: 'judge', name: '吉凶断语', instruction: '依掌诀吉凶/五行/方位/主数给出简明断语与宜忌。' },
|
|
91
|
+
],
|
|
92
|
+
},
|
|
93
|
+
astrology: {
|
|
94
|
+
artId: 'astrology', name: '古典占星师',
|
|
95
|
+
role: '古典占星师,承巴比伦与希腊化传统,观行星落座相位而断人事,语言通俗易懂,能用通俗的语言解读星盘结果。',
|
|
96
|
+
classics: '古典占星传统文献',
|
|
97
|
+
skills: [
|
|
98
|
+
{ id: 'planets', name: '行星落座', instruction: '解读太阳/月亮/上升与七行星落座之义(含星座元素)。' },
|
|
99
|
+
{ id: 'aspects', name: '相位解析', instruction: '解析合/六合/刑/拱/冲相位组合的能量张力与调和。' },
|
|
100
|
+
{ id: 'houses', name: '宫位解读', instruction: '依整宫制解读行星落宫(人生领域侧重)与十二宫语义。' },
|
|
101
|
+
{ id: 'stages', name: '人生阶段', instruction: '依太阳/月亮/上升三分法简述人生各阶段主题,需含学业、事业、爱情、财富。' },
|
|
102
|
+
],
|
|
103
|
+
},
|
|
104
|
+
tarot: {
|
|
105
|
+
artId: 'tarot', name: '塔罗解读师',
|
|
106
|
+
role: '塔罗解读师,精通塔罗、马赛及星盘和卡巴拉生命之树,主张塔罗为照心之镜而非断命之器,语言通俗易懂,能用通俗的语言解读塔罗盘结果。',
|
|
107
|
+
classics: '马赛塔罗传统',
|
|
108
|
+
skills: [
|
|
109
|
+
{ id: 'cards', name: '牌义解析', instruction: '逐张解析所抽牌的正逆位牌义(大阿卡纳重灵魂旅程,小阿卡纳重日常)。' },
|
|
110
|
+
{ id: 'spread', name: '牌阵关系', instruction: '依牌阵位置(过去/当下/未来等)解析牌与牌之间的能量流动。' },
|
|
111
|
+
{ id: 'mirror', name: '自我观照', instruction: '以镜鉴之姿引导观照内心,给出温和的建议与提醒。' },
|
|
112
|
+
],
|
|
113
|
+
},
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
export const agentOf = (artId: string): AgentDef => AGENTS[artId] || AGENTS.bazi;
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
export interface TarotCard {
|
|
2
|
+
id: number;
|
|
3
|
+
name: string;
|
|
4
|
+
nameEn: string;
|
|
5
|
+
arcana: 'major' | 'minor';
|
|
6
|
+
suit?: 'wands' | 'cups' | 'swords' | 'pentacles';
|
|
7
|
+
number?: number;
|
|
8
|
+
keywords: string[];
|
|
9
|
+
meanings: {
|
|
10
|
+
upright: string;
|
|
11
|
+
reversed: string;
|
|
12
|
+
};
|
|
13
|
+
deepMeaning: {
|
|
14
|
+
coreTheme: string;
|
|
15
|
+
psychological: string;
|
|
16
|
+
spiritual: string;
|
|
17
|
+
shadow: string;
|
|
18
|
+
lifeAreas: {
|
|
19
|
+
love: string;
|
|
20
|
+
career: string;
|
|
21
|
+
wealth: string;
|
|
22
|
+
health: string;
|
|
23
|
+
growth: string;
|
|
24
|
+
};
|
|
25
|
+
advice: string;
|
|
26
|
+
warning: string;
|
|
27
|
+
};
|
|
28
|
+
imageSymbols: string[];
|
|
29
|
+
story: string;
|
|
30
|
+
astrology: {
|
|
31
|
+
zodiac?: string;
|
|
32
|
+
planet?: string;
|
|
33
|
+
element?: string;
|
|
34
|
+
};
|
|
35
|
+
kabbalah: {
|
|
36
|
+
path?: number;
|
|
37
|
+
sephirah?: string;
|
|
38
|
+
};
|
|
39
|
+
alchemy: {
|
|
40
|
+
stage?: string;
|
|
41
|
+
element?: string;
|
|
42
|
+
};
|
|
43
|
+
numerology: {
|
|
44
|
+
number: number;
|
|
45
|
+
meaning: string;
|
|
46
|
+
};
|
|
47
|
+
image: string;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export interface SpreadPosition {
|
|
51
|
+
id: number;
|
|
52
|
+
name: string;
|
|
53
|
+
description: string;
|
|
54
|
+
x: number;
|
|
55
|
+
y: number;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export interface Spread {
|
|
59
|
+
id: string;
|
|
60
|
+
name: string;
|
|
61
|
+
description: string;
|
|
62
|
+
positions: SpreadPosition[];
|
|
63
|
+
category: 'basic' | 'advanced' | 'custom';
|
|
64
|
+
scene?: string[];
|
|
65
|
+
isCustom?: boolean;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export interface DrawnCard {
|
|
69
|
+
cardId: number;
|
|
70
|
+
isReversed: boolean;
|
|
71
|
+
positionId: number;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
export interface DivinationRecord {
|
|
75
|
+
id: string;
|
|
76
|
+
type: 'tarot' | 'combo' | 'ziwei' | 'bazi' | 'astrology';
|
|
77
|
+
question: string;
|
|
78
|
+
category: string;
|
|
79
|
+
spreadId?: string;
|
|
80
|
+
cards?: DrawnCard[];
|
|
81
|
+
comboMethod?: string;
|
|
82
|
+
comboResult?: string;
|
|
83
|
+
interpretation: string;
|
|
84
|
+
timestamp: number;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
export interface ComboResult {
|
|
88
|
+
method: 'xiaoliuren' | 'daliuren' | 'liuyao' | 'meihua' | 'qimen';
|
|
89
|
+
methodName: string;
|
|
90
|
+
result: string;
|
|
91
|
+
detail: string;
|
|
92
|
+
relationToTarot: string;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
export type QuestionCategory = 'love' | 'career' | 'wealth' | 'health' | 'study' | 'family' | 'friendship' | 'spiritual' | 'travel' | 'general';
|
|
96
|
+
|
|
97
|
+
export interface TarotReading {
|
|
98
|
+
question: string;
|
|
99
|
+
category: QuestionCategory;
|
|
100
|
+
spreadId: string;
|
|
101
|
+
cards: DrawnCard[];
|
|
102
|
+
interpretation: string;
|
|
103
|
+
comboResult?: ComboResult;
|
|
104
|
+
}
|