lit-forge-mcp 0.4.1 → 0.5.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
@@ -36,7 +36,7 @@ Claude Desktop / Claude Code / Cursor など、MCP に対応した任意の AI
36
36
  | `get_market_thermometer` | VIX・S&P 500・米10年金利・ドル指数を合成した 0-100 のリスクオン/オフ・スコア + 過去 30 営業日推移 |
37
37
  | `get_performance_ranking` | 28 銘柄を `1d`/`1w`/`1m` のパフォーマンスでソート、上位/下位 N 件を返す |
38
38
  | `get_yield_spread` | 米10年-5年イールドスプレッド(プラス=順イールド / マイナス=逆イールド) |
39
- | `get_market_sessions` | 主要 4 市場(東京・上海・ロンドン・NY)の現在の取引時間ステータス |
39
+ | `get_market_sessions` | 主要 4 市場(東京・上海・ロンドン・NY)の現在の取引時間ステータス(open / pre-open / closed / **holiday**、v0.5.0 で祝日対応) |
40
40
  | `get_sector_heatmap` | 米株セクター ETF(SPDR、11 セクター)の前日比一覧 |
41
41
 
42
42
  > ⚠ **HTTP 通信について**: 市況・分析系ツールは **Yahoo Finance API(query1.finance.yahoo.com)** へ HTTPS リクエストを送信します。実行 PC のネットワークから外部に出る通信が発生する点にご留意ください。データは約 1 時間遅れの参考値で、**投資助言ではなく情報集約**として提供しています。
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,105 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { ECONOMIC_EVENTS, getEventsForDate, getEventsForWeek, jstDateKey, } from "../economic-events.js";
3
+ // JST 基準で曜日番号を返す(0=日曜, 6=土曜)。
4
+ function jstDayOfWeek(dateKey) {
5
+ // dateKey は yyyy-mm-dd(JST)。+09:00 を付けて Date 化する。
6
+ const d = new Date(`${dateKey}T00:00:00+09:00`);
7
+ // JST の曜日 = UTC+9 時点の日付の曜日。
8
+ // Date オブジェクトは内部 UTC 保持なので、9 時間進めた値で曜日計算する。
9
+ const jstMs = d.getTime() + 9 * 3600 * 1000;
10
+ return new Date(jstMs).getUTCDay();
11
+ }
12
+ describe("ECONOMIC_EVENTS data integrity", () => {
13
+ it("全イベントは土日に登録されていない(市場休場の祝日エントリのみ例外)", () => {
14
+ const offenders = ECONOMIC_EVENTS.filter((e) => {
15
+ const dow = jstDayOfWeek(e.date);
16
+ const isWeekend = dow === 0 || dow === 6;
17
+ // 例外: 名前に「休場」を含む祝日エントリは固定日のため土日もあり得る
18
+ // (例: 米独立記念日 7/4 が土曜の年など)
19
+ const isMarketClosure = e.name.includes("休場");
20
+ return isWeekend && !isMarketClosure;
21
+ });
22
+ if (offenders.length > 0) {
23
+ // 失敗時に詳細を出すため map で整形
24
+ const detail = offenders.map((e) => `${e.date} ★${e.importance} ${e.name}`);
25
+ throw new Error(`土日に登録された経済指標が ${offenders.length} 件あります(土日発表は通常あり得ないため要確認):\n` +
26
+ detail.join("\n"));
27
+ }
28
+ expect(offenders).toEqual([]);
29
+ });
30
+ it("米雇用統計は金曜または木曜(独立記念日繰上げ)でなければならない", () => {
31
+ const nfp = ECONOMIC_EVENTS.filter((e) => e.country === "US" && e.name.includes("雇用統計"));
32
+ expect(nfp.length).toBeGreaterThan(0);
33
+ const offenders = nfp.filter((e) => {
34
+ const dow = jstDayOfWeek(e.date);
35
+ // 5=金曜, 4=木曜(米独立記念日前倒しなど)
36
+ return dow !== 5 && dow !== 4;
37
+ });
38
+ if (offenders.length > 0) {
39
+ const detail = offenders.map((e) => `${e.date} ${e.name}`);
40
+ throw new Error(`米雇用統計が金曜・木曜以外に登録されています:\n${detail.join("\n")}`);
41
+ }
42
+ expect(offenders).toEqual([]);
43
+ });
44
+ it("米 PCE 価格指数は金曜でなければならない", () => {
45
+ const pce = ECONOMIC_EVENTS.filter((e) => e.country === "US" && e.name.includes("PCE"));
46
+ expect(pce.length).toBeGreaterThan(0);
47
+ const offenders = pce.filter((e) => jstDayOfWeek(e.date) !== 5);
48
+ if (offenders.length > 0) {
49
+ const detail = offenders.map((e) => `${e.date} ${e.name}`);
50
+ throw new Error(`米 PCE が金曜以外に登録されています:\n${detail.join("\n")}`);
51
+ }
52
+ expect(offenders).toEqual([]);
53
+ });
54
+ it("FOMC 結果発表は水曜(米国時間水曜午後 = JST 水曜深夜)でなければならない", () => {
55
+ const fomcResult = ECONOMIC_EVENTS.filter((e) => e.country === "US" && e.name.includes("FOMC 結果発表"));
56
+ expect(fomcResult.length).toBeGreaterThan(0);
57
+ // time が "27:00" など 24+ 表記 = JST 翌日早朝 = 米水曜午後 → JST では木曜 0-3 時
58
+ const offenders = fomcResult.filter((e) => {
59
+ const dow = jstDayOfWeek(e.date);
60
+ // time 27:00 表記の場合、e.date は会合 2 日目(米水曜)= JST 水曜
61
+ return dow !== 3; // 3=水曜
62
+ });
63
+ if (offenders.length > 0) {
64
+ const detail = offenders.map((e) => `${e.date} ${e.name}`);
65
+ throw new Error(`FOMC 結果発表が水曜以外に登録されています:\n${detail.join("\n")}`);
66
+ }
67
+ expect(offenders).toEqual([]);
68
+ });
69
+ it("date は yyyy-mm-dd 形式で正しい日付", () => {
70
+ ECONOMIC_EVENTS.forEach((e) => {
71
+ expect(e.date).toMatch(/^\d{4}-\d{2}-\d{2}$/);
72
+ const d = new Date(`${e.date}T00:00:00+09:00`);
73
+ expect(Number.isNaN(d.getTime())).toBe(false);
74
+ });
75
+ });
76
+ it("importance は 1, 2, 3 のいずれか", () => {
77
+ ECONOMIC_EVENTS.forEach((e) => {
78
+ expect([1, 2, 3]).toContain(e.importance);
79
+ });
80
+ });
81
+ it("getEventsForDate は重要度降順でソートされる", () => {
82
+ // 5/15 には ★3 (日 GDP) と ★2 (米 小売) の 2 件がある
83
+ const events = getEventsForDate("2026-05-15");
84
+ expect(events.length).toBeGreaterThanOrEqual(2);
85
+ for (let i = 1; i < events.length; i++) {
86
+ expect(events[i - 1].importance).toBeGreaterThanOrEqual(events[i].importance);
87
+ }
88
+ });
89
+ it("getEventsForWeek は 7 日間分を日付昇順で返す", () => {
90
+ const events = getEventsForWeek("2026-05-08");
91
+ // 5/8〜5/14 の範囲
92
+ events.forEach((e) => {
93
+ expect(e.date >= "2026-05-08" && e.date <= "2026-05-14").toBe(true);
94
+ });
95
+ for (let i = 1; i < events.length; i++) {
96
+ expect(events[i - 1].date <= events[i].date).toBe(true);
97
+ }
98
+ });
99
+ it("jstDateKey は JST 基準の yyyy-mm-dd を返す", () => {
100
+ // UTC 2026-05-08T15:00 = JST 2026-05-09T00:00
101
+ const utc = new Date("2026-05-08T15:00:00Z");
102
+ expect(jstDateKey(utc)).toBe("2026-05-09");
103
+ });
104
+ });
105
+ //# sourceMappingURL=economic-events.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"economic-events.test.js","sourceRoot":"","sources":["../../../src/lib/__tests__/economic-events.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,GACX,MAAM,uBAAuB,CAAC;AAE/B,8BAA8B;AAC9B,SAAS,YAAY,CAAC,OAAe;IACnC,kDAAkD;IAClD,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,OAAO,iBAAiB,CAAC,CAAC;IAChD,4BAA4B;IAC5B,4CAA4C;IAC5C,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;IAC5C,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,CAAC;AACrC,CAAC;AAED,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;IAC9C,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,SAAS,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YAC7C,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACjC,MAAM,SAAS,GAAG,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;YACzC,qCAAqC;YACrC,0BAA0B;YAC1B,MAAM,eAAe,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC9C,OAAO,SAAS,IAAI,CAAC,eAAe,CAAC;QACvC,CAAC,CAAC,CAAC;QACH,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,sBAAsB;YACtB,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAC1B,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,IAAI,EAAE,CAC9C,CAAC;YACF,MAAM,IAAI,KAAK,CACb,iBAAiB,SAAS,CAAC,MAAM,8BAA8B;gBAC7D,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CACpB,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,GAAG,GAAG,eAAe,CAAC,MAAM,CAChC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CACrD,CAAC;QACF,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACtC,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YACjC,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACjC,0BAA0B;YAC1B,OAAO,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QACH,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC3D,MAAM,IAAI,KAAK,CACb,4BAA4B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAChD,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;QAChC,MAAM,GAAG,GAAG,eAAe,CAAC,MAAM,CAChC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CACpD,CAAC;QACF,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACtC,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAChE,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC3D,MAAM,IAAI,KAAK,CACb,0BAA0B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC9C,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CACvC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAC1D,CAAC;QACF,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAC7C,+DAA+D;QAC/D,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YACxC,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACjC,gDAAgD;YAChD,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,OAAO;QAC3B,CAAC,CAAC,CAAC;QACH,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC3D,MAAM,IAAI,KAAK,CACb,6BAA6B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACjD,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YAC5B,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;YAC9C,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,iBAAiB,CAAC,CAAC;YAC/C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YAC5B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,0CAA0C;QAC1C,MAAM,MAAM,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAC9C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;QAChD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,sBAAsB,CACrD,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CACrB,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,MAAM,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAC9C,eAAe;QACf,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACnB,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,YAAY,IAAI,CAAC,CAAC,IAAI,IAAI,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QACH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,8CAA8C;QAC9C,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAC7C,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,14 +1,14 @@
1
1
  import { describe, expect, it } from "vitest";
