lit-forge-mcp 0.9.0 → 0.11.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.
Files changed (33) hide show
  1. package/dist/lib/__tests__/economic-release-pulse.test.d.ts +1 -0
  2. package/dist/lib/__tests__/economic-release-pulse.test.js +102 -0
  3. package/dist/lib/__tests__/economic-release-pulse.test.js.map +1 -0
  4. package/dist/lib/economic-events.d.ts +1 -1
  5. package/dist/lib/economic-events.js +3 -3
  6. package/dist/lib/economic-events.js.map +1 -1
  7. package/dist/lib/economic-release-pulse/adapters/bea.d.ts +2 -0
  8. package/dist/lib/economic-release-pulse/adapters/bea.js +55 -0
  9. package/dist/lib/economic-release-pulse/adapters/bea.js.map +1 -0
  10. package/dist/lib/economic-release-pulse/adapters/boj.d.ts +2 -0
  11. package/dist/lib/economic-release-pulse/adapters/boj.js +21 -0
  12. package/dist/lib/economic-release-pulse/adapters/boj.js.map +1 -0
  13. package/dist/lib/economic-release-pulse/adapters/cao.d.ts +5 -0
  14. package/dist/lib/economic-release-pulse/adapters/cao.js +72 -0
  15. package/dist/lib/economic-release-pulse/adapters/cao.js.map +1 -0
  16. package/dist/lib/economic-release-pulse/cache.d.ts +3 -0
  17. package/dist/lib/economic-release-pulse/cache.js +22 -0
  18. package/dist/lib/economic-release-pulse/cache.js.map +1 -0
  19. package/dist/lib/economic-release-pulse/pulse.d.ts +14 -0
  20. package/dist/lib/economic-release-pulse/pulse.js +74 -0
  21. package/dist/lib/economic-release-pulse/pulse.js.map +1 -0
  22. package/dist/lib/economic-release-pulse/types.d.ts +22 -0
  23. package/dist/lib/economic-release-pulse/types.js +11 -0
  24. package/dist/lib/economic-release-pulse/types.js.map +1 -0
  25. package/dist/lib/economic-release-pulse/util.d.ts +8 -0
  26. package/dist/lib/economic-release-pulse/util.js +21 -0
  27. package/dist/lib/economic-release-pulse/util.js.map +1 -0
  28. package/dist/tools/get-economic-release-pulse.d.ts +2 -0
  29. package/dist/tools/get-economic-release-pulse.js +63 -0
  30. package/dist/tools/get-economic-release-pulse.js.map +1 -0
  31. package/dist/tools/index.js +3 -0
  32. package/dist/tools/index.js.map +1 -1
  33. package/package.json +5 -3
