lit-forge-mcp 0.18.0 → 0.20.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
@@ -8,7 +8,11 @@
8
8
 
9
9
  Claude Desktop / Claude Code / Cursor など、MCP に対応した任意の AI クライアントで動作します。
10
10
 
11
- > **最新版ハイライト(v0.18.0)**: 新ツール `get_central_bank_speakers` を追加。ForexFactory の無料カレンダーから**これからの**中銀高官の発言・講演(FRB 理事・地区連銀総裁・日銀・ECB・BOE 等)をライブ取得し、米 Fed は当年 FOMC 名簿で **役職(ダラス連銀総裁等)と投票権の有無** を補完。投票メンバーの発言は重要度を引き上げ(議長=★★★ / 投票メンバー=★★以上)。※ v0.17.0 `get_economic_events_today` に一時導入した静的 `centralbank` カテゴリは本ツールに一本化(撤去)。
11
+ > **最新版ハイライト(v0.20.0)**: `get_economic_release_pulse` に **ForexFactory ライブアダプタ**を新設。**米 JOLTS 求人件数**(PFEI 非収録のため従来取りこぼし)を動的取得で追加し、あわせて **S&P Global PMI 速報**を静的手転記から**ライブ取得に置換**(半年手動更新を廃止)、さらに **ISM 製造業/非製造業・消費者信頼感(CB/ミシガン大)・ADP 雇用**を pulse にライブ追加。発表日は faireconomy 週次カレンダー XML を**ランタイム取得**するため将来分の手動追記が不要。GMT→JST 変換で日跨ぎも正確。※ BLS 三大指標(雇用統計・CPI・PPI)は官製一次ソースの **PFEI** を正として据え置き。
12
+ >
13
+ > **v0.19.0**: `get_economic_release_pulse` に **米センサス局**(U.S. Census Bureau)の **Advance Economic Indicators Report**(卸売在庫・小売在庫・財貿易収支の**速報値**、月次 08:30 ET)を追加し、従来どのアダプタも拾えなかった「米 卸売在庫【速報値】」等の網羅性の穴を解消。発表日は公式リリースカレンダー(List View)を**ランタイムでライブ取得**するため、翌年以降の日程も公式ページ更新に追随(手動更新不要)。
14
+ >
15
+ > **v0.18.0**: 新ツール `get_central_bank_speakers` を追加。ForexFactory の無料カレンダーから**これからの**中銀高官の発言・講演(FRB 理事・地区連銀総裁・日銀・ECB・BOE 等)をライブ取得し、米 Fed は当年 FOMC 名簿で **役職(ダラス連銀総裁等)と投票権の有無** を補完。投票メンバーの発言は重要度を引き上げ(議長=★★★ / 投票メンバー=★★以上)。※ v0.17.0 で `get_economic_events_today` に一時導入した静的 `centralbank` カテゴリは本ツールに一本化(撤去)。
12
16
  >
13
17
  > **v0.16.0**: `get_economic_events_today`(手動キュレーション経済カレンダー)に **米 消費者信頼感指数**(Conference Board・毎月最終火曜)と **ミシガン大消費者態度指数**(速報=第 2 金曜 / 確報=第 4 金曜)を追加。為替で注目度の高い米消費マインド系をカバー。
14
18
  >
@@ -69,7 +73,7 @@ Claude / GPT / Cursor との対話のなかで、たとえば次のような問
69
73
  |---|---|
70
74
  | `get_economic_events_today` | 当日 or 今週の経済イベント(FOMC・日銀金融政策決定会合・米雇用統計・CPI・GDP・米 消費者信頼感指数(CB / ミシガン大)・中国 PMI 等)を重要度付きで返す。`category` で `macro` / `geopolitical` / `policy` に絞り込み可能。期間イベント(ジャクソンホール会議等)は `endDate` で複数日対応。半年分を手動キュレーション。中銀高官の発言は `get_central_bank_speakers` を使用 |
71
75
  | `get_central_bank_speakers` | **これからの中銀高官の発言・講演をライブ取得**: ForexFactory 無料カレンダーから発言系イベント(FRB 理事・地区連銀総裁・日銀・ECB・BOE 等)を抽出。米 Fed は当年 FOMC 名簿で **role(ダラス連銀総裁等)/ votingMember(投票権の有無)** を補完し、投票メンバーは重要度を引き上げ(議長=★★★ / 投票メンバー=★★以上)。`range`(today/week)・`countries`(US/JP/EU/GB/CN/OTHER)で絞り込み。6 時間キャッシュ |
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 で追加(前者は木曜計算 + 祝日補正、後者は公式カレンダー手転記) |
76
+ | `get_economic_release_pulse` | **公式機関の発表予定を実取得**: BEA / NY 連銀 / FRB / **BLS(PFEI 経由)** / **DOL/ETA(新規失業保険申請件数)** / **ForexFactory ライブ(JOLTS 求人件数・製造業/サービス業 PMI 速報・ISM 製造業/非製造業・消費者信頼感〔CB/ミシガン大〕・ADP 雇用)** / **センサス局(卸売在庫・小売在庫・財貿易収支の速報)** / 内閣府 / 日銀 のカレンダーを並列取得し、本日・今週・今月の経済指標リリース予定を統合して返す。BLS 三大指標は v0.14.0 で PFEI Schedule 統合、センサス局 Advance Economic Indicators は v0.19.0 で追加、v0.20.0 ForexFactory ライブアダプタを新設(JOLTS 追加・S&P PMI 速報をライブ化・ISM/消費者信頼感/ADP を追加) |
73
77
  | `get_us_macro_latest` | **米マクロ 7 系列の最新発表値**: 雇用統計・失業率・CPI・コア CPI・PPI・コア PPI・平均時給 を BLS Public Data API v2 から 1 リクエストで取得。値 + 前月比 + 前年同月比を返す。API key 不要・無認証 1 日 25 リクエスト・6 時間キャッシュ |
74
78
 
75
79
  ### 地政学 — 2 ツール
@@ -5,7 +5,8 @@ import { parseCaoDate, parseCaoTime, parseCaoGdpTable, } from "../economic-relea
5
5
  import { parseEmpireStateTable } from "../economic-release-pulse/adapters/nyfed.js";
6
6
  import { parseG17Releases } from "../economic-release-pulse/adapters/frb.js";
7
7
  import { computeJoblessClaimsReleases } from "../economic-release-pulse/adapters/dol-eta.js";
8
- import { spGlobalPmiToReleaseEvents } from "../economic-release-pulse/adapters/sp-global-pmi.js";
8
+ import { ffTitleToName, parseFfClock, ffEventToRelease, selectFaireconomyEvents, } from "../economic-release-pulse/adapters/faireconomy.js";
9
+ import { parseCensusAdvanceTable } from "../economic-release-pulse/adapters/census.js";
9
10
  import { jstParts, jstToday, jstDatePlus, isUsEasternDst, etToJst, } from "../economic-release-pulse/util.js";
