import { tool } from "langchain" import lunarLib from "lunar-javascript" const { Solar } = lunarLib /** * 特定日期日历工具 * 基于 lunar-javascript 提供指定日期的完整农历信息 */ export const getLunarCalendarInfoTool = tool( async ({ year, month, day }) => { try { const solar = Solar.fromYmd(year, month, day) const lunar = solar.getLunar() const result = { solar: solar.toString(), weekday: `星期${solar.getWeekInChinese()}`, lunar: lunar.toString(), ganzhiYear: lunar.getYearInGanZhi(), zodiac: lunar.getYearShengXiao(), solarTerms: lunar.getJieQi() || null, festivals: [...solar.getFestivals(), ...lunar.getFestivals()], yi: lunar.getDayYi(), ji: lunar.getDayJi(), xiShen: lunar.getDayPositionXiDesc(), caiShen: lunar.getDayPositionCaiDesc() } return JSON.stringify(result, null, 2) } catch (error) { return JSON.stringify({ error: error.message }, null, 2) } }, { name: "get_lunar_calendar_info", description: "获取指定日期的日历信息,包括农历信息、老黄历、当年生肖、今日宜忌、喜神方位、财神方位、今日节气、今日节日等", schema: { type: "object", properties: { year: { type: "number", description: "年份", minimum: 1900, maximum: 2100 }, month: { type: "number", description: "月份", minimum: 1, maximum: 12 }, day: { type: "number", description: "日期", minimum: 1, maximum: 31 } }, required: ["year", "month", "day"] } } )