@@ -0,0 +1,102 @@
1
+ // economic-release-pulse の純粋関数テスト。
2
+ // ネットワーク fetch は CI で不安定なため、パーサと JST ヘルパのみ対象。
3
+ import { describe, it, expect } from "vitest";
4
+ import { parseCaoDate, parseCaoTime, parseCaoGdpTable, } from "../economic-release-pulse/adapters/cao.js";
5
+ import { jstParts, jstToday, jstDatePlus } from "../economic-release-pulse/util.js";
6
+ describe("parseCaoDate", () => {
7
+ it("和暦括弧・曜日付きの内閣府形式をパースする", () => {
8
+ expect(parseCaoDate("2026(令和8)年5月19日(火)")).toBe("2026-05-19");
9
+ expect(parseCaoDate("2027(令和9)年2月15日(月)")).toBe("2027-02-15");
10
+ });
11
+ it("和暦括弧なしでもパースする", () => {
12
+ expect(parseCaoDate("2026年5月1日")).toBe("2026-05-01");
13
+ });
14
+ it("precise でない日付は null", () => {
15
+ expect(parseCaoDate("未定")).toBeNull();
16
+ expect(parseCaoDate("2026(令和8)年12月中旬以降")).toBeNull();
17
+ expect(parseCaoDate("")).toBeNull();
18
+ });
19
+ });
20
+ describe("parseCaoTime", () => {
21
+ it("「8時50分」形式をパースする", () => {
22
+ expect(parseCaoTime("8時50分")).toBe("08:50");
23
+ expect(parseCaoTime("10時00分")).toBe("10:00");
24
+ });
25
+ it("「-」など時刻でないものは null", () => {
26
+ expect(parseCaoTime("-")).toBeNull();
27
+ expect(parseCaoTime("")).toBeNull();
28
+ });
29
+ });
30
+ describe("parseCaoGdpTable", () => {
31
+ // 内閣府 公表予定ページの実構造を模した fixture。
32
+ const FIXTURE = `
33
+ <h2><span id="a">四半期別GDP速報</span></h2>
34
+ <table class="tableBase w_100">
35
+ <thead><tr><th scope="col">期間</th><th scope="col">公表予定日</th><th scope="col">公表時刻</th></tr></thead>
36
+ <tbody>
37
+ <tr>
38
+ <td class="txtCenter">2026年1-3月期(1次速報)</td>
39
+ <td>2026(令和8)年5月19日(火)</td>
40
+ <td class="txtCenter">8時50分</td>
41
+ </tr>
42
+ <tr>
43
+ <td class="txtCenter">2026年4-6月期(1次速報)</td>
44
+ <td>2026(令和8)年8月17日(月)</td>
45
+ <td class="txtCenter">8時50分</td>
46
+ </tr>
47
+ </tbody>
48
+ </table>
49
+ <h2><span id="b">国民経済計算年次推計</span></h2>
50
+ <table class="tableBase w_100">
51
+ <tbody>
52
+ <tr><td class="txtCenter">2025年度</td><td>2026(令和8)年12月中旬以降</td><td class="txtCenter">-</td></tr>
53
+ </tbody>
54
+ </table>`;
55
+ it("GDP 速報テーブルの行を ReleaseEvent に変換する", () => {
56
+ const events = parseCaoGdpTable(FIXTURE);
57
+ expect(events).toHaveLength(2);
58
+ expect(events[0]).toEqual({
59
+ date: "2026-05-19",
60
+ time: "08:50",
61
+ country: "JP",
62
+ name: "日 GDP速報 2026年1-3月期(1次速報)",
63
+ source: "内閣府",
64
+ sourceUrl: "https://www.esri.cao.go.jp/jp/sna/kouhyou/kouhyou_top.html",
65
+ });
66
+ expect(events[1].date).toBe("2026-08-17");
67
+ });
68
+ it("四半期別GDP速報の最初のテーブルのみ対象(年次推計テーブルは含めない)", () => {
69
+ const events = parseCaoGdpTable(FIXTURE);
70
+ // 年次推計の「12月中旬以降」行は別テーブルなので拾わない
71
+ expect(events.every((e) => e.name.includes("速報"))).toBe(true);
72
+ expect(events.some((e) => e.date.startsWith("2026-12"))).toBe(false);
73
+ });
74
+ it("該当テーブルが無ければ空配列", () => {
75
+ expect(parseCaoGdpTable("<html><body>no table</body></html>")).toEqual([]);
76
+ });
77
+ });
78
+ describe("jstParts / jstToday / jstDatePlus", () => {
79
+ it("UTC タイムスタンプを JST の日付・時刻に変換する", () => {
80
+ // 12:30 UTC = 21:30 JST 同日
81
+ expect(jstParts(Date.parse("2026-05-28T12:30:00+00:00"))).toEqual({
82
+ date: "2026-05-28",
83
+ time: "21:30",
84
+ });
85
+ });
86
+ it("日付境界を跨ぐ変換(UTC 夜 → JST 翌朝)", () => {
87
+ // 20:00 UTC 5/14 = 05:00 JST 5/15
88
+ expect(jstParts(Date.parse("2026-05-14T20:00:00+00:00"))).toEqual({
89
+ date: "2026-05-15",
90
+ time: "05:00",
91
+ });
92
+ });
93
+ it("jstToday は JST の当日を返す", () => {
94
+ // 2026-05-15 00:00 JST = 2026-05-14 15:00 UTC
95
+ expect(jstToday(new Date("2026-05-14T15:00:00Z"))).toBe("2026-05-15");
96
+ });
97
+ it("jstDatePlus は JST で N 日後を返す", () => {
98
+ expect(jstDatePlus(6, new Date("2026-05-14T15:00:00Z"))).toBe("2026-05-21");
99
+ expect(jstDatePlus(0, new Date("2026-05-14T15:00:00Z"))).toBe("2026-05-15");
100
+ });
101
+ });
102
+ //# sourceMappingURL=economic-release-pulse.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"economic-release-pulse.test.js","sourceRoot":"","sources":["../../../src/lib/__tests__/economic-release-pulse.test.ts"],"names":[],"mappings":"AAAA,mCAAmC;AACnC,8CAA8C;AAE9C,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,gBAAgB,GACjB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAEpF,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;QAC/B,MAAM,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC9D,MAAM,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,eAAe,EAAE,GAAG,EAAE;QACvB,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,qBAAqB,EAAE,GAAG,EAAE;QAC7B,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACtC,MAAM,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACrD,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IACtC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,EAAE,CAAC,iBAAiB,EAAE,GAAG,EAAE;QACzB,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAC5B,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACrC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IACtC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,+BAA+B;IAC/B,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;SAsBT,CAAC;IAER,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACxB,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,0BAA0B;YAChC,MAAM,EAAE,KAAK;YACb,SAAS,EAAE,4DAA4D;SACxE,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACzC,+BAA+B;QAC/B,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9D,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE;QACxB,MAAM,CAAC,gBAAgB,CAAC,oCAAoC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,mCAAmC,EAAE,GAAG,EAAE;IACjD,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,2BAA2B;QAC3B,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YAChE,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,OAAO;SACd,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,kCAAkC;QAClC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YAChE,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,OAAO;SACd,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;QAC/B,8CAA8C;QAC9C,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACrC,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC5E,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import type { EconomicEvent, EventCategory } from "./market-types.js";
2
- export declare const LAST_UPDATED = "2026-05-12";
2
+ export declare const LAST_UPDATED = "2026-05-15";
3
3
  export declare const ECONOMIC_EVENTS: readonly EconomicEvent[];
4
4
  export declare function jstDateKey(now?: Date): string;
5
5
  export declare function getEventsForDate(date: string, events?: readonly EconomicEvent[]): EconomicEvent[];
@@ -7,7 +7,7 @@
7
7
  // 重要度: 1=★(参考)/ 2=★★(重要)/ 3=★★★(必読)。
8
8
  // 日付は JST、時刻が示す場合は HH:MM JST。終日イベント(FOMC 結果等)は time 省略。
9
9
  // 複数日にまたがるイベント(訪日・サミット等)は endDate を付与。
