lit-forge-mcp 0.13.0 → 0.14.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 +1 -1
- package/dist/lib/__tests__/pfei-parser.test.d.ts +1 -0
- package/dist/lib/__tests__/pfei-parser.test.js +80 -0
- package/dist/lib/__tests__/pfei-parser.test.js.map +1 -0
- package/dist/lib/economic-release-pulse/adapters/pfei.d.ts +3 -0
- package/dist/lib/economic-release-pulse/adapters/pfei.js +50 -0
- package/dist/lib/economic-release-pulse/adapters/pfei.js.map +1 -0
- package/dist/lib/economic-release-pulse/pulse.js +3 -1
- package/dist/lib/economic-release-pulse/pulse.js.map +1 -1
- package/dist/lib/pfei-parser.d.ts +19 -0
- package/dist/lib/pfei-parser.js +108 -0
- package/dist/lib/pfei-parser.js.map +1 -0
- package/dist/lib/pfei-schedule-data.d.ts +2 -0
- package/dist/lib/pfei-schedule-data.js +185 -0
- package/dist/lib/pfei-schedule-data.js.map +1 -0
- package/dist/lib/us-macro-latest.d.ts +1 -1
- package/dist/lib/us-macro-latest.js +18 -0
- package/dist/lib/us-macro-latest.js.map +1 -1
- package/dist/tools/get-economic-release-pulse.js +10 -7
- package/dist/tools/get-economic-release-pulse.js.map +1 -1
- package/dist/tools/get-us-macro-latest.js +9 -6
- package/dist/tools/get-us-macro-latest.js.map +1 -1
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -52,7 +52,7 @@ Claude Desktop / Claude Code / Cursor など、MCP に対応した任意の AI
|
|
|
52
52
|
|
|
53
53
|
| ツール名 | 説明 |
|
|
54
54
|
|---|---|
|
|
55
|
-
| `get_us_macro_latest` | **米マクロ三大指標**(雇用統計・CPI・PPI)+
|
|
55
|
+
| `get_us_macro_latest` | **米マクロ三大指標**(雇用統計・CPI・PPI)+ コア CPI・コア PPI(食料・エネルギー除く)+ 失業率 + 平均時給の最新発表値と前月比・前年同月比を BLS Public Data API v2 から取得(API key 不要・無認証、7 系列を 1 リクエスト)。`get_economic_release_pulse` が答える「次にいつ発表されるか」に対し、本ツールは「今の数字はいくつか」を答える |
|
|
56
56
|
|
|
57
57
|
> ⚠ **HTTP 通信について**: 市況・分析・個別株系ツールは **Yahoo Finance API(query1.finance.yahoo.com / query2.finance.yahoo.com)** へ HTTPS リクエストを送信します。実行 PC のネットワークから外部に出る通信が発生する点にご留意ください。データは約 1 時間遅れの参考値で、**投資助言ではなく情報集約**として提供しています。
|
|
58
58
|
>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
// PFEI パーサーの純関数テスト。
|
|
2
|
+
// 実 PDF を pdftotext -layout で抽出した実テキスト断片を fixture として使用。
|
|
3
|
+
import { describe, it, expect } from "vitest";
|
|
4
|
+
import { readFileSync } from "node:fs";
|
|
5
|
+
import { join, dirname } from "node:path";
|
|
6
|
+
import { fileURLToPath } from "node:url";
|
|
7
|
+
import { parsePfei } from "../pfei-parser.js";
|
|
8
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
9
|
+
const FIXTURE = readFileSync(join(__dirname, "fixtures", "pfei-2026-bls-section.txt"), "utf-8");
|
|
10
|
+
const SOURCE_URL = "https://www.whitehouse.gov/wp-content/uploads/2025/09/pfei_schedule_release_dates_cy2026.pdf";
|
|
11
|
+
describe("parsePfei (2026 BLS fixture)", () => {
|
|
12
|
+
const result = parsePfei(FIXTURE, SOURCE_URL);
|
|
13
|
+
it("PDF タイトルから年を抽出する", () => {
|
|
14
|
+
expect(result.year).toBe(2026);
|
|
15
|
+
});
|
|
16
|
+
it("source / sourceUrl を保持する", () => {
|
|
17
|
+
expect(result.source).toMatch(/PFEI/);
|
|
18
|
+
expect(result.sourceUrl).toBe(SOURCE_URL);
|
|
19
|
+
});
|
|
20
|
+
it("BLS 三大指標を全て抽出する", () => {
|
|
21
|
+
const keys = result.indicators.map((i) => i.key).sort();
|
|
22
|
+
expect(keys).toEqual(["cpi", "employment", "ppi"]);
|
|
23
|
+
});
|
|
24
|
+
it("各指標 12 ヶ月分のリリース日を返す", () => {
|
|
25
|
+
for (const ind of result.indicators) {
|
|
26
|
+
expect(ind.releases).toHaveLength(12);
|
|
27
|
+
const months = ind.releases.map((r) => r.month);
|
|
28
|
+
expect(months).toEqual([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]);
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
it("雇用統計の発表日を正しく抽出する (PFEI 2026 原本)", () => {
|
|
32
|
+
const emp = result.indicators.find((i) => i.key === "employment");
|
|
33
|
+
expect(emp).toBeDefined();
|
|
34
|
+
// PDF 原本: 9, 6, 6, 3, 8, 5, 2, 7, 4, 2, 6, 4
|
|
35
|
+
expect(emp.releases.map((r) => r.day)).toEqual([
|
|
36
|
+
9, 6, 6, 3, 8, 5, 2, 7, 4, 2, 6, 4,
|
|
37
|
+
]);
|
|
38
|
+
});
|
|
39
|
+
it("CPI の発表日を正しく抽出する (PFEI 2026 原本)", () => {
|
|
40
|
+
const cpi = result.indicators.find((i) => i.key === "cpi");
|
|
41
|
+
expect(cpi).toBeDefined();
|
|
42
|
+
// PDF 原本: 13, 11, 11, 10, 12, 10, 14, 12, 11, 14, 10, 10
|
|
43
|
+
expect(cpi.releases.map((r) => r.day)).toEqual([
|
|
44
|
+
13, 11, 11, 10, 12, 10, 14, 12, 11, 14, 10, 10,
|
|
45
|
+
]);
|
|
46
|
+
});
|
|
47
|
+
it("PPI の発表日を正しく抽出する (PFEI 2026 原本)", () => {
|
|
48
|
+
const ppi = result.indicators.find((i) => i.key === "ppi");
|
|
49
|
+
expect(ppi).toBeDefined();
|
|
50
|
+
// PDF 原本: 14, 12, 12, 14, 13, 11, 15, 13, 10, 15, 13, 15
|
|
51
|
+
expect(ppi.releases.map((r) => r.day)).toEqual([
|
|
52
|
+
14, 12, 12, 14, 13, 11, 15, 13, 10, 15, 13, 15,
|
|
53
|
+
]);
|
|
54
|
+
});
|
|
55
|
+
it("全指標が BLS / 08:30 ET / previous month 属性を持つ", () => {
|
|
56
|
+
for (const ind of result.indicators) {
|
|
57
|
+
expect(ind.agency).toBe("BLS");
|
|
58
|
+
expect(ind.timeEt).toBe("08:30");
|
|
59
|
+
expect(ind.dataDescription).toMatch(/previous month/);
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
it("妥当な日 (1-31) のみ含む", () => {
|
|
63
|
+
for (const ind of result.indicators) {
|
|
64
|
+
for (const r of ind.releases) {
|
|
65
|
+
expect(r.day).toBeGreaterThanOrEqual(1);
|
|
66
|
+
expect(r.day).toBeLessThanOrEqual(31);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
describe("parsePfei (エラーパス)", () => {
|
|
72
|
+
it("年がないテキストは throw", () => {
|
|
73
|
+
expect(() => parsePfei("no title here", SOURCE_URL)).toThrow(/year/);
|
|
74
|
+
});
|
|
75
|
+
it("BLS セクションがないテキストは throw", () => {
|
|
76
|
+
const text = "PRINCIPAL FEDERAL ECONOMIC INDICATORS FOR 2026\n(no BLS section)";
|
|
77
|
+
expect(() => parsePfei(text, SOURCE_URL)).toThrow(/BLS/);
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
//# sourceMappingURL=pfei-parser.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pfei-parser.test.js","sourceRoot":"","sources":["../../../src/lib/__tests__/pfei-parser.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
// PFEI アダプタ(v0.14.0 新設)。
|
|
2
|
+
//
|
|
3
|
+
// ホワイトハウス (OMB/OIRA) が年初に公開する Principal Federal Economic
|
|
4
|
+
// Indicators の Schedule PDF を一次ソースに、BLS 三大指標
|
|
5
|
+
// (雇用統計・CPI・PPI) の年間発表予定を ReleaseEvent[] に展開する。
|
|
6
|
+
//
|
|
7
|
+
// 設計背景:
|
|
8
|
+
// - BLS 公式の HTML schedule と RSS は Akamai bot 管理で 403 を返すため
|
|
9
|
+
// 直接の自動取得は不可能([[feedback_lit_forge_mcp_bls_access_constraint]])。
|
|
10
|
+
// - ホワイトハウスの PFEI PDF は bot ブロックなしで取得でき、米連邦経済指標の
|
|
11
|
+
// 全主要発表予定を一括カバーする。
|
|
12
|
+
// - PDF パースは scripts/update-pfei-schedule.mjs が運営マシン側で実行し、
|
|
13
|
+
// 結果を src/lib/pfei-schedule-data.ts に TS として焼き込む。
|
|
14
|
+
// MCP サーバはランタイムで PDF を取りに行かないため bot ブロックの影響を受けない。
|
|
15
|
+
// - 年初 (1 月) や PFEI 改訂時に再実行して上書きする運用。
|
|
16
|
+
//
|
|
17
|
+
// 他アダプタ (BEA / NY 連銀 / FRB) と違い HTTP fetch を行わず、ビルド時に
|
|
18
|
+
// 焼き込まれた静的データを返すだけなのでキャッシュ不要・常に成功扱い。
|
|
19
|
+
import { etToJst } from "../util.js";
|
|
20
|
+
import { PFEI_SCHEDULES } from "../../pfei-schedule-data.js";
|
|
21
|
+
function ymd(year, month, day) {
|
|
22
|
+
return `${year}-${String(month).padStart(2, "0")}-${String(day).padStart(2, "0")}`;
|
|
23
|
+
}
|
|
24
|
+
// PFEI スケジュールデータを ReleaseEvent[] に展開する純関数(テスト用 export)。
|
|
25
|
+
export function pfeiToReleaseEvents() {
|
|
26
|
+
const out = [];
|
|
27
|
+
for (const schedule of PFEI_SCHEDULES) {
|
|
28
|
+
for (const ind of schedule.indicators) {
|
|
29
|
+
for (const r of ind.releases) {
|
|
30
|
+
const ymdEt = ymd(schedule.year, r.month, r.day);
|
|
31
|
+
const { date, time } = etToJst(ymdEt, ind.timeEt);
|
|
32
|
+
out.push({
|
|
33
|
+
date,
|
|
34
|
+
time,
|
|
35
|
+
country: "US",
|
|
36
|
+
name: ind.name,
|
|
37
|
+
source: "BLS (via PFEI)",
|
|
38
|
+
sourceUrl: schedule.sourceUrl,
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return out;
|
|
44
|
+
}
|
|
45
|
+
export const pfeiAdapter = {
|
|
46
|
+
key: "pfei",
|
|
47
|
+
label: "BLS(PFEI 公式スケジュール: 雇用統計・CPI・PPI)",
|
|
48
|
+
fetchEvents: async () => pfeiToReleaseEvents(),
|
|
49
|
+
};
|
|
50
|
+
//# sourceMappingURL=pfei.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pfei.js","sourceRoot":"","sources":["../../../../src/lib/economic-release-pulse/adapters/pfei.ts"],"names":[],"mappings":"AAAA,yBAAyB;AACzB,EAAE;AACF,yDAAyD;AACzD,6CAA6C;AAC7C,gDAAgD;AAChD,EAAE;AACF,QAAQ;AACR,6DAA6D;AAC7D,qEAAqE;AACrE,mDAAmD;AACnD,uBAAuB;AACvB,6DAA6D;AAC7D,sDAAsD;AACtD,sDAAsD;AACtD,wCAAwC;AACxC,EAAE;AACF,sDAAsD;AACtD,qCAAqC;AAGrC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D,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,wDAAwD;AACxD,MAAM,UAAU,mBAAmB;IACjC,MAAM,GAAG,GAAmB,EAAE,CAAC;IAC/B,KAAK,MAAM,QAAQ,IAAI,cAAc,EAAE,CAAC;QACtC,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;YACtC,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;gBAC7B,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;gBACjD,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;gBAClD,GAAG,CAAC,IAAI,CAAC;oBACP,IAAI;oBACJ,IAAI;oBACJ,OAAO,EAAE,IAAI;oBACb,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,MAAM,EAAE,gBAAgB;oBACxB,SAAS,EAAE,QAAQ,CAAC,SAAS;iBAC9B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAmB;IACzC,GAAG,EAAE,MAAM;IACX,KAAK,EAAE,kCAAkC;IACzC,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC,mBAAmB,EAAE;CAC/C,CAAC"}
|
|
@@ -7,14 +7,16 @@ import { caoAdapter } from "./adapters/cao.js";
|
|
|
7
7
|
import { bojAdapter } from "./adapters/boj.js";
|
|
8
8
|
import { nyfedAdapter } from "./adapters/nyfed.js";
|
|
9
9
|
import { frbAdapter } from "./adapters/frb.js";
|
|
10
|
+
import { pfeiAdapter } from "./adapters/pfei.js";
|
|
10
11
|
// 登録アダプタ。新ソース追加時はここに 1 行足す。
|
|
11
|
-
// 次サイクル候補:
|
|
12
|
+
// 次サイクル候補: 総務省統計局(日 CPI)、FOMC。
|
|
12
13
|
const ADAPTERS = [
|
|
13
14
|
beaAdapter,
|
|
14
15
|
caoAdapter,
|
|
15
16
|
bojAdapter,
|
|
16
17
|
nyfedAdapter,
|
|
17
18
|
frbAdapter,
|
|
19
|
+
pfeiAdapter,
|
|
18
20
|
];
|
|
19
21
|
// date(YYYY-MM-DD) が [from, to] の範囲内か(文字列比較で OK)。
|
|
20
22
|
function inRange(date, from, to) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pulse.js","sourceRoot":"","sources":["../../../src/lib/economic-release-pulse/pulse.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,oDAAoD;AACpD,4CAA4C;AAQ5C,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"pulse.js","sourceRoot":"","sources":["../../../src/lib/economic-release-pulse/pulse.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export type PfeiIndicator = {
|
|
2
|
+
key: "employment" | "cpi" | "ppi";
|
|
3
|
+
name: string;
|
|
4
|
+
agency: "BLS";
|
|
5
|
+
timeEt: string;
|
|
6
|
+
dataDescription: string;
|
|
7
|
+
releases: Array<{
|
|
8
|
+
month: number;
|
|
9
|
+
day: number;
|
|
10
|
+
}>;
|
|
11
|
+
};
|
|
12
|
+
export type PfeiSchedule = {
|
|
13
|
+
year: number;
|
|
14
|
+
source: string;
|
|
15
|
+
sourceUrl: string;
|
|
16
|
+
parsedAt: string;
|
|
17
|
+
indicators: PfeiIndicator[];
|
|
18
|
+
};
|
|
19
|
+
export declare function parsePfei(text: string, sourceUrl: string): PfeiSchedule;
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
// PFEI (Principal Federal Economic Indicators) スケジュール PDF のパーサー(v0.14.0 新設)。
|
|
2
|
+
//
|
|
3
|
+
// 背景: BLS は HTML schedule / RSS への bot アクセスを 403 で拒否しているため
|
|
4
|
+
// ([[feedback_lit_forge_mcp_bls_access_constraint]])、米マクロ三大指標
|
|
5
|
+
// (雇用統計・CPI・PPI) の発表予定を自動取得する道が長らく無かった。
|
|
6
|
+
// ホワイトハウス (OMB/OIRA) が年初に公開する PFEI スケジュール PDF は
|
|
7
|
+
// bot ブロックなしで取得でき、BLS/BEA/Census の全主要指標を一括カバーする。
|
|
8
|
+
//
|
|
9
|
+
// 本モジュールは pdftotext -layout で抽出したテキストを入力に取り、
|
|
10
|
+
// BLS 三大指標の年間スケジュールを構造化 JSON に変換する純関数を提供する。
|
|
11
|
+
// 実 PDF の取得と pdftotext 実行はテスト容易性のためここでは行わない
|
|
12
|
+
// (運用スクリプト scripts/update-pfei-schedule.mjs が責任を持つ)。
|
|
13
|
+
const INDICATORS = [
|
|
14
|
+
{
|
|
15
|
+
key: "employment",
|
|
16
|
+
label: "The Employment Situation",
|
|
17
|
+
name: "米 雇用統計 (Employment Situation)",
|
|
18
|
+
agency: "BLS",
|
|
19
|
+
timeEt: "08:30",
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
key: "ppi",
|
|
23
|
+
label: "Producer Price Indexes",
|
|
24
|
+
name: "米 PPI (Producer Price Indexes)",
|
|
25
|
+
agency: "BLS",
|
|
26
|
+
timeEt: "08:30",
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
key: "cpi",
|
|
30
|
+
label: "Consumer Price Index",
|
|
31
|
+
name: "米 CPI (Consumer Price Index)",
|
|
32
|
+
agency: "BLS",
|
|
33
|
+
timeEt: "08:30",
|
|
34
|
+
},
|
|
35
|
+
];
|
|
36
|
+
// PFEI PDF を pdftotext -layout で抽出した text を入力に取り、
|
|
37
|
+
// BLS 三大指標の年間スケジュールを返す。
|
|
38
|
+
export function parsePfei(text, sourceUrl) {
|
|
39
|
+
// 年は PDF タイトル "PRINCIPAL FEDERAL ECONOMIC INDICATORS FOR YYYY" から
|
|
40
|
+
const yearMatch = text.match(/PRINCIPAL FEDERAL ECONOMIC INDICATORS FOR (\d{4})/);
|
|
41
|
+
if (!yearMatch) {
|
|
42
|
+
throw new Error("year not found in PDF title");
|
|
43
|
+
}
|
|
44
|
+
const year = Number(yearMatch[1]);
|
|
45
|
+
// BLS セクションを切り出す: "BUREAU OF LABOR STATISTICS" から次の主要省庁/部局ヘッダまで
|
|
46
|
+
const blsStart = text.indexOf("BUREAU OF LABOR STATISTICS");
|
|
47
|
+
if (blsStart < 0) {
|
|
48
|
+
throw new Error("BLS section not found in PDF");
|
|
49
|
+
}
|
|
50
|
+
// 次の上位ヘッダ候補(経験的に PFEI に出る他部局名)
|
|
51
|
+
const SECTION_BREAK = /\b(BUREAU OF ECONOMIC ANALYSIS|FEDERAL RESERVE|CENSUS BUREAU|OFFICE OF MANAGEMENT|DEPARTMENT OF TREASURY|ENERGY INFORMATION|NATIONAL AGRICULTURAL)\b/;
|
|
52
|
+
// BLS ヘッダ自体にマッチしないよう少し進めてから検索
|
|
53
|
+
const tail = text.slice(blsStart + "BUREAU OF LABOR STATISTICS".length);
|
|
54
|
+
const breakRel = tail.search(SECTION_BREAK);
|
|
55
|
+
const blsBlock = breakRel >= 0
|
|
56
|
+
? text.slice(blsStart, blsStart + "BUREAU OF LABOR STATISTICS".length + breakRel)
|
|
57
|
+
: text.slice(blsStart);
|
|
58
|
+
// 各指標ラベルの出現位置を全部拾い、文書順に並べ替えて区間切り出しの基準にする
|
|
59
|
+
const positions = INDICATORS.map((ind) => ({
|
|
60
|
+
ind,
|
|
61
|
+
pos: blsBlock.indexOf(ind.label),
|
|
62
|
+
}))
|
|
63
|
+
.filter((p) => p.pos >= 0)
|
|
64
|
+
.sort((a, b) => a.pos - b.pos);
|
|
65
|
+
if (positions.length === 0) {
|
|
66
|
+
throw new Error("no BLS indicators found in PDF");
|
|
67
|
+
}
|
|
68
|
+
const indicators = [];
|
|
69
|
+
for (let i = 0; i < positions.length; i++) {
|
|
70
|
+
const { ind, pos } = positions[i];
|
|
71
|
+
// 次の指標ラベルまでをこの指標のセグメントとする
|
|
72
|
+
const nextPos = i + 1 < positions.length ? positions[i + 1].pos : blsBlock.length;
|
|
73
|
+
const segment = blsBlock.slice(pos, nextPos);
|
|
74
|
+
// セグメント内の 1-2 桁整数を全部抽出("--" や 4 桁年は除外)
|
|
75
|
+
// 「数字に隣接する数字でない」境界条件で 1-2 桁の整数のみ拾う
|
|
76
|
+
const nums = [...segment.matchAll(/(?<![\d-])(\d{1,2})(?![\d])/g)].map((m) => Number(m[1]));
|
|
77
|
+
if (nums.length < 12) {
|
|
78
|
+
throw new Error(`indicator "${ind.name}": only ${nums.length} numbers found in segment (expected >= 12)`);
|
|
79
|
+
}
|
|
80
|
+
// 先頭 12 個を月別 (1-12) の発表日として採用。
|
|
81
|
+
// セグメント終端付近には次指標 (Real Earnings / Productivity 等) の数字が
|
|
82
|
+
// 混じるため、末尾 12 個ではなく先頭 12 個を取る。INDICATORS のラベル
|
|
83
|
+
// 文字列には数字を含まないので、ラベル直後にあるはずの月次日付が確実に拾える。
|
|
84
|
+
const days = nums.slice(0, 12);
|
|
85
|
+
// 妥当性チェック: 全て 1-31 の範囲
|
|
86
|
+
for (const d of days) {
|
|
87
|
+
if (d < 1 || d > 31) {
|
|
88
|
+
throw new Error(`indicator "${ind.name}": invalid day ${d} (must be 1-31)`);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
indicators.push({
|
|
92
|
+
key: ind.key,
|
|
93
|
+
name: ind.name,
|
|
94
|
+
agency: ind.agency,
|
|
95
|
+
timeEt: ind.timeEt,
|
|
96
|
+
dataDescription: "Data are for previous month",
|
|
97
|
+
releases: days.map((day, idx) => ({ month: idx + 1, day })),
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
return {
|
|
101
|
+
year,
|
|
102
|
+
source: "PFEI Schedule of Release Dates for Principal Federal Economic Indicators",
|
|
103
|
+
sourceUrl,
|
|
104
|
+
parsedAt: new Date().toISOString(),
|
|
105
|
+
indicators,
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=pfei-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pfei-parser.js","sourceRoot":"","sources":["../../src/lib/pfei-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
// PFEI スケジュールデータ。
|
|
2
|
+
// scripts/update-pfei-schedule.mjs により自動生成 (手動編集禁止)。
|
|
3
|
+
// 再生成: `npm run build && node scripts/update-pfei-schedule.mjs`
|
|
4
|
+
export const PFEI_SCHEDULES = [
|
|
5
|
+
{
|
|
6
|
+
"year": 2026,
|
|
7
|
+
"source": "PFEI Schedule of Release Dates for Principal Federal Economic Indicators",
|
|
8
|
+
"sourceUrl": "https://www.whitehouse.gov/wp-content/uploads/2025/09/pfei_schedule_release_dates_cy2026.pdf",
|
|
9
|
+
"parsedAt": "2026-05-16T04:25:09.632Z",
|
|
10
|
+
"indicators": [
|
|
11
|
+
{
|
|
12
|
+
"key": "employment",
|
|
13
|
+
"name": "米 雇用統計 (Employment Situation)",
|
|
14
|
+
"agency": "BLS",
|
|
15
|
+
"timeEt": "08:30",
|
|
16
|
+
"dataDescription": "Data are for previous month",
|
|
17
|
+
"releases": [
|
|
18
|
+
{
|
|
19
|
+
"month": 1,
|
|
20
|
+
"day": 9
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"month": 2,
|
|
24
|
+
"day": 6
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"month": 3,
|
|
28
|
+
"day": 6
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"month": 4,
|
|
32
|
+
"day": 3
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"month": 5,
|
|
36
|
+
"day": 8
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"month": 6,
|
|
40
|
+
"day": 5
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"month": 7,
|
|
44
|
+
"day": 2
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"month": 8,
|
|
48
|
+
"day": 7
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"month": 9,
|
|
52
|
+
"day": 4
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"month": 10,
|
|
56
|
+
"day": 2
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"month": 11,
|
|
60
|
+
"day": 6
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"month": 12,
|
|
64
|
+
"day": 4
|
|
65
|
+
}
|
|
66
|
+
]
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"key": "ppi",
|
|
70
|
+
"name": "米 PPI (Producer Price Indexes)",
|
|
71
|
+
"agency": "BLS",
|
|
72
|
+
"timeEt": "08:30",
|
|
73
|
+
"dataDescription": "Data are for previous month",
|
|
74
|
+
"releases": [
|
|
75
|
+
{
|
|
76
|
+
"month": 1,
|
|
77
|
+
"day": 14
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"month": 2,
|
|
81
|
+
"day": 12
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"month": 3,
|
|
85
|
+
"day": 12
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"month": 4,
|
|
89
|
+
"day": 14
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"month": 5,
|
|
93
|
+
"day": 13
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"month": 6,
|
|
97
|
+
"day": 11
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"month": 7,
|
|
101
|
+
"day": 15
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"month": 8,
|
|
105
|
+
"day": 13
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"month": 9,
|
|
109
|
+
"day": 10
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
"month": 10,
|
|
113
|
+
"day": 15
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"month": 11,
|
|
117
|
+
"day": 13
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"month": 12,
|
|
121
|
+
"day": 15
|
|
122
|
+
}
|
|
123
|
+
]
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
"key": "cpi",
|
|
127
|
+
"name": "米 CPI (Consumer Price Index)",
|
|
128
|
+
"agency": "BLS",
|
|
129
|
+
"timeEt": "08:30",
|
|
130
|
+
"dataDescription": "Data are for previous month",
|
|
131
|
+
"releases": [
|
|
132
|
+
{
|
|
133
|
+
"month": 1,
|
|
134
|
+
"day": 13
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
"month": 2,
|
|
138
|
+
"day": 11
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
"month": 3,
|
|
142
|
+
"day": 11
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
"month": 4,
|
|
146
|
+
"day": 10
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
"month": 5,
|
|
150
|
+
"day": 12
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
"month": 6,
|
|
154
|
+
"day": 10
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
"month": 7,
|
|
158
|
+
"day": 14
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
"month": 8,
|
|
162
|
+
"day": 12
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
"month": 9,
|
|
166
|
+
"day": 11
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
"month": 10,
|
|
170
|
+
"day": 14
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
"month": 11,
|
|
174
|
+
"day": 10
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
"month": 12,
|
|
178
|
+
"day": 10
|
|
179
|
+
}
|
|
180
|
+
]
|
|
181
|
+
}
|
|
182
|
+
]
|
|
183
|
+
}
|
|
184
|
+
];
|
|
185
|
+
//# sourceMappingURL=pfei-schedule-data.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pfei-schedule-data.js","sourceRoot":"","sources":["../../src/lib/pfei-schedule-data.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,12 +35,30 @@ const SERIES = [
|
|
|
35
35
|
displayName: "米 CPI(都市部全消費者、1982-84=100)",
|
|
36
36
|
unit: "index",
|
|
37
37
|
},
|
|
38
|
+
{
|
|
39
|
+
id: "CUUR0000SA0L1E",
|
|
40
|
+
key: "coreCpi",
|
|
41
|
+
displayName: "米 コア CPI(食料・エネルギー除く、1982-84=100)",
|
|
42
|
+
unit: "index",
|
|
43
|
+
},
|
|
38
44
|
{
|
|
39
45
|
id: "WPSFD4",
|
|
40
46
|
key: "ppi",
|
|
41
47
|
displayName: "米 PPI(最終需要、2009=100)",
|
|
42
48
|
unit: "index",
|
|
43
49
|
},
|
|
50
|
+
{
|
|
51
|
+
id: "WPSFD49104",
|
|
52
|
+
key: "corePpi",
|
|
53
|
+
displayName: "米 コア PPI(最終需要、食料・エネルギー除く、2009=100)",
|
|
54
|
+
unit: "index",
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
id: "CES0500000003",
|
|
58
|
+
key: "averageHourlyEarnings",
|
|
59
|
+
displayName: "米 平均時給(民間部門、季調済)",
|
|
60
|
+
unit: "USD/hour",
|
|
61
|
+
},
|
|
44
62
|
];
|
|
45
63
|
// "M01" -> 1。月レコード以外(M13=年間平均など)は null。
|
|
46
64
|
function periodToMonth(period) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"us-macro-latest.js","sourceRoot":"","sources":["../../src/lib/us-macro-latest.ts"],"names":[],"mappings":"AAAA,yBAAyB;AACzB,uDAAuD;AACvD,mDAAmD;AACnD,WAAW;AACX,EAAE;AACF,QAAQ;AACR,mEAAmE;AACnE,qCAAqC;AACrC,mDAAmD;AACnD,sDAAsD;AACtD,sDAAsD;AACtD,6EAA6E;AAC7E,EAAE;AACF,0DAA0D;AAC1D,qBAAqB;AAErB,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACpF,OAAO,EACL,gBAAgB,EAChB,8BAA8B,GAC/B,MAAM,kCAAkC,CAAC;AAE1C,MAAM,WAAW,GAAG,mDAAmD,CAAC;
|
|
1
|
+
{"version":3,"file":"us-macro-latest.js","sourceRoot":"","sources":["../../src/lib/us-macro-latest.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,19 @@
|
|
|
1
|
-
// 経済指標リリース予定 リアルタイム取得ツール(v0.11.0 新設、v0.12.0 で NY 連銀・FRB
|
|
1
|
+
// 経済指標リリース予定 リアルタイム取得ツール(v0.11.0 新設、v0.12.0 で NY 連銀・FRB 追加、v0.14.0 で BLS(PFEI 経由)追加)。
|
|
2
2
|
//
|
|
3
3
|
// 役割分担:
|
|
4
|
-
// - 本ツール:
|
|
4
|
+
// - 本ツール: 公式機関のリリースカレンダーを取得し、収録漏れの無い「網羅性」を担保
|
|
5
5
|
// - get_economic_events_today: 手動キュレーション(★★★ 中心・半年 1 回更新・verify 済み)
|
|
6
6
|
// 両者は補完関係。市況サマリーでは両方を併用するのが望ましい。
|
|
7
7
|
//
|
|
8
|
-
// 現行カバー範囲(v0.
|
|
8
|
+
// 現行カバー範囲(v0.14.0):
|
|
9
9
|
// - BEA(米): GDP / 個人所得・支出(PCE)/ 貿易収支 / 企業収益 — 公式 JSON
|
|
10
10
|
// - NY 連銀(米): 製造業景気指数(Empire State)— 公式 HTML
|
|
11
11
|
// - FRB(米): 鉱工業生産(G.17)— 公式 HTML
|
|
12
|
+
// - BLS(米): 雇用統計 / CPI / PPI — ホワイトハウス PFEI 公式スケジュール PDF
|
|
13
|
+
// (BLS 公式の HTML/RSS は bot ブロックされるため PFEI 経由で取得)
|
|
12
14
|
// - 内閣府(日): 四半期別 GDP 速報 — 公式 HTML
|
|
13
15
|
// - 日銀(日): 金融政策決定会合 / 主な意見 / 短観 / 議事要旨 — lit-forge 収録データ再利用
|
|
14
|
-
// 次サイクル予定:
|
|
16
|
+
// 次サイクル予定: 総務省統計局(日 CPI)/ FOMC。
|
|
15
17
|
import { z } from "zod";
|
|
16
18
|
import { fetchEconomicReleasePulse, } from "../lib/economic-release-pulse/pulse.js";
|
|
17
19
|
import { jsonReply } from "./types.js";
|
|
@@ -35,10 +37,11 @@ export const getEconomicReleasePulseTool = {
|
|
|
35
37
|
"`get_economic_events_today` は運営者が一次ソースで裏取りした手動キュレーション(★★★ 中心、半年 1 回更新)で、" +
|
|
36
38
|
"収録対象を絞っているため取りこぼす『網羅性の穴』があります。" +
|
|
37
39
|
"本ツールは公式カレンダーを実取得することでその穴を埋める**補完ツール**です。市況サマリーでは両方を併用してください。" +
|
|
38
|
-
"【現行カバー範囲(v0.
|
|
40
|
+
"【現行カバー範囲(v0.14.0)】" +
|
|
39
41
|
"BEA(米 GDP / 個人所得・支出〔PCE〕/ 貿易収支 / 企業収益)、NY 連銀(米 製造業景気指数 Empire State)、" +
|
|
40
|
-
"FRB(米 鉱工業生産 G.17
|
|
41
|
-
"
|
|
42
|
+
"FRB(米 鉱工業生産 G.17)、**BLS**(雇用統計・CPI・PPI — ホワイトハウス PFEI 公式スケジュール経由)、" +
|
|
43
|
+
"内閣府(四半期別 GDP 速報)、日銀(金融政策決定会合 / 主な意見 / 短観 / 議事要旨)。" +
|
|
44
|
+
"総務省統計局(日 CPI)・FOMC は次サイクルで追加予定で、現時点では本ツールに含まれません。" +
|
|
42
45
|
"【利用上の注意】" +
|
|
43
46
|
"アダプタ単位の取得失敗は sources 配列に error として記録され、他アダプタの結果は返されます(部分成功)。" +
|
|
44
47
|
"結果は 6 時間キャッシュされます。各イベントには一次ソース URL(sourceUrl)が付きます。",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-economic-release-pulse.js","sourceRoot":"","sources":["../../src/tools/get-economic-release-pulse.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"get-economic-release-pulse.js","sourceRoot":"","sources":["../../src/tools/get-economic-release-pulse.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,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,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,wCAAwC,CAC3C;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,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"}
|
|
@@ -14,14 +14,17 @@ const inputSchema = {};
|
|
|
14
14
|
export const getUsMacroLatestTool = {
|
|
15
15
|
name: "get_us_macro_latest",
|
|
16
16
|
title: "米マクロ最新値(雇用統計・失業率・CPI・PPI)",
|
|
17
|
-
description: "**米マクロ三大指標**(雇用統計・CPI・PPI)+
|
|
18
|
-
"BLS(米労働統計局)の Public Data API v2 を 1 リクエストで叩き、
|
|
17
|
+
description: "**米マクロ三大指標**(雇用統計・CPI・PPI)+ コア指数 + 失業率 + 平均時給の最新発表値と前月比・前年同月比を返すツール。" +
|
|
18
|
+
"BLS(米労働統計局)の Public Data API v2 を 1 リクエストで叩き、7 系列を集約して返します。" +
|
|
19
19
|
"API key 不要・無認証で動作(BLS 公開 API、未登録枠の 1 日 25 リクエストで運用、6 時間キャッシュ込み)。" +
|
|
20
|
-
"
|
|
21
|
-
"雇用統計 = 非農業部門就業者数(CES0000000001
|
|
22
|
-
"失業率(LNS14000000
|
|
20
|
+
"【取得系列(v0.14.0 で 4→7 系列に拡張)】" +
|
|
21
|
+
"雇用統計 = 非農業部門就業者数(CES0000000001、千人)/ " +
|
|
22
|
+
"失業率(LNS14000000、%)/ " +
|
|
23
23
|
"CPI 都市部全消費者(CUUR0000SA0、index 1982-84=100)/ " +
|
|
24
|
-
"
|
|
24
|
+
"**コア CPI**(食料・エネルギー除く、CUUR0000SA0L1E、index)/ " +
|
|
25
|
+
"PPI 最終需要(WPSFD4、index 2009=100)/ " +
|
|
26
|
+
"**コア PPI**(食料・エネルギー除く、WPSFD49104、index)/ " +
|
|
27
|
+
"**平均時給**(民間部門季調済、CES0500000003、USD/hour)。" +
|
|
25
28
|
"【返却内容】" +
|
|
26
29
|
"各指標について最新月の値・前月差・前月比%・前年同月差・前年同月比% を返します。" +
|
|
27
30
|
"速報値(preliminary)には preliminary=true が立ち、後日確定値に更新されます。" +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-us-macro-latest.js","sourceRoot":"","sources":["../../src/tools/get-us-macro-latest.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,iEAAiE;AACjE,UAAU;AACV,EAAE;AACF,QAAQ;AACR,iEAAiE;AACjE,wEAAwE;AACxE,2DAA2D;AAC3D,2CAA2C;AAC3C,oDAAoD;AAEpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,UAAU,EAAqB,MAAM,YAAY,CAAC;AAEtE,MAAM,WAAW,GAAG,EAAE,CAAC;AAEvB,MAAM,CAAC,MAAM,oBAAoB,GAAiB;IAChD,IAAI,EAAE,qBAAqB;IAC3B,KAAK,EAAE,2BAA2B;IAClC,WAAW,EACT,
|
|
1
|
+
{"version":3,"file":"get-us-macro-latest.js","sourceRoot":"","sources":["../../src/tools/get-us-macro-latest.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,iEAAiE;AACjE,UAAU;AACV,EAAE;AACF,QAAQ;AACR,iEAAiE;AACjE,wEAAwE;AACxE,2DAA2D;AAC3D,2CAA2C;AAC3C,oDAAoD;AAEpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,UAAU,EAAqB,MAAM,YAAY,CAAC;AAEtE,MAAM,WAAW,GAAG,EAAE,CAAC;AAEvB,MAAM,CAAC,MAAM,oBAAoB,GAAiB;IAChD,IAAI,EAAE,qBAAqB;IAC3B,KAAK,EAAE,2BAA2B;IAClC,WAAW,EACT,sEAAsE;QACtE,6DAA6D;QAC7D,kEAAkE;QAClE,6BAA6B;QAC7B,sCAAsC;QACtC,sBAAsB;QACtB,8CAA8C;QAC9C,+CAA+C;QAC/C,mCAAmC;QACnC,2CAA2C;QAC3C,2CAA2C;QAC3C,QAAQ;QACR,2CAA2C;QAC3C,uDAAuD;QACvD,4CAA4C;QAC5C,SAAS;QACT,sDAAsD;QACtD,qDAAqD;QACrD,qBAAqB;QACrB,UAAU;QACV,4CAA4C;QAC5C,uCAAuC;IACzC,WAAW;IACX,OAAO,EAAE,KAAK,IAAI,EAAE;QAClB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,kBAAkB,EAAE,CAAC;YAC1C,OAAO,SAAS,CAAC;gBACf,GAAG,MAAM;gBACT,IAAI,EACF,8BAA8B;oBAC9B,0EAA0E;oBAC1E,+CAA+C;aAClD,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC;YAC5D,OAAO,UAAU,CAAC,6BAA6B,GAAG,EAAE,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;CACF,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lit-forge-mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.14.0",
|
|
4
4
|
"mcpName": "io.github.noblabs/lit-forge-mcp",
|
|
5
5
|
"description": "MCP server for personal asset planning + daily market check: NISA / iDeCo simulation, retirement planning, market snapshot (USD/JPY, Nikkei, S&P 500, etc.), dividend history, analyst consensus, economic events.",
|
|
6
6
|
"type": "module",
|
|
@@ -50,6 +50,7 @@
|
|
|
50
50
|
"verify:jp-macro": "node scripts/verify-jp-macro-events.mjs",
|
|
51
51
|
"verify:geopolitical": "node scripts/verify-geopolitical-events.mjs",
|
|
52
52
|
"verify:all": "npm run verify:cb && npm run verify:us-macro && npm run verify:jp-macro && npm run verify:geopolitical",
|
|
53
|
+
"update:pfei": "npm run build && node scripts/update-pfei-schedule.mjs",
|
|
53
54
|
"prepare": "npm run build",
|
|
54
55
|
"prepublishOnly": "npm run build && npm run verify:all"
|
|
55
56
|
},
|