2
2
  import { getSessionStatuses } from "../sessions.js";
3
3
  // JST 時刻指定用ヘルパ:JST H 時の UTC 換算時刻を作る
4
+ // 注意: GW (5/4-5/6) は祝日テストと衝突するため、5/11 以降を基準にする
4
5
  function atJst(hourJst, dow = "mon") {
5
- // 2026-05-04 (月) 00:00 JST = 2026-05-03 15:00 UTC
6
6
  const baseDates = {
7
- mon: "2026-05-04T00:00:00+09:00",
8
- tue: "2026-05-05T00:00:00+09:00",
9
- fri: "2026-05-08T00:00:00+09:00",
10
- sat: "2026-05-09T00:00:00+09:00",
11
- sun: "2026-05-10T00:00:00+09:00",
7
+ mon: "2026-05-11T00:00:00+09:00",
8
+ tue: "2026-05-12T00:00:00+09:00",
9
+ fri: "2026-05-15T00:00:00+09:00",
10
+ sat: "2026-05-16T00:00:00+09:00",
11
+ sun: "2026-05-17T00:00:00+09:00",
12
12
  };
13
13
  const base = new Date(baseDates[dow]).getTime();
14
14
  return new Date(base + hourJst * 3600 * 1000);
@@ -43,5 +43,46 @@ describe("getSessionStatuses", () => {
43
43
  for (const s of out)
44
44
  expect(s.state).toBe("closed");
45
45
  });
46
+ // ============ 祝日対応(v0.5.0〜) ============
47
+ it("2026-05-06(振替休日)水曜 12:00 JST:東京は holiday", () => {
48
+ // 2026-05-06 (Wed) は GW 振替休日
49
+ const date = new Date("2026-05-06T03:00:00Z"); // = 12:00 JST
50
+ const out = getSessionStatuses(date);
51
+ const tokyo = out.find((s) => s.session.id === "tokyo");
52
+ expect(tokyo?.state).toBe("holiday");
53
+ expect(tokyo?.holidayName).toContain("振替休日");
54
+ });
55
+ it("2026-12-25(Christmas)金曜 23:00 JST:NY と London が holiday", () => {
56
+ // 2026-12-25 (Fri) Christmas = NY/London 共に休場
57
+ const date = new Date("2026-12-25T14:00:00Z"); // = 23:00 JST
58
+ const out = getSessionStatuses(date);
59
+ expect(out.find((s) => s.session.id === "ny")?.state).toBe("holiday");
60
+ expect(out.find((s) => s.session.id === "london")?.state).toBe("holiday");
61
+ // 東京・上海は通常営業時間外 (closed)
62
+ expect(out.find((s) => s.session.id === "tokyo")?.state).toBe("closed");
63
+ });
64
+ it("2026-04-03(Good Friday)金曜 22:30 JST:NY は holiday(取引時間中でも override)", () => {
65
+ const date = new Date("2026-04-03T13:30:00Z"); // = 22:30 JST
66
+ const out = getSessionStatuses(date);
67
+ const ny = out.find((s) => s.session.id === "ny");
68
+ expect(ny?.state).toBe("holiday");
69
+ expect(ny?.holidayName).toBe("Good Friday");
70
+ });
71
+ it("2026-11-27(Thanksgiving 翌日)金曜 03:00 JST:NY は前日 11/26 の holiday を継承", () => {
72
+ // 2026-11-26 (Thu) Thanksgiving。NY 22:30 11/26 - 05:00 11/27 JST が休場
73
+ // 11/27 03:00 JST は 11/26 NY 取引日内の早朝 → 前日祝日として holiday を返す
74
+ const date = new Date("2026-11-26T18:00:00Z"); // = 11/27 03:00 JST
75
+ const out = getSessionStatuses(date);
76
+ const ny = out.find((s) => s.session.id === "ny");
77
+ expect(ny?.state).toBe("holiday");
78
+ expect(ny?.holidayName).toBe("Thanksgiving Day");
79
+ });
80
+ it("2026-02-17(春節)火曜 12:00 JST:上海は holiday", () => {
81
+ const date = new Date("2026-02-17T03:00:00Z"); // = 12:00 JST
82
+ const out = getSessionStatuses(date);
83
+ const shanghai = out.find((s) => s.session.id === "shanghai");
84
+ expect(shanghai?.state).toBe("holiday");
85
+ expect(shanghai?.holidayName).toContain("春節");
86
+ });
46
87
  });
