@nahisaho/shikigami-mcp-server 1.7.0 → 1.10.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 +29 -0
- package/dist/cache/__tests__/global.test.d.ts +6 -0
- package/dist/cache/__tests__/global.test.d.ts.map +1 -0
- package/dist/cache/__tests__/global.test.js +269 -0
- package/dist/cache/__tests__/global.test.js.map +1 -0
- package/dist/cache/__tests__/manager.test.d.ts +6 -0
- package/dist/cache/__tests__/manager.test.d.ts.map +1 -0
- package/dist/cache/__tests__/manager.test.js +286 -0
- package/dist/cache/__tests__/manager.test.js.map +1 -0
- package/dist/cache/__tests__/semantic.test.d.ts +6 -0
- package/dist/cache/__tests__/semantic.test.d.ts.map +1 -0
- package/dist/cache/__tests__/semantic.test.js +271 -0
- package/dist/cache/__tests__/semantic.test.js.map +1 -0
- package/dist/cache/__tests__/store.test.d.ts +6 -0
- package/dist/cache/__tests__/store.test.d.ts.map +1 -0
- package/dist/cache/__tests__/store.test.js +289 -0
- package/dist/cache/__tests__/store.test.js.map +1 -0
- package/dist/cache/global.d.ts +140 -0
- package/dist/cache/global.d.ts.map +1 -0
- package/dist/cache/global.js +260 -0
- package/dist/cache/global.js.map +1 -0
- package/dist/cache/index.d.ts +10 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/index.js +10 -0
- package/dist/cache/index.js.map +1 -0
- package/dist/cache/manager.d.ts +146 -0
- package/dist/cache/manager.d.ts.map +1 -0
- package/dist/cache/manager.js +229 -0
- package/dist/cache/manager.js.map +1 -0
- package/dist/cache/semantic.d.ts +164 -0
- package/dist/cache/semantic.d.ts.map +1 -0
- package/dist/cache/semantic.js +241 -0
- package/dist/cache/semantic.js.map +1 -0
- package/dist/cache/store.d.ts +98 -0
- package/dist/cache/store.d.ts.map +1 -0
- package/dist/cache/store.js +469 -0
- package/dist/cache/store.js.map +1 -0
- package/dist/cache/types.d.ts +171 -0
- package/dist/cache/types.d.ts.map +1 -0
- package/dist/cache/types.js +8 -0
- package/dist/cache/types.js.map +1 -0
- package/dist/config/types.d.ts +67 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js +30 -0
- package/dist/config/types.js.map +1 -1
- package/dist/tools/__tests__/multilingual-search.test.d.ts +7 -0
- package/dist/tools/__tests__/multilingual-search.test.d.ts.map +1 -0
- package/dist/tools/__tests__/multilingual-search.test.js +71 -0
- package/dist/tools/__tests__/multilingual-search.test.js.map +1 -0
- package/dist/tools/search/recovery/__tests__/logger.test.d.ts +8 -0
- package/dist/tools/search/recovery/__tests__/logger.test.d.ts.map +1 -0
- package/dist/tools/search/recovery/__tests__/logger.test.js +249 -0
- package/dist/tools/search/recovery/__tests__/logger.test.js.map +1 -0
- package/dist/tools/search/recovery/__tests__/manager-logger.test.d.ts +8 -0
- package/dist/tools/search/recovery/__tests__/manager-logger.test.d.ts.map +1 -0
- package/dist/tools/search/recovery/__tests__/manager-logger.test.js +158 -0
- package/dist/tools/search/recovery/__tests__/manager-logger.test.js.map +1 -0
- package/dist/tools/search/recovery/index.d.ts +31 -2
- package/dist/tools/search/recovery/index.d.ts.map +1 -1
- package/dist/tools/search/recovery/index.js +51 -7
- package/dist/tools/search/recovery/index.js.map +1 -1
- package/dist/tools/search/recovery/logger.d.ts +149 -0
- package/dist/tools/search/recovery/logger.d.ts.map +1 -0
- package/dist/tools/search/recovery/logger.js +218 -0
- package/dist/tools/search/recovery/logger.js.map +1 -0
- package/dist/tools/search.d.ts +48 -0
- package/dist/tools/search.d.ts.map +1 -1
- package/dist/tools/search.js +152 -0
- package/dist/tools/search.js.map +1 -1
- package/dist/tools/visit/recovery/__tests__/index.test.d.ts +10 -0
- package/dist/tools/visit/recovery/__tests__/index.test.d.ts.map +1 -0
- package/dist/tools/visit/recovery/__tests__/index.test.js +239 -0
- package/dist/tools/visit/recovery/__tests__/index.test.js.map +1 -0
- package/dist/tools/visit/recovery/__tests__/wayback.test.d.ts +8 -0
- package/dist/tools/visit/recovery/__tests__/wayback.test.d.ts.map +1 -0
- package/dist/tools/visit/recovery/__tests__/wayback.test.js +271 -0
- package/dist/tools/visit/recovery/__tests__/wayback.test.js.map +1 -0
- package/dist/tools/visit/recovery/index.d.ts +126 -0
- package/dist/tools/visit/recovery/index.d.ts.map +1 -0
- package/dist/tools/visit/recovery/index.js +203 -0
- package/dist/tools/visit/recovery/index.js.map +1 -0
- package/dist/tools/visit/recovery/wayback.d.ts +101 -0
- package/dist/tools/visit/recovery/wayback.d.ts.map +1 -0
- package/dist/tools/visit/recovery/wayback.js +140 -0
- package/dist/tools/visit/recovery/wayback.js.map +1 -0
- package/dist/tools/visit.d.ts +33 -0
- package/dist/tools/visit.d.ts.map +1 -1
- package/dist/tools/visit.js +127 -1
- package/dist/tools/visit.js.map +1 -1
- package/package.json +7 -3
- package/shikigami.config.example.yaml +9 -0
- package/src/cache/__tests__/global.test.ts +340 -0
- package/src/cache/__tests__/manager.test.ts +353 -0
- package/src/cache/__tests__/semantic.test.ts +331 -0
- package/src/cache/__tests__/store.test.ts +369 -0
- package/src/cache/global.ts +351 -0
- package/src/cache/index.ts +10 -0
- package/src/cache/manager.ts +325 -0
- package/src/cache/semantic.ts +368 -0
- package/src/cache/store.ts +555 -0
- package/src/cache/types.ts +189 -0
- package/src/config/types.ts +108 -0
- package/src/tools/__tests__/multilingual-search.test.ts +88 -0
- package/src/tools/search/recovery/__tests__/logger.test.ts +334 -0
- package/src/tools/search/recovery/__tests__/manager-logger.test.ts +199 -0
- package/src/tools/search/recovery/index.ts +67 -9
- package/src/tools/search/recovery/logger.ts +351 -0
- package/src/tools/search.ts +212 -0
- package/src/tools/visit/recovery/__tests__/index.test.ts +297 -0
- package/src/tools/visit/recovery/__tests__/wayback.test.ts +344 -0
- package/src/tools/visit/recovery/index.ts +312 -0
- package/src/tools/visit/recovery/wayback.ts +210 -0
- package/src/tools/visit.ts +159 -2
- package/vitest.config.ts +22 -0
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WaybackClient - Wayback Machine API クライアント
|
|
3
|
+
*
|
|
4
|
+
* TSK-1-003: WaybackClient実装
|
|
5
|
+
* REQ-SRCH-004-01: visit失敗時フォールバック
|
|
6
|
+
* DES-SRCH-004: VisitRecoveryManager設計
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Wayback Machine スナップショット情報
|
|
10
|
+
*/
|
|
11
|
+
export interface WaybackSnapshot {
|
|
12
|
+
/** スナップショットURL */
|
|
13
|
+
url: string;
|
|
14
|
+
/** 元のURL */
|
|
15
|
+
originalUrl: string;
|
|
16
|
+
/** アーカイブ日時(ISO 8601形式) */
|
|
17
|
+
timestamp: string;
|
|
18
|
+
/** 利用可能かどうか */
|
|
19
|
+
available: boolean;
|
|
20
|
+
/** HTTPステータスコード */
|
|
21
|
+
status?: number;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Wayback Machine API レスポンス
|
|
25
|
+
*/
|
|
26
|
+
export interface WaybackApiResponse {
|
|
27
|
+
archived_snapshots: {
|
|
28
|
+
closest?: {
|
|
29
|
+
url: string;
|
|
30
|
+
timestamp: string;
|
|
31
|
+
available: boolean;
|
|
32
|
+
status?: string;
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
url: string;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* WaybackClient 設定
|
|
39
|
+
*/
|
|
40
|
+
export interface WaybackClientConfig {
|
|
41
|
+
/** APIベースURL(デフォルト: https://archive.org/wayback/available) */
|
|
42
|
+
apiBaseUrl?: string;
|
|
43
|
+
/** タイムアウト(ms、デフォルト: 10000) */
|
|
44
|
+
timeoutMs?: number;
|
|
45
|
+
/** 最大リトライ回数(デフォルト: 2) */
|
|
46
|
+
maxRetries?: number;
|
|
47
|
+
/** リトライ間隔(ms、デフォルト: 1000) */
|
|
48
|
+
retryDelayMs?: number;
|
|
49
|
+
/** User-Agent(デフォルト: SHIKIGAMI/1.10.0) */
|
|
50
|
+
userAgent?: string;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* デフォルト設定
|
|
54
|
+
*/
|
|
55
|
+
export declare const DEFAULT_WAYBACK_CONFIG: Required<WaybackClientConfig>;
|
|
56
|
+
/**
|
|
57
|
+
* WaybackClient - Wayback Machine APIを使ったページアーカイブ取得
|
|
58
|
+
*/
|
|
59
|
+
export declare class WaybackClient {
|
|
60
|
+
private readonly config;
|
|
61
|
+
constructor(config?: Partial<WaybackClientConfig>);
|
|
62
|
+
/**
|
|
63
|
+
* 指定URLの最新アーカイブスナップショットを取得
|
|
64
|
+
* @param url 検索対象のURL
|
|
65
|
+
* @returns スナップショット情報(見つからない場合はnull)
|
|
66
|
+
*/
|
|
67
|
+
getSnapshot(url: string): Promise<WaybackSnapshot | null>;
|
|
68
|
+
/**
|
|
69
|
+
* 指定URLの利用可能なアーカイブがあるかチェック
|
|
70
|
+
* @param url チェック対象のURL
|
|
71
|
+
* @returns 利用可能な場合true
|
|
72
|
+
*/
|
|
73
|
+
isArchived(url: string): Promise<boolean>;
|
|
74
|
+
/**
|
|
75
|
+
* アーカイブされたコンテンツのURLを取得(リダイレクト用)
|
|
76
|
+
* @param url 元のURL
|
|
77
|
+
* @returns アーカイブURL(見つからない場合はnull)
|
|
78
|
+
*/
|
|
79
|
+
getArchiveUrl(url: string): Promise<string | null>;
|
|
80
|
+
/**
|
|
81
|
+
* Wayback Machine APIを呼び出してスナップショットを取得
|
|
82
|
+
*/
|
|
83
|
+
private fetchSnapshot;
|
|
84
|
+
/**
|
|
85
|
+
* APIレスポンスをパース
|
|
86
|
+
*/
|
|
87
|
+
private parseApiResponse;
|
|
88
|
+
/**
|
|
89
|
+
* Wayback Machine のタイムスタンプ(YYYYMMDDHHmmss)をISO 8601形式に変換
|
|
90
|
+
*/
|
|
91
|
+
private formatTimestamp;
|
|
92
|
+
/**
|
|
93
|
+
* 指定時間待機
|
|
94
|
+
*/
|
|
95
|
+
private delay;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* WaybackClientのシングルトンインスタンスを作成
|
|
99
|
+
*/
|
|
100
|
+
export declare function createWaybackClient(config?: Partial<WaybackClientConfig>): WaybackClient;
|
|
101
|
+
//# sourceMappingURL=wayback.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wayback.d.ts","sourceRoot":"","sources":["../../../../src/tools/visit/recovery/wayback.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,kBAAkB;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,0BAA0B;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,mBAAmB;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,kBAAkB,EAAE;QAClB,OAAO,CAAC,EAAE;YACR,GAAG,EAAE,MAAM,CAAC;YACZ,SAAS,EAAE,MAAM,CAAC;YAClB,SAAS,EAAE,OAAO,CAAC;YACnB,MAAM,CAAC,EAAE,MAAM,CAAC;SACjB,CAAC;KACH,CAAC;IACF,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,8DAA8D;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8BAA8B;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yBAAyB;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6BAA6B;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,mBAAmB,CAMhE,CAAC;AAEF;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgC;gBAE3C,MAAM,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC;IAIjD;;;;OAIG;IACG,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAqB/D;;;;OAIG;IACG,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK/C;;;;OAIG;IACG,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAKxD;;OAEG;YACW,aAAa;IAkC3B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAgBxB;;OAEG;IACH,OAAO,CAAC,eAAe;IAevB;;OAEG;IACH,OAAO,CAAC,KAAK;CAGd;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,aAAa,CAExF"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WaybackClient - Wayback Machine API クライアント
|
|
3
|
+
*
|
|
4
|
+
* TSK-1-003: WaybackClient実装
|
|
5
|
+
* REQ-SRCH-004-01: visit失敗時フォールバック
|
|
6
|
+
* DES-SRCH-004: VisitRecoveryManager設計
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* デフォルト設定
|
|
10
|
+
*/
|
|
11
|
+
export const DEFAULT_WAYBACK_CONFIG = {
|
|
12
|
+
apiBaseUrl: 'https://archive.org/wayback/available',
|
|
13
|
+
timeoutMs: 10000,
|
|
14
|
+
maxRetries: 2,
|
|
15
|
+
retryDelayMs: 1000,
|
|
16
|
+
userAgent: 'SHIKIGAMI/1.10.0',
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* WaybackClient - Wayback Machine APIを使ったページアーカイブ取得
|
|
20
|
+
*/
|
|
21
|
+
export class WaybackClient {
|
|
22
|
+
config;
|
|
23
|
+
constructor(config) {
|
|
24
|
+
this.config = { ...DEFAULT_WAYBACK_CONFIG, ...config };
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* 指定URLの最新アーカイブスナップショットを取得
|
|
28
|
+
* @param url 検索対象のURL
|
|
29
|
+
* @returns スナップショット情報(見つからない場合はnull)
|
|
30
|
+
*/
|
|
31
|
+
async getSnapshot(url) {
|
|
32
|
+
let lastError = null;
|
|
33
|
+
for (let attempt = 0; attempt <= this.config.maxRetries; attempt++) {
|
|
34
|
+
try {
|
|
35
|
+
return await this.fetchSnapshot(url);
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
lastError = error instanceof Error ? error : new Error(String(error));
|
|
39
|
+
if (attempt < this.config.maxRetries) {
|
|
40
|
+
await this.delay(this.config.retryDelayMs);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
console.error(`[WaybackClient] Failed to get snapshot for "${url}" after ${this.config.maxRetries + 1} attempts: ${lastError?.message}`);
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* 指定URLの利用可能なアーカイブがあるかチェック
|
|
49
|
+
* @param url チェック対象のURL
|
|
50
|
+
* @returns 利用可能な場合true
|
|
51
|
+
*/
|
|
52
|
+
async isArchived(url) {
|
|
53
|
+
const snapshot = await this.getSnapshot(url);
|
|
54
|
+
return snapshot?.available ?? false;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* アーカイブされたコンテンツのURLを取得(リダイレクト用)
|
|
58
|
+
* @param url 元のURL
|
|
59
|
+
* @returns アーカイブURL(見つからない場合はnull)
|
|
60
|
+
*/
|
|
61
|
+
async getArchiveUrl(url) {
|
|
62
|
+
const snapshot = await this.getSnapshot(url);
|
|
63
|
+
return snapshot?.available ? snapshot.url : null;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Wayback Machine APIを呼び出してスナップショットを取得
|
|
67
|
+
*/
|
|
68
|
+
async fetchSnapshot(url) {
|
|
69
|
+
const apiUrl = `${this.config.apiBaseUrl}?url=${encodeURIComponent(url)}`;
|
|
70
|
+
const controller = new AbortController();
|
|
71
|
+
const timeoutId = setTimeout(() => controller.abort(), this.config.timeoutMs);
|
|
72
|
+
try {
|
|
73
|
+
const response = await fetch(apiUrl, {
|
|
74
|
+
method: 'GET',
|
|
75
|
+
headers: {
|
|
76
|
+
'User-Agent': this.config.userAgent,
|
|
77
|
+
Accept: 'application/json',
|
|
78
|
+
},
|
|
79
|
+
signal: controller.signal,
|
|
80
|
+
});
|
|
81
|
+
clearTimeout(timeoutId);
|
|
82
|
+
if (!response.ok) {
|
|
83
|
+
throw new Error(`HTTP ${response.status}: ${response.statusText}`);
|
|
84
|
+
}
|
|
85
|
+
const data = (await response.json());
|
|
86
|
+
return this.parseApiResponse(data, url);
|
|
87
|
+
}
|
|
88
|
+
catch (error) {
|
|
89
|
+
clearTimeout(timeoutId);
|
|
90
|
+
if (error instanceof Error && error.name === 'AbortError') {
|
|
91
|
+
throw new Error(`Request timed out after ${this.config.timeoutMs}ms`);
|
|
92
|
+
}
|
|
93
|
+
throw error;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* APIレスポンスをパース
|
|
98
|
+
*/
|
|
99
|
+
parseApiResponse(data, originalUrl) {
|
|
100
|
+
const closest = data.archived_snapshots?.closest;
|
|
101
|
+
if (!closest) {
|
|
102
|
+
return null;
|
|
103
|
+
}
|
|
104
|
+
return {
|
|
105
|
+
url: closest.url,
|
|
106
|
+
originalUrl,
|
|
107
|
+
timestamp: this.formatTimestamp(closest.timestamp),
|
|
108
|
+
available: closest.available,
|
|
109
|
+
status: closest.status ? parseInt(closest.status, 10) : undefined,
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Wayback Machine のタイムスタンプ(YYYYMMDDHHmmss)をISO 8601形式に変換
|
|
114
|
+
*/
|
|
115
|
+
formatTimestamp(timestamp) {
|
|
116
|
+
if (timestamp.length !== 14) {
|
|
117
|
+
return timestamp;
|
|
118
|
+
}
|
|
119
|
+
const year = timestamp.substring(0, 4);
|
|
120
|
+
const month = timestamp.substring(4, 6);
|
|
121
|
+
const day = timestamp.substring(6, 8);
|
|
122
|
+
const hour = timestamp.substring(8, 10);
|
|
123
|
+
const minute = timestamp.substring(10, 12);
|
|
124
|
+
const second = timestamp.substring(12, 14);
|
|
125
|
+
return `${year}-${month}-${day}T${hour}:${minute}:${second}Z`;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* 指定時間待機
|
|
129
|
+
*/
|
|
130
|
+
delay(ms) {
|
|
131
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* WaybackClientのシングルトンインスタンスを作成
|
|
136
|
+
*/
|
|
137
|
+
export function createWaybackClient(config) {
|
|
138
|
+
return new WaybackClient(config);
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=wayback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wayback.js","sourceRoot":"","sources":["../../../../src/tools/visit/recovery/wayback.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/visit.d.ts
CHANGED
|
@@ -4,8 +4,10 @@
|
|
|
4
4
|
* Implements REQ-DR-002: Web検索 (page fetching)
|
|
5
5
|
* Implements REQ-NF-007: プロバイダー設定ファイル対応
|
|
6
6
|
* Implements REQ-PARSE-001: PDFコンテンツ抽出 (v1.7.0)
|
|
7
|
+
* Implements REQ-SRCH-004: ページ訪問リカバリー (v1.10.0)
|
|
7
8
|
* Uses Jina AI Reader for LLM-optimized text extraction
|
|
8
9
|
*/
|
|
10
|
+
import { VisitRecoveryManager } from './visit/recovery/index.js';
|
|
9
11
|
export interface PageContent {
|
|
10
12
|
url: string;
|
|
11
13
|
title: string;
|
|
@@ -20,10 +22,41 @@ export interface PageContent {
|
|
|
20
22
|
author?: string;
|
|
21
23
|
creationDate?: string;
|
|
22
24
|
};
|
|
25
|
+
/** v1.10.0: リカバリー情報 */
|
|
26
|
+
recovery?: {
|
|
27
|
+
/** Wayback Machine を使用したかどうか */
|
|
28
|
+
usedWayback: boolean;
|
|
29
|
+
/** 実際に取得したURL */
|
|
30
|
+
usedUrl: string;
|
|
31
|
+
/** 試行回数 */
|
|
32
|
+
attempts: number;
|
|
33
|
+
/** Waybackスナップショット日時(使用時) */
|
|
34
|
+
waybackTimestamp?: string;
|
|
35
|
+
};
|
|
23
36
|
}
|
|
24
37
|
/**
|
|
25
38
|
* Visit a page and extract content using Jina AI Reader
|
|
26
39
|
* v1.7.0: Auto-detect PDF and use PdfParser
|
|
27
40
|
*/
|
|
28
41
|
export declare function visitPage(url: string, goal?: string): Promise<PageContent>;
|
|
42
|
+
/**
|
|
43
|
+
* v1.10.0: リカバリー付きページ訪問
|
|
44
|
+
*
|
|
45
|
+
* REQ-SRCH-004-01: visit失敗時フォールバック(Wayback Machine)
|
|
46
|
+
* REQ-SRCH-004-02: 自動リトライ
|
|
47
|
+
* REQ-SRCH-004-03: 結果マージ
|
|
48
|
+
*
|
|
49
|
+
* @param url 訪問対象のURL
|
|
50
|
+
* @param goal 訪問の目的(オプション)
|
|
51
|
+
* @returns ページコンテンツ
|
|
52
|
+
*/
|
|
53
|
+
export declare function visitPageWithRecovery(url: string, goal?: string): Promise<PageContent>;
|
|
54
|
+
/**
|
|
55
|
+
* v1.10.0: リカバリー統計を取得
|
|
56
|
+
*/
|
|
57
|
+
export declare function getVisitRecoveryStats(): ReturnType<VisitRecoveryManager['getStats']> | null;
|
|
58
|
+
/**
|
|
59
|
+
* v1.10.0: リカバリーマネージャーをリセット(テスト用)
|
|
60
|
+
*/
|
|
61
|
+
export declare function resetVisitRecoveryManager(): void;
|
|
29
62
|
//# sourceMappingURL=visit.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"visit.d.ts","sourceRoot":"","sources":["../../src/tools/visit.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"visit.d.ts","sourceRoot":"","sources":["../../src/tools/visit.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,EACL,oBAAoB,EAGrB,MAAM,2BAA2B,CAAC;AAEnC,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,uBAAuB;IACvB,WAAW,CAAC,EAAE;QACZ,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,uBAAuB;IACvB,QAAQ,CAAC,EAAE;QACT,gCAAgC;QAChC,WAAW,EAAE,OAAO,CAAC;QACrB,iBAAiB;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW;QACX,QAAQ,EAAE,MAAM,CAAC;QACjB,6BAA6B;QAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;CACH;AAgFD;;;GAGG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAyEhF;AA4MD;;;;;;;;;;GAUG;AACH,wBAAsB,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAuD5F;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,UAAU,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC,GAAG,IAAI,CAK3F;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD"}
|
package/dist/tools/visit.js
CHANGED
|
@@ -4,11 +4,13 @@
|
|
|
4
4
|
* Implements REQ-DR-002: Web検索 (page fetching)
|
|
5
5
|
* Implements REQ-NF-007: プロバイダー設定ファイル対応
|
|
6
6
|
* Implements REQ-PARSE-001: PDFコンテンツ抽出 (v1.7.0)
|
|
7
|
+
* Implements REQ-SRCH-004: ページ訪問リカバリー (v1.10.0)
|
|
7
8
|
* Uses Jina AI Reader for LLM-optimized text extraction
|
|
8
9
|
*/
|
|
9
10
|
import { getConfig } from '../config/loader.js';
|
|
10
11
|
import { PdfParser } from './pdf-parser/index.js';
|
|
11
|
-
import { DEFAULT_PDF_PARSING_CONFIG } from '../config/types.js';
|
|
12
|
+
import { DEFAULT_PDF_PARSING_CONFIG, DEFAULT_VISIT_RECOVERY_CONFIG } from '../config/types.js';
|
|
13
|
+
import { VisitRecoveryManager, } from './visit/recovery/index.js';
|
|
12
14
|
const USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36';
|
|
13
15
|
// Rate limiting (will be initialized from config)
|
|
14
16
|
let lastRequestTime = 0;
|
|
@@ -33,6 +35,13 @@ function getPdfConfig() {
|
|
|
33
35
|
const config = getConfig();
|
|
34
36
|
return config.pdfParsing ?? DEFAULT_PDF_PARSING_CONFIG;
|
|
35
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* v1.10.0: Get visit recovery config
|
|
40
|
+
*/
|
|
41
|
+
function getVisitRecoveryConfig() {
|
|
42
|
+
const config = getConfig();
|
|
43
|
+
return config.visitRecovery ?? DEFAULT_VISIT_RECOVERY_CONFIG;
|
|
44
|
+
}
|
|
36
45
|
// v1.7.0: PDF parser instance (lazy initialized)
|
|
37
46
|
let pdfParser = null;
|
|
38
47
|
function getPdfParser() {
|
|
@@ -41,6 +50,20 @@ function getPdfParser() {
|
|
|
41
50
|
}
|
|
42
51
|
return pdfParser;
|
|
43
52
|
}
|
|
53
|
+
// v1.10.0: Visit recovery manager instance (lazy initialized)
|
|
54
|
+
let visitRecoveryManager = null;
|
|
55
|
+
function getVisitRecoveryManager() {
|
|
56
|
+
if (!visitRecoveryManager) {
|
|
57
|
+
const config = getVisitRecoveryConfig();
|
|
58
|
+
visitRecoveryManager = new VisitRecoveryManager({
|
|
59
|
+
maxRetries: config.maxRetries,
|
|
60
|
+
retryDelayMs: config.retryDelayMs,
|
|
61
|
+
timeoutMs: config.timeoutMs,
|
|
62
|
+
enableWayback: config.enableWayback,
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
return visitRecoveryManager;
|
|
66
|
+
}
|
|
44
67
|
async function rateLimit() {
|
|
45
68
|
const now = Date.now();
|
|
46
69
|
const minInterval = getMinRequestInterval();
|
|
@@ -266,4 +289,107 @@ function extractTitleFromUrl(url) {
|
|
|
266
289
|
return 'PDF Document';
|
|
267
290
|
}
|
|
268
291
|
}
|
|
292
|
+
// ============================================================
|
|
293
|
+
// v1.10.0: リカバリー付きページ訪問 (REQ-SRCH-004)
|
|
294
|
+
// ============================================================
|
|
295
|
+
/**
|
|
296
|
+
* v1.10.0: ページ取得関数をPageFetchResult形式にラップ
|
|
297
|
+
*/
|
|
298
|
+
async function fetchPageAsResult(url) {
|
|
299
|
+
try {
|
|
300
|
+
const result = await visitPage(url);
|
|
301
|
+
if (result.error) {
|
|
302
|
+
return {
|
|
303
|
+
success: false,
|
|
304
|
+
error: result.error,
|
|
305
|
+
};
|
|
306
|
+
}
|
|
307
|
+
return {
|
|
308
|
+
success: true,
|
|
309
|
+
content: result.content,
|
|
310
|
+
title: result.title,
|
|
311
|
+
};
|
|
312
|
+
}
|
|
313
|
+
catch (error) {
|
|
314
|
+
return {
|
|
315
|
+
success: false,
|
|
316
|
+
error: error instanceof Error ? error.message : String(error),
|
|
317
|
+
};
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
/**
|
|
321
|
+
* v1.10.0: リカバリー付きページ訪問
|
|
322
|
+
*
|
|
323
|
+
* REQ-SRCH-004-01: visit失敗時フォールバック(Wayback Machine)
|
|
324
|
+
* REQ-SRCH-004-02: 自動リトライ
|
|
325
|
+
* REQ-SRCH-004-03: 結果マージ
|
|
326
|
+
*
|
|
327
|
+
* @param url 訪問対象のURL
|
|
328
|
+
* @param goal 訪問の目的(オプション)
|
|
329
|
+
* @returns ページコンテンツ
|
|
330
|
+
*/
|
|
331
|
+
export async function visitPageWithRecovery(url, goal) {
|
|
332
|
+
const fetchedAt = new Date().toISOString();
|
|
333
|
+
const config = getVisitRecoveryConfig();
|
|
334
|
+
// リカバリーが無効な場合は従来の処理
|
|
335
|
+
if (!config.enabled) {
|
|
336
|
+
return await visitPage(url, goal);
|
|
337
|
+
}
|
|
338
|
+
const manager = getVisitRecoveryManager();
|
|
339
|
+
// v1.7.0: PDF検出は先に行う(リカバリー前)
|
|
340
|
+
const pdfConfig = getPdfConfig();
|
|
341
|
+
if (pdfConfig.enabled) {
|
|
342
|
+
const parser = getPdfParser();
|
|
343
|
+
const detection = parser.isPdfUrl(url);
|
|
344
|
+
if (detection.isPdf) {
|
|
345
|
+
console.error(`[SHIKIGAMI] PDF detected (before recovery): ${url}`);
|
|
346
|
+
// PDFはそのまま従来処理(リカバリー対象外)
|
|
347
|
+
return await visitPage(url, goal);
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
// リカバリー付き取得を実行
|
|
351
|
+
const result = await manager.recover(url, fetchPageAsResult);
|
|
352
|
+
if (result.success) {
|
|
353
|
+
return {
|
|
354
|
+
url: result.originalUrl,
|
|
355
|
+
title: result.title ?? '',
|
|
356
|
+
content: result.content ?? '',
|
|
357
|
+
fetchedAt,
|
|
358
|
+
recovery: {
|
|
359
|
+
usedWayback: result.usedWayback,
|
|
360
|
+
usedUrl: result.usedUrl,
|
|
361
|
+
attempts: result.attempts,
|
|
362
|
+
waybackTimestamp: result.waybackSnapshot?.timestamp,
|
|
363
|
+
},
|
|
364
|
+
};
|
|
365
|
+
}
|
|
366
|
+
// 全リカバリー失敗
|
|
367
|
+
return {
|
|
368
|
+
url,
|
|
369
|
+
title: '',
|
|
370
|
+
content: '',
|
|
371
|
+
fetchedAt,
|
|
372
|
+
error: result.error ?? 'Page fetch failed after all recovery attempts',
|
|
373
|
+
recovery: {
|
|
374
|
+
usedWayback: result.usedWayback,
|
|
375
|
+
usedUrl: result.usedUrl,
|
|
376
|
+
attempts: result.attempts,
|
|
377
|
+
},
|
|
378
|
+
};
|
|
379
|
+
}
|
|
380
|
+
/**
|
|
381
|
+
* v1.10.0: リカバリー統計を取得
|
|
382
|
+
*/
|
|
383
|
+
export function getVisitRecoveryStats() {
|
|
384
|
+
if (!visitRecoveryManager) {
|
|
385
|
+
return null;
|
|
386
|
+
}
|
|
387
|
+
return visitRecoveryManager.getStats();
|
|
388
|
+
}
|
|
389
|
+
/**
|
|
390
|
+
* v1.10.0: リカバリーマネージャーをリセット(テスト用)
|
|
391
|
+
*/
|
|
392
|
+
export function resetVisitRecoveryManager() {
|
|
393
|
+
visitRecoveryManager = null;
|
|
394
|
+
}
|
|
269
395
|
//# sourceMappingURL=visit.js.map
|
package/dist/tools/visit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"visit.js","sourceRoot":"","sources":["../../src/tools/visit.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"visit.js","sourceRoot":"","sources":["../../src/tools/visit.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nahisaho/shikigami-mcp-server",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.10.0",
|
|
4
4
|
"description": "SHIKIGAMI MCP Server - Deep Research tools with search fallback mechanism",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -10,7 +10,10 @@
|
|
|
10
10
|
"scripts": {
|
|
11
11
|
"build": "tsc",
|
|
12
12
|
"start": "node dist/index.js",
|
|
13
|
-
"dev": "tsx src/index.ts"
|
|
13
|
+
"dev": "tsx src/index.ts",
|
|
14
|
+
"test": "vitest run",
|
|
15
|
+
"test:watch": "vitest",
|
|
16
|
+
"test:coverage": "vitest run --coverage"
|
|
14
17
|
},
|
|
15
18
|
"keywords": [
|
|
16
19
|
"mcp",
|
|
@@ -35,7 +38,8 @@
|
|
|
35
38
|
"@types/node": "^20.10.0",
|
|
36
39
|
"@types/pdf-parse": "^1.1.4",
|
|
37
40
|
"tsx": "^4.7.0",
|
|
38
|
-
"typescript": "^5.3.2"
|
|
41
|
+
"typescript": "^5.3.2",
|
|
42
|
+
"vitest": "^4.0.17"
|
|
39
43
|
},
|
|
40
44
|
"engines": {
|
|
41
45
|
"node": ">=20.0.0"
|
|
@@ -145,6 +145,15 @@ pdfParsing:
|
|
|
145
145
|
timeoutMs: 60000 # タイムアウト(ms)
|
|
146
146
|
tempDir: /tmp/shikigami-pdf # 一時ファイル保存ディレクトリ
|
|
147
147
|
|
|
148
|
+
# ===== ページ訪問リカバリー設定 (v1.10.0) =====
|
|
149
|
+
# ページ取得失敗時の自動リカバリー
|
|
150
|
+
visitRecovery:
|
|
151
|
+
enabled: true # リカバリー機能を有効にするか
|
|
152
|
+
maxRetries: 2 # 最大リトライ回数
|
|
153
|
+
retryDelayMs: 1000 # リトライ間隔(ms)
|
|
154
|
+
timeoutMs: 30000 # タイムアウト(ms)
|
|
155
|
+
enableWayback: true # Wayback Machine フォールバックを有効にするか
|
|
156
|
+
|
|
148
157
|
# ===== キャッシュ設定 =====
|
|
149
158
|
cache:
|
|
150
159
|
enabled: true # キャッシュを有効にするか
|