mingpan 0.1.2 → 0.1.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.
Files changed (194) hide show
  1. package/README.md +120 -47
  2. package/dist/core/bazi/BaziCore.d.ts +7 -1
  3. package/dist/core/bazi/BaziCore.d.ts.map +1 -1
  4. package/dist/core/bazi/BaziCore.js +37 -11
  5. package/dist/core/bazi/BaziCore.js.map +1 -1
  6. package/dist/core/bazi/types.d.ts +4 -0
  7. package/dist/core/bazi/types.d.ts.map +1 -1
  8. package/dist/core/qimen/FlyingRule.d.ts +60 -0
  9. package/dist/core/qimen/FlyingRule.d.ts.map +1 -0
  10. package/dist/core/qimen/FlyingRule.js +94 -0
  11. package/dist/core/qimen/FlyingRule.js.map +1 -0
  12. package/dist/core/qimen/GongMapping.d.ts +29 -0
  13. package/dist/core/qimen/GongMapping.d.ts.map +1 -0
  14. package/dist/core/qimen/GongMapping.js +83 -0
  15. package/dist/core/qimen/GongMapping.js.map +1 -0
  16. package/dist/core/qimen/RotatingRule.d.ts +76 -0
  17. package/dist/core/qimen/RotatingRule.d.ts.map +1 -0
  18. package/dist/core/qimen/RotatingRule.js +126 -0
  19. package/dist/core/qimen/RotatingRule.js.map +1 -0
  20. package/dist/core/qimen/YinYangDunCalculator.d.ts +28 -0
  21. package/dist/core/qimen/YinYangDunCalculator.d.ts.map +1 -0
  22. package/dist/core/qimen/YinYangDunCalculator.js +79 -0
  23. package/dist/core/qimen/YinYangDunCalculator.js.map +1 -0
  24. package/dist/core/qimen/index.d.ts +10 -0
  25. package/dist/core/qimen/index.d.ts.map +1 -0
  26. package/dist/core/qimen/index.js +58 -0
  27. package/dist/core/qimen/index.js.map +1 -0
  28. package/dist/core/qimen/types.d.ts +19 -0
  29. package/dist/core/qimen/types.d.ts.map +1 -0
  30. package/dist/core/qimen/types.js +7 -0
  31. package/dist/core/qimen/types.js.map +1 -0
  32. package/dist/index.d.ts +10 -5
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +14 -1311
  35. package/dist/index.js.map +1 -1
  36. package/dist/output/fortuneTextRenderer.d.ts +8 -7
  37. package/dist/output/fortuneTextRenderer.d.ts.map +1 -1
  38. package/dist/output/fortuneTextRenderer.js +83 -21
  39. package/dist/output/fortuneTextRenderer.js.map +1 -1
  40. package/dist/output/qimenTextRenderer.d.ts +36 -0
  41. package/dist/output/qimenTextRenderer.d.ts.map +1 -0
  42. package/dist/output/qimenTextRenderer.js +230 -0
  43. package/dist/output/qimenTextRenderer.js.map +1 -0
  44. package/dist/server.d.ts +11 -0
  45. package/dist/server.d.ts.map +1 -0
  46. package/dist/server.js +33 -0
  47. package/dist/server.js.map +1 -0
  48. package/dist/services/bazi/BaziService.d.ts +1 -17
  49. package/dist/services/bazi/BaziService.d.ts.map +1 -1
  50. package/dist/services/bazi/BaziService.js +9 -194
  51. package/dist/services/bazi/BaziService.js.map +1 -1
  52. package/dist/services/bazi/analyzers/TenGodsAnalyzer.js +12 -12
  53. package/dist/services/bazi/analyzers/TenGodsAnalyzer.js.map +1 -1
  54. package/dist/services/bazi/index.d.ts +0 -2
  55. package/dist/services/bazi/index.d.ts.map +1 -1
  56. package/dist/services/bazi/index.js +1 -5
  57. package/dist/services/bazi/index.js.map +1 -1
  58. package/dist/services/bazi/types.d.ts +4 -112
  59. package/dist/services/bazi/types.d.ts.map +1 -1
  60. package/dist/services/bazi/types.js +3 -102
  61. package/dist/services/bazi/types.js.map +1 -1
  62. package/dist/services/daliuren/DaliurenService.d.ts +11 -1
  63. package/dist/services/daliuren/DaliurenService.d.ts.map +1 -1
  64. package/dist/services/daliuren/DaliurenService.js +30 -0
  65. package/dist/services/daliuren/DaliurenService.js.map +1 -1
  66. package/dist/services/daliuren/calculators/TianDiPanCalculator.d.ts.map +1 -1
  67. package/dist/services/daliuren/calculators/TianDiPanCalculator.js +3 -4
  68. package/dist/services/daliuren/calculators/TianDiPanCalculator.js.map +1 -1
  69. package/dist/services/daliuren/data/constants.d.ts +7 -0
  70. package/dist/services/daliuren/data/constants.d.ts.map +1 -1
  71. package/dist/services/daliuren/data/constants.js +17 -1
  72. package/dist/services/daliuren/data/constants.js.map +1 -1
  73. package/dist/services/daliuren/types.d.ts +13 -0
  74. package/dist/services/daliuren/types.d.ts.map +1 -1
  75. package/dist/services/meihua/calculators/TiyongCalculator.d.ts.map +1 -1
  76. package/dist/services/meihua/calculators/TiyongCalculator.js +6 -5
  77. package/dist/services/meihua/calculators/TiyongCalculator.js.map +1 -1
  78. package/dist/services/qimen/QimenService.d.ts +76 -0
  79. package/dist/services/qimen/QimenService.d.ts.map +1 -0
  80. package/dist/services/qimen/QimenService.js +393 -0
  81. package/dist/services/qimen/QimenService.js.map +1 -0
  82. package/dist/services/qimen/calculators/BaMenCalculator.d.ts +45 -0
  83. package/dist/services/qimen/calculators/BaMenCalculator.d.ts.map +1 -0
  84. package/dist/services/qimen/calculators/BaMenCalculator.js +87 -0
  85. package/dist/services/qimen/calculators/BaMenCalculator.js.map +1 -0
  86. package/dist/services/qimen/calculators/BaShenCalculator.d.ts +34 -0
  87. package/dist/services/qimen/calculators/BaShenCalculator.d.ts.map +1 -0
  88. package/dist/services/qimen/calculators/BaShenCalculator.js +57 -0
  89. package/dist/services/qimen/calculators/BaShenCalculator.js.map +1 -0
  90. package/dist/services/qimen/calculators/GeJuCalculator.d.ts +141 -0
  91. package/dist/services/qimen/calculators/GeJuCalculator.d.ts.map +1 -0
  92. package/dist/services/qimen/calculators/GeJuCalculator.js +711 -0
  93. package/dist/services/qimen/calculators/GeJuCalculator.js.map +1 -0
  94. package/dist/services/qimen/calculators/JiuGongCalculator.d.ts +49 -0
  95. package/dist/services/qimen/calculators/JiuGongCalculator.d.ts.map +1 -0
  96. package/dist/services/qimen/calculators/JiuGongCalculator.js +68 -0
  97. package/dist/services/qimen/calculators/JiuGongCalculator.js.map +1 -0
  98. package/dist/services/qimen/calculators/JiuXingCalculator.d.ts +44 -0
  99. package/dist/services/qimen/calculators/JiuXingCalculator.d.ts.map +1 -0
  100. package/dist/services/qimen/calculators/JiuXingCalculator.js +72 -0
  101. package/dist/services/qimen/calculators/JiuXingCalculator.js.map +1 -0
  102. package/dist/services/qimen/calculators/JuShuCalculator.d.ts +60 -0
  103. package/dist/services/qimen/calculators/JuShuCalculator.d.ts.map +1 -0
  104. package/dist/services/qimen/calculators/JuShuCalculator.js +110 -0
  105. package/dist/services/qimen/calculators/JuShuCalculator.js.map +1 -0
  106. package/dist/services/qimen/calculators/PanTypeCalculator.d.ts +117 -0
  107. package/dist/services/qimen/calculators/PanTypeCalculator.d.ts.map +1 -0
  108. package/dist/services/qimen/calculators/PanTypeCalculator.js +237 -0
  109. package/dist/services/qimen/calculators/PanTypeCalculator.js.map +1 -0
  110. package/dist/services/qimen/calculators/SanQiLiuYiCalculator.d.ts +41 -0
  111. package/dist/services/qimen/calculators/SanQiLiuYiCalculator.d.ts.map +1 -0
  112. package/dist/services/qimen/calculators/SanQiLiuYiCalculator.js +73 -0
  113. package/dist/services/qimen/calculators/SanQiLiuYiCalculator.js.map +1 -0
  114. package/dist/services/qimen/calculators/ShenShaCalculator.d.ts +80 -0
  115. package/dist/services/qimen/calculators/ShenShaCalculator.d.ts.map +1 -0
  116. package/dist/services/qimen/calculators/ShenShaCalculator.js +300 -0
  117. package/dist/services/qimen/calculators/ShenShaCalculator.js.map +1 -0
  118. package/dist/services/qimen/calculators/YongShenCalculator.d.ts +78 -0
  119. package/dist/services/qimen/calculators/YongShenCalculator.d.ts.map +1 -0
  120. package/dist/services/qimen/calculators/YongShenCalculator.js +497 -0
  121. package/dist/services/qimen/calculators/YongShenCalculator.js.map +1 -0
  122. package/dist/services/qimen/calculators/ZhuanPanCalculator.d.ts +111 -0
  123. package/dist/services/qimen/calculators/ZhuanPanCalculator.d.ts.map +1 -0
  124. package/dist/services/qimen/calculators/ZhuanPanCalculator.js +232 -0
  125. package/dist/services/qimen/calculators/ZhuanPanCalculator.js.map +1 -0
  126. package/dist/services/qimen/data/constants.d.ts +105 -0
  127. package/dist/services/qimen/data/constants.d.ts.map +1 -0
  128. package/dist/services/qimen/data/constants.js +295 -0
  129. package/dist/services/qimen/data/constants.js.map +1 -0
  130. package/dist/services/qimen/data/shensha-rules.d.ts +177 -0
  131. package/dist/services/qimen/data/shensha-rules.d.ts.map +1 -0
  132. package/dist/services/qimen/data/shensha-rules.js +397 -0
  133. package/dist/services/qimen/data/shensha-rules.js.map +1 -0
  134. package/dist/services/qimen/data/yongshen-rules.d.ts +115 -0
  135. package/dist/services/qimen/data/yongshen-rules.d.ts.map +1 -0
  136. package/dist/services/qimen/data/yongshen-rules.js +365 -0
  137. package/dist/services/qimen/data/yongshen-rules.js.map +1 -0
  138. package/dist/services/qimen/index.d.ts +20 -0
  139. package/dist/services/qimen/index.d.ts.map +1 -0
  140. package/dist/services/qimen/index.js +43 -0
  141. package/dist/services/qimen/index.js.map +1 -0
  142. package/dist/services/qimen/types.d.ts +316 -0
  143. package/dist/services/qimen/types.d.ts.map +1 -0
  144. package/dist/services/qimen/types.js +21 -0
  145. package/dist/services/qimen/types.js.map +1 -0
  146. package/dist/services/qimen/utils/gongUtils.d.ts +80 -0
  147. package/dist/services/qimen/utils/gongUtils.d.ts.map +1 -0
  148. package/dist/services/qimen/utils/gongUtils.js +164 -0
  149. package/dist/services/qimen/utils/gongUtils.js.map +1 -0
  150. package/dist/shared/logger.d.ts +5 -0
  151. package/dist/shared/logger.d.ts.map +1 -1
  152. package/dist/shared/logger.js +11 -4
  153. package/dist/shared/logger.js.map +1 -1
  154. package/dist/tools/baziTools.d.ts +13 -0
  155. package/dist/tools/baziTools.d.ts.map +1 -0
  156. package/dist/tools/baziTools.js +331 -0
  157. package/dist/tools/baziTools.js.map +1 -0
  158. package/dist/tools/divinationTools.d.ts +9 -0
  159. package/dist/tools/divinationTools.d.ts.map +1 -0
  160. package/dist/tools/divinationTools.js +209 -0
  161. package/dist/tools/divinationTools.js.map +1 -0
  162. package/dist/tools/qimenTools.d.ts +10 -0
  163. package/dist/tools/qimenTools.d.ts.map +1 -0
  164. package/dist/tools/qimenTools.js +132 -0
  165. package/dist/tools/qimenTools.js.map +1 -0
  166. package/dist/tools/schemas.d.ts +99 -0
  167. package/dist/tools/schemas.d.ts.map +1 -0
  168. package/dist/tools/schemas.js +162 -0
  169. package/dist/tools/schemas.js.map +1 -0
  170. package/dist/tools/ziweiTools.d.ts +14 -0
  171. package/dist/tools/ziweiTools.d.ts.map +1 -0
  172. package/dist/tools/ziweiTools.js +483 -0
  173. package/dist/tools/ziweiTools.js.map +1 -0
  174. package/dist/utils/timeNormalization.d.ts +42 -17
  175. package/dist/utils/timeNormalization.d.ts.map +1 -1
  176. package/dist/utils/timeNormalization.js +99 -41
  177. package/dist/utils/timeNormalization.js.map +1 -1
  178. package/package.json +15 -9
  179. package/dist/services/bazi/analyzers/HiddenStemsAnalyzer.d.ts +0 -16
  180. package/dist/services/bazi/analyzers/HiddenStemsAnalyzer.d.ts.map +0 -1
  181. package/dist/services/bazi/analyzers/HiddenStemsAnalyzer.js +0 -60
  182. package/dist/services/bazi/analyzers/HiddenStemsAnalyzer.js.map +0 -1
  183. package/dist/services/bazi/analyzers/NaYinAnalyzer.d.ts +0 -33
  184. package/dist/services/bazi/analyzers/NaYinAnalyzer.d.ts.map +0 -1
  185. package/dist/services/bazi/analyzers/NaYinAnalyzer.js +0 -209
  186. package/dist/services/bazi/analyzers/NaYinAnalyzer.js.map +0 -1
  187. package/dist/services/bazi/analyzers/ShenShaAnalyzer.d.ts +0 -236
  188. package/dist/services/bazi/analyzers/ShenShaAnalyzer.d.ts.map +0 -1
  189. package/dist/services/bazi/analyzers/ShenShaAnalyzer.js +0 -2079
  190. package/dist/services/bazi/analyzers/ShenShaAnalyzer.js.map +0 -1
  191. package/dist/services/bazi/analyzers/TraditionalAnalyzer.d.ts +0 -46
  192. package/dist/services/bazi/analyzers/TraditionalAnalyzer.d.ts.map +0 -1
  193. package/dist/services/bazi/analyzers/TraditionalAnalyzer.js +0 -260
  194. package/dist/services/bazi/analyzers/TraditionalAnalyzer.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/shared/logger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/shared/logger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * 八字命理 MCP 工具