10
- export const LAST_UPDATED = "2026-05-12";
10
+ export const LAST_UPDATED = "2026-05-15";
11
11
  export const ECONOMIC_EVENTS = [
12
12
  // ============ 2026 年 5 月 ============
13
13
  { date: "2026-05-01", time: "10:30", country: "CN", name: "中国 製造業 PMI(4 月)", importance: 2 },
@@ -20,7 +20,7 @@ export const ECONOMIC_EVENTS = [
20
20
  { date: "2026-05-12", time: "21:30", country: "US", name: "米 CPI(4 月)", importance: 3, note: "総合・コア前年比" },
21
21
  { date: "2026-05-13", time: "21:30", country: "US", name: "米 PPI(4 月)", importance: 2 },
22
22
  { date: "2026-05-14", time: "21:30", country: "US", name: "米 小売売上高(4 月)", importance: 2 },
23
- { date: "2026-05-15", country: "JP", name: "日 GDP 一次速報(1-3 月期)", importance: 3 },
23
+ { date: "2026-05-19", time: "08:50", country: "JP", name: "日 GDP 一次速報(1-3 月期)", importance: 3 },
24
24
  { date: "2026-05-22", time: "08:30", country: "JP", name: "日 CPI(4 月)", importance: 2 },
25
25
  { date: "2026-05-28", time: "21:30", country: "US", name: "米 PCE 価格指数(4 月)", importance: 3, note: "FRB が重視するインフレ指標" },
26
26
  // ============ 2026 年 6 月 ============
@@ -30,7 +30,7 @@ export const ECONOMIC_EVENTS = [
30
30
  { date: "2026-06-05", time: "21:30", country: "US", name: "米 雇用統計(5 月)", importance: 3 },
31
31
  { date: "2026-06-10", time: "21:30", country: "US", name: "米 CPI(5 月)", importance: 3 },
32
32
  { date: "2026-06-11", time: "21:30", country: "US", name: "米 PPI(5 月)", importance: 2 },
33
- { date: "2026-06-12", country: "JP", name: "日 SQ(先物・オプション特別清算指数)", importance: 1 },
33
+ { date: "2026-06-12", country: "JP", name: "日 SQ", importance: 1 },
34
34
  { date: "2026-06-15", country: "JP", name: "日銀 金融政策決定会合(1 日目)", importance: 3 },
35
35
  { date: "2026-06-16", country: "JP", name: "日銀 金融政策決定会合(結果発表)", importance: 3, note: "総裁会見あり" },
36
36
  { date: "2026-06-16", country: "US", name: "FOMC(1 日目)", importance: 3 },
@@ -1 +1 @@
1
- {"version":3,"file":"economic-events.js","sourceRoot":"","sources":["../../src/lib/economic-events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"economic-events.js","sourceRoot":"","sources":["../../src/lib/economic-events.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { ReleaseAdapter } from "../types.js";
2
+ export declare const beaAdapter: ReleaseAdapter;
@@ -0,0 +1,55 @@
1
+ // BEA(米経済分析局)アダプタ。
2
+ // 公式の機械可読リリース日程 JSON を取得する。スクレイピング不要・公式 API。
3
+ // https://apps.bea.gov/API/signup/release_dates.json
4
+ // 形式: { "<リリース名>": { "release_dates": ["2026-05-28T12:30:00+00:00", ...] }, ... }
5
+ // 個人投資家が見る主要 4 系列に絞って ReleaseEvent[] に正規化する。
6
+ import { withCache, DEFAULT_CACHE_TTL_MS } from "../cache.js";
7
+ import { jstParts, RELEASE_PULSE_UA, RELEASE_PULSE_FETCH_TIMEOUT_MS } from "../util.js";
8
+ const BEA_URL = "https://apps.bea.gov/API/signup/release_dates.json";
9
+ const BEA_SOURCE_URL = "https://www.bea.gov/news/schedule";
10
+ // BEA の release_dates.json のキー → 日本語表示名。
11
+ // 全 27 系列のうち、市況で参照される主要指標のみ採用。
12
+ const BEA_RELEASES = {
13
+ "Gross Domestic Product": "米 GDP",
14
+ "Personal Income and Outlays": "米 個人所得・支出(PCE)",
15
+ "U.S. International Trade in Goods and Services": "米 貿易収支",
16
+ "Corporate Profits": "米 企業収益",
17
+ };
18
+ export const beaAdapter = {
19
+ key: "bea",
20
+ label: "BEA(米経済分析局)",
21
+ fetchEvents: () => withCache("bea", DEFAULT_CACHE_TTL_MS, async () => {
22
+ const res = await fetch(BEA_URL, {
23
+ headers: { "User-Agent": RELEASE_PULSE_UA, Accept: "application/json" },
24
+ signal: AbortSignal.timeout(RELEASE_PULSE_FETCH_TIMEOUT_MS),
25
+ redirect: "follow",
26
+ });
27
+ if (!res.ok)
28
+ throw new Error(`HTTP ${res.status}`);
29
+ const data = (await res.json());
30
+ const out = [];
31
+ for (const [key, jpName] of Object.entries(BEA_RELEASES)) {
32
+ const dates = data[key]?.release_dates;
33
+ if (!Array.isArray(dates))
34
+ continue;
35
+ for (const raw of dates) {
36
+ if (typeof raw !== "string")
37
+ continue;
38
+ const ms = Date.parse(raw);
39
+ if (Number.isNaN(ms))
40
+ continue;
41
+ const { date, time } = jstParts(ms);
42
+ out.push({
43
+ date,
44
+ time,
45
+ country: "US",
46
+ name: jpName,
47
+ source: "BEA",
48
+ sourceUrl: BEA_SOURCE_URL,
49
+ });
50
+ }
51
+ }
52
+ return out;
53
+ }),
54
+ };
55
+ //# sourceMappingURL=bea.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bea.js","sourceRoot":"","sources":["../../../../src/lib/economic-release-pulse/adapters/bea.ts"],"names":[],"mappings":"AAAA,mBAAmB;AACnB,6CAA6C;AAC7C,uDAAuD;AACvD,kFAAkF;AAClF,6CAA6C;AAG7C,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,8BAA8B,EAAE,MAAM,YAAY,CAAC;AAExF,MAAM,OAAO,GAAG,oDAAoD,CAAC;AACrE,MAAM,cAAc,GAAG,mCAAmC,CAAC;AAE3D,yCAAyC;AACzC,+BAA+B;AAC/B,MAAM,YAAY,GAAqC;IACrD,wBAAwB,EAAE,OAAO;IACjC,6BAA6B,EAAE,gBAAgB;IAC/C,gDAAgD,EAAE,QAAQ;IAC1D,mBAAmB,EAAE,QAAQ;CAC9B,CAAC;AAIF,MAAM,CAAC,MAAM,UAAU,GAAmB;IACxC,GAAG,EAAE,KAAK;IACV,KAAK,EAAE,aAAa;IACpB,WAAW,EAAE,GAAG,EAAE,CAChB,SAAS,CAAC,KAAK,EAAE,oBAAoB,EAAE,KAAK,IAAI,EAAE;QAChD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE;YAC/B,OAAO,EAAE,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,EAAE,kBAAkB,EAAE;YACvE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,8BAA8B,CAAC;YAC3D,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QACnD,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAoC,CAAC;QAEnE,MAAM,GAAG,GAAmB,EAAE,CAAC;QAC/B,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;YACzD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,aAAa,CAAC;YACvC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;gBAAE,SAAS;YACpC,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;gBACxB,IAAI,OAAO,GAAG,KAAK,QAAQ;oBAAE,SAAS;gBACtC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC3B,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;oBAAE,SAAS;gBAC/B,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;gBACpC,GAAG,CAAC,IAAI,CAAC;oBACP,IAAI;oBACJ,IAAI;oBACJ,OAAO,EAAE,IAAI;oBACb,IAAI,EAAE,MAAM;oBACZ,MAAM,EAAE,KAAK;oBACb,SAAS,EAAE,cAAc;iBAC1B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;CACL,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { ReleaseAdapter } from "../types.js";
2
+ export declare const bojAdapter: ReleaseAdapter;
@@ -0,0 +1,21 @@
1
+ // 日銀アダプタ。
2
+ // 日銀の金融政策決定会合・主な意見・短観・議事要旨は、既に economic-events.ts に
3
+ // 手動キュレーション+verify:cb で裏取り済みのデータがある。それを再利用し、
4
+ // pulse ツールの出力にも JP の中銀イベントが含まれるようにする
5
+ // (新規スクレイピングはせず、verify 済みデータの再エクスポートに留める)。
6
+ import { ECONOMIC_EVENTS } from "../../economic-events.js";
7
+ const BOJ_SOURCE_URL = "https://www.boj.or.jp/about/calendar/index.htm";
8
+ export const bojAdapter = {
9
+ key: "boj",
10
+ label: "日銀(金融政策決定会合・主な意見・短観・議事要旨)",
11
+ // ネットワーク不要・同期だが、ReleaseAdapter 契約に合わせ async で返す。
12
+ fetchEvents: async () => ECONOMIC_EVENTS.filter((e) => e.country === "JP" && e.name.startsWith("日銀")).map((e) => ({
13
+ date: e.date,
14
+ ...(e.time ? { time: e.time } : {}),
15
+ country: "JP",
16
+ name: e.name,
17
+ source: "日銀(lit-forge 収録データ)",
18
+ sourceUrl: BOJ_SOURCE_URL,
19
+ })),
20
+ };
21
+ //# sourceMappingURL=boj.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"boj.js","sourceRoot":"","sources":["../../../../src/lib/economic-release-pulse/adapters/boj.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,oDAAoD;AACpD,6CAA6C;AAC7C,sCAAsC;AACtC,2CAA2C;AAE3C,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAG3D,MAAM,cAAc,GAAG,gDAAgD,CAAC;AAExE,MAAM,CAAC,MAAM,UAAU,GAAmB;IACxC,GAAG,EAAE,KAAK;IACV,KAAK,EAAE,2BAA2B;IAClC,iDAAiD;IACjD,WAAW,EAAE,KAAK,IAA6B,EAAE,CAC/C,eAAe,CAAC,MAAM,CACpB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CACrD,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACZ,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnC,OAAO,EAAE,IAAa;QACtB,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,MAAM,EAAE,qBAAqB;QAC7B,SAAS,EAAE,cAAc;KAC1B,CAAC,CAAC;CACN,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { ReleaseAdapter, ReleaseEvent } from "../types.js";
2
+ export declare function parseCaoDate(s: string): string | null;
3
+ export declare function parseCaoTime(s: string): string | null;
4
+ export declare function parseCaoGdpTable(html: string): ReleaseEvent[];
5
+ export declare const caoAdapter: ReleaseAdapter;
@@ -0,0 +1,72 @@
1
+ // 内閣府(経済社会総合研究所)アダプタ。
2
+ // 「公表予定」ページの先頭テーブル「四半期別GDP速報」を HTML パースする。
3
+ // https://www.esri.cao.go.jp/jp/sna/kouhyou/kouhyou_top.html
4
+ // テーブル構造(安定・小サイズ 12KB):
5
+ // <tr><td>2026年1-3月期(1次速報)</td><td>2026(令和8)年5月19日(火)</td><td>8時50分</td></tr>
6
+ // 依存追加を避けるため正規表現ベース(geopolitical-pulse の parseRss と同方針)。
7
+ import { withCache, DEFAULT_CACHE_TTL_MS } from "../cache.js";
8
+ import { RELEASE_PULSE_UA, RELEASE_PULSE_FETCH_TIMEOUT_MS } from "../util.js";
9
+ const CAO_URL = "https://www.esri.cao.go.jp/jp/sna/kouhyou/kouhyou_top.html";
10
+ // "2026(令和8)年5月19日(火)" → "2026-05-19"。和暦括弧・曜日は無視。
11
+ // "未定" / "2026年12月中旬以降" など precise でないものは null。
12
+ export function parseCaoDate(s) {
13
+ const m = s.match(/(\d{4})(?:([^)]*))?年(\d{1,2})月(\d{1,2})日/);
14
+ if (!m)
15
+ return null;
16
+ const [, y, mo, d] = m;
17
+ return `${y}-${mo.padStart(2, "0")}-${d.padStart(2, "0")}`;
18
+ }
19
+ // "8時50分" → "08:50"。"-" 等は null。
20
+ export function parseCaoTime(s) {
21
+ const m = s.match(/(\d{1,2})時(\d{1,2})分/);
22
+ if (!m)
23
+ return null;
24
+ return `${m[1].padStart(2, "0")}:${m[2].padStart(2, "0")}`;
25
+ }
26
+ // 内閣府 公表予定ページ HTML から「四半期別GDP速報」テーブルの行を抽出する。
27
+ // 見出し「四半期別GDP速報」直後の最初の <table>...</table> のみ対象。
28
+ export function parseCaoGdpTable(html) {
29
+ const tableMatch = html.match(/四半期別GDP速報[\s\S]*?<table[^>]*>([\s\S]*?)<\/table>/);
30
+ if (!tableMatch)
31
+ return [];
32
+ const tableInner = tableMatch[1];
33
+ const out = [];
34
+ const rowRe = /<tr>([\s\S]*?)<\/tr>/g;
35
+ let rm;
36
+ while ((rm = rowRe.exec(tableInner)) !== null) {
37
+ const cells = [...rm[1].matchAll(/<td[^>]*>([\s\S]*?)<\/td>/g)].map((c) => c[1].replace(/<[^>]+>/g, "").replace(/\s+/g, "").trim());
38
+ // thead 行は <th> のみで cells が空 → スキップ
39
+ if (cells.length < 2)
40
+ continue;
41
+ const [period, dateStr, timeStr] = cells;
42
+ const date = parseCaoDate(dateStr ?? "");
43
+ if (!date)
44
+ continue; // 「未定」「中旬以降」等はスキップ
45
+ const time = parseCaoTime(timeStr ?? "");
46
+ out.push({
47
+ date,
48
+ ...(time ? { time } : {}),
49
+ country: "JP",
50
+ name: `日 GDP速報 ${period}`,
51
+ source: "内閣府",
52
+ sourceUrl: CAO_URL,
53
+ });
54
+ }
55
+ return out;
56
+ }
57
+ export const caoAdapter = {
58
+ key: "cao",
59
+ label: "内閣府(四半期別 GDP 速報)",
60
+ fetchEvents: () => withCache("cao", DEFAULT_CACHE_TTL_MS, async () => {
61
+ const res = await fetch(CAO_URL, {
62
+ headers: { "User-Agent": RELEASE_PULSE_UA, Accept: "text/html" },
63
+ signal: AbortSignal.timeout(RELEASE_PULSE_FETCH_TIMEOUT_MS),
64
+ redirect: "follow",
65
+ });
66
+ if (!res.ok)
67
+ throw new Error(`HTTP ${res.status}`);
68
+ const html = await res.text();
69
+ return parseCaoGdpTable(html);
70
+ }),
71
+ };
72
+ //# sourceMappingURL=cao.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cao.js","sourceRoot":"","sources":["../../../../src/lib/economic-release-pulse/adapters/cao.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare const DEFAULT_CACHE_TTL_MS: number;
2
+ export declare function withCache<T>(key: string, ttlMs: number, fn: () => Promise<T>): Promise<T>;
3
+ export declare function clearCache(): void;
@@ -0,0 +1,22 @@
1
+ // アダプタ単位の in-memory TTL キャッシュ。
2
+ // 経済指標カレンダーは日内でほぼ変わらないため既定 6h。
3
+ // MCP プロセス存続中のみ有効(プロセス再起動でクリア)。
4
+ const store = new Map();
5
+ // 既定 TTL(6 時間)。
6
+ export const DEFAULT_CACHE_TTL_MS = 6 * 3600 * 1000;
7
+ // key で引き、未キャッシュ or 期限切れなら fn() を実行して格納する。
8
+ // fn() が throw した場合はキャッシュせず素通しで throw(失敗を握り込まない)。
9
+ export async function withCache(key, ttlMs, fn) {
10
+ const hit = store.get(key);
11
+ if (hit && hit.expiresAt > Date.now()) {
12
+ return hit.value;
13
+ }
14
+ const value = await fn();
15
+ store.set(key, { value, expiresAt: Date.now() + ttlMs });
16
+ return value;
17
+ }
18
+ // テスト用: キャッシュを全消去する。
19
+ export function clearCache() {
20
+ store.clear();
21
+ }
22
+ //# sourceMappingURL=cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../src/lib/economic-release-pulse/cache.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,+BAA+B;AAC/B,gCAAgC;AAIhC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAiB,CAAC;AAEvC,gBAAgB;AAChB,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAEpD,2CAA2C;AAC3C,kDAAkD;AAClD,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,GAAW,EACX,KAAa,EACb,EAAoB;IAEpB,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,GAAG,IAAI,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QACtC,OAAO,GAAG,CAAC,KAAU,CAAC;IACxB,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,EAAE,EAAE,CAAC;IACzB,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;IACzD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,qBAAqB;AACrB,MAAM,UAAU,UAAU;IACxB,KAAK,CAAC,KAAK,EAAE,CAAC;AAChB,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { AdapterResult, ReleaseCountry, ReleaseEvent } from "./types.js";
2
+ export type ReleaseRange = "today" | "week";
3
+ export type EconomicReleasePulse = {
4
+ fetchedAt: string;
5
+ today: string;
6
+ range: ReleaseRange;
7
+ sources: AdapterResult[];
8
+ events: ReleaseEvent[];
9
+ };
10
+ export declare function fetchEconomicReleasePulse(opts: {
11
+ range: ReleaseRange;
12
+ country?: ReleaseCountry;
13
+ now?: Date;
14
+ }): Promise<EconomicReleasePulse>;
@@ -0,0 +1,74 @@
1
+ // 経済指標リリース予定アグリゲータ。
2
+ // 全アダプタを並列実行し、エラーを隔離(部分成功)、国/期間フィルタ・dedupe・ソートして返す。
3
+ // geopolitical-pulse.ts の fetchPulse と同じ構造。
4
+ import { jstToday, jstDatePlus } from "./util.js";
5
+ import { beaAdapter } from "./adapters/bea.js";
6
+ import { caoAdapter } from "./adapters/cao.js";
7
+ import { bojAdapter } from "./adapters/boj.js";
8
+ // 登録アダプタ。新ソース追加時はここに 1 行足す。
9
+ // 次サイクル候補: NY 連銀(Empire State)、FRB(鉱工業生産・FOMC)、BLS、総務省統計局。
10
+ const ADAPTERS = [beaAdapter, caoAdapter, bojAdapter];
11
+ // date(YYYY-MM-DD) が [from, to] の範囲内か(文字列比較で OK)。
12
+ function inRange(date, from, to) {
13
+ return date >= from && date <= to;
14
+ }
15
+ // 全アダプタ並列実行 → 国/期間フィルタ → dedupe → 日時ソート。
16
+ export async function fetchEconomicReleasePulse(opts) {
17
+ const now = opts.now ?? new Date();
18
+ const today = jstToday(now);
19
+ const to = opts.range === "week" ? jstDatePlus(6, now) : today;
20
+ const settled = await Promise.all(ADAPTERS.map(async (a) => {
21
+ const t0 = Date.now();
22
+ try {
23
+ const events = await a.fetchEvents();
24
+ return {
25
+ result: {
26
+ key: a.key,
27
+ label: a.label,
28
+ ok: true,
29
+ count: events.length,
30
+ elapsedMs: Date.now() - t0,
31
+ },
32
+ events,
33
+ };
34
+ }
35
+ catch (e) {
36
+ const msg = e instanceof Error ? e.message : "fetch failed";
37
+ return {
38
+ result: {
39
+ key: a.key,
40
+ label: a.label,
41
+ ok: false,
42
+ count: 0,
43
+ error: msg,
44
+ elapsedMs: Date.now() - t0,
45
+ },
46
+ events: [],
47
+ };
48
+ }
49
+ }));
50
+ let events = settled.flatMap((s) => s.events);
51
+ if (opts.country) {
52
+ events = events.filter((e) => e.country === opts.country);
53
+ }
54
+ events = events.filter((e) => inRange(e.date, today, to));
55
+ // dedupe(date|time|country|name)。BEA は同一日が重複することがあるため必須。
56
+ const seen = new Set();
57
+ const deduped = [];
58
+ for (const e of events) {
59
+ const k = `${e.date}|${e.time ?? ""}|${e.country}|${e.name}`;
60
+ if (seen.has(k))
61
+ continue;
62
+ seen.add(k);
63
+ deduped.push(e);
64
+ }
65
+ deduped.sort((a, b) => (a.date + (a.time ?? "99:99")).localeCompare(b.date + (b.time ?? "99:99")));
66
+ return {
67
+ fetchedAt: new Date().toISOString(),
68
+ today,
69
+ range: opts.range,
70
+ sources: settled.map((s) => s.result),
71
+ events: deduped,
72
+ };
73
+ }
74
+ //# sourceMappingURL=pulse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pulse.js","sourceRoot":"","sources":["../../../src/lib/economic-release-pulse/pulse.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ export type ReleaseCountry = "US" | "JP" | "EU" | "GB" | "CN";
2
+ export type ReleaseEvent = {
3
+ date: string;
4
+ time?: string;
5
+ country: ReleaseCountry;
6
+ name: string;
7
+ source: string;
8
+ sourceUrl: string;
9
+ };
10
+ export type AdapterResult = {
11
+ key: string;
12
+ label: string;
13
+ ok: boolean;
14
+ count: number;
15
+ error?: string;
16
+ elapsedMs: number;
17
+ };
18
+ export type ReleaseAdapter = {
19
+ key: string;
20
+ label: string;
21
+ fetchEvents: () => Promise<ReleaseEvent[]>;
22
+ };
@@ -0,0 +1,11 @@
1
+ // 経済指標リリース予定のリアルタイム取得(v0.11.0 新設)の共通型。
2
+ //
3
+ // 背景: get_economic_events_today は手動キュレーション(★★★ 中心・半年 1 回更新)で、
4
+ // NY 連銀製造業や鉱工業生産など収録外の指標を「取りこぼす」網羅性の穴があった。
5
+ // 本モジュールは公式機関のリリースカレンダーをアダプタ経由で実取得し、
6
+ // 既存ツールを「補完」する(置き換えではない)。
7
+ //
8
+ // 設計思想は geopolitical-pulse.ts を踏襲: 各ソースは独立、失敗しても全体は止めず
9
+ // AdapterResult[] で部分成功を呼び出し側に伝える。
10
+ export {};
11
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/lib/economic-release-pulse/types.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,EAAE;AACF,8DAA8D;AAC9D,2CAA2C;AAC3C,qCAAqC;AACrC,0BAA0B;AAC1B,EAAE;AACF,uDAAuD;AACvD,mCAAmC"}
@@ -0,0 +1,8 @@
1
+ export declare function jstParts(epochMs: number): {
2
+ date: string;
3
+ time: string;
4
+ };
5
+ export declare function jstToday(now?: Date): string;
6
+ export declare function jstDatePlus(daysAhead: number, now?: Date): string;
7
+ export declare const RELEASE_PULSE_UA = "Mozilla/5.0 (compatible; lit-forge-mcp/0.11; +https://github.com/noblabs/lit-forge-mcp)";
8
+ export declare const RELEASE_PULSE_FETCH_TIMEOUT_MS = 12000;
@@ -0,0 +1,21 @@
1
+ // JST 関連ヘルパー。経済指標の日付は全て JST に正規化して扱う。
2
+ // UNIX epoch(ms) を JST の { date: "YYYY-MM-DD", time: "HH:MM" } に分解する。
3
+ // UTC に +9h して toISOString の UTC 表現を JST 壁時計として使う手法。
4
+ export function jstParts(epochMs) {
5
+ const jst = new Date(epochMs + 9 * 3600 * 1000);
6
+ const iso = jst.toISOString();
7
+ return { date: iso.slice(0, 10), time: iso.slice(11, 16) };
8
+ }
9
+ // JST の本日(YYYY-MM-DD)。
10
+ export function jstToday(now = new Date()) {
11
+ return jstParts(now.getTime()).date;
12
+ }
13
+ // JST で now から daysAhead 日後の YYYY-MM-DD。
14
+ export function jstDatePlus(daysAhead, now = new Date()) {
15
+ return jstParts(now.getTime() + daysAhead * 24 * 3600 * 1000).date;
16
+ }
17
+ // 共通 User-Agent。一部の公式サイトは無 UA / bot UA を 403 で弾くため
18
+ // ブラウザ系 UA を送る(geopolitical-pulse と同方針)。
19
+ export const RELEASE_PULSE_UA = "Mozilla/5.0 (compatible; lit-forge-mcp/0.11; +https://github.com/noblabs/lit-forge-mcp)";
20
+ export const RELEASE_PULSE_FETCH_TIMEOUT_MS = 12_000;
21
+ //# sourceMappingURL=util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/lib/economic-release-pulse/util.ts"],"names":[],"mappings":"AAAA,sCAAsC;AAEtC,sEAAsE;AACtE,qDAAqD;AACrD,MAAM,UAAU,QAAQ,CAAC,OAAe;IACtC,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;IAChD,MAAM,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IAC9B,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;AAC7D,CAAC;AAED,uBAAuB;AACvB,MAAM,UAAU,QAAQ,CAAC,MAAY,IAAI,IAAI,EAAE;IAC7C,OAAO,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC;AACtC,CAAC;AAED,yCAAyC;AACzC,MAAM,UAAU,WAAW,CAAC,SAAiB,EAAE,MAAY,IAAI,IAAI,EAAE;IACnE,OAAO,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,SAAS,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC;AACrE,CAAC;AAED,mDAAmD;AACnD,yCAAyC;AACzC,MAAM,CAAC,MAAM,gBAAgB,GAC3B,yFAAyF,CAAC;AAE5F,MAAM,CAAC,MAAM,8BAA8B,GAAG,MAAM,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { type LitForgeTool } from "./types.js";
2
+ export declare const getEconomicReleasePulseTool: LitForgeTool;
@@ -0,0 +1,63 @@
1
+ // 経済指標リリース予定 リアルタイム取得ツール(v0.11.0 新設)。
2
+ //
3
+ // 役割分担:
4
+ // - 本ツール: 公式機関のリリースカレンダーを実取得し、収録漏れの無い「網羅性」を担保
5
+ // - get_economic_events_today: 手動キュレーション(★★★ 中心・半年 1 回更新・verify 済み)
6
+ // 両者は補完関係。市況サマリーでは両方を併用するのが望ましい。
7
+ //
8
+ // 現行カバー範囲(v0.11.0):
9
+ // - BEA(米): GDP / 個人所得・支出(PCE)/ 貿易収支 / 企業収益 — 公式 JSON
10
+ // - 内閣府(日): 四半期別 GDP 速報 — 公式 HTML
11
+ // - 日銀(日): 金融政策決定会合 / 主な意見 / 短観 / 議事要旨 — lit-forge 収録データ再利用
12
+ // 次サイクル予定: NY 連銀(Empire State)/ FRB(鉱工業生産・FOMC)/ BLS / 総務省統計局。
13
+ import { z } from "zod";
14
+ import { fetchEconomicReleasePulse, } from "../lib/economic-release-pulse/pulse.js";
15
+ import { jsonReply } from "./types.js";
16
+ const inputSchema = {
17
+ range: z
18
+ .enum(["today", "week"])
19
+ .optional()
20
+ .describe("today=本日のみ / week=今日含む 7 日間。既定 today"),
21
+ country: z
22
+ .enum(["US", "JP", "EU", "GB", "CN"])
23
+ .optional()
24
+ .describe("国コード絞り込み: US=米国 / JP=日本 / EU / GB / CN。未指定で全件。" +
25
+ "現行カバーは US(BEA)と JP(内閣府・日銀)のみ"),
26
+ };
27
+ export const getEconomicReleasePulseTool = {
28
+ name: "get_economic_release_pulse",
29
+ title: "経済指標リリース予定(公式機関カレンダー リアルタイム取得)",
30
+ description: "**公式機関のリリースカレンダーを実取得**して、当日〜週内の経済指標発表予定を返すツール。" +
31
+ "BEA(米経済分析局)・内閣府・日銀の公式日程を並列取得し、国・期間でフィルタして返します。" +
32
+ "【get_economic_events_today との違い】" +
33
+ "`get_economic_events_today` は運営者が一次ソースで裏取りした手動キュレーション(★★★ 中心、半年 1 回更新)で、" +
34
+ "収録対象を絞っているため NY 連銀製造業や鉱工業生産などを取りこぼす『網羅性の穴』があります。" +
35
+ "本ツールは公式カレンダーを実取得することでその穴を埋める**補完ツール**です。市況サマリーでは両方を併用してください。" +
36
+ "【現行カバー範囲(v0.11.0)】" +
37
+ "BEA(米 GDP / 個人所得・支出〔PCE〕/ 貿易収支 / 企業収益)、内閣府(四半期別 GDP 速報)、" +
38
+ "日銀(金融政策決定会合 / 主な意見 / 短観 / 議事要旨)。" +
39
+ "NY 連銀(Empire State)・FRB(鉱工業生産・FOMC)・BLS(雇用統計・CPI・PPI)・総務省統計局(日 CPI)は次サイクルで追加予定で、現時点では本ツールに含まれません。" +
40
+ "【利用上の注意】" +
41
+ "アダプタ単位の取得失敗は sources 配列に error として記録され、他アダプタの結果は返されます(部分成功)。" +
42
+ "結果は 6 時間キャッシュされます。各イベントには一次ソース URL(sourceUrl)が付きます。",
43
+ inputSchema,
44
+ handler: async ({ range, country }) => {
45
+ const effectiveRange = (range ?? "today");
46
+ const result = await fetchEconomicReleasePulse({
47
+ range: effectiveRange,
48
+ country: country,
49
+ });
50
+ return jsonReply({
51
+ today: result.today,
52
+ range: result.range,
53
+ fetchedAt: result.fetchedAt,
54
+ count: result.events.length,
55
+ events: result.events,
56
+ sources: result.sources,
57
+ note: "公式機関のリリースカレンダーを実取得した結果です。手動キュレーションの " +
58
+ "`get_economic_events_today` を補完します(網羅性担保が目的)。" +
59
+ "アダプタ単位の失敗は sources[].error を参照してください。",
60
+ });
61
+ },
62
+ };
63
+ //# sourceMappingURL=get-economic-release-pulse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-economic-release-pulse.js","sourceRoot":"","sources":["../../src/tools/get-economic-release-pulse.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,EAAE;AACF,QAAQ;AACR,gDAAgD;AAChD,sEAAsE;AACtE,mCAAmC;AACnC,EAAE;AACF,oBAAoB;AACpB,wDAAwD;AACxD,oCAAoC;AACpC,8DAA8D;AAC9D,+DAA+D;AAE/D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,yBAAyB,GAE1B,MAAM,wCAAwC,CAAC;AAEhD,OAAO,EAAE,SAAS,EAAqB,MAAM,YAAY,CAAC;AAE1D,MAAM,WAAW,GAAG;IAClB,KAAK,EAAE,CAAC;SACL,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;SACvB,QAAQ,EAAE;SACV,QAAQ,CAAC,sCAAsC,CAAC;IACnD,OAAO,EAAE,CAAC;SACP,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;SACpC,QAAQ,EAAE;SACV,QAAQ,CACP,gDAAgD;QAC9C,8BAA8B,CACjC;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAiB;IACvD,IAAI,EAAE,4BAA4B;IAClC,KAAK,EAAE,gCAAgC;IACvC,WAAW,EACT,gDAAgD;QAChD,gDAAgD;QAChD,kCAAkC;QAClC,0EAA0E;QAC1E,kDAAkD;QAClD,8DAA8D;QAC9D,oBAAoB;QACpB,0DAA0D;QAC1D,kCAAkC;QAClC,mGAAmG;QACnG,UAAU;QACV,8DAA8D;QAC9D,qDAAqD;IACvD,WAAW;IACX,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;QACpC,MAAM,cAAc,GAAG,CAAC,KAAK,IAAI,OAAO,CAAiB,CAAC;QAC1D,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAAC;YAC7C,KAAK,EAAE,cAAc;YACrB,OAAO,EAAE,OAAqC;SAC/C,CAAC,CAAC;QACH,OAAO,SAAS,CAAC;YACf,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM;YAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,IAAI,EACF,sCAAsC;gBACtC,+CAA+C;gBAC/C,uCAAuC;SAC1C,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
@@ -26,6 +26,7 @@ import { getDividendHistoryTool } from "./get-dividend-history.js";
26
26
  import { getAnalystConsensusTool } from "./get-analyst-consensus.js";
27
27
  import { getGeopoliticalCalendarTool } from "./get-geopolitical-calendar.js";
28
28
  import { getGeopoliticalPulseTool } from "./get-geopolitical-pulse.js";
29
+ import { getEconomicReleasePulseTool } from "./get-economic-release-pulse.js";
29
30
  export const tools = [
30
31
  simulateNisaTool,
31
32
  planRetirementTool,
@@ -46,5 +47,7 @@ export const tools = [
46
47
  // v0.9.0 新規 / リネーム: 地政学カレンダー(旧 get_geopolitical_events)+ リアルタイム速報
47
48
  getGeopoliticalCalendarTool,
48
49
  getGeopoliticalPulseTool,
50
+ // v0.11.0 新規: 経済指標リリース予定の公式機関カレンダー リアルタイム取得(手動キュレーションの網羅性補完)
51
+ getEconomicReleasePulseTool,
49
52
  ];
50
53
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,EAAE;AACF,sDAAsD;AACtD,6CAA6C;AAC7C,8DAA8D;AAC9D,0DAA0D;AAC1D,yDAAyD;AACzD,kBAAkB;AAClB,kEAAkE;AAClE,mFAAmF;AACnF,+HAA+H;AAC/H,0CAA0C;AAE1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAEvE,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,gBAAgB;IAChB,kBAAkB;IAClB,4BAA4B;IAC5B,6BAA6B;IAC7B,qBAAqB;IACrB,0BAA0B;IAC1B,YAAY;IACZ,eAAe;IACf,wBAAwB;IACxB,yBAAyB;IACzB,kBAAkB;IAClB,qBAAqB;IACrB,oBAAoB;IACpB,eAAe;IACf,sBAAsB;IACtB,uBAAuB;IACvB,kEAAkE;IAClE,2BAA2B;IAC3B,wBAAwB;CACzB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,EAAE;AACF,sDAAsD;AACtD,6CAA6C;AAC7C,8DAA8D;AAC9D,0DAA0D;AAC1D,yDAAyD;AACzD,kBAAkB;AAClB,kEAAkE;AAClE,mFAAmF;AACnF,+HAA+H;AAC/H,0CAA0C;AAE1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAE9E,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,gBAAgB;IAChB,kBAAkB;IAClB,4BAA4B;IAC5B,6BAA6B;IAC7B,qBAAqB;IACrB,0BAA0B;IAC1B,YAAY;IACZ,eAAe;IACf,wBAAwB;IACxB,yBAAyB;IACzB,kBAAkB;IAClB,qBAAqB;IACrB,oBAAoB;IACpB,eAAe;IACf,sBAAsB;IACtB,uBAAuB;IACvB,kEAAkE;IAClE,2BAA2B;IAC3B,wBAAwB;IACxB,6DAA6D;IAC7D,2BAA2B;CAC5B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lit-forge-mcp",
3
- "version": "0.9.0",
3
+ "version": "0.11.0",
4
4
  "mcpName": "io.github.noblabs/lit-forge-mcp",
5
5
  "description": "MCP server for personal asset planning + daily market check: NISA / iDeCo simulation, retirement planning, market snapshot (USD/JPY, Nikkei, S&P 500, etc.), dividend history, analyst consensus, economic events.",
6
6
  "type": "module",
@@ -47,9 +47,11 @@
47
47
  "test:watch": "vitest",
48
48
  "verify:cb": "node scripts/verify-central-bank-events.mjs",
49
49
  "verify:us-macro": "node scripts/verify-us-macro-events.mjs",
50
+ "verify:jp-macro": "node scripts/verify-jp-macro-events.mjs",
50
51
  "verify:geopolitical": "node scripts/verify-geopolitical-events.mjs",
51
- "verify:all": "npm run verify:cb && npm run verify:us-macro && npm run verify:geopolitical",
52
- "prepare": "npm run build"
52
+ "verify:all": "npm run verify:cb && npm run verify:us-macro && npm run verify:jp-macro && npm run verify:geopolitical",
53
+ "prepare": "npm run build",
54
+ "prepublishOnly": "npm run build && npm run verify:all"
53
55
  },
54
56
  "dependencies": {
55
57
  "@modelcontextprotocol/sdk": "^1.29.0",