lit-forge-mcp 0.16.0 → 0.18.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.
package/README.md CHANGED
@@ -4,11 +4,13 @@
4
4
  [![license](https://img.shields.io/npm/l/lit-forge-mcp.svg)](./LICENSE)
5
5
  [![node](https://img.shields.io/node/v/lit-forge-mcp.svg)](https://nodejs.org)
6
6
 
7
- **個人資産形成シミュレーション・主要市況スナップショット・経済指標発表予定・地政学イベント** を、AI から直接呼び出せる Model Context Protocol(MCP)の stdio サーバーです(**18 ツール**)。
7
+ **個人資産形成シミュレーション・主要市況スナップショット・経済指標発表予定・中銀高官発言・地政学イベント** を、AI から直接呼び出せる Model Context Protocol(MCP)の stdio サーバーです(**19 ツール**)。
8
8
 
9
9
  Claude Desktop / Claude Code / Cursor など、MCP に対応した任意の AI クライアントで動作します。
10
10
 
11
- > **最新版ハイライト(v0.16.0)**: `get_economic_events_today`(手動キュレーション経済カレンダー)に **米 消費者信頼感指数**(Conference Board・毎月最終火曜)と **ミシガン大消費者態度指数**(速報=第 2 金曜 / 確報=第 4 金曜)を追加。為替で注目度の高い米消費マインド系をカバー。
11
+ > **最新版ハイライト(v0.18.0)**: 新ツール `get_central_bank_speakers` を追加。ForexFactory の無料カレンダーから**これからの**中銀高官の発言・講演(FRB 理事・地区連銀総裁・日銀・ECB・BOE 等)をライブ取得し、米 Fed は当年 FOMC 名簿で **役職(ダラス連銀総裁等)と投票権の有無** を補完。投票メンバーの発言は重要度を引き上げ(議長=★★★ / 投票メンバー=★★以上)。※ v0.17.0 で `get_economic_events_today` に一時導入した静的 `centralbank` カテゴリは本ツールに一本化(撤去)。
12
+ >
13
+ > **v0.16.0**: `get_economic_events_today`(手動キュレーション経済カレンダー)に **米 消費者信頼感指数**(Conference Board・毎月最終火曜)と **ミシガン大消費者態度指数**(速報=第 2 金曜 / 確報=第 4 金曜)を追加。為替で注目度の高い米消費マインド系をカバー。
12
14
  >
13
15
  > **v0.15.0**: `get_economic_release_pulse` に **DOL/ETA 新規失業保険申請件数**(週次・毎週木 08:30 ET)と **S&P Global 米 PMI 速報**(製造業/サービス業 flash, 09:45 ET)を追加し、従来取りこぼしていた網羅性の穴を解消。
14
16
  >
@@ -59,13 +61,14 @@ Claude / GPT / Cursor との対話のなかで、たとえば次のような問
59
61
  | `get_dividend_history` | 個別株・ETF の過去 N 年の配当履歴と暦年合計を取得(`years`: 1/3/5/10、既定 5)。NISA 成長投資枠で配当銘柄を検討する一次情報として使用 |
60
62
  | `get_analyst_consensus` | 個別株のアナリスト推奨レーティング(強気買い〜強気売り)・目標株価(平均/高値/安値)・月別推奨内訳を取得。米国株は coverage が厚く、TSE 銘柄や ETF は欠損しやすい |
61
63
 
62
- ### 経済イベント & マクロ最新値 — 3 ツール
64
+ ### 経済イベント・中銀高官発言 & マクロ最新値 — 4 ツール
63
65
 
64
- 「**次にいつ発表されるか**」(カレンダー系 2 つ)と「**今の数字はいくつか**」(最新値 1 つ)を分担。
66
+ 「**次にいつ発表されるか**」(カレンダー系 2 つ)と「**誰がいつ話すか**」(発言 1 つ)と「**今の数字はいくつか**」(最新値 1 つ)を分担。
65
67
 
66
68
  | ツール名 | 説明 |
67
69
  |---|---|
68
- | `get_economic_events_today` | 当日 or 今週の経済イベント(FOMC・日銀金融政策決定会合・米雇用統計・CPI・GDP・米 消費者信頼感指数(CB / ミシガン大)・中国 PMI 等)を重要度付きで返す。`category` で `macro` / `policy` に絞り込み可能。期間イベント(ジャクソンホール会議等)は `endDate` で複数日対応。半年分を手動キュレーション |
70
+ | `get_economic_events_today` | 当日 or 今週の経済イベント(FOMC・日銀金融政策決定会合・米雇用統計・CPI・GDP・米 消費者信頼感指数(CB / ミシガン大)・中国 PMI 等)を重要度付きで返す。`category` で `macro` / `geopolitical` / `policy` に絞り込み可能。期間イベント(ジャクソンホール会議等)は `endDate` で複数日対応。半年分を手動キュレーション。中銀高官の発言は `get_central_bank_speakers` を使用 |
71
+ | `get_central_bank_speakers` | **これからの中銀高官の発言・講演をライブ取得**: ForexFactory 無料カレンダーから発言系イベント(FRB 理事・地区連銀総裁・日銀・ECB・BOE 等)を抽出。米 Fed は当年 FOMC 名簿で **role(ダラス連銀総裁等)/ votingMember(投票権の有無)** を補完し、投票メンバーは重要度を引き上げ(議長=★★★ / 投票メンバー=★★以上)。`range`(today/week)・`countries`(US/JP/EU/GB/CN/OTHER)で絞り込み。6 時間キャッシュ |
69
72
  | `get_economic_release_pulse` | **公式機関の発表予定を実取得**: BEA / NY 連銀 / FRB / **BLS(PFEI 経由)** / **DOL/ETA(新規失業保険申請件数)** / **S&P Global(製造業・サービス業 PMI 速報)** / 内閣府 / 日銀 のカレンダーを並列取得し、本日・今週・今月の経済指標リリース予定を統合して返す。BLS 三大指標は v0.14.0 で PFEI Schedule 統合、DOL/ETA・S&P Global は v0.15.0 で追加(前者は木曜計算 + 祝日補正、後者は公式カレンダー手転記) |
70
73
  | `get_us_macro_latest` | **米マクロ 7 系列の最新発表値**: 雇用統計・失業率・CPI・コア CPI・PPI・コア PPI・平均時給 を BLS Public Data API v2 から 1 リクエストで取得。値 + 前月比 + 前年同月比を返す。API key 不要・無認証 1 日 25 リクエスト・6 時間キャッシュ |
71
74
 
@@ -80,7 +83,7 @@ Claude / GPT / Cursor との対話のなかで、たとえば次のような問
80
83
 
81
84
  ## HTTP 通信について
82
85
 
83
- 市況・分析・個別株系ツールは **Yahoo Finance API(query1.finance.yahoo.com / query2.finance.yahoo.com)** へ、`get_us_macro_latest` は **BLS Public Data API v2(api.bls.gov)** へ、`get_economic_release_pulse` は **各公式機関のカレンダーページ**へ、`get_geopolitical_pulse` は **BBC / Al Jazeera / Google News の RSS** へ HTTPS リクエストを送信します。実行 PC のネットワークから外部に出る通信が発生する点にご留意ください。
86
+ 市況・分析・個別株系ツールは **Yahoo Finance API(query1.finance.yahoo.com / query2.finance.yahoo.com)** へ、`get_us_macro_latest` は **BLS Public Data API v2(api.bls.gov)** へ、`get_economic_release_pulse` は **各公式機関のカレンダーページ**へ、`get_geopolitical_pulse` は **BBC / Al Jazeera / Google News の RSS** へ、`get_central_bank_speakers` は **ForexFactory 無料カレンダー(nfs.faireconomy.media)** へ HTTPS リクエストを送信します。実行 PC のネットワークから外部に出る通信が発生する点にご留意ください。
84
87
 
85
88
  データは数十分〜1 時間遅れの参考値で、**投資助言ではなく情報集約**として提供しています。
86
89
 
@@ -172,6 +175,10 @@ Claude にこんな依頼ができます:
172
175
  - 「**次の雇用統計はいつ?**」「**今月の FRB と内閣府の発表予定をまとめて**」
173
176
  - 「**直近の CPI と PPI を前月比・前年同月比で**」「**コア CPI とコア PPI を比較して**」
174
177
 
178
+ **中銀高官の発言**
179
+ - 「**今日の Fed 要人発言は?投票権ありの人だけ教えて**」「**今週の中銀スピーカー一覧**」(`get_central_bank_speakers`)
180
+ - 「**今週ラガルド ECB 総裁や日銀の発言予定はある?**」(`countries=["EU","JP"]` で絞り込み)
181
+
175
182
  **地政学イベント**
176
183
  - 「今週の地政学イベントは?」「今月の G7 サミットの予定は?」
177
184
  - 「次の米中首脳会談はいつ?」「日本に関係する首脳会談だけ抽出して」(`country=["JP"]` で絞り込み)
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,124 @@
1
+ import { readFileSync } from "node:fs";
2
+ import { dirname, join } from "node:path";
3
+ import { fileURLToPath } from "node:url";
4
+ import { describe, expect, it } from "vitest";
5
+ import { ffDateToIso, ffImpactToImportance, extractSurname, isSpeechEvent, parseFfEvents, selectSpeakers, toSpeaker, } from "../central-bank-speakers.js";
6
+ const __dirname = dirname(fileURLToPath(import.meta.url));
7
+ const SAMPLE = readFileSync(join(__dirname, "fixtures", "ff-calendar-sample.xml"), "utf-8");
8
+ describe("FF パース・正規化ヘルパー", () => {
9
+ it("isSpeechEvent は発言系のみ true", () => {
10
+ expect(isSpeechEvent("FOMC Member Logan Speaks")).toBe(true);
11
+ expect(isSpeechEvent("BOJ Gov Ueda Speech")).toBe(true);
12
+ expect(isSpeechEvent("Fed Chair Warsh Testimony")).toBe(true);
13
+ expect(isSpeechEvent("CPI m/m")).toBe(false);
14
+ expect(isSpeechEvent("Bank Holiday")).toBe(false);
15
+ });
16
+ it("extractSurname は発言動詞を落として末尾の語を返す", () => {
17
+ expect(extractSurname("FOMC Member Logan Speaks")).toBe("Logan");
18
+ expect(extractSurname("BOJ Gov Ueda Speaks")).toBe("Ueda");
19
+ expect(extractSurname("ECB President Lagarde Speaks")).toBe("Lagarde");
20
+ expect(extractSurname("Fed Chair Warsh Speaks")).toBe("Warsh");
21
+ });
22
+ it("ffDateToIso は MM-DD-YYYY → YYYY-MM-DD", () => {
23
+ expect(ffDateToIso("05-27-2026")).toBe("2026-05-27");
24
+ expect(ffDateToIso("12-01-2026")).toBe("2026-12-01");
25
+ expect(ffDateToIso("bad")).toBeNull();
26
+ });
27
+ it("ffImpactToImportance は High/Medium/その他 を 3/2/1 に", () => {
28
+ expect(ffImpactToImportance("High")).toBe(3);
29
+ expect(ffImpactToImportance("Medium")).toBe(2);
30
+ expect(ffImpactToImportance("Low")).toBe(1);
31
+ expect(ffImpactToImportance("Holiday")).toBe(1);
32
+ expect(ffImpactToImportance("")).toBe(1);
33
+ });
34
+ it("parseFfEvents はフィクスチャの 10 イベントを抽出", () => {
35
+ const events = parseFfEvents(SAMPLE);
36
+ expect(events).toHaveLength(10);
37
+ const speeches = events.filter((e) => isSpeechEvent(e.title));
38
+ expect(speeches).toHaveLength(8); // Logan/Cook/Goolsbee/Ueda/Warsh/Lagarde/Zeta/Kashkari
39
+ });
40
+ });
41
+ describe("toSpeaker の enrich", () => {
42
+ it("米投票メンバー(ローテーション地区連銀)は role/投票権付き・★★に引き上げ", () => {
43
+ const s = toSpeaker({ title: "FOMC Member Logan Speaks", country: "USD", date: "05-27-2026", time: "9:00am", impact: "Low" });
44
+ expect(s).not.toBeNull();
45
+ expect(s.country).toBe("US");
46
+ expect(s.org).toBe("FRB");
47
+ expect(s.speaker).toBe("Logan");
48
+ expect(s.role).toBe("ダラス連銀総裁");
49
+ expect(s.votingMember).toBe(true);
50
+ expect(s.votingStatus).toBe("投票権あり");
51
+ expect(s.importance).toBe(2); // FF Low だが投票メンバーで ★★ に
52
+ });
53
+ it("米理事(Cook)は FRB理事・投票権あり・★★", () => {
54
+ const s = toSpeaker({ title: "FOMC Member Cook Speaks", country: "USD", date: "05-27-2026", time: "10:00am", impact: "Low" });
55
+ expect(s.role).toBe("FRB理事");
56
+ expect(s.votingMember).toBe(true);
57
+ expect(s.importance).toBe(2);
58
+ });
59
+ it("米非投票(Goolsbee)は投票権なし・FF Low のまま ★", () => {
60
+ const s = toSpeaker({ title: "FOMC Member Goolsbee Speaks", country: "USD", date: "05-27-2026", time: "12:00pm", impact: "Low" });
61
+ expect(s.role).toBe("シカゴ連銀総裁");
62
+ expect(s.votingMember).toBe(false);
63
+ expect(s.votingStatus).toBe("投票権なし");
64
+ expect(s.importance).toBe(1);
65
+ });
66
+ it("議長(Warsh)は ★★★", () => {
67
+ const s = toSpeaker({ title: "Fed Chair Warsh Speaks", country: "USD", date: "05-28-2026", time: "2:00pm", impact: "Low" });
68
+ expect(s.role).toBe("FRB議長");
69
+ expect(s.importance).toBe(3);
70
+ });
71
+ it("名簿外の米発言者は role/投票権なしで素通し(importance は FF impact 由来)", () => {
72
+ const s = toSpeaker({ title: "FOMC Member Zeta Speaks", country: "USD", date: "05-28-2026", time: "3:00pm", impact: "Medium" });
73
+ expect(s.speaker).toBe("Zeta");
74
+ expect(s.role).toBeUndefined();
75
+ expect(s.votingMember).toBeUndefined();
76
+ expect(s.importance).toBe(2); // FF Medium
77
+ });
78
+ it("非米(BOJ Ueda)は org=日銀・投票権 enrich なし", () => {
79
+ const s = toSpeaker({ title: "BOJ Gov Ueda Speaks", country: "JPY", date: "05-27-2026", time: "6:00am", impact: "Medium" });
80
+ expect(s.country).toBe("JP");
81
+ expect(s.org).toBe("日銀");
82
+ expect(s.role).toBeUndefined();
83
+ expect(s.votingMember).toBeUndefined();
84
+ expect(s.importance).toBe(2);
85
+ });
86
+ it("発言系でない・日付不正は null", () => {
87
+ expect(toSpeaker({ title: "CPI m/m", country: "USD", date: "05-27-2026", time: "8:30am", impact: "High" })).toBeNull();
88
+ expect(toSpeaker({ title: "FOMC Member Logan Speaks", country: "USD", date: "bad", time: "9:00am", impact: "Low" })).toBeNull();
89
+ });
90
+ });
91
+ describe("selectSpeakers の期間・国フィルタ", () => {
92
+ const events = parseFfEvents(SAMPLE);
93
+ it("range=today は当日の発言のみ(指標・休場は除外)", () => {
94
+ const out = selectSpeakers(events, { range: "today", today: "2026-05-27" });
95
+ const names = out.map((s) => s.speaker).sort();
96
+ expect(names).toEqual(["Cook", "Goolsbee", "Logan", "Ueda"]);
97
+ // 指標(CPI)・休場(Holiday)は混ざらない
98
+ expect(out.every((s) => !s.rawTitle.includes("CPI"))).toBe(true);
99
+ });
100
+ it("range=week は当日〜+6 日(06-10 の Kashkari は範囲外)", () => {
101
+ const out = selectSpeakers(events, { range: "week", today: "2026-05-27" });
102
+ const names = out.map((s) => s.speaker).sort();
103
+ expect(names).toEqual(["Cook", "Goolsbee", "Lagarde", "Logan", "Ueda", "Warsh", "Zeta"]);
104
+ expect(names).not.toContain("Kashkari");
105
+ });
106
+ it("countries=US で非米(Ueda/Lagarde)を除外", () => {
107
+ const out = selectSpeakers(events, { range: "week", today: "2026-05-27", countries: ["US"] });
108
+ expect(out.every((s) => s.country === "US")).toBe(true);
109
+ expect(out.map((s) => s.speaker)).not.toContain("Ueda");
110
+ expect(out.map((s) => s.speaker)).not.toContain("Lagarde");
111
+ });
112
+ it("日付昇順 → 重要度降順でソートされる", () => {
113
+ const out = selectSpeakers(events, { range: "week", today: "2026-05-27" });
114
+ for (let i = 1; i < out.length; i++) {
115
+ const prev = out[i - 1];
116
+ const cur = out[i];
117
+ expect(prev.date <= cur.date).toBe(true);
118
+ if (prev.date === cur.date) {
119
+ expect(prev.importance >= cur.importance).toBe(true);
120
+ }
121
+ }
122
+ });
123
+ });
124
+ //# sourceMappingURL=central-bank-speakers.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"central-bank-speakers.test.js","sourceRoot":"","sources":["../../../src/lib/__tests__/central-bank-speakers.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,45 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { FOMC_ROSTER, lookupFomcMember, } from "../fomc-roster.js";
3
+ describe("FOMC 名簿 (fomc-roster) のデータ整合", () => {
4
+ const members = Object.values(FOMC_ROSTER);
5
+ it("理事は 7 名で全員が投票メンバー", () => {
6
+ const governors = members.filter((m) => m.kind === "governor");
7
+ expect(governors).toHaveLength(7);
8
+ expect(governors.every((m) => m.votingMember)).toBe(true);
9
+ });
10
+ it("FOMC 投票メンバーは合計 12 名(理事 7 + NY + ローテーション 4)", () => {
11
+ const voters = members.filter((m) => m.votingMember);
12
+ expect(voters).toHaveLength(12);
13
+ });
14
+ it("投票する地区連銀総裁は 5 名(NY 常任 + ローテーション 4)", () => {
15
+ const regionalVoters = members.filter((m) => m.kind === "regional" && m.votingMember);
16
+ expect(regionalVoters).toHaveLength(5);
17
+ // NY は常任で投票
18
+ expect(FOMC_ROSTER.williams.votingMember).toBe(true);
19
+ });
20
+ it("議長はちょうど 1 名(Warsh)", () => {
21
+ const chairs = members.filter((m) => m.isChair);
22
+ expect(chairs).toHaveLength(1);
23
+ expect(FOMC_ROSTER.warsh.isChair).toBe(true);
24
+ expect(FOMC_ROSTER.warsh.roleJa).toBe("FRB議長");
25
+ });
26
+ it("キーは小文字の名字で、lookup は大文字小文字を無視する", () => {
27
+ for (const [key, m] of Object.entries(FOMC_ROSTER)) {
28
+ expect(key).toBe(m.surname.toLowerCase());
29
+ }
30
+ expect(lookupFomcMember("LOGAN")?.roleJa).toBe("ダラス連銀総裁");
31
+ expect(lookupFomcMember(" cook ")?.roleJa).toBe("FRB理事");
32
+ expect(lookupFomcMember("NoSuchPerson")).toBeUndefined();
33
+ });
34
+ it("2026 ローテーション入りの 4 地区連銀総裁が投票メンバー", () => {
35
+ for (const name of ["paulson", "hammack", "logan", "kashkari"]) {
36
+ expect(FOMC_ROSTER[name].votingMember, `${name} は 2026 投票メンバーのはず`).toBe(true);
37
+ }
38
+ });
39
+ it("2026 ローテーション抜けの地区連銀総裁は非投票", () => {
40
+ for (const name of ["collins", "goolsbee", "musalem", "schmid"]) {
41
+ expect(FOMC_ROSTER[name].votingMember, `${name} は 2026 非投票のはず`).toBe(false);
42
+ }
43
+ });
44
+ });
45
+ //# sourceMappingURL=fomc-roster.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fomc-roster.test.js","sourceRoot":"","sources":["../../../src/lib/__tests__/fomc-roster.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ import type { Country } from "./market-types.js";
2
+ export type SpeakerRange = "today" | "week";
3
+ export type FfEvent = {
4
+ title: string;
5
+ country: string;
6
+ date: string;
7
+ time: string;
8
+ impact: string;
9
+ url?: string;
10
+ };
11
+ export type CentralBankSpeaker = {
12
+ date: string;
13
+ time: string;
14
+ country: Country;
15
+ org: string;
16
+ speaker: string;
17
+ role?: string;
18
+ votingMember?: boolean;
19
+ votingStatus?: string;
20
+ importance: 1 | 2 | 3;
21
+ ffImpact: string;
22
+ rawTitle: string;
23
+ url?: string;
24
+ };
25
+ export type FeedResult = {
26
+ key: string;
27
+ ok: boolean;
28
+ count: number;
29
+ error?: string;
30
+ elapsedMs: number;
31
+ };
32
+ export declare function isSpeechEvent(title: string): boolean;
33
+ export declare function extractSurname(title: string): string;
34
+ export declare function ffImpactToImportance(impact: string): 1 | 2 | 3;
35
+ export declare function ffDateToIso(d: string): string | null;
36
+ export declare function parseFfEvents(xml: string): FfEvent[];
37
+ export declare function toSpeaker(ev: FfEvent): CentralBankSpeaker | null;
38
+ export declare function selectSpeakers(events: readonly FfEvent[], opts: {
39
+ range: SpeakerRange;
40
+ today: string;
41
+ countries?: readonly Country[];
42
+ }): CentralBankSpeaker[];
43
+ export declare function fetchCentralBankSpeakers(opts: {
44
+ range: SpeakerRange;
45
+ countries?: readonly Country[];
46
+ }): Promise<{
47
+ range: SpeakerRange;
48
+ today: string;
49
+ fetchedAt: string;
50
+ fetchOk: boolean;
51
+ sources: FeedResult[];
52
+ speakers: CentralBankSpeaker[];
53
+ }>;
@@ -0,0 +1,265 @@
1
+ // 中銀高官の発言・講演スケジュール(v0.18.0 新設、ライブ取得)。
2
+ // ForexFactory の無料 週次カレンダー XML を取得し、発言系イベント("… Speaks/Speech/Testimony")だけを
3
+ // 抽出して返す。「これから」のフォワード予定が取れるのが要点(公式中銀 RSS は delivered 済みの過去ログのみ)。
4
+ //
5
+ // 役割分担(geopolitical_pulse と同思想):
6
+ // - 本 lib: フィードを取得し、客観メタ(発言者・国・日付・時刻・重要度)に正規化する
7
+ // - 米 Fed は fomc-roster.ts で「役職・投票権」を補完(FF は名字 + "FOMC Member" しか持たない)
8
+ // - 市場解釈は呼び出し側 LLM の責務
9
+ //
10
+ // ソース実現性スパイク結果:
11
+ // - FRB / BOJ 公式 RSS は 200 で取れるが delivered 済み(フォワード予定なし)→ 不採用
12
+ // - nfs.faireconomy.media の FF カレンダー XML は無料・無認証・フォワードで発言系を網羅 → 採用
13
+ // - 第三者フィード依存。利用者 PC から faireconomy.media へ毎回アクセスする(pulse 系 RSS と同じ構図)
14
+ import { jstDateKey } from "./economic-events.js";
15
+ import { lookupFomcMember } from "./fomc-roster.js";
16
+ import { withCache } from "./economic-release-pulse/cache.js";
17
+ const UA = "Mozilla/5.0 (compatible; lit-forge-mcp/0.18; +https://github.com/noblabs/lit-forge-mcp)";
18
+ const FETCH_TIMEOUT_MS = 10_000;
19
+ // 発言予定は日内でほぼ変わらないため 6h キャッシュ。
20
+ const CACHE_TTL_MS = 6 * 3600 * 1000;
21
+ // FF 週次フィード。faireconomy ミラーは thisweek(現 FF 週=月〜日)のみ提供(nextweek/thismonth は 404)。
22
+ // そのため range=week が現 FF 週の末尾を越える日(来週分)は、その週が thisweek になるまで取得できない。
23
+ const FF_FEEDS = [
24
+ { key: "ff-thisweek", url: "https://nfs.faireconomy.media/ff_calendar_thisweek.xml" },
25
+ ];
26
+ // ── FF 通貨コード → 国 + 中銀ラベル ──
27
+ const CURRENCY_MAP = {
28
+ USD: { country: "US", org: "FRB" },
29
+ JPY: { country: "JP", org: "日銀" },
30
+ EUR: { country: "EU", org: "ECB" },
31
+ GBP: { country: "GB", org: "BOE" },
32
+ CNY: { country: "CN", org: "中国人民銀行" },
33
+ CAD: { country: "OTHER", org: "カナダ銀行" },
34
+ AUD: { country: "OTHER", org: "豪準備銀行(RBA)" },
35
+ NZD: { country: "OTHER", org: "NZ準備銀行(RBNZ)" },
36
+ CHF: { country: "OTHER", org: "スイス国立銀行(SNB)" },
37
+ };
38
+ // 発言系イベントかどうか(指標・休場・会合結果などは除外)。
39
+ export function isSpeechEvent(title) {
40
+ return /\b(speaks|speech|testifies|testimony|remarks)\b/i.test(title);
41
+ }
42
+ // FF タイトルから発言者の名字を取り出す。
43
+ // 例: "FOMC Member Logan Speaks" → "Logan" / "BOJ Gov Ueda Speaks" → "Ueda" /
44
+ // "ECB President Lagarde Speaks" → "Lagarde"。発言動詞を落とした末尾の語を名字とみなす。
45
+ export function extractSurname(title) {
46
+ const stripped = title
47
+ .replace(/\b(speaks|speech|testifies|testimony|remarks)\b.*$/i, "")
48
+ .trim();
49
+ const words = stripped.split(/\s+/).filter(Boolean);
50
+ return words.length > 0 ? words[words.length - 1] : stripped;
51
+ }
52
+ // FF impact → 基礎 importance。
53
+ export function ffImpactToImportance(impact) {
54
+ switch (impact.trim().toLowerCase()) {
55
+ case "high":
56
+ return 3;
57
+ case "medium":
58
+ return 2;
59
+ default:
60
+ return 1; // low / holiday / 空
61
+ }
62
+ }
63
+ // FF date(MM-DD-YYYY)→ YYYY-MM-DD。変換できなければ null。
64
+ export function ffDateToIso(d) {
65
+ const m = d.trim().match(/^(\d{2})-(\d{2})-(\d{4})$/);
66
+ if (!m)
67
+ return null;
68
+ return `${m[3]}-${m[1]}-${m[2]}`;
69
+ }
70
+ // 生 XML から <event> を抽出(正規表現ベース。geopolitical-pulse と同方針で依存を増やさない)。
71
+ export function parseFfEvents(xml) {
72
+ const out = [];
73
+ const re = /<event\b[^>]*>([\s\S]*?)<\/event>/g;
74
+ let m;
75
+ while ((m = re.exec(xml)) !== null) {
76
+ const body = m[1];
77
+ const title = field(body, "title");
78
+ const country = field(body, "country");
79
+ const date = field(body, "date");
80
+ if (!title || !date)
81
+ continue;
82
+ out.push({
83
+ title,
84
+ country,
85
+ date,
86
+ time: field(body, "time"),
87
+ impact: field(body, "impact"),
88
+ url: field(body, "url") || undefined,
89
+ });
90
+ }
91
+ return out;
92
+ }
93
+ function field(body, tag) {
94
+ const m = body.match(new RegExp(`<${tag}\\b[^>]*>([\\s\\S]*?)<\\/${tag}>`));
95
+ return m ? cleanText(m[1]) : "";
96
+ }
97
+ function cleanText(s) {
98
+ return s
99
+ .replace(/^\s*<!\[CDATA\[/, "")
100
+ .replace(/\]\]>\s*$/, "")
101
+ .replace(/<[^>]+>/g, "")
102
+ .replace(/&amp;/g, "&")
103
+ .replace(/&lt;/g, "<")
104
+ .replace(/&gt;/g, ">")
105
+ .replace(/&quot;/g, '"')
106
+ .replace(/&#39;/g, "'")
107
+ .trim();
108
+ }
109
+ // 生イベント 1 件 → 発言イベントに正規化(enrich 込み)。発言系でなければ null。
110
+ export function toSpeaker(ev) {
111
+ if (!isSpeechEvent(ev.title))
112
+ return null;
113
+ const iso = ffDateToIso(ev.date);
114
+ if (!iso)
115
+ return null;
116
+ const cur = CURRENCY_MAP[ev.country.toUpperCase()] ?? {
117
+ country: "OTHER",
118
+ org: ev.country,
119
+ };
120
+ const surname = extractSurname(ev.title);
121
+ const base = ffImpactToImportance(ev.impact);
122
+ const speaker = {
123
+ date: iso,
124
+ time: ev.time || "未定",
125
+ country: cur.country,
126
+ org: cur.org,
127
+ speaker: surname,
128
+ importance: base,
129
+ ffImpact: ev.impact || "Low",
130
+ rawTitle: ev.title,
131
+ url: ev.url,
132
+ };
133
+ // 米 Fed は FOMC ロースターで役職・投票権を補完し、重要度を引き上げる。
134
+ if (cur.country === "US") {
135
+ const m = lookupFomcMember(surname);
136
+ if (m) {
137
+ speaker.role = m.roleJa;
138
+ speaker.votingMember = m.votingMember;
139
+ speaker.votingStatus = m.votingMember ? "投票権あり" : "投票権なし";
140
+ // 議長は最重要、投票メンバーは最低 ★★(市場インパクトが大きい)。
141
+ if (m.isChair)
142
+ speaker.importance = 3;
143
+ else if (m.votingMember)
144
+ speaker.importance = Math.max(base, 2);
145
+ }
146
+ }
147
+ return speaker;
148
+ }
149
+ // JST today から range 分の日付集合(today=当日 / week=当日〜+6 日)を作る。
150
+ function rangeDateSet(range, today) {
151
+ if (range === "today")
152
+ return new Set([today]);
153
+ const start = new Date(`${today}T00:00:00+09:00`);
154
+ const set = new Set();
155
+ for (let i = 0; i < 7; i++) {
156
+ const d = new Date(start);
157
+ d.setDate(d.getDate() + i);
158
+ set.add(jstDateKey(d));
159
+ }
160
+ return set;
161
+ }
162
+ // 生イベント配列 → 発言イベントを抽出・enrich・期間/国フィルタ・ソート(純関数。テスト用)。
163
+ export function selectSpeakers(events, opts) {
164
+ const dateSet = rangeDateSet(opts.range, opts.today);
165
+ const countrySet = opts.countries && opts.countries.length > 0 ? new Set(opts.countries) : null;
166
+ const speakers = [];
167
+ const seen = new Set();
168
+ for (const ev of events) {
169
+ const s = toSpeaker(ev);
170
+ if (!s)
171
+ continue;
172
+ if (!dateSet.has(s.date))
173
+ continue;
174
+ if (countrySet && !countrySet.has(s.country))
175
+ continue;
176
+ // 同一発言の重複を除去(フィード内の重複・将来複数フィード化への保険)。
177
+ const key = `${s.date}|${s.country}|${s.rawTitle}`;
178
+ if (seen.has(key))
179
+ continue;
180
+ seen.add(key);
181
+ speakers.push(s);
182
+ }
183
+ // 日付昇順 → 重要度降順 → 国コード。
184
+ speakers.sort((a, b) => a.date.localeCompare(b.date) ||
185
+ b.importance - a.importance ||
186
+ a.country.localeCompare(b.country));
187
+ return speakers;
188
+ }
189
+ // 1 フィードを取得してパース。失敗時は ok:false で部分成功を伝える。
190
+ async function fetchFeed(feed) {
191
+ const t0 = Date.now();
192
+ try {
193
+ const res = await fetch(feed.url, {
194
+ headers: { "User-Agent": UA, Accept: "application/xml, text/xml, */*" },
195
+ signal: AbortSignal.timeout(FETCH_TIMEOUT_MS),
196
+ redirect: "follow",
197
+ });
198
+ if (!res.ok) {
199
+ return {
200
+ result: { key: feed.key, ok: false, count: 0, error: `HTTP ${res.status}`, elapsedMs: Date.now() - t0 },
201
+ events: [],
202
+ };
203
+ }
204
+ const xml = await res.text();
205
+ const events = parseFfEvents(xml);
206
+ return {
207
+ result: { key: feed.key, ok: true, count: events.length, elapsedMs: Date.now() - t0 },
208
+ events,
209
+ };
210
+ }
211
+ catch (e) {
212
+ const msg = e instanceof Error ? e.message : "fetch failed";
213
+ return {
214
+ result: { key: feed.key, ok: false, count: 0, error: msg, elapsedMs: Date.now() - t0 },
215
+ events: [],
216
+ };
217
+ }
218
+ }
219
+ // 全フィード失敗を withCache に焼かせないための番兵エラー(部分結果を運ぶ)。
220
+ class AllFeedsFailedError extends Error {
221
+ partial;
222
+ constructor(partial) {
223
+ super("all central-bank-speaker feeds failed");
224
+ this.partial = partial;
225
+ }
226
+ }
227
+ // メイン: フィードを並列取得(6h キャッシュ)→ 発言抽出・enrich・フィルタ・ソート。
228
+ // fetchOk=false(全フィード失敗)のときは「予定なし」ではなく「取得失敗」を示す。失敗結果はキャッシュしない。
229
+ export async function fetchCentralBankSpeakers(opts) {
230
+ const today = jstDateKey();
231
+ let fetched;
232
+ try {
233
+ fetched = await withCache("central-bank-speakers:feeds", CACHE_TTL_MS, async () => {
234
+ const settled = await Promise.all(FF_FEEDS.map((f) => fetchFeed(f)));
235
+ const result = {
236
+ events: settled.flatMap((s) => s.events),
237
+ sources: settled.map((s) => s.result),
238
+ };
239
+ // 全フィード失敗(例: 429)はキャッシュさせない(throw すると withCache は格納しない)。
240
+ // 次回呼び出しでリトライできるようにし、一過性の失敗が 6h 居座るのを防ぐ。
241
+ if (!result.sources.some((s) => s.ok))
242
+ throw new AllFeedsFailedError(result);
243
+ return result;
244
+ });
245
+ }
246
+ catch (e) {
247
+ if (e instanceof AllFeedsFailedError)
248
+ fetched = e.partial;
249
+ else
250
+ throw e;
251
+ }
252
+ const fetchOk = fetched.sources.some((s) => s.ok);
253
+ const speakers = fetchOk
254
+ ? selectSpeakers(fetched.events, { range: opts.range, today, countries: opts.countries })
255
+ : [];
256
+ return {
257
+ range: opts.range,
258
+ today,
259
+ fetchedAt: new Date().toISOString(),
260
+ fetchOk,
261
+ sources: fetched.sources,
262
+ speakers,
263
+ };
264
+ }
265
+ //# sourceMappingURL=central-bank-speakers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"central-bank-speakers.js","sourceRoot":"","sources":["../../src/lib/central-bank-speakers.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,4EAA4E;AAC5E,iEAAiE;AACjE,EAAE;AACF,iCAAiC;AACjC,kDAAkD;AAClD,yEAAyE;AACzE,yBAAyB;AACzB,EAAE;AACF,gBAAgB;AAChB,gEAAgE;AAChE,qEAAqE;AACrE,yEAAyE;AAGzE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAE9D,MAAM,EAAE,GACN,yFAAyF,CAAC;AAC5F,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAChC,8BAA8B;AAC9B,MAAM,YAAY,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAErC,iFAAiF;AACjF,mEAAmE;AACnE,MAAM,QAAQ,GAA4C;IACxD,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,wDAAwD,EAAE;CACtF,CAAC;AAsCF,6BAA6B;AAC7B,MAAM,YAAY,GAAgE;IAChF,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE;IAClC,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE;IACjC,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE;IAClC,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE;IAClC,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE;IACrC,GAAG,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE;IACvC,GAAG,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE;IAC5C,GAAG,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,EAAE;IAC9C,GAAG,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,EAAE;CAC/C,CAAC;AAEF,gCAAgC;AAChC,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,OAAO,kDAAkD,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACxE,CAAC;AAED,wBAAwB;AACxB,6EAA6E;AAC7E,uEAAuE;AACvE,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,MAAM,QAAQ,GAAG,KAAK;SACnB,OAAO,CAAC,qDAAqD,EAAE,EAAE,CAAC;SAClE,IAAI,EAAE,CAAC;IACV,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACpD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC/D,CAAC;AAED,6BAA6B;AAC7B,MAAM,UAAU,oBAAoB,CAAC,MAAc;IACjD,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;QACpC,KAAK,MAAM;YACT,OAAO,CAAC,CAAC;QACX,KAAK,QAAQ;YACX,OAAO,CAAC,CAAC;QACX;YACE,OAAO,CAAC,CAAC,CAAC,oBAAoB;IAClC,CAAC;AACH,CAAC;AAED,iDAAiD;AACjD,MAAM,UAAU,WAAW,CAAC,CAAS;IACnC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;IACtD,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpB,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACnC,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,MAAM,GAAG,GAAc,EAAE,CAAC;IAC1B,MAAM,EAAE,GAAG,oCAAoC,CAAC;IAChD,IAAI,CAAyB,CAAC;IAC9B,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAClB,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACjC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI;YAAE,SAAS;QAC9B,GAAG,CAAC,IAAI,CAAC;YACP,KAAK;YACL,OAAO;YACP,IAAI;YACJ,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC;YACzB,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC;YAC7B,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,SAAS;SACrC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,KAAK,CAAC,IAAY,EAAE,GAAW;IACtC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,GAAG,4BAA4B,GAAG,GAAG,CAAC,CAAC,CAAC;IAC5E,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAClC,CAAC;AAED,SAAS,SAAS,CAAC,CAAS;IAC1B,OAAO,CAAC;SACL,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC;SAC9B,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;SACxB,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;SACtB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;SACrB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;SACrB,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;SACvB,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;SACtB,IAAI,EAAE,CAAC;AACZ,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,SAAS,CAAC,EAAW;IACnC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1C,MAAM,GAAG,GAAG,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IAEtB,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,IAAI;QACpD,OAAO,EAAE,OAAkB;QAC3B,GAAG,EAAE,EAAE,CAAC,OAAO;KAChB,CAAC;IACF,MAAM,OAAO,GAAG,cAAc,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,oBAAoB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;IAE7C,MAAM,OAAO,GAAuB;QAClC,IAAI,EAAE,GAAG;QACT,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,IAAI;QACrB,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,GAAG,EAAE,GAAG,CAAC,GAAG;QACZ,OAAO,EAAE,OAAO;QAChB,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,EAAE,CAAC,MAAM,IAAI,KAAK;QAC5B,QAAQ,EAAE,EAAE,CAAC,KAAK;QAClB,GAAG,EAAE,EAAE,CAAC,GAAG;KACZ,CAAC;IAEF,2CAA2C;IAC3C,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACpC,IAAI,CAAC,EAAE,CAAC;YACN,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC;YACxB,OAAO,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY,CAAC;YACtC,OAAO,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;YAC1D,oCAAoC;YACpC,IAAI,CAAC,CAAC,OAAO;gBAAE,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC;iBACjC,IAAI,CAAC,CAAC,YAAY;gBAAE,OAAO,CAAC,UAAU,GAAI,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAe,CAAC;QACjF,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,yDAAyD;AACzD,SAAS,YAAY,CAAC,KAAmB,EAAE,KAAa;IACtD,IAAI,KAAK,KAAK,OAAO;QAAE,OAAO,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/C,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,GAAG,KAAK,iBAAiB,CAAC,CAAC;IAClD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QAC3B,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,cAAc,CAC5B,MAA0B,EAC1B,IAA4E;IAE5E,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACrD,MAAM,UAAU,GACd,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAE/E,MAAM,QAAQ,GAAyB,EAAE,CAAC;IAC1C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;QACxB,MAAM,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;QACxB,IAAI,CAAC,CAAC;YAAE,SAAS;QACjB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;YAAE,SAAS;QACnC,IAAI,UAAU,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC;YAAE,SAAS;QACvD,sCAAsC;QACtC,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;QACnD,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QAC5B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;IACD,uBAAuB;IACvB,QAAQ,CAAC,IAAI,CACX,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACP,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5B,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU;QAC3B,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CACrC,CAAC;IACF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,0CAA0C;AAC1C,KAAK,UAAU,SAAS,CACtB,IAAkC;IAElC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACtB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE;YAChC,OAAO,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,EAAE,gCAAgC,EAAE;YACvE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC;YAC7C,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,OAAO;gBACL,MAAM,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,GAAG,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;gBACvG,MAAM,EAAE,EAAE;aACX,CAAC;QACJ,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;QAClC,OAAO;YACL,MAAM,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACrF,MAAM;SACP,CAAC;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC;QAC5D,OAAO;YACL,MAAM,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACtF,MAAM,EAAE,EAAE;SACX,CAAC;IACJ,CAAC;AACH,CAAC;AAED,8CAA8C;AAC9C,MAAM,mBAAoB,SAAQ,KAAK;IACT;IAA5B,YAA4B,OAAqD;QAC/E,KAAK,CAAC,uCAAuC,CAAC,CAAC;QADrB,YAAO,GAAP,OAAO,CAA8C;IAEjF,CAAC;CACF;AAED,kDAAkD;AAClD,+DAA+D;AAC/D,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,IAG9C;IAQC,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC;IAC3B,IAAI,OAAqD,CAAC;IAC1D,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,SAAS,CAAC,6BAA6B,EAAE,YAAY,EAAE,KAAK,IAAI,EAAE;YAChF,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACrE,MAAM,MAAM,GAAG;gBACb,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;gBACxC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;aACtC,CAAC;YACF,yDAAyD;YACzD,yCAAyC;YACzC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAAE,MAAM,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC;YAC7E,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,YAAY,mBAAmB;YAAE,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;;YACrD,MAAM,CAAC,CAAC;IACf,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,OAAO;QACtB,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;QACzF,CAAC,CAAC,EAAE,CAAC;IACP,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,KAAK;QACL,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,OAAO;QACP,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,QAAQ;KACT,CAAC;AACJ,CAAC"}
@@ -128,6 +128,8 @@ export const ECONOMIC_EVENTS = [
128
128
  { date: "2026-10-09", time: "23:00", country: "US", name: "米 ミシガン大消費者態度指数・速報(10 月)", importance: 2 },
129
129
  { date: "2026-10-23", time: "23:00", country: "US", name: "米 ミシガン大消費者態度指数・確報(10 月)", importance: 1 },
130
130
  { date: "2026-10-27", time: "23:00", country: "US", name: "米 CB消費者信頼感指数(10 月)", importance: 2 },
131
+ // 注: 中銀高官の発言・講演(FRB 理事 / 地区連銀総裁 / 日銀 / ECB 等)は v0.18.0 で
132
+ // 専用ツール get_central_bank_speakers(ForexFactory ライブ取得)に一本化したため、ここには登録しない。
131
133
  ];
132
134
  // JST の年月日を yyyy-mm-dd 形式で返す(leaderboard/keys.ts と同一ロジック)。
133
135
  export function jstDateKey(now = new Date()) {
@@ -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,13 @@
1
+ export declare const FOMC_ROSTER_YEAR = 2026;
2
+ export declare const FOMC_ROSTER_LAST_VERIFIED = "2026-05-27";
3
+ export declare const FOMC_ROSTER_SOURCE = "https://www.federalreserve.gov/monetarypolicy/fomc.htm";
4
+ export type FomcKind = "governor" | "regional";
5
+ export type FomcMember = {
6
+ surname: string;
7
+ roleJa: string;
8
+ kind: FomcKind;
9
+ votingMember: boolean;
10
+ isChair?: boolean;
11
+ };
12
+ export declare const FOMC_ROSTER: Readonly<Record<string, FomcMember>>;
13
+ export declare function lookupFomcMember(surname: string): FomcMember | undefined;
@@ -0,0 +1,48 @@
1
+ // 現年(2026)FOMC メンバー対応表。
2
+ // get_central_bank_speakers が ForexFactory フィードの「FOMC Member <名字> Speaks」を
3
+ // 役職(日本語)と投票権の有無で enrich するための辞書。FF は名字 + "FOMC Member" しか持たないため、
4
+ // 「投票権あり / ダラス連銀総裁」といった粒度はこの表で補完する。
5
+ //
6
+ // ⚠️ 投票メンバーは毎年 1 月にローテーションするので、年初に必ず更新すること。
7
+ // 地区連銀総裁の交代(新任・暫定)も随時反映する。訓練データのハードコードは禁止
8
+ // (現職漏れ事故の前例あり)。一次ソースで現職を確認してから更新する。
9
+ //
10
+ // 一次ソース: https://www.federalreserve.gov/monetarypolicy/fomc.htm (FOMC 構成・当年の投票ローテーション)
11
+ // 2026 ローテーション根拠: 入り=Paulson(Phil)/Hammack(Cle)/Logan(Dal)/Kashkari(Min)、
12
+ // 抜け=Collins(Bos)/Goolsbee(Chi)/Musalem(StL)/Schmid(KC)。
13
+ //
14
+ // FOMC 投票権の規則: 理事 7 名は常に投票 + NY 連銀総裁は常任 + 残り 11 地区連銀総裁から 4 名が 1 年交代。
15
+ export const FOMC_ROSTER_YEAR = 2026;
16
+ export const FOMC_ROSTER_LAST_VERIFIED = "2026-05-27";
17
+ export const FOMC_ROSTER_SOURCE = "https://www.federalreserve.gov/monetarypolicy/fomc.htm";
18
+ // キーは小文字の名字。FF が "FOMC Member Logan Speaks" のように名字だけを出すため。
19
+ export const FOMC_ROSTER = {
20
+ // ── 理事(Board of Governors)7 名: 常に投票 ──
21
+ warsh: { surname: "Warsh", roleJa: "FRB議長", kind: "governor", votingMember: true, isChair: true },
22
+ barr: { surname: "Barr", roleJa: "FRB理事", kind: "governor", votingMember: true },
23
+ bowman: { surname: "Bowman", roleJa: "FRB理事", kind: "governor", votingMember: true },
24
+ cook: { surname: "Cook", roleJa: "FRB理事", kind: "governor", votingMember: true },
25
+ jefferson: { surname: "Jefferson", roleJa: "FRB理事", kind: "governor", votingMember: true },
26
+ powell: { surname: "Powell", roleJa: "FRB理事", kind: "governor", votingMember: true },
27
+ waller: { surname: "Waller", roleJa: "FRB理事", kind: "governor", votingMember: true },
28
+ // ── 地区連銀総裁: NY は常任、ほか 4 名が 2026 投票 ──
29
+ williams: { surname: "Williams", roleJa: "NY連銀総裁", kind: "regional", votingMember: true },
30
+ paulson: { surname: "Paulson", roleJa: "フィラデルフィア連銀総裁", kind: "regional", votingMember: true },
31
+ hammack: { surname: "Hammack", roleJa: "クリーブランド連銀総裁", kind: "regional", votingMember: true },
32
+ logan: { surname: "Logan", roleJa: "ダラス連銀総裁", kind: "regional", votingMember: true },
33
+ kashkari: { surname: "Kashkari", roleJa: "ミネアポリス連銀総裁", kind: "regional", votingMember: true },
34
+ // ── 地区連銀総裁: 2026 非投票(ローテーション外) ──
35
+ collins: { surname: "Collins", roleJa: "ボストン連銀総裁", kind: "regional", votingMember: false },
36
+ goolsbee: { surname: "Goolsbee", roleJa: "シカゴ連銀総裁", kind: "regional", votingMember: false },
37
+ musalem: { surname: "Musalem", roleJa: "セントルイス連銀総裁", kind: "regional", votingMember: false },
38
+ schmid: { surname: "Schmid", roleJa: "カンザスシティ連銀総裁", kind: "regional", votingMember: false },
39
+ barkin: { surname: "Barkin", roleJa: "リッチモンド連銀総裁", kind: "regional", votingMember: false },
40
+ daly: { surname: "Daly", roleJa: "サンフランシスコ連銀総裁", kind: "regional", votingMember: false },
41
+ // ⚠️ アトランタは暫定総裁(Venable)。交代があり得るため要確認。
42
+ venable: { surname: "Venable", roleJa: "アトランタ連銀総裁(暫定)", kind: "regional", votingMember: false },
43
+ };
44
+ // 名字から FOMC メンバー情報を引く(大文字小文字を無視)。未登録なら undefined。
45
+ export function lookupFomcMember(surname) {
46
+ return FOMC_ROSTER[surname.trim().toLowerCase()];
47
+ }
48
+ //# sourceMappingURL=fomc-roster.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fomc-roster.js","sourceRoot":"","sources":["../../src/lib/fomc-roster.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { type LitForgeTool } from "./types.js";
2
+ export declare const getCentralBankSpeakersTool: LitForgeTool;
@@ -0,0 +1,59 @@
1
+ // 中銀高官の発言・講演スケジュール(v0.18.0 新設、ライブ取得)。
2
+ // ForexFactory 無料カレンダー XML から「これから」の発言予定を取得し、
3
+ // 米 Fed は fomc-roster.ts で役職・投票権を補完して返す。
4
+ //
5
+ // 役割分担:
6
+ // - 本ツール: フォワードな発言予定(発言者・国・日付・時刻・重要度・投票権)を客観メタで返す
7
+ // - get_economic_events_today: 指標・金融政策会合(半年手動キュレ)。発言は扱わない
8
+ // - 市場解釈は呼び出し側 LLM の責務
9
+ import { z } from "zod";
10
+ import { fetchCentralBankSpeakers, } from "../lib/central-bank-speakers.js";
11
+ import { FOMC_ROSTER_YEAR, FOMC_ROSTER_LAST_VERIFIED, } from "../lib/fomc-roster.js";
12
+ import { jsonReply } from "./types.js";
13
+ const inputSchema = {
14
+ range: z
15
+ .enum(["today", "week"])
16
+ .optional()
17
+ .describe("期間: today=本日のみ / week=今日含む 7 日間。既定 today。" +
18
+ "『明日』『今週』『週末』など今日を超える時間軸を含むときは week を指定すること。"),
19
+ countries: z
20
+ .array(z.enum(["US", "JP", "EU", "GB", "CN", "OTHER"]))
21
+ .optional()
22
+ .describe("国で絞り込み: US=米 Fed / JP=日銀 / EU=ECB / GB=BOE / CN=中国 / OTHER=その他中銀(カナダ・豪・NZ・スイス等)。未指定で全件"),
23
+ };
24
+ export const getCentralBankSpeakersTool = {
25
+ name: "get_central_bank_speakers",
26
+ title: "中銀高官の発言・講演スケジュール(ライブ取得)",
27
+ description: "**これからの**中銀高官の発言・講演予定を返すツール。ForexFactory の無料カレンダーを取得し、発言系イベント(FRB 理事・地区連銀総裁・日銀・ECB・BOE 等)だけを日付昇順で返します。" +
28
+ "米 Fed(FOMC)の発言者は当年の名簿で **role(ダラス連銀総裁等)と votingMember(投票権の有無)** を補完します。投票権ありの発言ほど政策の方向性を示唆しやすく市場インパクトが大きいため、重要度(importance)を引き上げています(議長=★★★ / 投票メンバー=★★以上)。" +
29
+ "用途: 市況サマリーで『今日の要人発言』『今週の Fed スピーカー』を尋ねられたとき。指標・金融政策会合の予定は別ツール `get_economic_events_today` を使用してください(本ツールは“発言”専用)。" +
30
+ "【利用上の注意】" +
31
+ "第三者の無料フィード(faireconomy.media の ForexFactory 週次カレンダー)に依存します。フィード単位の失敗は sources 配列に error として記載し、取得できた分は返します(部分成功)。" +
32
+ "カバー範囲は現 FF 週(月〜日)です。range=\"week\" が週末を跨いで翌週に及ぶ日は、その週が配信対象になるまで取得できない場合があります。" +
33
+ "FF の発言予定は時刻・有無が直前に変わることがあります。返却メタは客観値のみで、市場解釈は付与しません(呼び出し側 LLM の責務)。" +
34
+ `Fed 名簿は ${FOMC_ROSTER_YEAR} 年版(最終確認 ${FOMC_ROSTER_LAST_VERIFIED})。投票権は毎年 1 月にローテーションします。`,
35
+ inputSchema,
36
+ handler: async ({ range, countries }) => {
37
+ const effectiveRange = (range ?? "today");
38
+ const result = await fetchCentralBankSpeakers({
39
+ range: effectiveRange,
40
+ countries: countries,
41
+ });
42
+ return jsonReply({
43
+ today: result.today,
44
+ range: result.range,
45
+ fetchedAt: result.fetchedAt,
46
+ fetchOk: result.fetchOk,
47
+ fomcRosterYear: FOMC_ROSTER_YEAR,
48
+ fomcRosterLastVerified: FOMC_ROSTER_LAST_VERIFIED,
49
+ count: result.speakers.length,
50
+ speakers: result.speakers,
51
+ sources: result.sources,
52
+ note: result.fetchOk
53
+ ? "ForexFactory 無料カレンダー由来のフォワードな発言予定です。米 Fed の役職・投票権は当年 FOMC 名簿で補完(毎年 1 月ローテーション・要更新)。" +
54
+ " 指標・金融政策会合は get_economic_events_today を併用してください。市場インプリケーションは付与していません(解釈は呼び出し側 LLM の責務)。"
55
+ : "⚠️ フィード取得に失敗しました(sources の error 参照。例: HTTP 429 レート制限)。これは『発言予定なし』ではなく『取得できなかった』状態です。count:0 を予定ゼロと解釈しないでください。時間をおいて再試行してください。",
56
+ });
57
+ },
58
+ };
59
+ //# sourceMappingURL=get-central-bank-speakers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-central-bank-speakers.js","sourceRoot":"","sources":["../../src/tools/get-central-bank-speakers.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,8CAA8C;AAC9C,yCAAyC;AACzC,EAAE;AACF,QAAQ;AACR,oDAAoD;AACpD,4DAA4D;AAC5D,yBAAyB;AAEzB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,wBAAwB,GAEzB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,gBAAgB,EAChB,yBAAyB,GAC1B,MAAM,uBAAuB,CAAC;AAE/B,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,CACP,2CAA2C;QACzC,6CAA6C,CAChD;IACH,SAAS,EAAE,CAAC;SACT,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;SACtD,QAAQ,EAAE;SACV,QAAQ,CACP,wFAAwF,CACzF;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAiB;IACtD,IAAI,EAAE,2BAA2B;IACjC,KAAK,EAAE,yBAAyB;IAChC,WAAW,EACT,wGAAwG;QACxG,6JAA6J;QAC7J,mHAAmH;QACnH,UAAU;QACV,mHAAmH;QACnH,+EAA+E;QAC/E,sEAAsE;QACtE,WAAW,gBAAgB,YAAY,yBAAyB,0BAA0B;IAC5F,WAAW;IACX,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE;QACtC,MAAM,cAAc,GAAG,CAAC,KAAK,IAAI,OAAO,CAAiB,CAAC;QAC1D,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAAC;YAC5C,KAAK,EAAE,cAAc;YACrB,SAAS,EAAE,SAAkC;SAC9C,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,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,cAAc,EAAE,gBAAgB;YAChC,sBAAsB,EAAE,yBAAyB;YACjD,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;YAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,IAAI,EAAE,MAAM,CAAC,OAAO;gBAClB,CAAC,CAAC,qFAAqF;oBACrF,yFAAyF;gBAC3F,CAAC,CAAC,gIAAgI;SACrI,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
@@ -22,7 +22,7 @@ const inputSchema = {
22
22
  export const getEconomicEventsTodayTool = {
23
23
  name: "get_economic_events_today",
24
24
  title: "本日・今週の経済イベント",
25
- description: "本日(または今週)の主要経済イベント(FOMC・日銀金融政策決定会合・米雇用統計・CPI・GDP・中国 PMI などのマクロ指標)を返します。期間イベント(ジャクソンホール会議等)は期間中の各日に today クエリでヒットします。データは lit-forge 運営者が手動キュレーションした半年分のスケジュール。" +
25
+ description: "本日(または今週)の主要経済イベント(FOMC・日銀金融政策決定会合・米雇用統計・CPI・GDP・中国 PMI などのマクロ指標)を返します。期間イベント(ジャクソンホール会議等)は期間中の各日に today クエリでヒットします。データは lit-forge 運営者が手動キュレーションした半年分のスケジュール。中銀高官の発言・講演は別ツール `get_central_bank_speakers`(ライブ取得)を使用してください。" +
26
26
  "【利用上の注意】既定 range=today は当日分のみを返すため、ユーザーの質問が『明日』『今週』『週末』『次の指標』など今日を超える時間軸を含むときは range=\"week\" を明示すること。直前に today で取得済みでも、未来の時間軸が話題に出た時点で week で取り直す。" +
27
27
  "【v0.9.0 以降】首脳会談・要人訪問・国際サミット・主要国選挙・地政学リスクの 4 サブカテゴリは `get_geopolitical_calendar`(確定スケジュール)に、進行中の地政学情勢は `get_geopolitical_pulse`(リアルタイム速報)に分離されました。地政学情報が必要なときはそれらを使用してください。本ツールの category=\"geopolitical\" 引数は後方互換のため残されていますが、結果は空に近くなります。",
28
28
  inputSchema,
@@ -1 +1 @@
1
- {"version":3,"file":"get-economic-events.js","sourceRoot":"","sources":["../../src/tools/get-economic-events.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,qDAAqD;AACrD,wCAAwC;AAExC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,GACX,MAAM,2BAA2B,CAAC;AACnC,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,CACP,2CAA2C;QACzC,+DAA+D,CAClE;IACH,aAAa,EAAE,CAAC;SACb,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;SACjD,QAAQ,EAAE;SACV,QAAQ,CAAC,0CAA0C,CAAC;IACvD,QAAQ,EAAE,CAAC;SACR,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC;SAClD,QAAQ,EAAE;SACV,QAAQ,CACP,gFAAgF,CACjF;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAiB;IACtD,IAAI,EAAE,2BAA2B;IACjC,KAAK,EAAE,cAAc;IACrB,WAAW,EACT,+JAA+J;QAC/J,qJAAqJ;QACrJ,2OAA2O;IAC7O,WAAW;IACX,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC9C,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACpF,MAAM,YAAY,GAAG,kBAAkB,CAAC,MAAM,EAAE,aAAa,IAAI,CAAC,CAAC,CAAC;QACpE,MAAM,QAAQ,GAAG,gBAAgB,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QAC1D,MAAM,qBAAqB,GAAG,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,IAAI,KAAK,CAAC;QAC1E,OAAO,SAAS,CAAC;YACf,KAAK;YACL,KAAK,EAAE,KAAK,IAAI,OAAO;YACvB,WAAW,EAAE,YAAY;YACzB,KAAK,EAAE,QAAQ,CAAC,MAAM;YACtB,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC3B,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI;gBACpB,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC;gBACjC,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,UAAU,EAAE,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC;gBAC1C,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,OAAO;gBAC/B,IAAI,EAAE,CAAC,CAAC,IAAI;aACb,CAAC,CAAC;YACH,IAAI,EACF,iDAAiD;gBACjD,CAAC,qBAAqB;oBACpB,CAAC,CAAC,wHAAwH;oBAC1H,CAAC,CAAC,EAAE,CAAC;SACV,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"get-economic-events.js","sourceRoot":"","sources":["../../src/tools/get-economic-events.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,qDAAqD;AACrD,wCAAwC;AAExC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,GACX,MAAM,2BAA2B,CAAC;AACnC,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,CACP,2CAA2C;QACzC,+DAA+D,CAClE;IACH,aAAa,EAAE,CAAC;SACb,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;SACjD,QAAQ,EAAE;SACV,QAAQ,CAAC,0CAA0C,CAAC;IACvD,QAAQ,EAAE,CAAC;SACR,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC;SAClD,QAAQ,EAAE;SACV,QAAQ,CACP,gFAAgF,CACjF;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAiB;IACtD,IAAI,EAAE,2BAA2B;IACjC,KAAK,EAAE,cAAc;IACrB,WAAW,EACT,2NAA2N;QAC3N,qJAAqJ;QACrJ,2OAA2O;IAC7O,WAAW;IACX,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC9C,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACpF,MAAM,YAAY,GAAG,kBAAkB,CAAC,MAAM,EAAE,aAAa,IAAI,CAAC,CAAC,CAAC;QACpE,MAAM,QAAQ,GAAG,gBAAgB,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QAC1D,MAAM,qBAAqB,GAAG,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,IAAI,KAAK,CAAC;QAC1E,OAAO,SAAS,CAAC;YACf,KAAK;YACL,KAAK,EAAE,KAAK,IAAI,OAAO;YACvB,WAAW,EAAE,YAAY;YACzB,KAAK,EAAE,QAAQ,CAAC,MAAM;YACtB,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC3B,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI;gBACpB,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC;gBACjC,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,UAAU,EAAE,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC;gBAC1C,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,OAAO;gBAC/B,IAAI,EAAE,CAAC,CAAC,IAAI;aACb,CAAC,CAAC;YACH,IAAI,EACF,iDAAiD;gBACjD,CAAC,qBAAqB;oBACpB,CAAC,CAAC,wHAAwH;oBAC1H,CAAC,CAAC,EAAE,CAAC;SACV,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
@@ -17,6 +17,8 @@
17
17
  // v0.14.1 で README / package.json keywords を 4 本柱(資産形成 + 市況 + 経済指標 + 地政学)に全面刷新、18 ツール表記に統一。
18
18
  // v0.14.2 で description / keywords の追加整合。
19
19
  // v0.14.3 で src/index.ts の version ハードコード撤廃 → package.json から動的読み込みに変更(以降の bump で自動同期)。server.json 側は手動同期。
20
+ // v0.18.0 で get_central_bank_speakers を新設(中銀高官の発言・講演を ForexFactory ライブ取得、米 Fed は当年 FOMC 名簿で役職/投票権を補完)。18 → 19 ツール。
21
+ // ※ v0.17.0 で get_economic_events_today に一時導入した静的 centralbank カテゴリは本ツールに一本化し撤去。
20
22
  import { simulateNisaTool } from "./simulate-nisa.js";
21
23
  import { planRetirementTool } from "./plan-retirement.js";
22
24
  import { calculateRequiredMonthlyTool } from "./calculate-required-monthly.js";
@@ -35,6 +37,7 @@ import { getGeopoliticalCalendarTool } from "./get-geopolitical-calendar.js";
35
37
  import { getGeopoliticalPulseTool } from "./get-geopolitical-pulse.js";
36
38
  import { getEconomicReleasePulseTool } from "./get-economic-release-pulse.js";
37
39
  import { getUsMacroLatestTool } from "./get-us-macro-latest.js";
40
+ import { getCentralBankSpeakersTool } from "./get-central-bank-speakers.js";
38
41
  export const tools = [
39
42
  simulateNisaTool,
40
43
  planRetirementTool,
@@ -59,5 +62,7 @@ export const tools = [
59
62
  getEconomicReleasePulseTool,
60
63
  // v0.13.0 新規・v0.14.0 で 4→7 系列拡張: 米マクロ最新値(BLS Public Data API v2、雇用統計・失業率・CPI・コア CPI・PPI・コア PPI・平均時給)
61
64
  getUsMacroLatestTool,
65
+ // v0.18.0 新規: 中銀高官の発言・講演スケジュール(ForexFactory ライブ取得 + 当年 FOMC 名簿で役職/投票権を補完)
66
+ getCentralBankSpeakersTool,
62
67
  ];
63
68
  //# 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;AAC1C,+EAA+E;AAC/E,sEAAsE;AACtE,iJAAiJ;AACjJ,4JAA4J;AAC5J,4FAA4F;AAC5F,0CAA0C;AAC1C,2GAA2G;AAE3G,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;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,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;IAC3B,qGAAqG;IACrG,oBAAoB;CACrB,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;AAC1C,+EAA+E;AAC/E,sEAAsE;AACtE,iJAAiJ;AACjJ,4JAA4J;AAC5J,4FAA4F;AAC5F,0CAA0C;AAC1C,2GAA2G;AAC3G,mHAAmH;AACnH,kFAAkF;AAElF,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;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAE5E,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;IAC3B,qGAAqG;IACrG,oBAAoB;IACpB,0EAA0E;IAC1E,0BAA0B;CAC3B,CAAC"}
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "lit-forge-mcp",
3
- "version": "0.16.0",
3
+ "version": "0.18.0",
4
4
  "mcpName": "io.github.noblabs/lit-forge-mcp",
5
- "description": "MCP server (18 tools): NISA/iDeCo/retirement simulation, 28-indicator market snapshot, economic release calendars (BEA/NY Fed/FRB/BLS/DOL-ETA/S&P Global/Cabinet Office/BOJ), latest BLS macro values (7 series), and geopolitical calendar + pulse.",
5
+ "description": "MCP server (19 tools): NISA/iDeCo/retirement simulation, 28-indicator market snapshot, economic release calendars (BEA/NY Fed/FRB/BLS/DOL-ETA/S&P Global/Cabinet Office/BOJ), central bank speakers (Fed/BOJ/ECB, live), latest BLS macro values (7 series), and geopolitical calendar + pulse.",
6
6
  "type": "module",
7
7
  "license": "MIT",
8
8
  "homepage": "https://github.com/noblabs/lit-forge-mcp",