3
+ *
4
+ * 工具列表:
5
+ * - bazi_basic 基礎排盤(四柱、藏干、十神、五行力量)
6
+ * - bazi_dayun 大運列表
7
+ * - bazi_liunian 流年列表
8
+ * - bazi_liuyue 流月列表(節氣月)
9
+ * - bazi_liuri 流日列表
10
+ */
11
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
12
+ export declare function registerBaziTools(server: McpServer): void;
13
+ //# sourceMappingURL=baziTools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"baziTools.d.ts","sourceRoot":"","sources":["../../src/tools/baziTools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAmCzE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAsXzD"}
@@ -0,0 +1,331 @@
1
+ "use strict";
2
+ /**
3
+ * 八字命理 MCP 工具
4
+ *
5
+ * 工具列表:
6
+ * - bazi_basic 基礎排盤(四柱、藏干、十神、五行力量)
7
+ * - bazi_dayun 大運列表
8
+ * - bazi_liunian 流年列表
9
+ * - bazi_liuyue 流月列表(節氣月)
10
+ * - bazi_liuri 流日列表
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.registerBaziTools = registerBaziTools;
14
+ const zod_1 = require("zod");
15
+ const BaziService_1 = require("../services/bazi/BaziService");
16
+ const LiuNianCalculator_1 = require("../services/bazi/calculators/LiuNianCalculator");
17
+ const DaYunCalculator_1 = require("../services/bazi/calculators/DaYunCalculator");
18
+ const LuckCycleCalculator_1 = require("../services/bazi/calculators/LuckCycleCalculator");
19
+ const LiuYueCalculator_1 = require("../services/bazi/calculators/LiuYueCalculator");
20
+ const LiuRiCalculator_1 = require("../services/bazi/calculators/LiuRiCalculator");
21
+ const fortuneTextRenderer_1 = require("../output/fortuneTextRenderer");
22
+ const listTextRenderer_1 = require("../output/listTextRenderer");
23
+ const schemas_1 = require("./schemas");
24
+ const baziService = new BaziService_1.BaziService({ debug: false });
25
+ const countField = zod_1.z.number().int().min(1).max(12).optional().default(10).describe('Number of periods to display (default 10)');
26
+ const ganzhiYearField = zod_1.z.union([
27
+ zod_1.z.string().describe("GanZhi year like '乙巳'"),
28
+ zod_1.z.number().int().min(1900).max(2100).describe('Gregorian year like 2025'),
29
+ ]);
30
+ function registerBaziTools(server) {
31
+ server.registerTool('bazi_basic', {
32
+ title: '八字基礎排盤',
33
+ description: `計算八字四柱(基礎排盤)。
34
+
35
+ 輸入出生時間,返回由節氣與曆法精確推算的確定性結果:
36
+ - 年柱、月柱、日柱、時柱干支(含節氣月邊界、晚子時處理)及六十甲子納音
37
+ - 天干十神與藏干十神(各支藏干逐個標注,※為本氣)
38
+ - 十二長生(自坐)
39
+ - 命宮(三命通會子平起法)、胎元(月干進一支進三)
40
+ - 日柱旬空
41
+ - 公曆/農曆出生日期對照
42
+
43
+ 時區說明:默認按北京時間排盤;海外出生者請提供 timezone 參數,
44
+ 系統將換算為北京時間後計算;可提供 longitude 做真太陽時校正。
45
+
46
+ 定位說明:本工具只負責確定性排盤(干支、藏干、十神)。
47
+ 五行強弱、格局、用神、神煞等屬解讀層,無權威統一口徑,
48
+ 請由 AI 依據四柱自行分析。
49
+
50
+ 大運/流年/流月/流日請使用對應列表工具。`,
51
+ inputSchema: {
52
+ ...schemas_1.baseBirthInfoFields,
53
+ },
54
+ }, async (args) => (0, schemas_1.textResult)('bazi_basic', async () => {
55
+ const { normalized, sourceTimezone } = (0, schemas_1.normalizeBirthInfo)(args);
56
+ const result = await baziService.calculate({
57
+ year: normalized.year,
58
+ month: normalized.month,
59
+ day: normalized.day,
60
+ hour: normalized.hour,
61
+ minute: normalized.minute,
62
+ gender: normalized.gender,
63
+ longitude: normalized.longitude,
64
+ });
65
+ const birthDate = new Date(normalized.year, normalized.month - 1, normalized.day, normalized.hour, normalized.minute);
66
+ const trueSolarTime = result.birthInfo?.trueSolarTime instanceof Date
67
+ ? result.birthInfo.trueSolarTime
68
+ : undefined;
69
+ const text = (0, fortuneTextRenderer_1.renderBaziText)({ bazi: result, gender: normalized.gender, birthDate, trueSolarTime }, { includePersonal: false, includeLocation: !!normalized.longitude });
70
+ return (0, schemas_1.timezoneNote)(sourceTimezone) + text;
71
+ }));
72
+ server.registerTool('bazi_dayun', {
73
+ title: '八字大運列表',
74
+ description: `八字大運列表。
75
+
76
+ 返回命主一生的大運週期(十年一運):
77
+ - 大運干支
78
+ - 起止虛歲
79
+ - 對應公曆年份
80
+ - 起運方向(順行/逆行)
81
+ - 起運年齡
82
+
83
+ 用於了解人生各階段的運勢大框架。`,
84
+ inputSchema: {
85
+ ...schemas_1.baseBirthInfoFields,
86
+ count: countField,
87
+ },
88
+ }, async (args) => (0, schemas_1.textResult)('bazi_dayun', async () => {
89
+ const { normalized } = (0, schemas_1.normalizeBirthInfo)(args);
90
+ const result = await baziService.calculate({
91
+ year: normalized.year, month: normalized.month, day: normalized.day,
92
+ hour: normalized.hour, minute: normalized.minute,
93
+ gender: normalized.gender, longitude: normalized.longitude,
94
+ });
95
+ if (!result.chart || !result.birthInfo) {
96
+ throw new Error('Failed to calculate BaZi chart');
97
+ }
98
+ const daYunList = DaYunCalculator_1.DaYunCalculator.calculate(result.chart, result.birthInfo, normalized.gender, { startYear: normalized.year, endYear: normalized.year + 100 });
99
+ const direction = LuckCycleCalculator_1.LuckCycleCalculator.calLuckySequence(normalized.gender, result.chart.year.stem) === 'forward' ? '顺行' : '逆行';
100
+ const startAge = daYunList.length > 0 ? daYunList[0].startAge : 1;
101
+ const startYear = normalized.year + startAge - 1;
102
+ const options = {
103
+ name: normalized.name,
104
+ birthYear: normalized.year,
105
+ birthMonth: normalized.month,
106
+ birthDay: normalized.day,
107
+ birthHour: normalized.hour,
108
+ birthMinute: normalized.minute,
109
+ gender: normalized.gender,
110
+ dayMaster: result.chart.day.stem,
111
+ yearPillar: { stem: result.chart.year.stem, branch: result.chart.year.branch },
112
+ monthPillar: { stem: result.chart.month.stem, branch: result.chart.month.branch },
113
+ dayPillar: { stem: result.chart.day.stem, branch: result.chart.day.branch },
114
+ hourPillar: { stem: result.chart.hour.stem, branch: result.chart.hour.branch },
115
+ direction,
116
+ startAge,
117
+ startYear,
118
+ };
119
+ return (0, listTextRenderer_1.renderBaziDaYunList)(daYunList.slice(0, args.count), options);
120
+ }));
121
+ server.registerTool('bazi_liunian', {
122
+ title: '八字流年列表',
123
+ description: `八字流年列表。
124
+
125
+ 返回指定年份範圍內的流年信息:
126
+ - 公曆年份
127
+ - 干支年
128
+ - 虛歲
129
+ - 所屬大運
130
+
131
+ 用於分析多年運勢趨勢。`,
132
+ inputSchema: {
133
+ ...schemas_1.baseBirthInfoFields,
134
+ startYear: zod_1.z.number().int().min(1900).max(2100).describe('Start year for the range'),
135
+ endYear: zod_1.z.number().int().min(1900).max(2100).describe('End year for the range'),
136
+ },
137
+ }, async (args) => (0, schemas_1.textResult)('bazi_liunian', async () => {
138
+ const { normalized } = (0, schemas_1.normalizeBirthInfo)(args);
139
+ const result = await baziService.calculate({
140
+ year: normalized.year, month: normalized.month, day: normalized.day,
141
+ hour: normalized.hour, minute: normalized.minute,
142
+ gender: normalized.gender, longitude: normalized.longitude,
143
+ });
144
+ if (!result.chart || !result.birthInfo) {
145
+ throw new Error('Failed to calculate BaZi chart');
146
+ }
147
+ const daYunList = DaYunCalculator_1.DaYunCalculator.calculate(result.chart, result.birthInfo, normalized.gender, { startYear: normalized.year, endYear: normalized.year + 100 });
148
+ const liuNianList = LiuNianCalculator_1.LiuNianCalculator.calculate(result.chart, normalized.year, args.startYear, args.endYear);
149
+ const options = {
150
+ name: normalized.name,
151
+ birthYear: normalized.year,
152
+ birthMonth: normalized.month,
153
+ birthDay: normalized.day,
154
+ birthHour: normalized.hour,
155
+ birthMinute: normalized.minute,
156
+ gender: normalized.gender,
157
+ dayMaster: result.chart.day.stem,
158
+ yearPillar: { stem: result.chart.year.stem, branch: result.chart.year.branch },
159
+ monthPillar: { stem: result.chart.month.stem, branch: result.chart.month.branch },
160
+ dayPillar: { stem: result.chart.day.stem, branch: result.chart.day.branch },
161
+ hourPillar: { stem: result.chart.hour.stem, branch: result.chart.hour.branch },
162
+ startYear: args.startYear,
163
+ endYear: args.endYear,
164
+ daYunList,
165
+ };
166
+ return (0, listTextRenderer_1.renderBaziLiuNianList)(liuNianList, options);
167
+ }));
168
+ server.registerTool('bazi_liuyue', {
169
+ title: '八字流月列表',
170
+ description: `八字流月列表。
171
+
172
+ 重要:八字流月使用【節氣月】,非農曆月!
173
+ - 以節氣為邊界(立春起算)
174
+ - 寅月(正月)從立春開始,約2月4日
175
+ - 丑月(臘月)跨越公曆年界
176
+
177
+ 返回指定年份的12個月運勢:
178
+ - 干支月
179
+ - 節氣起止
180
+ - 公曆日期範圍
181
+
182
+ 用於規劃年度活動時機。`,
183
+ inputSchema: {
184
+ ...schemas_1.baseBirthInfoFields,
185
+ ganzhiYear: ganzhiYearField.describe("The year to query (either GanZhi string like '乙巳' or Gregorian year like 2025)"),
186
+ },
187
+ }, async (args) => (0, schemas_1.textResult)('bazi_liuyue', async () => {
188
+ const { normalized } = (0, schemas_1.normalizeBirthInfo)(args);
189
+ const { year: gregorianYear, ganzhi: ganzhiYear } = (0, schemas_1.parseGanzhiYear)(args.ganzhiYear);
190
+ const result = await baziService.calculate({
191
+ year: normalized.year, month: normalized.month, day: normalized.day,
192
+ hour: normalized.hour, minute: normalized.minute,
193
+ gender: normalized.gender, longitude: normalized.longitude,
194
+ });
195
+ if (!result.chart || !result.birthInfo) {
196
+ throw new Error('Failed to calculate BaZi chart');
197
+ }
198
+ const { stem: yearStem, branch: yearBranch } = (0, schemas_1.getYearStemBranch)(gregorianYear);
199
+ const daYunList = DaYunCalculator_1.DaYunCalculator.calculate(result.chart, result.birthInfo, normalized.gender, { startYear: normalized.year, endYear: normalized.year + 100 });
200
+ const targetAge = gregorianYear - normalized.year + 1;
201
+ let currentDaYun;
202
+ const matchedDaYun = daYunList.find(dy => targetAge >= dy.startAge && targetAge <= dy.endAge);
203
+ if (matchedDaYun) {
204
+ currentDaYun = {
205
+ stem: matchedDaYun.stem,
206
+ branch: matchedDaYun.branch,
207
+ startAge: matchedDaYun.startAge,
208
+ endAge: matchedDaYun.endAge,
209
+ };
210
+ }
211
+ const liuNianList = LiuNianCalculator_1.LiuNianCalculator.calculate(result.chart, normalized.year, gregorianYear, gregorianYear);
212
+ let currentLiuNian;
213
+ if (liuNianList.length > 0) {
214
+ const ln = liuNianList[0];
215
+ currentLiuNian = { stem: ln.stem, branch: ln.branch, age: ln.age };
216
+ }
217
+ const calculator = new LiuYueCalculator_1.LiuYueCalculator();
218
+ const liuYueList = calculator.calculateLiuYue(yearStem, yearBranch, (result.basic?.dayMasterElement || '木'), (result.traditional?.yongShen?.yongShen || []), {
219
+ year: normalized.year,
220
+ month: normalized.month,
221
+ day: normalized.day,
222
+ hour: normalized.hour,
223
+ minute: normalized.minute,
224
+ }, gregorianYear);
225
+ const options = {
226
+ name: normalized.name,
227
+ birthYear: normalized.year,
228
+ birthMonth: normalized.month,
229
+ birthDay: normalized.day,
230
+ birthHour: normalized.hour,
231
+ birthMinute: normalized.minute,
232
+ gender: normalized.gender,
233
+ dayMaster: result.chart.day.stem,
234
+ yearPillar: { stem: result.chart.year.stem, branch: result.chart.year.branch },
235
+ monthPillar: { stem: result.chart.month.stem, branch: result.chart.month.branch },
236
+ dayPillar: { stem: result.chart.day.stem, branch: result.chart.day.branch },
237
+ hourPillar: { stem: result.chart.hour.stem, branch: result.chart.hour.branch },
238
+ ganzhiYear,
239
+ gregorianYear,
240
+ currentDaYun,
241
+ currentLiuNian,
242
+ };
243
+ return (0, listTextRenderer_1.renderBaziLiuYueList)(liuYueList, options);
244
+ }));
245
+ server.registerTool('bazi_liuri', {
246
+ title: '八字流日列表',
247
+ description: `八字流日列表。
248
+
249
+ 返回指定月份內的每日運勢(含上下文):
250
+ - 當前大運、流年、流月資訊
251
+ - 公曆日期
252
+ - 干支日
253
+
254
+ 用於精細的日期選擇。`,
255
+ inputSchema: {
256
+ ...schemas_1.baseBirthInfoFields,
257
+ ganzhiYear: ganzhiYearField.describe("The year of the month (GanZhi string or Gregorian year)"),
258
+ ganzhiMonth: zod_1.z.union([
259
+ zod_1.z.string().describe("GanZhi month like '丙寅' (month 1 = 寅月)"),
260
+ zod_1.z.number().int().min(1).max(12).describe('Month number (1=寅月, 2=卯月, ..., 12=丑月)'),
261
+ ]).describe('The month to query (either GanZhi string or month number 1-12)'),
262
+ },
263
+ }, async (args) => (0, schemas_1.textResult)('bazi_liuri', async () => {
264
+ const { normalized } = (0, schemas_1.normalizeBirthInfo)(args);
265
+ const { year: gregorianYear, ganzhi: ganzhiYear } = (0, schemas_1.parseGanzhiYear)(args.ganzhiYear);
266
+ const monthNum = (0, schemas_1.parseGanzhiMonth)(args.ganzhiMonth);
267
+ const result = await baziService.calculate({
268
+ year: normalized.year, month: normalized.month, day: normalized.day,
269
+ hour: normalized.hour, minute: normalized.minute,
270
+ gender: normalized.gender, longitude: normalized.longitude,
271
+ });
272
+ if (!result.chart || !result.birthInfo) {
273
+ throw new Error('Failed to calculate BaZi chart');
274
+ }
275
+ const { stem: yearStem, branch: yearBranch } = (0, schemas_1.getYearStemBranch)(gregorianYear);
276
+ const { stem: monthStem, branch: monthBranch } = (0, schemas_1.getMonthStemBranch)(gregorianYear, monthNum);
277
+ const daYunList = DaYunCalculator_1.DaYunCalculator.calculate(result.chart, result.birthInfo, normalized.gender, { startYear: normalized.year, endYear: normalized.year + 100 });
278
+ const targetAge = gregorianYear - normalized.year + 1;
279
+ let currentDaYun;
280
+ const matchedDaYun = daYunList.find(dy => targetAge >= dy.startAge && targetAge <= dy.endAge);
281
+ if (matchedDaYun) {
282
+ currentDaYun = {
283
+ stem: matchedDaYun.stem,
284
+ branch: matchedDaYun.branch,
285
+ startAge: matchedDaYun.startAge,
286
+ endAge: matchedDaYun.endAge,
287
+ };
288
+ }
289
+ const liuNianList = LiuNianCalculator_1.LiuNianCalculator.calculate(result.chart, normalized.year, gregorianYear, gregorianYear);
290
+ let currentLiuNian;
291
+ if (liuNianList.length > 0) {
292
+ const ln = liuNianList[0];
293
+ currentLiuNian = { stem: ln.stem, branch: ln.branch, age: ln.age };
294
+ }
295
+ const currentLiuYue = {
296
+ stem: monthStem,
297
+ branch: monthBranch,
298
+ month: monthNum,
299
+ };
300
+ // Calculate LiuRi
301
+ const liuRiCalc = new LiuRiCalculator_1.LiuRiCalculator();
302
+ const liuRiList = liuRiCalc.calculateLiuRi(monthStem, monthBranch, yearStem, yearBranch, (result.basic?.dayMasterElement || '木'), (result.traditional?.yongShen?.yongShen || []), gregorianYear, monthNum);
303
+ // Get the first and last date from the calculated list
304
+ const startDate = liuRiList.length > 0 ? liuRiList[0].date : new Date();
305
+ const endDate = liuRiList.length > 0 ? liuRiList[liuRiList.length - 1].date : new Date();
306
+ const options = {
307
+ name: normalized.name,
308
+ birthYear: normalized.year,
309
+ birthMonth: normalized.month,
310
+ birthDay: normalized.day,
311
+ birthHour: normalized.hour,
312
+ birthMinute: normalized.minute,
313
+ gender: normalized.gender,
314
+ dayMaster: result.chart.day.stem,
315
+ yearPillar: { stem: result.chart.year.stem, branch: result.chart.year.branch },
316
+ monthPillar: { stem: result.chart.month.stem, branch: result.chart.month.branch },
317
+ dayPillar: { stem: result.chart.day.stem, branch: result.chart.day.branch },
318
+ hourPillar: { stem: result.chart.hour.stem, branch: result.chart.hour.branch },
319
+ ganzhiMonth: monthStem + monthBranch,
320
+ ganzhiYear,
321
+ gregorianYear,
322
+ startDate,
323
+ endDate,
324
+ currentDaYun,
325
+ currentLiuNian,
326
+ currentLiuYue,
327
+ };
328
+ return (0, listTextRenderer_1.renderBaziLiuRiList)(liuRiList, options);
329
+ }));
330
+ }
331
+ //# sourceMappingURL=baziTools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"baziTools.js","sourceRoot":"","sources":["../../src/tools/baziTools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * 占卜類 MCP 工具:六爻、梅花易數、大六壬
3
+ *
4
+ * 設計原則:占卜工具的時間參數為「起卦/起課時間」,
5
+ * 節氣、干支等曆法量一律由 MCP 自動推得(LLM 手推干支極易出錯)。
6
+ */
7
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
8
+ export declare function registerDivinationTools(server: McpServer): void;
9
+ //# sourceMappingURL=divinationTools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"divinationTools.d.ts","sourceRoot":"","sources":["../../src/tools/divinationTools.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAwBzE,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA2M/D"}
@@ -0,0 +1,209 @@
1
+ "use strict";
2
+ /**
3
+ * 占卜類 MCP 工具:六爻、梅花易數、大六壬
4
+ *
5
+ * 設計原則:占卜工具的時間參數為「起卦/起課時間」,
6
+ * 節氣、干支等曆法量一律由 MCP 自動推得(LLM 手推干支極易出錯)。
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.registerDivinationTools = registerDivinationTools;
10
+ const zod_1 = require("zod");
11
+ const LiuyaoService_1 = require("../services/liuyao/LiuyaoService");
12
+ const liuyaoTextRenderer_1 = require("../output/liuyaoTextRenderer");
13
+ const MeihuaService_1 = require("../services/meihua/MeihuaService");
14
+ const meihuaTextRenderer_1 = require("../output/meihuaTextRenderer");
15
+ const DaliurenService_1 = require("../services/daliuren/DaliurenService");
16
+ const daliurenTextRenderer_1 = require("../output/daliurenTextRenderer");
17
+ const schemas_1 = require("./schemas");
18
+ const liuyaoService = new LiuyaoService_1.LiuyaoService();
19
+ const meihuaService = new MeihuaService_1.MeihuaService();
20
+ const yaoValue = zod_1.z.union([zod_1.z.literal(6), zod_1.z.literal(7), zod_1.z.literal(8), zod_1.z.literal(9)]);
21
+ function registerDivinationTools(server) {
22
+ // ============= 六爻 =============
23
+ server.registerTool('liuyao_basic', {
24
+ title: '六爻排盤',
25
+ description: `六爻排盤(基礎排盤)。
26
+
27
+ 輸入六個爻值和起卦時間,返回完整的六爻盤面:
28
+ - 本卦/變卦(含卦名、卦宮、五行)
29
+ - 六爻納甲(每爻地支及五行)
30
+ - 六親(父母/兄弟/子孫/妻財/官鬼)
31
+ - 六神(青龍/朱雀/勾陳/螣蛇/白虎/玄武)
32
+ - 世應位置
33
+ - 動爻標註
34
+ - 日干支、月建、旬空
35
+
36
+ 爻值說明:
37
+ - 6 = 老陰(動爻,陰變陽)
38
+ - 7 = 少陽(靜爻,陽)
39
+ - 8 = 少陰(靜爻,陰)
40
+ - 9 = 老陽(動爻,陽變陰)
41
+
42
+ 輸入順序:自下而上(初爻到上爻)
43
+ 起卦時間默認北京時間,可提供 timezone 换算。
44
+
45
+ 輸出為 Markdown 格式,便於 AI 分析解讀。`,
46
+ inputSchema: {
47
+ yaoValues: zod_1.z.tuple([yaoValue, yaoValue, yaoValue, yaoValue, yaoValue, yaoValue])
48
+ .describe('六個爻值(自下而上,初爻到上爻)。6=老陰(動), 7=少陽(靜), 8=少陰(靜), 9=老陽(動)'),
49
+ ...schemas_1.birthTimeFields,
50
+ },
51
+ }, async (args) => (0, schemas_1.textResult)('liuyao_basic', async () => {
52
+ const { normalized, sourceTimezone } = (0, schemas_1.normalizeBirthInfo)(args);
53
+ const result = liuyaoService.calculate({
54
+ yaoValues: args.yaoValues,
55
+ year: normalized.year,
56
+ month: normalized.month,
57
+ day: normalized.day,
58
+ hour: normalized.hour,
59
+ isLunar: false,
60
+ });
61
+ return (0, schemas_1.timezoneNote)(sourceTimezone) + (0, liuyaoTextRenderer_1.renderLiuyaoText)(result);
62
+ }));
63
+ // ============= 梅花易數 =============
64
+ server.registerTool('meihua_basic', {
65
+ title: '梅花易數排盤',
66
+ description: `梅花易數排盤(基礎排盤)。
67
+
68
+ 支持兩種起卦方式:
69
+ 1. 時間起卦(method='time'):根據農曆年月日時起卦
70
+ 2. 數字起卦(method='number'):根據兩個數字起卦
71
+
72
+ 返回完整的梅花盤面:
73
+ - 本卦/變卦/互卦
74
+ - 上卦/下卦(含卦象、五行)
75
+ - 動爻位置
76
+ - 體用分析(體卦、用卦、五行生剋關係)
77
+ - 起卦數據詳情
78
+
79
+ 時間起卦算法(農曆):
80
+ - 上卦 = (年支序數 + 月 + 日) % 8
81
+ - 下卦 = (年支序數 + 月 + 日 + 時辰序數) % 8
82
+ - 動爻 = (年支序數 + 月 + 日 + 時辰序數) % 6
83
+
84
+ 輸出為 Markdown 格式,便於 AI 分析解讀。`,
85
+ inputSchema: {
86
+ method: zod_1.z.enum(['time', 'number']).describe("起卦方式:time=時間起卦,number=數字起卦"),
87
+ year: schemas_1.yearField.optional().describe('起卦年份(公曆,time 模式必填)'),
88
+ month: schemas_1.monthField.optional().describe('起卦月份(1-12,time 模式必填)'),
89
+ day: schemas_1.dayField.optional().describe('起卦日期(1-31,time 模式必填)'),
90
+ hour: schemas_1.hourField.optional().describe('起卦時辰(0-23,time 模式必填)'),
91
+ isLunar: zod_1.z.boolean().optional().default(false).describe('輸入是否為農曆,默認 false'),
92
+ timezone: zod_1.z.string().optional().describe('IANA 時區名(time 模式,默認北京時間)'),
93
+ upperNumber: zod_1.z.number().int().min(1).optional().describe('上卦數(number 模式必填)'),
94
+ lowerNumber: zod_1.z.number().int().min(1).optional().describe('下卦數(number 模式必填)'),
95
+ yaoNumber: zod_1.z.number().int().min(1).optional().describe('動爻數(可選,默認用上下卦數之和)'),
96
+ },
97
+ }, async (args) => (0, schemas_1.textResult)('meihua_basic', async () => {
98
+ let year = args.year;
99
+ let month = args.month;
100
+ let day = args.day;
101
+ let hour = args.hour;
102
+ let isLunar = args.isLunar;
103
+ // 時間模式:入口層完成時區歸一化後再交給服務層
104
+ if (args.method === 'time' && year !== undefined && month !== undefined && day !== undefined && hour !== undefined) {
105
+ const { normalized } = (0, schemas_1.normalizeBirthInfo)({
106
+ year, month, day, hour,
107
+ isLunar,
108
+ timezone: args.timezone,
109
+ });
110
+ year = normalized.year;
111
+ month = normalized.month;
112
+ day = normalized.day;
113
+ hour = normalized.hour;
114
+ isLunar = false;
115
+ }
116
+ const result = meihuaService.calculate({
117
+ method: args.method,
118
+ year,
119
+ month,
120
+ day,
121
+ hour,
122
+ isLunar,
123
+ upperNumber: args.upperNumber,
124
+ lowerNumber: args.lowerNumber,
125
+ yaoNumber: args.yaoNumber,
126
+ });
127
+ return (0, meihuaTextRenderer_1.renderMeihuaText)(result);
128
+ }));
129
+ // ============= 大六壬 =============
130
+ server.registerTool('daliuren_basic', {
131
+ title: '大六壬排盤',
132
+ description: `大六壬排盤(基礎排盤)。
133
+
134
+ 大六壬是中國古老三大占卜術之一,與奇門遁甲、太乙神數並稱三式。
135
+
136
+ 【推薦用法】直接輸入公曆起課時間,系統自動推得節氣、月將、日干支、時干支:
137
+ - year/month/day/hour(+ 可選 minute、timezone、isLunar)
138
+
139
+ 【專家模式】也可顯式指定曆法量(一般無需使用):
140
+ - jieqi:節氣(如:立春、驚蟄,簡繁均可)
141
+ - dayGanZhi / hourGanZhi:完整干支(如:甲子、乙丑)
142
+
143
+ 返回完整的六壬盤面:
144
+ - 天地盤(月將加時辰起盤)
145
+ - 四課(日干支推演)
146
+ - 三傳(九宗門推演:賊尅、比用、涉害、遙尅、昴星、別責、八專、伏吟、返吟)
147
+ - 十二天將(貴人、螣蛇、朱雀、六合、勾陳、青龍、天空、白虎、太常、玄武、太陰、天后)
148
+ - 格局判斷
149
+ - 神煞(日馬、月馬、丁馬、華蓋、閃電)
150
+
151
+ 本工具只負責排盤,斷課解讀交給 Agent。
152
+
153
+ 輸出為 Markdown 格式,便於 AI 分析解讀。`,
154
+ inputSchema: {
155
+ // 推薦:時間輸入
156
+ year: schemas_1.yearField.optional().describe('起課年份(公曆,推薦用法)'),
157
+ month: schemas_1.monthField.optional().describe('起課月份(1-12)'),
158
+ day: schemas_1.dayField.optional().describe('起課日期(1-31)'),
159
+ hour: schemas_1.hourField.optional().describe('起課時辰(0-23)'),
160
+ minute: zod_1.z.number().int().min(0).max(59).optional().describe('分鐘(0-59),默認 0'),
161
+ isLunar: zod_1.z.boolean().optional().default(false).describe('輸入是否為農曆,默認 false'),
162
+ timezone: zod_1.z.string().optional().describe('IANA 時區名(默認北京時間)'),
163
+ // 專家模式:顯式曆法量
164
+ jieqi: zod_1.z.string().optional().describe('【專家模式】節氣(如:立春、驚蟄,簡繁均可)'),
165
+ lunarMonth: zod_1.z.number().int().min(1).max(12).optional().describe('【專家模式】農曆月份(1-12)'),
166
+ dayGanZhi: zod_1.z.string().optional().describe('【專家模式】日干支(如:甲子、乙丑)'),
167
+ hourGanZhi: zod_1.z.string().optional().describe('【專家模式】時干支(如:甲子、乙丑)'),
168
+ guirenMethod: zod_1.z.union([zod_1.z.literal(0), zod_1.z.literal(1)]).optional().default(0).describe('貴人起法:0=標準, 1=另一種'),
169
+ },
170
+ }, async (args) => (0, schemas_1.textResult)('daliuren_basic', async () => {
171
+ const daliurenService = new DaliurenService_1.DaliurenService();
172
+ const guirenMethod = args.guirenMethod;
173
+ // 推薦路徑:由時間自動推節氣/月將/干支
174
+ const hasTime = args.year !== undefined && args.month !== undefined && args.day !== undefined && args.hour !== undefined;
175
+ if (hasTime) {
176
+ const { normalized, sourceTimezone } = (0, schemas_1.normalizeBirthInfo)({
177
+ year: args.year,
178
+ month: args.month,
179
+ day: args.day,
180
+ hour: args.hour,
181
+ minute: args.minute,
182
+ isLunar: args.isLunar,
183
+ timezone: args.timezone,
184
+ });
185
+ const result = daliurenService.calculateFromTime({
186
+ year: normalized.year,
187
+ month: normalized.month,
188
+ day: normalized.day,
189
+ hour: normalized.hour,
190
+ minute: normalized.minute,
191
+ guirenMethod,
192
+ });
193
+ return (0, schemas_1.timezoneNote)(sourceTimezone) + (0, daliurenTextRenderer_1.renderDaliurenText)(result);
194
+ }
195
+ // 專家模式:顯式曆法量
196
+ if (args.jieqi && args.lunarMonth !== undefined && args.dayGanZhi && args.hourGanZhi) {
197
+ const result = daliurenService.calculate({
198
+ jieqi: args.jieqi,
199
+ lunarMonth: args.lunarMonth,
200
+ dayGanZhi: args.dayGanZhi,
201
+ hourGanZhi: args.hourGanZhi,
202
+ guirenMethod,
203
+ });
204
+ return (0, daliurenTextRenderer_1.renderDaliurenText)(result);
205
+ }
206
+ throw new Error('輸入不完整:請提供起課時間(year/month/day/hour),或完整專家參數(jieqi + lunarMonth + dayGanZhi + hourGanZhi)');
207
+ }));
208
+ }
209
+ //# sourceMappingURL=divinationTools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"divinationTools.js","sourceRoot":"","sources":["../../src/tools/divinationTools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * 奇門遁甲 MCP 工具
3
+ *
4
+ * 工具列表:
5
+ * - qimen_basic 基礎排盤(九宮布局、三奇六儀、八門九星八神、格局檢測)
6
+ * - qimen_yongshen 用神分析(按事類,僅確定性信息)
7
+ */
8
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
9
+ export declare function registerQimenTools(server: McpServer): void;
10
+ //# sourceMappingURL=qimenTools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qimenTools.d.ts","sourceRoot":"","sources":["../../src/tools/qimenTools.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAwBzE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAmH1D"}