47
88
  //# sourceMappingURL=sessions.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sessions.test.js","sourceRoot":"","sources":["../../../src/lib/__tests__/sessions.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sessions.test.js","sourceRoot":"","sources":["../../../src/lib/__tests__/sessions.test.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { EconomicEvent } from "./market-types.js";
2
- export declare const LAST_UPDATED = "2026-05-01";
2
+ export declare const LAST_UPDATED = "2026-05-08";
3
3
  export declare const ECONOMIC_EVENTS: readonly EconomicEvent[];
4
4
  export declare function jstDateKey(now?: Date): string;
5
5
  export declare function getEventsForDate(date: string, events?: readonly EconomicEvent[]): EconomicEvent[];
@@ -5,14 +5,14 @@
5
5
  //
6
6
  // 重要度: 1=★(参考)/ 2=★★(重要)/ 3=★★★(必読)。
7
7
  // 日付は JST、時刻が示す場合は HH:MM JST。終日イベント(FOMC 結果等)は time 省略。
8
- export const LAST_UPDATED = "2026-05-01";
8
+ export const LAST_UPDATED = "2026-05-08";
9
9
  export const ECONOMIC_EVENTS = [
10
10
  // ============ 2026 年 5 月 ============
11
11
  { date: "2026-05-01", time: "10:30", country: "CN", name: "中国 製造業 PMI(4 月)", importance: 2 },
12
12
  { date: "2026-05-01", time: "23:00", country: "US", name: "米 ISM 製造業 PMI(4 月)", importance: 3 },
13
- { date: "2026-05-02", time: "21:30", country: "US", name: "米 雇用統計(4 月)", importance: 3, note: "非農業部門雇用者数・失業率・平均時給" },
13
+ { date: "2026-05-08", time: "21:30", country: "US", name: "米 雇用統計(4 月)", importance: 3, note: "非農業部門雇用者数・失業率・平均時給" },
14
14
  { date: "2026-05-05", time: "23:00", country: "US", name: "米 ISM 非製造業 PMI(4 月)", importance: 2 },
15
- { date: "2026-05-09", time: "08:50", country: "JP", name: "日銀 金融政策決定会合 議事要旨", importance: 2 },
15
+ { date: "2026-05-11", time: "08:50", country: "JP", name: "日銀 金融政策決定会合 議事要旨", importance: 2 },
16
16
  { date: "2026-05-13", time: "21:30", country: "US", name: "米 CPI(4 月)", importance: 3, note: "総合・コア前年比" },
17
17
  { date: "2026-05-14", time: "21:30", country: "US", name: "米 PPI(4 月)", importance: 2 },
18
18
  { date: "2026-05-15", time: "21:30", country: "US", name: "米 小売売上高(4 月)", importance: 2 },
@@ -38,8 +38,8 @@ export const ECONOMIC_EVENTS = [
38
38
  { date: "2026-07-01", time: "23:00", country: "US", name: "米 ISM 製造業 PMI(6 月)", importance: 3 },
39
39
  { date: "2026-07-01", time: "08:50", country: "JP", name: "日銀短観(4-6 月期)", importance: 3, note: "大企業製造業 DI 等" },
40
40
  { date: "2026-07-03", time: "23:00", country: "US", name: "米 ISM 非製造業 PMI(6 月)", importance: 2 },
41
- { date: "2026-07-04", country: "US", name: "米 独立記念日(市場休場)", importance: 1 },
42
- { date: "2026-07-04", time: "21:30", country: "US", name: "米 雇用統計(6 月)", importance: 3, note: "祝日繰り上げ発表の可能性" },
41
+ { date: "2026-07-03", country: "US", name: "米 独立記念日 振替休場(7/4 土曜のため 7/3 金曜が休場)", importance: 1 },
42
+ { date: "2026-07-02", time: "21:30", country: "US", name: "米 雇用統計(6 月)", importance: 3, note: "独立記念日 7/4 のため通常の金曜から木曜へ前倒し発表" },
43
43
  { date: "2026-07-10", country: "JP", name: "日 SQ", importance: 1 },
44
44
  { date: "2026-07-15", time: "21:30", country: "US", name: "米 CPI(6 月)", importance: 3 },
45
45
  { date: "2026-07-15", time: "11:00", country: "CN", name: "中国 GDP(4-6 月期)", importance: 3 },
@@ -52,7 +52,7 @@ export const ECONOMIC_EVENTS = [
52
52
  { date: "2026-07-30", time: "21:30", country: "US", name: "米 GDP 速報値(4-6 月期)", importance: 3 },
53
53
  { date: "2026-07-31", time: "21:30", country: "US", name: "米 PCE 価格指数(6 月)", importance: 3 },
54
54
  // ============ 2026 年 8 月 ============
55
- { date: "2026-08-01", time: "10:30", country: "CN", name: "中国 製造業 PMI(7 月)", importance: 2 },
55
+ { date: "2026-07-31", time: "10:30", country: "CN", name: "中国 製造業 PMI(7 月)", importance: 2 },
56
56
  { date: "2026-08-03", time: "23:00", country: "US", name: "米 ISM 製造業 PMI(7 月)", importance: 3 },
57
57
  { date: "2026-08-05", time: "23:00", country: "US", name: "米 ISM 非製造業 PMI(7 月)", importance: 2 },
58
58
  { date: "2026-08-07", time: "21:30", country: "US", name: "米 雇用統計(7 月)", importance: 3 },
@@ -76,7 +76,7 @@ export const ECONOMIC_EVENTS = [
76
76
  { date: "2026-09-17", country: "JP", name: "日銀 金融政策決定会合(1 日目)", importance: 3 },
77
77
  { date: "2026-09-18", country: "JP", name: "日銀 金融政策決定会合(結果発表)", importance: 3, note: "総裁会見あり" },
78
78
  { date: "2026-09-25", time: "08:30", country: "JP", name: "日 CPI(8 月)", importance: 2 },
79
- { date: "2026-09-26", time: "21:30", country: "US", name: "米 PCE 価格指数(8 月)", importance: 3 },
79
+ { date: "2026-09-25", time: "21:30", country: "US", name: "米 PCE 価格指数(8 月)", importance: 3 },
80
80
  // ============ 2026 年 10 月 ============
81
81
  { date: "2026-10-01", time: "08:50", country: "JP", name: "日銀短観(7-9 月期)", importance: 3 },
82
82
  { date: "2026-10-01", time: "10:30", country: "CN", name: "中国 製造業 PMI(9 月)", importance: 2 },
@@ -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,12 @@
1
+ import type { MarketId } from "./sessions.js";
2
+ export type MarketHoliday = {
3
+ market: MarketId;
4
+ date: string;
5
+ name: string;
6
+ };
7
+ export declare const MARKET_HOLIDAYS_LAST_UPDATED = "2026-05-06";
8
+ export declare const MARKET_HOLIDAYS: readonly MarketHoliday[];
9
+ /** 指定市場の指定日付(JST)が休場かどうか */
10
+ export declare function getMarketHoliday(market: MarketId, dateKey: string): MarketHoliday | undefined;
11
+ /** Date を JST の YYYY-MM-DD 文字列に変換(economic-events.ts と同じロジック) */
12
+ export declare function jstDateKey(date?: Date): string;
@@ -0,0 +1,97 @@
1
+ // 主要市場(東京・上海・ロンドン・NY)の取引所休場日データ。
2
+ // 経済イベントと同じく手動キュレーション方式(半年〜1 年単位の更新)。
3
+ // 第三者 API に依存しない自前データ → AdSense YMYL 配慮 + ソース変更で死なない。
4
+ //
5
+ // 注意:
6
+ // - 中国(春節・国慶節等)の長期休場は当局発表で前年末に確定するため、毎年初に更新が必要
7
+ // - 米英の早期クローズ(Christmas Eve 等の半日場)はここでは扱わず、終日休場のみ
8
+ // - 振替休日・連休は個別に列挙(自動計算しない、誤りリスク回避)
9
+ export const MARKET_HOLIDAYS_LAST_UPDATED = "2026-05-06";
10
+ export const MARKET_HOLIDAYS = [
11
+ // ============ 東京 (TSE) 2026 ============
12
+ // 国民の祝日 + TSE 取引所規程による休場(年末年始 1/2-1/3、12/31)
13
+ { market: "tokyo", date: "2026-01-01", name: "元日" },
14
+ { market: "tokyo", date: "2026-01-02", name: "TSE 年始休場" },
15
+ { market: "tokyo", date: "2026-01-12", name: "成人の日" },
16
+ { market: "tokyo", date: "2026-02-11", name: "建国記念の日" },
17
+ { market: "tokyo", date: "2026-02-23", name: "天皇誕生日" },
18
+ { market: "tokyo", date: "2026-03-20", name: "春分の日" },
19
+ { market: "tokyo", date: "2026-04-29", name: "昭和の日" },
20
+ { market: "tokyo", date: "2026-05-04", name: "みどりの日" },
21
+ { market: "tokyo", date: "2026-05-05", name: "こどもの日" },
22
+ { market: "tokyo", date: "2026-05-06", name: "振替休日(憲法記念日)" },
23
+ { market: "tokyo", date: "2026-07-20", name: "海の日" },
24
+ { market: "tokyo", date: "2026-08-11", name: "山の日" },
25
+ { market: "tokyo", date: "2026-09-21", name: "敬老の日" },
26
+ { market: "tokyo", date: "2026-09-22", name: "国民の休日" },
27
+ { market: "tokyo", date: "2026-09-23", name: "秋分の日" },
28
+ { market: "tokyo", date: "2026-10-12", name: "スポーツの日" },
29
+ { market: "tokyo", date: "2026-11-03", name: "文化の日" },
30
+ { market: "tokyo", date: "2026-11-23", name: "勤労感謝の日" },
31
+ { market: "tokyo", date: "2026-12-31", name: "TSE 大納会翌日休場" },
32
+ // ============ 上海 (SSE) 2026 ============
33
+ // 春節・国慶節等の長期休場。中国証券監督管理委員会の発表に基づく
34
+ { market: "shanghai", date: "2026-01-01", name: "元旦(新年)" },
35
+ // 春節(2026/2/17 = 旧正月、SSE は 2/16-2/24 休場予定)
36
+ { market: "shanghai", date: "2026-02-16", name: "春節休場" },
37
+ { market: "shanghai", date: "2026-02-17", name: "春節休場" },
38
+ { market: "shanghai", date: "2026-02-18", name: "春節休場" },
39
+ { market: "shanghai", date: "2026-02-19", name: "春節休場" },
40
+ { market: "shanghai", date: "2026-02-20", name: "春節休場" },
41
+ { market: "shanghai", date: "2026-02-23", name: "春節休場" },
42
+ { market: "shanghai", date: "2026-02-24", name: "春節休場" },
43
+ // 清明節
44
+ { market: "shanghai", date: "2026-04-06", name: "清明節" },
45
+ // 労働節(メーデー)
46
+ { market: "shanghai", date: "2026-05-01", name: "労働節" },
47
+ { market: "shanghai", date: "2026-05-04", name: "労働節" },
48
+ { market: "shanghai", date: "2026-05-05", name: "労働節" },
49
+ // 端午節
50
+ { market: "shanghai", date: "2026-06-19", name: "端午節" },
51
+ // 中秋節
52
+ { market: "shanghai", date: "2026-09-25", name: "中秋節" },
53
+ // 国慶節(10/1-10/8 連休)
54
+ { market: "shanghai", date: "2026-10-01", name: "国慶節" },
55
+ { market: "shanghai", date: "2026-10-02", name: "国慶節" },
56
+ { market: "shanghai", date: "2026-10-05", name: "国慶節" },
57
+ { market: "shanghai", date: "2026-10-06", name: "国慶節" },
58
+ { market: "shanghai", date: "2026-10-07", name: "国慶節" },
59
+ { market: "shanghai", date: "2026-10-08", name: "国慶節" },
60
+ // ============ ロンドン (LSE) 2026 ============
61
+ // UK Bank Holidays(England & Wales)。Boxing Day 等の振替も含む
62
+ { market: "london", date: "2026-01-01", name: "New Year's Day" },
63
+ { market: "london", date: "2026-04-03", name: "Good Friday" },
64
+ { market: "london", date: "2026-04-06", name: "Easter Monday" },
65
+ { market: "london", date: "2026-05-04", name: "Early May Bank Holiday" },
66
+ { market: "london", date: "2026-05-25", name: "Spring Bank Holiday" },
67
+ { market: "london", date: "2026-08-31", name: "Summer Bank Holiday" },
68
+ { market: "london", date: "2026-12-25", name: "Christmas Day" },
69
+ { market: "london", date: "2026-12-28", name: "Boxing Day(振替)" },
70
+ // ============ NY (NYSE) 2026 ============
71
+ // US Federal Holidays(observed)。Independence Day は 7/4 が土曜のため 7/3 (Fri) に振替
72
+ { market: "ny", date: "2026-01-01", name: "New Year's Day" },
73
+ { market: "ny", date: "2026-01-19", name: "Martin Luther King Jr. Day" },
74
+ { market: "ny", date: "2026-02-16", name: "Presidents' Day" },
75
+ { market: "ny", date: "2026-04-03", name: "Good Friday" },
76
+ { market: "ny", date: "2026-05-25", name: "Memorial Day" },
77
+ { market: "ny", date: "2026-06-19", name: "Juneteenth" },
78
+ { market: "ny", date: "2026-07-03", name: "Independence Day(振替)" },
79
+ { market: "ny", date: "2026-09-07", name: "Labor Day" },
80
+ { market: "ny", date: "2026-11-26", name: "Thanksgiving Day" },
81
+ { market: "ny", date: "2026-12-25", name: "Christmas Day" },
82
+ ];
83
+ // 高速ルックアップ用の Map: "tokyo|2026-05-06" → MarketHoliday
84
+ const HOLIDAY_INDEX = new Map(MARKET_HOLIDAYS.map((h) => [`${h.market}|${h.date}`, h]));
85
+ /** 指定市場の指定日付(JST)が休場かどうか */
86
+ export function getMarketHoliday(market, dateKey) {
87
+ return HOLIDAY_INDEX.get(`${market}|${dateKey}`);
88
+ }
89
+ /** Date を JST の YYYY-MM-DD 文字列に変換(economic-events.ts と同じロジック) */
90
+ export function jstDateKey(date = new Date()) {
91
+ const jst = new Date(date.getTime() + 9 * 3600 * 1000);
92
+ const y = jst.getUTCFullYear();
93
+ const m = String(jst.getUTCMonth() + 1).padStart(2, "0");
94
+ const d = String(jst.getUTCDate()).padStart(2, "0");
95
+ return `${y}-${m}-${d}`;
96
+ }
97
+ //# sourceMappingURL=market-holidays.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"market-holidays.js","sourceRoot":"","sources":["../../src/lib/market-holidays.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
+ export type MarketId = "tokyo" | "london" | "ny" | "shanghai";
1
2
  export type MarketSession = {
2
- id: "tokyo" | "london" | "ny" | "shanghai";
3
+ id: MarketId;
3
4
  label: string;
4
5
  openHourJst: number;
5
6
  closeHourJst: number;
@@ -7,8 +8,9 @@ export type MarketSession = {
7
8
  export declare const MARKET_SESSIONS: readonly MarketSession[];
8
9
  export type SessionStatus = {
9
10
  session: MarketSession;
10
- state: "open" | "closed" | "pre-open";
11
+ state: "open" | "closed" | "pre-open" | "holiday";
11
12
  hoursUntilOpen?: number;
12
13
  hoursUntilClose?: number;
14
+ holidayName?: string;
13
15
  };
14
16
  export declare function getSessionStatuses(now?: Date): SessionStatus[];
@@ -1,6 +1,8 @@
1
1
  // 主要市場の取引時間帯を JST 基準で判定する純関数。
2
2
  // 東京・ロンドン・ニューヨーク・上海の取引時間を JST 換算してオープン/クローズ判定する。
3
- // 祝日や臨時休場までは追わない(運営許容範囲)。
3
+ // 祝日対応は market-holidays.ts に手動キュレーションされたデータを参照(v0.5.0〜)。
4
+ // サマータイム移行や臨時休場までは追わない。
5
+ import { getMarketHoliday, jstDateKey } from "./market-holidays.js";
4
6
  // 通常取引時間(JST、サマータイム未考慮)。
5
7
  // 東京: 9:00-15:30 JST
6
8
  // 上海: 10:30-16:00 JST
@@ -13,7 +15,7 @@ export const MARKET_SESSIONS = [
13
15
  { id: "ny", label: "NY", openHourJst: 22.5, closeHourJst: 29 },
14
16
  ];
15
17
  // JST 時刻(now)から各市場のステータスを判定。
16
- // open: 取引中、pre-open: 30 分以内にオープン、closed: それ以外。
18
+ // open: 取引中、pre-open: 30 分以内にオープン、holiday: 祝日休場、closed: それ以外。
17
19
  export function getSessionStatuses(now = new Date()) {
18
20
  const jstMs = now.getTime() + 9 * 3600 * 1000;
19
21
  const jst = new Date(jstMs);
@@ -27,6 +29,11 @@ export function getSessionStatuses(now = new Date()) {
27
29
  // 週末は基本クローズ(厳密には金曜深夜の NY セッション越境はあるが省略)
28
30
  return { session: s, state: "closed" };
29
31
  }
32
+ // 祝日チェック(NY/London は翌 JST 日早朝までセッションが続くため前日も参照)
33
+ const holiday = lookupHolidayForSession(s.id, now);
34
+ if (holiday) {
35
+ return { session: s, state: "holiday", holidayName: holiday.name };
36
+ }
30
37
  // 取引時間判定(hour と hour+24 の両方をチェック)
31
38
  let state = "closed";
32
39
  let hoursUntilOpen;
@@ -47,4 +54,28 @@ export function getSessionStatuses(now = new Date()) {
47
54
  return { session: s, state, hoursUntilOpen, hoursUntilClose };
48
55
  });
49
56
  }
57
+ // 指定市場・時刻の祝日該当性を判定。
58
+ // NY/London は取引時間が翌 JST 日にまたがるため、JST 早朝 (NY: 0-5h, London: 0-2h) は前日も参照する。
59
+ function lookupHolidayForSession(market, now) {
60
+ const todayKey = jstDateKey(now);
61
+ const todayHoliday = getMarketHoliday(market, todayKey);
62
+ if (todayHoliday)
63
+ return todayHoliday;
64
+ if (market === "ny" || market === "london") {
65
+ const jst = new Date(now.getTime() + 9 * 3600 * 1000);
66
+ const hour = jst.getUTCHours();
67
+ // NY: 22:30-29:00 JST → 翌 JST 0-5 時は前日扱い
68
+ // London: 17:00-25:30 JST → 翌 JST 0-2 時は前日扱い
69
+ const lookBackHourLimit = market === "ny" ? 5 : 2;
70
+ if (hour < lookBackHourLimit) {
71
+ const yesterday = new Date(jst.getTime() - 24 * 3600 * 1000);
72
+ const y = yesterday.getUTCFullYear();
73
+ const m = String(yesterday.getUTCMonth() + 1).padStart(2, "0");
74
+ const d = String(yesterday.getUTCDate()).padStart(2, "0");
75
+ const yesterdayKey = `${y}-${m}-${d}`;
76
+ return getMarketHoliday(market, yesterdayKey);
77
+ }
78
+ }
79
+ return undefined;
80
+ }
50
81
  //# sourceMappingURL=sessions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../src/lib/sessions.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,iDAAiD;AACjD,0BAA0B;AAU1B,yBAAyB;AACzB,qBAAqB;AACrB,sBAAsB;AACtB,qDAAqD;AACrD,oDAAoD;AACpD,MAAM,CAAC,MAAM,eAAe,GAA6B;IACvD,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE;IAChE,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE;IACpE,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;IACpE,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE;CAC/D,CAAC;AAWF,6BAA6B;AAC7B,gDAAgD;AAChD,MAAM,UAAU,kBAAkB,CAAC,MAAY,IAAI,IAAI,EAAE;IACvD,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;IAC9C,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5B,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,oBAAoB;IACvD,MAAM,SAAS,GAAG,SAAS,KAAK,CAAC,IAAI,SAAS,KAAK,CAAC,CAAC;IACrD,wCAAwC;IACxC,6CAA6C;IAC7C,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC;IAC1D,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAiB,EAAE;QAC9C,IAAI,SAAS,EAAE,CAAC;YACd,wCAAwC;YACxC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;QACzC,CAAC;QACD,kCAAkC;QAClC,IAAI,KAAK,GAA2B,QAAQ,CAAC;QAC7C,IAAI,cAAkC,CAAC;QACvC,IAAI,eAAmC,CAAC;QACxC,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QACrC,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,IAAI,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC;gBAC7C,KAAK,GAAG,MAAM,CAAC;gBACf,eAAe,GAAG,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC;gBACrC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;YAChD,CAAC;YACD,MAAM,KAAK,GAAG,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC;YAChC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC;gBAC9B,KAAK,GAAG,UAAU,CAAC;gBACnB,cAAc,GAAG,KAAK,CAAC;YACzB,CAAC;QACH,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC;IAChE,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../src/lib/sessions.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,12 @@
1
1
  // 主要市場(東京・上海・ロンドン・NY)の現在の取引時間ステータスを返す。
2
- // AI が「今は NY が動いている時間」「東京はもうすぐオープン」のような時間軸の context を取れる。
2
+ // AI が「今は NY が動いている時間」「東京はもうすぐオープン」「今日は祝日休場」のような時間軸の context を取れる。
3
+ import { MARKET_HOLIDAYS_LAST_UPDATED } from "../lib/market-holidays.js";
3
4
  import { getSessionStatuses } from "../lib/sessions.js";
4
5
  import { jsonReply } from "./types.js";
5
6
  export const getMarketSessionsTool = {
6
7
  name: "get_market_sessions",
7
8
  title: "主要市場の取引時間ステータス",
8
- description: "東京(9:00-15:30 JST)/ 上海(10:30-16:00 JST)/ ロンドン(17:00-25:30 JST)/ NY(22:30-29:00 JST)の現在の取引時間ステータス(open / pre-open / closed)を返します。土日は全て closed。サマータイムや臨時休場は未対応の概算。",
9
+ description: "東京(9:00-15:30 JST)/ 上海(10:30-16:00 JST)/ ロンドン(17:00-25:30 JST)/ NY(22:30-29:00 JST)の現在の取引時間ステータス(open / pre-open / closed / holiday)を返します。土日は全て closed、祝日は holiday(holidayName 付)。各市場の祝日カレンダーは手動キュレーション(米英祝日・日本国民の祝日 + TSE 規程・中国の春節等の長期休場)。サマータイム移行や臨時休場は未対応の概算。",
9
10
  inputSchema: {},
10
11
  handler: async () => {
11
12
  const statuses = getSessionStatuses();
@@ -19,8 +20,10 @@ export const getMarketSessionsTool = {
19
20
  closeHourJst: s.session.closeHourJst,
20
21
  hoursUntilOpen: s.hoursUntilOpen,
21
22
  hoursUntilClose: s.hoursUntilClose,
23
+ holidayName: s.holidayName,
22
24
  })),
23
- note: "通常営業時間ベースの概算。祝日・臨時休場は反映されません。",
25
+ holidaysLastUpdated: MARKET_HOLIDAYS_LAST_UPDATED,
26
+ note: "通常営業時間ベースの概算 + 手動キュレーションの祝日休場。サマータイム移行や臨時休場は未対応。",
24
27
  });
25
28
  },
26
29
  };
@@ -1 +1 @@
1
- {"version":3,"file":"get-market-sessions.js","sourceRoot":"","sources":["../../src/tools/get-market-sessions.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,0DAA0D;AAE1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAqB,MAAM,YAAY,CAAC;AAE1D,MAAM,CAAC,MAAM,qBAAqB,GAAiB;IACjD,IAAI,EAAE,qBAAqB;IAC3B,KAAK,EAAE,gBAAgB;IACvB,WAAW,EACT,kKAAkK;IACpK,WAAW,EAAE,EAAE;IACf,OAAO,EAAE,KAAK,IAAI,EAAE;QAClB,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;QACtC,OAAO,SAAS,CAAC;YACf,GAAG,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YAC7B,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC7B,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE;gBAChB,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK;gBACtB,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW;gBAClC,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY;gBACpC,cAAc,EAAE,CAAC,CAAC,cAAc;gBAChC,eAAe,EAAE,CAAC,CAAC,eAAe;aACnC,CAAC,CAAC;YACH,IAAI,EAAE,+BAA+B;SACtC,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"get-market-sessions.js","sourceRoot":"","sources":["../../src/tools/get-market-sessions.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,mEAAmE;AAEnE,OAAO,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAqB,MAAM,YAAY,CAAC;AAE1D,MAAM,CAAC,MAAM,qBAAqB,GAAiB;IACjD,IAAI,EAAE,qBAAqB;IAC3B,KAAK,EAAE,gBAAgB;IACvB,WAAW,EACT,kQAAkQ;IACpQ,WAAW,EAAE,EAAE;IACf,OAAO,EAAE,KAAK,IAAI,EAAE;QAClB,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;QACtC,OAAO,SAAS,CAAC;YACf,GAAG,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YAC7B,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC7B,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE;gBAChB,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK;gBACtB,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW;gBAClC,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY;gBACpC,cAAc,EAAE,CAAC,CAAC,cAAc;gBAChC,eAAe,EAAE,CAAC,CAAC,eAAe;gBAClC,WAAW,EAAE,CAAC,CAAC,WAAW;aAC3B,CAAC,CAAC;YACH,mBAAmB,EAAE,4BAA4B;YACjD,IAAI,EAAE,kDAAkD;SACzD,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lit-forge-mcp",
3
- "version": "0.4.1",
3
+ "version": "0.5.0",
4
4
  "mcpName": "io.github.noblabs/lit-forge-mcp",
5
5
  "description": "MCP server for personal asset planning + daily market check: NISA / iDeCo simulation, retirement planning, market snapshot (USD/JPY, Nikkei, S&P 500, etc.), economic event calendar.",
6
6
  "type": "module",