10
11
  describe("parseCaoDate", () => {
11
12
  it("和暦括弧・曜日付きの内閣府形式をパースする", () => {
@@ -241,25 +242,149 @@ describe("computeJoblessClaimsReleases", () => {
241
242
  expect(events[0]).toMatchObject({ date: "2026-11-25", time: "22:30" });
242
243
  });
243
244
  });
244
- describe("spGlobalPmiToReleaseEvents", () => {
245
- it("flash 発表日を製造業速報・サービス業速報の 2 件に展開する(09:45 ET → 22:45 JST 同日)", () => {
246
- const events = spGlobalPmiToReleaseEvents();
247
- // 確認済みの 2026-05-21 分(製造業 + サービス業)を検証。
248
- const may21 = events.filter((e) => e.date === "2026-05-21");
249
- expect(may21).toHaveLength(2);
250
- expect(may21.map((e) => e.name).sort()).toEqual([
251
- " サービス業PMI(速報)",
252
- " 製造業PMI(速報)",
245
+ describe("parseFfClock", () => {
246
+ it("am/pm 24 時間表記に変換する", () => {
247
+ expect(parseFfClock("2:00pm")).toEqual({ h: 14, m: 0 });
248
+ expect(parseFfClock("10:30am")).toEqual({ h: 10, m: 30 });
249
+ expect(parseFfClock("12:00am")).toEqual({ h: 0, m: 0 });
250
+ expect(parseFfClock("12:00pm")).toEqual({ h: 12, m: 0 });
251
+ });
252
+ it("時刻でない値(All Day/Tentative/空)は null", () => {
253
+ expect(parseFfClock("All Day")).toBeNull();
254
+ expect(parseFfClock("Tentative")).toBeNull();
255
+ expect(parseFfClock("")).toBeNull();
256
+ });
257
+ });
258
+ describe("ffTitleToName", () => {
259
+ it("対象の米指標タイトルだけを日本語名に変換する(完全一致)", () => {
260
+ expect(ffTitleToName("JOLTS Job Openings")).toBe("米 JOLTS(求人件数)");
261
+ expect(ffTitleToName("ISM Manufacturing PMI")).toBe("米 ISM製造業景況指数");
262
+ expect(ffTitleToName("ISM Services PMI")).toBe("米 ISM非製造業景況指数");
263
+ expect(ffTitleToName("Flash Services PMI")).toBe("米 サービス業PMI(速報)");
264
+ expect(ffTitleToName("CB Consumer Confidence")).toBe("米 消費者信頼感指数(CB)");
265
+ expect(ffTitleToName("ADP Non-Farm Employment Change")).toBe("米 ADP雇用統計(民間部門)");
266
+ });
267
+ it("PFEI/DOL 等が既出の指標や紛らわしい部分一致は対象外(null)", () => {
268
+ // PFEI が出す → 重複防止のため対象外
269
+ expect(ffTitleToName("Non-Farm Employment Change")).toBeNull();
270
+ expect(ffTitleToName("CPI m/m")).toBeNull();
271
+ // DOL/ETA が出す → 対象外
272
+ expect(ffTitleToName("Unemployment Claims")).toBeNull();
273
+ // 部分一致の誤爆防止("ISM Manufacturing Prices" は PMI ではない)
274
+ expect(ffTitleToName("ISM Manufacturing Prices")).toBeNull();
275
+ expect(ffTitleToName("Final Manufacturing PMI")).toBeNull();
276
+ });
277
+ });
278
+ describe("ffEventToRelease", () => {
279
+ it("GMT 時刻を JST に変換する(夏時間: 06-02 2:00pm GMT = 10:00 EDT → 23:00 JST 同日)", () => {
280
+ const r = ffEventToRelease({
281
+ title: "JOLTS Job Openings",
282
+ country: "USD",
283
+ date: "06-02-2026",
284
+ time: "2:00pm",
285
+ impact: "Medium",
286
+ url: "https://www.forexfactory.com/calendar/578-us-jolts-job-openings",
287
+ });
288
+ expect(r).toEqual({
289
+ date: "2026-06-02",
290
+ time: "23:00",
291
+ country: "US",
292
+ name: "米 JOLTS(求人件数)",
293
+ source: "ForexFactory",
294
+ sourceUrl: "https://www.forexfactory.com/calendar/578-us-jolts-job-openings",
295
+ });
296
+ });
297
+ it("標準時の発表は日跨ぎを正しく処理する(12-01 3:00pm GMT = 10:00 EST → 00:00 JST 翌日)", () => {
298
+ const r = ffEventToRelease({
299
+ title: "ISM Manufacturing PMI",
300
+ country: "USD",
301
+ date: "12-01-2026",
302
+ time: "3:00pm",
303
+ impact: "High",
304
+ });
305
+ expect(r).toMatchObject({
306
+ date: "2026-12-02",
307
+ time: "00:00",
308
+ country: "US",
309
+ name: "米 ISM製造業景況指数",
310
+ source: "ForexFactory",
311
+ });
312
+ });
313
+ it("対象外 / USD でない / 時刻不明は除外(null)", () => {
314
+ // マップ外(PFEI が出す)
315
+ expect(ffEventToRelease({ title: "Non-Farm Employment Change", country: "USD", date: "06-05-2026", time: "1:30pm", impact: "High" })).toBeNull();
316
+ // USD でない(EU の ISM 相当は無いが、country で弾く確認)
317
+ expect(ffEventToRelease({ title: "Flash Services PMI", country: "EUR", date: "06-23-2026", time: "9:00am", impact: "High" })).toBeNull();
318
+ // 時刻不明
319
+ expect(ffEventToRelease({ title: "JOLTS Job Openings", country: "USD", date: "06-02-2026", time: "All Day", impact: "Medium" })).toBeNull();
320
+ });
321
+ it("selectFaireconomyEvents は混在フィードから対象指標だけを抽出する", () => {
322
+ const events = [
323
+ { title: "Unemployment Claims", country: "USD", date: "06-04-2026", time: "12:30pm", impact: "Medium" }, // DOL 担当→対象外
324
+ { title: "JOLTS Job Openings", country: "USD", date: "06-02-2026", time: "2:00pm", impact: "Medium" },
325
+ { title: "ISM Services PMI", country: "USD", date: "06-03-2026", time: "3:00pm", impact: "High" },
326
+ { title: "FOMC Member Logan Speaks", country: "USD", date: "06-02-2026", time: "5:00pm", impact: "Low" }, // 発言→対象外
327
+ { title: "German Final Services PMI", country: "EUR", date: "06-03-2026", time: "8:55am", impact: "Medium" }, // 非USD→対象外
328
+ ];
329
+ const out = selectFaireconomyEvents(events);
330
+ expect(out.map((e) => e.name).sort()).toEqual([
331
+ "米 ISM非製造業景況指数",
332
+ "米 JOLTS(求人件数)",
253
333
  ]);
254
- for (const e of may21) {
334
+ });
335
+ });
336
+ describe("parseCensusAdvanceTable", () => {
337
+ // 公式 List View HTML の実構造を模した fixture。
338
+ // 対象行(Advance Economic Indicators Report)+ 紛らわしい非対象行を 2 つ混ぜ、
339
+ // パーサが Advance 行だけを拾うことを検証する。
340
+ const FIXTURE = `
341
+ <table class="sortable">
342
+ <tr height="20">
343
+ <td height="20"><a href="/manufacturing/m3/">Advance Report on Durable Goods--Manufacturers' Shipments, Inventories, and Orders</a></td>
344
+ <td sorttable_customkey="202605260830">May 26, 2026</td><td>8:30 AM</td><td>April 2026</td>
345
+ </tr>
346
+ <tr height="20">
347
+ <td height="20"><a href="/econ/indicators/">Advance Economic Indicators Report (International Trade, Retail, &amp; Wholesale)</a></td>
348
+ <td sorttable_customkey="202605290830">May 29, 2026</td><td>8:30 AM</td><td>April 2026</td>
349
+ </tr>
350
+ <tr height="20">
351
+ <td height="20"><a href="/wholesale/">Wholesale Trade: Sales and Inventories</a></td>
352
+ <td sorttable_customkey="202606091000">June 9, 2026</td><td>10:00 AM</td><td>April 2026</td>
353
+ </tr>
354
+ <tr height="20">
355
+ <td height="20"><a href="/econ/indicators/">Advance Economic Indicators Report (International Trade, Retail, &amp; Wholesale)</a></td>
356
+ <td sorttable_customkey="202606260830">June 26, 2026</td><td>8:30 AM</td><td>May 2026</td>
357
+ </tr>
358
+ </table>`;
359
+ it("Advance 行だけを 3 速報(卸売在庫・小売在庫・財貿易収支)に展開する(08:30 ET → 21:30 JST 同日, DST 期間)", () => {
360
+ const events = parseCensusAdvanceTable(FIXTURE);
361
+ // 対象 2 行 × 3 系列 = 6 件。耐久財速報・確報卸売は拾わない。
362
+ expect(events).toHaveLength(6);
363
+ const may29 = events.filter((e) => e.date === "2026-05-29");
364
+ expect(may29).toHaveLength(3);
365
+ expect(may29.map((e) => e.name).sort()).toEqual([
366
+ "米 卸売在庫(速報)",
367
+ "米 小売在庫(速報)",
368
+ "米 貿易収支(財・速報)",
369
+ ]);
370
+ for (const e of may29) {
255
371
  expect(e).toMatchObject({
256
- date: "2026-05-21",
257
- time: "22:45",
372
+ date: "2026-05-29",
373
+ time: "21:30",
258
374
  country: "US",
259
- source: "S&P Global",
260
- sourceUrl: "https://www.pmi.spglobal.com/",
375
+ source: "U.S. Census Bureau(Advance Economic Indicators Report)",
376
+ sourceUrl: "https://www.census.gov/economic-indicators/calendar-listview.html",
261
377
  });
262
378
  }
263
379
  });
380
+ it("翌月(6/26)も同様に拾う=ライブ HTML 由来で未来も自動対応", () => {
381
+ const jun26 = parseCensusAdvanceTable(FIXTURE).filter((e) => e.date === "2026-06-26");
382
+ expect(jun26).toHaveLength(3);
383
+ expect(jun26.every((e) => e.time === "21:30")).toBe(true);
384
+ });
385
+ it("該当行が無ければ空配列(紛らわしい行だけの HTML)", () => {
386
+ const noAdvance = `<tr><td><a href="/x">Wholesale Trade: Sales and Inventories</a></td><td sorttable_customkey="202606091000">June 9, 2026</td></tr>`;
387
+ expect(parseCensusAdvanceTable(noAdvance)).toEqual([]);
388
+ });
264
389
  });
265
390
  //# sourceMappingURL=economic-release-pulse.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"economic-release-pulse.test.js","sourceRoot":"","sources":["../../../src/lib/__tests__/economic-release-pulse.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"economic-release-pulse.test.js","sourceRoot":"","sources":["../../../src/lib/__tests__/economic-release-pulse.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ReleaseAdapter, ReleaseEvent } from "../types.js";
2
+ export declare function parseCensusAdvanceTable(html: string): ReleaseEvent[];
3
+ export declare const censusAdapter: ReleaseAdapter;
@@ -0,0 +1,84 @@
1
+ // 米センサス局 Advance Economic Indicators Report アダプタ(v0.19.0 新設・ライブ取得)。
2
+ //
3
+ // 毎月下旬 08:30 ET に公表される Advance Economic Indicators Report の発表予定を返す。
4
+ // 同報告は卸売在庫【速報】・小売在庫【速報】・財貿易収支【速報】の 3 系列を同時公表する。
5
+ // センサス局は release_pulse の既存アダプタ(BEA / NY 連銀 / FRB / BLS(PFEI) /
6
+ // DOL/ETA / ForexFactory / 内閣府 / 日銀)のいずれもカバーしておらず、
7
+ // 卸売在庫【速報値】が網羅性の穴になっていた(2026-05-29 取りこぼし)。
8
+ //
9
+ // 方式: BEA / NY 連銀 / FRB と同じ「公式カレンダーを毎回ライブ取得」。静的手転記は
10
+ // 翌年分を手で足さないと止まる(穴が再発する)ため不採用。本アダプタは
11
+ // センサス局 公式リリースカレンダー(List View)の HTML を取得し、
12
+ // 「Advance Economic Indicators Report」行を抽出するので、翌年以降の日程も
13
+ // 公式ページが更新され次第そのまま反映される(手動更新ゼロ)。
14
+ //
15
+ // 一次ソース: https://www.census.gov/economic-indicators/calendar-listview.html
16
+ // HTML 構造(安定): 各 <tr> が 1 リリース。指標名は <a>...</a>、発表日時は
17
+ // <td sorttable_customkey="YYYYMMDDHHMM"> に ET の 12 桁数値で埋め込まれている。
18
+ // 例: <a href="/econ/indicators/">Advance Economic Indicators Report (...)</a>
19
+ // <td sorttable_customkey="202605290830">May 29, 2026</td>
20
+ // 依存追加を避けるため正規表現ベース(nyfed.ts / cao.ts と同方針)。
21
+ import { withCache, DEFAULT_CACHE_TTL_MS } from "../cache.js";
22
+ import { etToJst, RELEASE_PULSE_UA, RELEASE_PULSE_FETCH_TIMEOUT_MS, } from "../util.js";
23
+ const CENSUS_URL = "https://www.census.gov/economic-indicators/calendar-listview.html";
24
+ const SOURCE_LABEL = "U.S. Census Bureau(Advance Economic Indicators Report)";
25
+ // Advance Economic Indicators Report が同時公表する速報系列の日本語名。
26
+ // 注: 同報告は「卸売在庫・小売在庫・財貿易収支」の advance(速報)。
27
+ // 別行の "Wholesale Trade: Sales and Inventories"(10:00 ET)は確報なので拾わない。
28
+ const ADVANCE_SERIES = [
29
+ "米 卸売在庫(速報)",
30
+ "米 小売在庫(速報)",
31
+ "米 貿易収支(財・速報)",
32
+ ];
33
+ // List View の HTML から「Advance Economic Indicators Report」行を抽出し、
34
+ // sorttable_customkey(ET の YYYYMMDDHHMM)を JST に変換して
35
+ // 3 速報系列の ReleaseEvent[] に展開する純関数(テスト用 export)。
36
+ export function parseCensusAdvanceTable(html) {
37
+ const out = [];
38
+ const rows = html.match(/<tr[^>]*>[\s\S]*?<\/tr>/gi);
39
+ if (!rows)
40
+ return out;
41
+ for (const row of rows) {
42
+ // 指標名(最初の <a>...</a> のテキスト)。"Advance Economic Indicators Report" 行のみ対象。
43
+ const anchor = row.match(/<a[^>]*>([\s\S]*?)<\/a>/i);
44
+ if (!anchor)
45
+ continue;
46
+ const name = anchor[1].replace(/<[^>]*>/g, "").replace(/\s+/g, " ").trim();
47
+ if (!/advance economic indicators report/i.test(name))
48
+ continue;
49
+ // 発表日時は customkey の ET 12 桁(YYYYMMDDHHMM)が最も堅牢。
50
+ const key = row.match(/sorttable_customkey="(\d{12})"/i);
51
+ if (!key)
52
+ continue;
53
+ const k = key[1];
54
+ const ymdEt = `${k.slice(0, 4)}-${k.slice(4, 6)}-${k.slice(6, 8)}`;
55
+ const etHHMM = `${k.slice(8, 10)}:${k.slice(10, 12)}`;
56
+ const { date, time } = etToJst(ymdEt, etHHMM);
57
+ for (const series of ADVANCE_SERIES) {
58
+ out.push({
59
+ date,
60
+ time,
61
+ country: "US",
62
+ name: series,
63
+ source: SOURCE_LABEL,
64
+ sourceUrl: CENSUS_URL,
65
+ });
66
+ }
67
+ }
68
+ return out;
69
+ }
70
+ export const censusAdapter = {
71
+ key: "census-advance",
72
+ label: "センサス局(卸売在庫・小売在庫・財貿易収支 速報)",
73
+ fetchEvents: () => withCache("census-advance", DEFAULT_CACHE_TTL_MS, async () => {
74
+ const res = await fetch(CENSUS_URL, {
75
+ headers: { "User-Agent": RELEASE_PULSE_UA, Accept: "text/html" },
76
+ signal: AbortSignal.timeout(RELEASE_PULSE_FETCH_TIMEOUT_MS),
77
+ redirect: "follow",
78
+ });
79
+ if (!res.ok)
80
+ throw new Error(`HTTP ${res.status}`);
81
+ return parseCensusAdvanceTable(await res.text());
82
+ }),
83
+ };
84
+ //# sourceMappingURL=census.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"census.js","sourceRoot":"","sources":["../../../../src/lib/economic-release-pulse/adapters/census.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { ReleaseAdapter, ReleaseEvent } from "../types.js";
2
+ import { type FfEvent } from "../../central-bank-speakers.js";
3
+ export declare function ffTitleToName(title: string): string | null;
4
+ export declare function parseFfClock(time: string): {
5
+ h: number;
6
+ m: number;
7
+ } | null;
8
+ export declare function ffEventToRelease(ev: FfEvent): ReleaseEvent | null;
9
+ export declare function selectFaireconomyEvents(events: readonly FfEvent[]): ReleaseEvent[];
10
+ export declare const faireconomyAdapter: ReleaseAdapter;
@@ -0,0 +1,122 @@
1
+ // ForexFactory(faireconomy ミラー)週次カレンダー XML から、他アダプタが
2
+ // カバーしていない米指標をライブ取得するアダプタ(v0.20.0 新設)。
3
+ //
4
+ // 背景・経緯:
5
+ // - もともと JOLTS 専用アダプタ(静的手転記)として実装したが、ユーザー指摘
6
+ // 「動的取得しなければ将来分の手動追記問題が消えない」を受けてライブ化。
7
+ // - さらに S&P Global PMI 速報(旧 sp-global-pmi.ts の手転記静的データ。2026-05 しか
8
+ // 確認できず以降が空=実質 stale だった)も本アダプタのライブ取得に統合し、静的版を撤去。
9
+ // - ISM 製造業/非製造業・消費者信頼感(CB / ミシガン大)・ADP 雇用は、これまで
10
+ // get_economic_events_today の手動キュレーションにしか無かった(or どこにも無かった)。
11
+ // FF フィードに載るため pulse にライブ追加し、半年手動追記を不要にした。
12
+ //
13
+ // 取得方式: get_central_bank_speakers と同じ FF 週次 XML
14
+ // (https://nfs.faireconomy.media/ff_calendar_thisweek.xml) を 1 回 fetch(6h キャッシュ)し、
15
+ // 下記マップに載る米(USD)イベントだけを ReleaseEvent に変換する。
16
+ // - PFEI(雇用統計・CPI・PPI)/ DOL/ETA(失業保険)/ BEA / センサス局 等が
17
+ // 既にカバーする指標は **マップに入れない**(pulse 内での重複を避けるため)。
18
+ // 特に DOL は曜日計算で複数週先まで出せるが FF は今週のみのため、置換せず据え置き。
19
+ // - 出所が官製一次ソースで取れるもの(BLS 三大指標)は PFEI 側を正とし、本アダプタは扱わない。
20
+ //
21
+ // 時刻の扱い: FF フィードの時刻は GMT(UTC+0) 基準(JOLTS の "2:00pm" = 14:00 UTC =
22
+ // 10:00 EDT で既知の発表時刻と一致。Europe/London の BST ではなく真の UTC+0 年中)。
23
+ // pulse は JST 日付でフィルタ・表示するため、フィードの GMT 日時を UTC インスタントと
24
+ // して解釈し JST に変換する(冬の 10:00 EST = 15:00 UTC = 00:00 JST 翌日 の日跨ぎも正しい)。
25
+ //
26
+ // 制約: faireconomy は thisweek(現 FF 週)のみ提供。range=week が現 FF 週末を越える
27
+ // 来週分は、その週が thisweek になるまで出ない(中銀発言アダプタと同じ既知の限界)。
28
+ import { jstParts } from "../util.js";
29
+ import { withCache } from "../cache.js";
30
+ import { parseFfEvents } from "../../central-bank-speakers.js";
31
+ const CACHE_TTL_MS = 6 * 3600 * 1000; // 発表予定は日内でほぼ変わらない
32
+ const FETCH_TIMEOUT_MS = 10_000;
33
+ const FF_FEED_URL = "https://nfs.faireconomy.media/ff_calendar_thisweek.xml";
34
+ const FF_CALENDAR_URL = "https://www.forexfactory.com/calendar";
35
+ const UA = "Mozilla/5.0 (compatible; lit-forge-mcp/0.20; +https://github.com/noblabs/lit-forge-mcp)";
36
+ // 取り込む米(USD)指標: FF タイトル(小文字・trim 済)→ 日本語表示名。
37
+ // 完全一致でのみ拾う("ISM Manufacturing Prices" 等の部分一致誤爆を避ける)。
38
+ // ⚠️ PFEI / DOL/ETA / BEA / センサス局 が既に出す指標は入れない(pulse 内重複防止)。
39
+ const FF_US_TITLE_MAP = {
40
+ "jolts job openings": "米 JOLTS(求人件数)",
41
+ "flash manufacturing pmi": "米 製造業PMI(速報)",
42
+ "flash services pmi": "米 サービス業PMI(速報)",
43
+ "ism manufacturing pmi": "米 ISM製造業景況指数",
44
+ "ism services pmi": "米 ISM非製造業景況指数",
45
+ "cb consumer confidence": "米 消費者信頼感指数(CB)",
46
+ "prelim uom consumer sentiment": "米 ミシガン大消費者信頼感(速報)",
47
+ "revised uom consumer sentiment": "米 ミシガン大消費者信頼感(確報)",
48
+ "adp non-farm employment change": "米 ADP雇用統計(民間部門)",
49
+ };
50
+ // FF タイトル → 取り込み対象の日本語名(対象外なら null)。
51
+ export function ffTitleToName(title) {
52
+ return FF_US_TITLE_MAP[title.trim().toLowerCase()] ?? null;
53
+ }
54
+ // "2:00pm" / "10:30am" → { h, m }(24 時間表記)。解釈不能(All Day/Tentative/空)は null。
55
+ export function parseFfClock(time) {
56
+ const m = time.trim().match(/^(\d{1,2}):(\d{2})\s*(am|pm)$/i);
57
+ if (!m)
58
+ return null;
59
+ let h = Number(m[1]) % 12; // 12am→0 / 12pm→0(+12 で 12)
60
+ const min = Number(m[2]);
61
+ if (m[3].toLowerCase() === "pm")
62
+ h += 12;
63
+ if (h > 23 || min > 59)
64
+ return null;
65
+ return { h, m: min };
66
+ }
67
+ // FF イベント 1 件 → ReleaseEvent。対象外(USD でない / マップ外 / 時刻不明)は null。
68
+ // FF の date(MM-DD-YYYY) + time(GMT) を UTC インスタントとして JST に変換する。
69
+ export function ffEventToRelease(ev) {
70
+ if (ev.country.toUpperCase() !== "USD")
71
+ return null;
72
+ const name = ffTitleToName(ev.title);
73
+ if (!name)
74
+ return null;
75
+ const dm = ev.date.trim().match(/^(\d{2})-(\d{2})-(\d{4})$/); // MM-DD-YYYY
76
+ if (!dm)
77
+ return null;
78
+ const clock = parseFfClock(ev.time);
79
+ if (!clock)
80
+ return null; // 時刻不明は出さない(JST 日付を誤らせないため)
81
+ const [, mm, dd, yyyy] = dm;
82
+ const epochMs = Date.UTC(Number(yyyy), Number(mm) - 1, Number(dd), clock.h, clock.m);
83
+ const { date, time } = jstParts(epochMs);
84
+ return {
85
+ date,
86
+ time,
87
+ country: "US",
88
+ name,
89
+ source: "ForexFactory",
90
+ sourceUrl: ev.url || FF_CALENDAR_URL,
91
+ };
92
+ }
93
+ // 生 FF イベント配列 → 対象指標の ReleaseEvent[](純関数・テスト用 export)。
94
+ export function selectFaireconomyEvents(events) {
95
+ const out = [];
96
+ for (const ev of events) {
97
+ const r = ffEventToRelease(ev);
98
+ if (r)
99
+ out.push(r);
100
+ }
101
+ return out;
102
+ }
103
+ // FF 週次フィードを取得して対象指標を抽出(6h キャッシュ)。
104
+ async function fetchFaireconomyReleases() {
105
+ return withCache("faireconomy:ff-thisweek", CACHE_TTL_MS, async () => {
106
+ const res = await fetch(FF_FEED_URL, {
107
+ headers: { "User-Agent": UA, Accept: "application/xml, text/xml, */*" },
108
+ signal: AbortSignal.timeout(FETCH_TIMEOUT_MS),
109
+ redirect: "follow",
110
+ });
111
+ if (!res.ok)
112
+ throw new Error(`HTTP ${res.status}`);
113
+ const xml = await res.text();
114
+ return selectFaireconomyEvents(parseFfEvents(xml));
115
+ });
116
+ }
117
+ export const faireconomyAdapter = {
118
+ key: "faireconomy",
119
+ label: "ForexFactory(米 JOLTS / PMI速報 / ISM / 消費者信頼感 / ADP・ライブ)",
120
+ fetchEvents: fetchFaireconomyReleases,
121
+ };
122
+ //# sourceMappingURL=faireconomy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"faireconomy.js","sourceRoot":"","sources":["../../../../src/lib/economic-release-pulse/adapters/faireconomy.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,8 @@ import { nyfedAdapter } from "./adapters/nyfed.js";
9
9
  import { frbAdapter } from "./adapters/frb.js";
10
10
  import { pfeiAdapter } from "./adapters/pfei.js";
11
11
  import { dolEtaAdapter } from "./adapters/dol-eta.js";
12
- import { spGlobalPmiAdapter } from "./adapters/sp-global-pmi.js";
12
+ import { faireconomyAdapter } from "./adapters/faireconomy.js";
13
+ import { censusAdapter } from "./adapters/census.js";
13
14
  // 登録アダプタ。新ソース追加時はここに 1 行足す。
14
15
  // 次サイクル候補: 総務省統計局(日 CPI)、FOMC。
15
16
  const ADAPTERS = [
@@ -20,7 +21,8 @@ const ADAPTERS = [
20
21
  frbAdapter,
21
22
  pfeiAdapter,
22
23
  dolEtaAdapter,
23
- spGlobalPmiAdapter,
24
+ faireconomyAdapter,
25
+ censusAdapter,
24
26
  ];
25
27
  // date(YYYY-MM-DD) が [from, to] の範囲内か(文字列比較で OK)。
26
28
  function inRange(date, from, to) {
@@ -1 +1 @@
1
- {"version":3,"file":"pulse.js","sourceRoot":"","sources":["../../../src/lib/economic-release-pulse/pulse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pulse.js","sourceRoot":"","sources":["../../../src/lib/economic-release-pulse/pulse.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,19 @@
1
- export type SpGlobalPmiFlashRelease = {
1
+ export type JoltsRelease = {
2
2
  year: number;
3
3
  month: number;
4
4
  day: number;
5
+ referenceMonth: string;
5
6
  confirmed: boolean;
6
7
  };
7
- export type SpGlobalPmiSchedule = {
8
+ export type JoltsSchedule = {
8
9
  source: string;
9
10
  sourceUrl: string;
10
11
  lastSyncedAt: string;
11
12
  scopeStart: string;
12
13
  scopeEnd: string;
13
14
  releaseTimeEt: string;
15
+ name: string;
14
16
  comment: string;
15
- flashReleases: readonly SpGlobalPmiFlashRelease[];
17
+ releases: readonly JoltsRelease[];
16
18
  };
17
- export declare const SP_GLOBAL_PMI_SCHEDULE: SpGlobalPmiSchedule;
19
+ export declare const JOLTS_SCHEDULE: JoltsSchedule;
@@ -0,0 +1,47 @@
1
+ // BLS JOLTS(Job Openings and Labor Turnover Survey, 求人・労働異動調査)の
2
+ // 発表日程データ(v0.20.0 新設)。
3
+ //
4
+ // 背景:
5
+ // - JOLTS は BLS の月次指標だが、ホワイトハウス PFEI スケジュール PDF には
6
+ // 含まれない(PFEI の BLS セクションは 雇用統計・PPI・CPI・実質賃金・
7
+ // 生産性・雇用コスト指数 のみ。JOLTS は principal federal economic
8
+ // indicator に列挙されていない)。そのため PFEI アダプタでは拾えず、
9
+ // pulse の網羅性の穴になっていた(2026-06-02 の 4 月分取りこぼし)。
10
+ // - BLS 公式の HTML schedule / RSS は Akamai bot 管理で 403 を返すため
11
+ // ([[feedback_lit_forge_mcp_bls_access_constraint]])、自動取得できない。
12
+ // - そこで S&P Global PMI と同思想で、複数の独立カレンダー(BLS 公式・
13
+ // TradingEconomics・Investing.com)で相互確認できた発表日のみを
14
+ // 静的データとして手転記し、ReleaseEvent[] に展開する(HTTP なし・常時成功)。
15
+ // - JOLTS は毎月 10:00 ET 公表(雇用統計等の 08:30 ET とは異なる)。
16
+ // DST 期間は 23:00 JST 同日、標準時は 00:00 JST 翌日になる。
17
+ //
18
+ // 運用:
19
+ // - 一次ソース: BLS JOLTS リリーススケジュール
20
+ // (https://www.bls.gov/schedule/news_release/jolts.htm)。
21
+ // - confirmed=true は複数カレンダーで裏取り済みの発表日のみ。
22
+ // ⚠️ 捏造防止のため、未確認の将来分は登録しない(空のまま「要追記」)。
23
+ // - BLS が bot ブロックを解く / 別の取得経路が見つかった時点で、
24
+ // 2026-07 以降の月次分を追記し lastSyncedAt を更新する。
25
+ export const JOLTS_SCHEDULE = {
26
+ source: "BLS JOLTS",
27
+ sourceUrl: "https://www.bls.gov/schedule/news_release/jolts.htm",
28
+ lastSyncedAt: "2026-06-02",
29
+ scopeStart: "2026-01-01",
30
+ scopeEnd: "2026-06-30",
31
+ releaseTimeEt: "10:00",
32
+ name: "米 JOLTS(求人件数)",
33
+ comment: "米 JOLTS(求人・労働異動調査)の発表日。BLS 公式スケジュールを一次ソースに、" +
34
+ "TradingEconomics・Investing.com の独立カレンダーで相互確認した日付のみ収録。" +
35
+ "10:00 ET 公表(DST 期間は 23:00 JST 同日 / 標準時は 00:00 JST 翌日)。" +
36
+ "confirmed=true のみが裏取り済み。2026-07 以降は未確認のため未収録(要追記)。",
37
+ releases: [
38
+ // 2026 年 1〜6 月分(いずれも複数カレンダーで確認済み)。
39
+ { year: 2026, month: 1, day: 7, referenceMonth: "2025-11", confirmed: true },
40
+ { year: 2026, month: 2, day: 5, referenceMonth: "2025-12", confirmed: true },
41
+ { year: 2026, month: 3, day: 13, referenceMonth: "2026-01", confirmed: true },
42
+ { year: 2026, month: 3, day: 31, referenceMonth: "2026-02", confirmed: true },
43
+ { year: 2026, month: 5, day: 5, referenceMonth: "2026-03", confirmed: true },
44
+ { year: 2026, month: 6, day: 2, referenceMonth: "2026-04", confirmed: true },
45
+ ],
46
+ };
47
+ //# sourceMappingURL=jolts-schedule-data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jolts-schedule-data.js","sourceRoot":"","sources":["../../src/lib/jolts-schedule-data.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,uBAAuB;AACvB,EAAE;AACF,MAAM;AACN,qDAAqD;AACrD,iDAAiD;AACjD,wDAAwD;AACxD,gDAAgD;AAChD,kDAAkD;AAClD,6DAA6D;AAC7D,mEAAmE;AACnE,kDAAkD;AAClD,oDAAoD;AACpD,uDAAuD;AACvD,oDAAoD;AACpD,iDAAiD;AACjD,EAAE;AACF,MAAM;AACN,kCAAkC;AAClC,6DAA6D;AAC7D,2CAA2C;AAC3C,2CAA2C;AAC3C,2CAA2C;AAC3C,6CAA6C;AAsB7C,MAAM,CAAC,MAAM,cAAc,GAAkB;IAC3C,MAAM,EAAE,WAAW;IACnB,SAAS,EAAE,qDAAqD;IAChE,YAAY,EAAE,YAAY;IAC1B,UAAU,EAAE,YAAY;IACxB,QAAQ,EAAE,YAAY;IACtB,aAAa,EAAE,OAAO;IACtB,IAAI,EAAE,eAAe;IACrB,OAAO,EACL,6CAA6C;QAC7C,uDAAuD;QACvD,wDAAwD;QACxD,oDAAoD;IACtD,QAAQ,EAAE;QACR,mCAAmC;QACnC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE;QAC5E,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE;QAC5E,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE;QAC7E,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE;QAC7E,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE;QAC5E,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE;KAC7E;CACF,CAAC"}
@@ -1,19 +1,27 @@
1
1
  // 経済指標リリース予定 リアルタイム取得ツール(v0.11.0 新設、v0.12.0 で NY 連銀・FRB 追加、
2
- // v0.14.0 で BLS(PFEI 経由)追加、v0.15.0 で DOL/ETA・S&P Global PMI 追加)。
2
+ // v0.14.0 で BLS(PFEI 経由)追加、v0.15.0 で DOL/ETA・S&P Global PMI 追加、
3
+ // v0.19.0 でセンサス局 Advance Economic Indicators 追加、v0.20.0 で ForexFactory ライブ
4
+ // アダプタを新設し JOLTS を追加 + S&P PMI 速報をライブ化 + ISM・消費者信頼感・ADP をライブ追加)。
3
5
  //
4
6
  // 役割分担:
5
7
  // - 本ツール: 公式機関のリリースカレンダーを取得し、収録漏れの無い「網羅性」を担保
6
8
  // - get_economic_events_today: 手動キュレーション(★★★ 中心・半年 1 回更新・verify 済み)
7
9
  // 両者は補完関係。市況サマリーでは両方を併用するのが望ましい。
8
10
  //
9
- // 現行カバー範囲(v0.15.0):
11
+ // 現行カバー範囲(v0.20.0):
10
12
  // - BEA(米): GDP / 個人所得・支出(PCE)/ 貿易収支 / 企業収益 — 公式 JSON
11
13
  // - NY 連銀(米): 製造業景気指数(Empire State)— 公式 HTML
12
14
  // - FRB(米): 鉱工業生産(G.17)— 公式 HTML
13
15
  // - BLS(米): 雇用統計 / CPI / PPI — ホワイトハウス PFEI 公式スケジュール PDF
14
- // (BLS 公式の HTML/RSS は bot ブロックされるため PFEI 経由で取得)
16
+ // (BLS 公式の HTML/RSS は bot ブロックされるため PFEI 経由で取得。官製一次ソースのため据え置き)
15
17
  // - DOL/ETA(米): 新規失業保険申請件数(週次・毎週木 08:30 ET)— 木曜計算 + 祝日補正
16
- // - S&P Global(米): 製造業 / サービス業 PMI 速報(flash, 09:45 ET)— 公式カレンダー手転記
18
+ // - ForexFactory(米・ライブ): JOLTS 求人件数 / 製造業・サービス業 PMI 速報(flash)/
19
+ // ISM 製造業・非製造業 / 消費者信頼感(CB・ミシガン大)/ ADP 雇用 — faireconomy 週次 XML を
20
+ // ライブ取得。これらは PFEI に含まれず(JOLTS/PMI 速報)or 従来は手動キュレーションのみだった
21
+ // ものを動的化したもの(将来分の手動追記が不要)。PFEI/DOL/BEA/センサス局が出す指標は
22
+ // 重複防止のためマップに入れない。FF は thisweek のみのため来週分は週替わり後に出る。
23
+ // - センサス局(米): 卸売在庫 / 小売在庫 / 財貿易収支 の速報(Advance Economic
24
+ // Indicators Report, 月次・08:30 ET)— 公式 List View HTML をライブ取得(翌年分も自動)
17
25
  // - 内閣府(日): 四半期別 GDP 速報 — 公式 HTML
18
26
  // - 日銀(日): 金融政策決定会合 / 主な意見 / 短観 / 議事要旨 — lit-forge 収録データ再利用
19
27
  // 次サイクル予定: 総務省統計局(日 CPI)/ FOMC。
@@ -29,22 +37,23 @@ const inputSchema = {
29
37
  .enum(["US", "JP", "EU", "GB", "CN"])
30
38
  .optional()
31
39
  .describe("国コード絞り込み: US=米国 / JP=日本 / EU / GB / CN。未指定で全件。" +
32
- "現行カバーは US(BEA・NY 連銀・FRB・BLSDOL/ETA・S&P Global)と JP(内閣府・日銀)のみ"),
40
+ "現行カバーは US(BEA・NY 連銀・FRB・BLS〔PFEI〕・DOL/ETA・ForexFactory〔JOLTS/PMI速報/ISM/消費者信頼感/ADP〕・センサス局)と JP(内閣府・日銀)のみ"),
33
41
  };
34
42
  export const getEconomicReleasePulseTool = {
35
43
  name: "get_economic_release_pulse",
36
44
  title: "経済指標リリース予定(公式機関カレンダー リアルタイム取得)",
37
45
  description: "**公式機関のリリースカレンダーを実取得**して、当日〜週内の経済指標発表予定を返すツール。" +
38
- "BEA(米経済分析局)・NY 連銀・FRB・内閣府・日銀の公式日程を並列取得し、国・期間でフィルタして返します。" +
46
+ "BEA(米経済分析局)・NY 連銀・FRB・センサス局・内閣府・日銀の公式日程を並列取得し、国・期間でフィルタして返します。" +
39
47
  "【get_economic_events_today との違い】" +
40
48
  "`get_economic_events_today` は運営者が一次ソースで裏取りした手動キュレーション(★★★ 中心、半年 1 回更新)で、" +
41
49
  "収録対象を絞っているため取りこぼす『網羅性の穴』があります。" +
42
50
  "本ツールは公式カレンダーを実取得することでその穴を埋める**補完ツール**です。市況サマリーでは両方を併用してください。" +
43
- "【現行カバー範囲(v0.15.0)】" +
51
+ "【現行カバー範囲(v0.20.0)】" +
44
52
  "BEA(米 GDP / 個人所得・支出〔PCE〕/ 貿易収支 / 企業収益)、NY 連銀(米 製造業景気指数 Empire State)、" +
45
53
  "FRB(米 鉱工業生産 G.17)、**BLS**(雇用統計・CPI・PPI — ホワイトハウス PFEI 公式スケジュール経由)、" +
46
54
  "**DOL/ETA**(米 新規失業保険申請件数 — 週次・毎週木 08:30 ET)、" +
47
- "**S&P Global**(米 製造業/サービス業 PMI 速報flash, 09:45 ET。発表日は公式カレンダーから手転記)、" +
55
+ "**ForexFactory ライブ**(米 JOLTS 求人件数・製造業/サービス業 PMI 速報・ISM 製造業/非製造業・消費者信頼感〔CB/ミシガン大〕・ADP 雇用 faireconomy 週次カレンダー XML をライブ取得。PFEI 非収録 or 従来手動のみだった指標を動的化)、" +
56
+ "**センサス局**(米 卸売在庫・小売在庫・財貿易収支の速報 — Advance Economic Indicators Report, 月次 08:30 ET。公式 List View をライブ取得し翌年分も自動反映)、" +
48
57
  "内閣府(四半期別 GDP 速報)、日銀(金融政策決定会合 / 主な意見 / 短観 / 議事要旨)。" +
49
58
  "総務省統計局(日 CPI)・FOMC は次サイクルで追加予定で、現時点では本ツールに含まれません。" +
50
59
  "【利用上の注意】" +
@@ -1 +1 @@
1
- {"version":3,"file":"get-economic-release-pulse.js","sourceRoot":"","sources":["../../src/tools/get-economic-release-pulse.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,iEAAiE;AACjE,EAAE;AACF,QAAQ;AACR,+CAA+C;AAC/C,sEAAsE;AACtE,mCAAmC;AACnC,EAAE;AACF,oBAAoB;AACpB,wDAAwD;AACxD,+CAA+C;AAC/C,mCAAmC;AACnC,2DAA2D;AAC3D,oDAAoD;AACpD,2DAA2D;AAC3D,qEAAqE;AACrE,oCAAoC;AACpC,8DAA8D;AAC9D,gCAAgC;AAEhC,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,+DAA+D,CAClE;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAiB;IACvD,IAAI,EAAE,4BAA4B;IAClC,KAAK,EAAE,gCAAgC;IACvC,WAAW,EACT,gDAAgD;QAChD,0DAA0D;QAC1D,kCAAkC;QAClC,0EAA0E;QAC1E,gCAAgC;QAChC,8DAA8D;QAC9D,oBAAoB;QACpB,uEAAuE;QACvE,oEAAoE;QACpE,8CAA8C;QAC9C,wEAAwE;QACxE,mDAAmD;QACnD,mDAAmD;QACnD,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"}
1
+ {"version":3,"file":"get-economic-release-pulse.js","sourceRoot":"","sources":["../../src/tools/get-economic-release-pulse.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,gEAAgE;AAChE,2EAA2E;AAC3E,iEAAiE;AACjE,EAAE;AACF,QAAQ;AACR,+CAA+C;AAC/C,sEAAsE;AACtE,mCAAmC;AACnC,EAAE;AACF,oBAAoB;AACpB,wDAAwD;AACxD,+CAA+C;AAC/C,mCAAmC;AACnC,2DAA2D;AAC3D,mEAAmE;AACnE,2DAA2D;AAC3D,iEAAiE;AACjE,qEAAqE;AACrE,8DAA8D;AAC9D,uDAAuD;AACvD,uDAAuD;AACvD,yDAAyD;AACzD,wEAAwE;AACxE,oCAAoC;AACpC,8DAA8D;AAC9D,gCAAgC;AAEhC,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,yGAAyG,CAC5G;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAiB;IACvD,IAAI,EAAE,4BAA4B;IAClC,KAAK,EAAE,gCAAgC;IACvC,WAAW,EACT,gDAAgD;QAChD,gEAAgE;QAChE,kCAAkC;QAClC,0EAA0E;QAC1E,gCAAgC;QAChC,8DAA8D;QAC9D,oBAAoB;QACpB,uEAAuE;QACvE,oEAAoE;QACpE,8CAA8C;QAC9C,wJAAwJ;QACxJ,iHAAiH;QACjH,mDAAmD;QACnD,mDAAmD;QACnD,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"}
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "lit-forge-mcp",
3
- "version": "0.18.0",
3
+ "version": "0.20.0",
4
4
  "mcpName": "io.github.noblabs/lit-forge-mcp",
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.",
5
+ "description": "MCP server (19 tools): NISA/iDeCo/retirement simulation, 28-indicator market snapshot, economic release calendars (BEA/NY Fed/FRB/BLS/JOLTS/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",
@@ -1,3 +0,0 @@
1
- import type { ReleaseAdapter, ReleaseEvent } from "../types.js";
2
- export declare function spGlobalPmiToReleaseEvents(): ReleaseEvent[];
3
- export declare const spGlobalPmiAdapter: ReleaseAdapter;
@@ -1,41 +0,0 @@
1
- // S&P Global 米 PMI 速報(flash)アダプタ(v0.15.0 新設)。
2
- //
3
- // 製造業・サービス業の flash PMI 発表予定を返す。S&P Global は民間データ会社で
4
- // 官公庁カレンダー実取得の対象外だったため pulse の網羅性の穴になっていた。
5
- // PFEI アダプタと同様、スクレイピングせず静的キュレ済みデータ
6
- // (src/lib/sp-global-pmi-schedule-data.ts) を ReleaseEvent[] に展開する。
7
- // HTTP fetch を行わないためキャッシュ不要・常に成功扱い。
8
- import { etToJst } from "../util.js";
9
- import { SP_GLOBAL_PMI_SCHEDULE } from "../../sp-global-pmi-schedule-data.js";
10
- function ymd(year, month, day) {
11
- return `${year}-${String(month).padStart(2, "0")}-${String(day).padStart(2, "0")}`;
12
- }
13
- // flash 発表 1 件を「製造業速報」「サービス業速報」の 2 イベントに展開する。
14
- // 注: S&P Global の "Services" は ISM の「非製造業」とは別系列。混同回避のため
15
- // サービス業表記にする。総合(Composite)速報は需要を見て後追加。
16
- const PMI_NAMES = ["米 製造業PMI(速報)", "米 サービス業PMI(速報)"];
17
- // 静的スケジュールを ReleaseEvent[] に展開する純関数(テスト用 export)。
18
- export function spGlobalPmiToReleaseEvents() {
19
- const out = [];
20
- const { flashReleases, releaseTimeEt, sourceUrl } = SP_GLOBAL_PMI_SCHEDULE;
21
- for (const r of flashReleases) {
22
- const { date, time } = etToJst(ymd(r.year, r.month, r.day), releaseTimeEt);
23
- for (const name of PMI_NAMES) {
24
- out.push({
25
- date,
26
- time,
27
- country: "US",
28
- name,
29
- source: "S&P Global",
30
- sourceUrl,
31
- });
32
- }
33
- }
34
- return out;
35
- }
36
- export const spGlobalPmiAdapter = {
37
- key: "sp-global-pmi",
38
- label: "S&P Global(米 製造業/サービス業 PMI 速報)",
39
- fetchEvents: async () => spGlobalPmiToReleaseEvents(),
40
- };
41
- //# sourceMappingURL=sp-global-pmi.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sp-global-pmi.js","sourceRoot":"","sources":["../../../../src/lib/economic-release-pulse/adapters/sp-global-pmi.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,EAAE;AACF,oDAAoD;AACpD,2CAA2C;AAC3C,mCAAmC;AACnC,mEAAmE;AACnE,oCAAoC;AAGpC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAE9E,SAAS,GAAG,CAAC,IAAY,EAAE,KAAa,EAAE,GAAW;IACnD,OAAO,GAAG,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;AACrF,CAAC;AAED,8CAA8C;AAC9C,wDAAwD;AACxD,2CAA2C;AAC3C,MAAM,SAAS,GAAG,CAAC,cAAc,EAAE,gBAAgB,CAAU,CAAC;AAE9D,kDAAkD;AAClD,MAAM,UAAU,0BAA0B;IACxC,MAAM,GAAG,GAAmB,EAAE,CAAC;IAC/B,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,sBAAsB,CAAC;IAC3E,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;QAC9B,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,aAAa,CAAC,CAAC;QAC3E,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,GAAG,CAAC,IAAI,CAAC;gBACP,IAAI;gBACJ,IAAI;gBACJ,OAAO,EAAE,IAAI;gBACb,IAAI;gBACJ,MAAM,EAAE,YAAY;gBACpB,SAAS;aACV,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAmB;IAChD,GAAG,EAAE,eAAe;IACpB,KAAK,EAAE,gCAAgC;IACvC,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC,0BAA0B,EAAE;CACtD,CAAC"}
@@ -1,30 +0,0 @@
1
- // S&P Global 米 PMI 速報(flash)の発表日程データ(v0.15.0 新設)。
2
- //
3
- // 背景:
4
- // - S&P Global(旧 Markit)は民間データ会社で、官公庁カレンダー実取得の対象外。
5
- // pulse の網羅性の穴になっていた(新規失業保険申請件数とともに 2026-05-21 取りこぼし)。
6
- // - 民間サイトのスクレイピングは ToS リスクがあるため、PFEI と同思想で
7
- // 公式リリースカレンダーから手転記した静的データを返す(HTTP なし・常時成功)。
8
- // - 米 flash PMI は製造業・サービス業を同日 09:45 ET に公表する。
9
- //
10
- // 運用:
11
- // - 一次ソース: S&P Global PMI 公式リリースカレンダー(https://www.pmi.spglobal.com/)。
12
- // - 半年に 1 回、公式カレンダーから flashReleases を更新し lastSyncedAt を当日に。
13
- // - confirmed=false は「公式カレンダー未確認の暫定値」。確認できた日付のみ confirmed=true にする。
14
- // ⚠️ 現時点では 2026-05 のみ確認済み。それ以降は要追記(捏造しないため空のまま)。
15
- export const SP_GLOBAL_PMI_SCHEDULE = {
16
- source: "S&P Global PMI",
17
- sourceUrl: "https://www.pmi.spglobal.com/",
18
- lastSyncedAt: "2026-05-21",
19
- scopeStart: "2026-05-01",
20
- scopeEnd: "2026-12-31",
21
- releaseTimeEt: "09:45",
22
- comment: "米 flash PMI(製造業・サービス業)の発表日。S&P Global 公式リリースカレンダーから手転記。" +
23
- "09:45 ET 公表(DST 期間は 22:45 JST / 標準時は 23:45 JST、同日内)。" +
24
- "confirmed=true のみが公式裏取り済み。2026-06 以降は未確認のため未収録(要追記)。",
25
- flashReleases: [
26
- // 2026-05 分のみ確認済み(発表日: 5/21 木)。
27
- { year: 2026, month: 5, day: 21, confirmed: true },
28
- ],
29
- };
30
- //# sourceMappingURL=sp-global-pmi-schedule-data.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sp-global-pmi-schedule-data.js","sourceRoot":"","sources":["../../src/lib/sp-global-pmi-schedule-data.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,EAAE;AACF,MAAM;AACN,qDAAqD;AACrD,2DAA2D;AAC3D,6CAA6C;AAC7C,gDAAgD;AAChD,gDAAgD;AAChD,EAAE;AACF,MAAM;AACN,wEAAwE;AACxE,8DAA8D;AAC9D,sEAAsE;AACtE,qDAAqD;AAoBrD,MAAM,CAAC,MAAM,sBAAsB,GAAwB;IACzD,MAAM,EAAE,gBAAgB;IACxB,SAAS,EAAE,+BAA+B;IAC1C,YAAY,EAAE,YAAY;IAC1B,UAAU,EAAE,YAAY;IACxB,QAAQ,EAAE,YAAY;IACtB,aAAa,EAAE,OAAO;IACtB,OAAO,EACL,yDAAyD;QACzD,sDAAsD;QACtD,sDAAsD;IACxD,aAAa,EAAE;QACb,gCAAgC;QAChC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;KACnD;CACF,CAAC"}