@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 @@
|
|
|
1
|
+
{"version":3,"file":"store.test.js","sourceRoot":"","sources":["../../../src/cache/__tests__/store.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Global Cache Store
|
|
3
|
+
* v1.0.0 - REQ-CACHE-001-03
|
|
4
|
+
*
|
|
5
|
+
* ユーザー横断のグローバルキャッシュを管理
|
|
6
|
+
* ~/.shikigami/global-cache/ に保存
|
|
7
|
+
*/
|
|
8
|
+
import { FileCacheStore } from './store.js';
|
|
9
|
+
import { CacheConfig, CacheStats, CacheSetOptions, CacheResult } from './types.js';
|
|
10
|
+
/**
|
|
11
|
+
* グローバルキャッシュ設定
|
|
12
|
+
*/
|
|
13
|
+
export interface GlobalCacheConfig extends Partial<CacheConfig> {
|
|
14
|
+
/** グローバルキャッシュの有効化 */
|
|
15
|
+
enabled: boolean;
|
|
16
|
+
/** プロジェクト固有キャッシュを優先するか */
|
|
17
|
+
preferProjectCache: boolean;
|
|
18
|
+
/** グローバルキャッシュのベースディレクトリ(デフォルト: ~/.shikigami) */
|
|
19
|
+
baseDir?: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* デフォルトグローバルキャッシュ設定
|
|
23
|
+
*/
|
|
24
|
+
export declare const DEFAULT_GLOBAL_CACHE_CONFIG: GlobalCacheConfig;
|
|
25
|
+
/**
|
|
26
|
+
* キャッシュスコープ
|
|
27
|
+
*/
|
|
28
|
+
export type CacheScope = 'global' | 'project';
|
|
29
|
+
/**
|
|
30
|
+
* スコープ付きキャッシュ結果
|
|
31
|
+
*/
|
|
32
|
+
export interface ScopedCacheResult<T = unknown> extends CacheResult<T> {
|
|
33
|
+
/** キャッシュが見つかったスコープ */
|
|
34
|
+
scope?: CacheScope;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* GlobalCacheStore
|
|
38
|
+
* ユーザー横断のグローバルキャッシュを管理
|
|
39
|
+
*/
|
|
40
|
+
export declare class GlobalCacheStore {
|
|
41
|
+
private globalStore;
|
|
42
|
+
private projectStore;
|
|
43
|
+
private config;
|
|
44
|
+
private globalCacheDir;
|
|
45
|
+
constructor(config?: Partial<GlobalCacheConfig>);
|
|
46
|
+
/**
|
|
47
|
+
* プロジェクト固有のキャッシュストアを設定
|
|
48
|
+
*/
|
|
49
|
+
setProjectStore(projectCacheDir: string): void;
|
|
50
|
+
/**
|
|
51
|
+
* プロジェクトストアをクリア
|
|
52
|
+
*/
|
|
53
|
+
clearProjectStore(): void;
|
|
54
|
+
/**
|
|
55
|
+
* キャッシュエントリを取得(スコープ優先順位に従う)
|
|
56
|
+
*/
|
|
57
|
+
get<T = unknown>(key: string): Promise<ScopedCacheResult<T>>;
|
|
58
|
+
/**
|
|
59
|
+
* キャッシュエントリを保存
|
|
60
|
+
*/
|
|
61
|
+
set<T = unknown>(key: string, value: T, options?: CacheSetOptions & {
|
|
62
|
+
scope?: CacheScope;
|
|
63
|
+
}): Promise<void>;
|
|
64
|
+
/**
|
|
65
|
+
* キャッシュエントリを削除
|
|
66
|
+
*/
|
|
67
|
+
delete(key: string, scope?: CacheScope): Promise<boolean>;
|
|
68
|
+
/**
|
|
69
|
+
* キャッシュの存在確認
|
|
70
|
+
*/
|
|
71
|
+
has(key: string): Promise<{
|
|
72
|
+
exists: boolean;
|
|
73
|
+
scope?: CacheScope;
|
|
74
|
+
}>;
|
|
75
|
+
/**
|
|
76
|
+
* 全エントリを削除
|
|
77
|
+
*/
|
|
78
|
+
clear(scope?: CacheScope): Promise<void>;
|
|
79
|
+
/**
|
|
80
|
+
* 統計情報を取得
|
|
81
|
+
*/
|
|
82
|
+
getStats(scope?: CacheScope): Promise<{
|
|
83
|
+
global?: CacheStats;
|
|
84
|
+
project?: CacheStats;
|
|
85
|
+
combined?: {
|
|
86
|
+
totalEntries: number;
|
|
87
|
+
totalSizeBytes: number;
|
|
88
|
+
globalHitRate: number;
|
|
89
|
+
projectHitRate: number;
|
|
90
|
+
};
|
|
91
|
+
}>;
|
|
92
|
+
/**
|
|
93
|
+
* 期限切れエントリを削除
|
|
94
|
+
*/
|
|
95
|
+
evictExpired(scope?: CacheScope): Promise<{
|
|
96
|
+
global: number;
|
|
97
|
+
project: number;
|
|
98
|
+
}>;
|
|
99
|
+
/**
|
|
100
|
+
* グローバルキャッシュディレクトリを取得
|
|
101
|
+
*/
|
|
102
|
+
getGlobalCacheDir(): string;
|
|
103
|
+
/**
|
|
104
|
+
* 設定を取得
|
|
105
|
+
*/
|
|
106
|
+
getConfig(): GlobalCacheConfig;
|
|
107
|
+
/**
|
|
108
|
+
* グローバルキャッシュの有効/無効を切り替え
|
|
109
|
+
*/
|
|
110
|
+
setEnabled(enabled: boolean): void;
|
|
111
|
+
/**
|
|
112
|
+
* プロジェクトキャッシュ優先設定を変更
|
|
113
|
+
*/
|
|
114
|
+
setPreferProjectCache(prefer: boolean): void;
|
|
115
|
+
/**
|
|
116
|
+
* プロジェクトストアが設定されているか確認
|
|
117
|
+
*/
|
|
118
|
+
hasProjectStore(): boolean;
|
|
119
|
+
/**
|
|
120
|
+
* 基盤となるストアを取得
|
|
121
|
+
*/
|
|
122
|
+
getGlobalStore(): FileCacheStore;
|
|
123
|
+
/**
|
|
124
|
+
* プロジェクトストアを取得
|
|
125
|
+
*/
|
|
126
|
+
getProjectStore(): FileCacheStore | null;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* デフォルトのグローバルキャッシュインスタンスを取得
|
|
130
|
+
*/
|
|
131
|
+
export declare function getGlobalCacheStore(config?: Partial<GlobalCacheConfig>): GlobalCacheStore;
|
|
132
|
+
/**
|
|
133
|
+
* グローバルキャッシュインスタンスをリセット(テスト用)
|
|
134
|
+
*/
|
|
135
|
+
export declare function resetGlobalCacheStore(): void;
|
|
136
|
+
/**
|
|
137
|
+
* グローバルキャッシュストアを作成
|
|
138
|
+
*/
|
|
139
|
+
export declare function createGlobalCacheStore(config?: Partial<GlobalCacheConfig>): GlobalCacheStore;
|
|
140
|
+
//# sourceMappingURL=global.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"global.d.ts","sourceRoot":"","sources":["../../src/cache/global.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Global Cache Store
|
|
3
|
+
* v1.0.0 - REQ-CACHE-001-03
|
|
4
|
+
*
|
|
5
|
+
* ユーザー横断のグローバルキャッシュを管理
|
|
6
|
+
* ~/.shikigami/global-cache/ に保存
|
|
7
|
+
*/
|
|
8
|
+
import * as os from 'os';
|
|
9
|
+
import * as path from 'path';
|
|
10
|
+
import { FileCacheStore } from './store.js';
|
|
11
|
+
/**
|
|
12
|
+
* デフォルトグローバルキャッシュ設定
|
|
13
|
+
*/
|
|
14
|
+
export const DEFAULT_GLOBAL_CACHE_CONFIG = {
|
|
15
|
+
enabled: true,
|
|
16
|
+
preferProjectCache: true,
|
|
17
|
+
maxEntries: 5000,
|
|
18
|
+
defaultTtlSeconds: 3600 * 24 * 7, // 1週間
|
|
19
|
+
maxSizeBytes: 500 * 1024 * 1024, // 500MB
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* GlobalCacheStore
|
|
23
|
+
* ユーザー横断のグローバルキャッシュを管理
|
|
24
|
+
*/
|
|
25
|
+
export class GlobalCacheStore {
|
|
26
|
+
globalStore;
|
|
27
|
+
projectStore = null;
|
|
28
|
+
config;
|
|
29
|
+
globalCacheDir;
|
|
30
|
+
constructor(config = {}) {
|
|
31
|
+
this.config = { ...DEFAULT_GLOBAL_CACHE_CONFIG, ...config };
|
|
32
|
+
// グローバルキャッシュディレクトリを設定
|
|
33
|
+
const baseDir = this.config.baseDir || path.join(os.homedir(), '.shikigami');
|
|
34
|
+
this.globalCacheDir = path.join(baseDir, 'global-cache');
|
|
35
|
+
// グローバルストアを初期化
|
|
36
|
+
this.globalStore = new FileCacheStore({
|
|
37
|
+
cacheDir: this.globalCacheDir,
|
|
38
|
+
maxEntries: this.config.maxEntries,
|
|
39
|
+
defaultTtlSeconds: this.config.defaultTtlSeconds,
|
|
40
|
+
maxSizeBytes: this.config.maxSizeBytes,
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* プロジェクト固有のキャッシュストアを設定
|
|
45
|
+
*/
|
|
46
|
+
setProjectStore(projectCacheDir) {
|
|
47
|
+
this.projectStore = new FileCacheStore({
|
|
48
|
+
cacheDir: projectCacheDir,
|
|
49
|
+
maxEntries: this.config.maxEntries,
|
|
50
|
+
defaultTtlSeconds: this.config.defaultTtlSeconds,
|
|
51
|
+
maxSizeBytes: this.config.maxSizeBytes,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* プロジェクトストアをクリア
|
|
56
|
+
*/
|
|
57
|
+
clearProjectStore() {
|
|
58
|
+
this.projectStore = null;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* キャッシュエントリを取得(スコープ優先順位に従う)
|
|
62
|
+
*/
|
|
63
|
+
async get(key) {
|
|
64
|
+
// プロジェクトキャッシュを優先する場合
|
|
65
|
+
if (this.config.preferProjectCache && this.projectStore) {
|
|
66
|
+
const projectResult = await this.projectStore.get(key);
|
|
67
|
+
if (projectResult.hit) {
|
|
68
|
+
return { ...projectResult, scope: 'project' };
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
// グローバルキャッシュから取得
|
|
72
|
+
if (this.config.enabled) {
|
|
73
|
+
const globalResult = await this.globalStore.get(key);
|
|
74
|
+
if (globalResult.hit) {
|
|
75
|
+
return { ...globalResult, scope: 'global' };
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
// プロジェクトキャッシュを後で確認(優先しない場合)
|
|
79
|
+
if (!this.config.preferProjectCache && this.projectStore) {
|
|
80
|
+
const projectResult = await this.projectStore.get(key);
|
|
81
|
+
if (projectResult.hit) {
|
|
82
|
+
return { ...projectResult, scope: 'project' };
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return { hit: false, key };
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* キャッシュエントリを保存
|
|
89
|
+
*/
|
|
90
|
+
async set(key, value, options = {}) {
|
|
91
|
+
const { scope = 'global', ...cacheOptions } = options;
|
|
92
|
+
if (scope === 'project' && this.projectStore) {
|
|
93
|
+
await this.projectStore.set(key, value, cacheOptions);
|
|
94
|
+
}
|
|
95
|
+
else if (scope === 'global' && this.config.enabled) {
|
|
96
|
+
await this.globalStore.set(key, value, cacheOptions);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* キャッシュエントリを削除
|
|
101
|
+
*/
|
|
102
|
+
async delete(key, scope) {
|
|
103
|
+
let deleted = false;
|
|
104
|
+
if (scope === 'project' || scope === undefined) {
|
|
105
|
+
if (this.projectStore) {
|
|
106
|
+
deleted = (await this.projectStore.delete(key)) || deleted;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
if (scope === 'global' || scope === undefined) {
|
|
110
|
+
if (this.config.enabled) {
|
|
111
|
+
deleted = (await this.globalStore.delete(key)) || deleted;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return deleted;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* キャッシュの存在確認
|
|
118
|
+
*/
|
|
119
|
+
async has(key) {
|
|
120
|
+
if (this.config.preferProjectCache && this.projectStore) {
|
|
121
|
+
if (await this.projectStore.has(key)) {
|
|
122
|
+
return { exists: true, scope: 'project' };
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
if (this.config.enabled && (await this.globalStore.has(key))) {
|
|
126
|
+
return { exists: true, scope: 'global' };
|
|
127
|
+
}
|
|
128
|
+
if (!this.config.preferProjectCache && this.projectStore) {
|
|
129
|
+
if (await this.projectStore.has(key)) {
|
|
130
|
+
return { exists: true, scope: 'project' };
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
return { exists: false };
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* 全エントリを削除
|
|
137
|
+
*/
|
|
138
|
+
async clear(scope) {
|
|
139
|
+
if (scope === 'project' || scope === undefined) {
|
|
140
|
+
if (this.projectStore) {
|
|
141
|
+
await this.projectStore.clear();
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
if (scope === 'global' || scope === undefined) {
|
|
145
|
+
if (this.config.enabled) {
|
|
146
|
+
await this.globalStore.clear();
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* 統計情報を取得
|
|
152
|
+
*/
|
|
153
|
+
async getStats(scope) {
|
|
154
|
+
const result = {};
|
|
155
|
+
if (scope === 'global' || scope === undefined) {
|
|
156
|
+
if (this.config.enabled) {
|
|
157
|
+
result.global = await this.globalStore.getStats();
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
if (scope === 'project' || scope === undefined) {
|
|
161
|
+
if (this.projectStore) {
|
|
162
|
+
result.project = await this.projectStore.getStats();
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
// 結合統計
|
|
166
|
+
if (scope === undefined && result.global) {
|
|
167
|
+
result.combined = {
|
|
168
|
+
totalEntries: (result.global?.totalEntries || 0) + (result.project?.totalEntries || 0),
|
|
169
|
+
totalSizeBytes: (result.global?.totalSizeBytes || 0) + (result.project?.totalSizeBytes || 0),
|
|
170
|
+
globalHitRate: result.global?.hitRate || 0,
|
|
171
|
+
projectHitRate: result.project?.hitRate || 0,
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
return result;
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* 期限切れエントリを削除
|
|
178
|
+
*/
|
|
179
|
+
async evictExpired(scope) {
|
|
180
|
+
let globalEvicted = 0;
|
|
181
|
+
let projectEvicted = 0;
|
|
182
|
+
if (scope === 'global' || scope === undefined) {
|
|
183
|
+
if (this.config.enabled) {
|
|
184
|
+
globalEvicted = await this.globalStore.evictExpired();
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
if (scope === 'project' || scope === undefined) {
|
|
188
|
+
if (this.projectStore) {
|
|
189
|
+
projectEvicted = await this.projectStore.evictExpired();
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
return { global: globalEvicted, project: projectEvicted };
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* グローバルキャッシュディレクトリを取得
|
|
196
|
+
*/
|
|
197
|
+
getGlobalCacheDir() {
|
|
198
|
+
return this.globalCacheDir;
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* 設定を取得
|
|
202
|
+
*/
|
|
203
|
+
getConfig() {
|
|
204
|
+
return { ...this.config };
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* グローバルキャッシュの有効/無効を切り替え
|
|
208
|
+
*/
|
|
209
|
+
setEnabled(enabled) {
|
|
210
|
+
this.config.enabled = enabled;
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* プロジェクトキャッシュ優先設定を変更
|
|
214
|
+
*/
|
|
215
|
+
setPreferProjectCache(prefer) {
|
|
216
|
+
this.config.preferProjectCache = prefer;
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* プロジェクトストアが設定されているか確認
|
|
220
|
+
*/
|
|
221
|
+
hasProjectStore() {
|
|
222
|
+
return this.projectStore !== null;
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* 基盤となるストアを取得
|
|
226
|
+
*/
|
|
227
|
+
getGlobalStore() {
|
|
228
|
+
return this.globalStore;
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* プロジェクトストアを取得
|
|
232
|
+
*/
|
|
233
|
+
getProjectStore() {
|
|
234
|
+
return this.projectStore;
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
// シングルトンインスタンス
|
|
238
|
+
let globalCacheInstance = null;
|
|
239
|
+
/**
|
|
240
|
+
* デフォルトのグローバルキャッシュインスタンスを取得
|
|
241
|
+
*/
|
|
242
|
+
export function getGlobalCacheStore(config) {
|
|
243
|
+
if (!globalCacheInstance) {
|
|
244
|
+
globalCacheInstance = new GlobalCacheStore(config);
|
|
245
|
+
}
|
|
246
|
+
return globalCacheInstance;
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* グローバルキャッシュインスタンスをリセット(テスト用)
|
|
250
|
+
*/
|
|
251
|
+
export function resetGlobalCacheStore() {
|
|
252
|
+
globalCacheInstance = null;
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* グローバルキャッシュストアを作成
|
|
256
|
+
*/
|
|
257
|
+
export function createGlobalCacheStore(config) {
|
|
258
|
+
return new GlobalCacheStore(config);
|
|
259
|
+
}
|
|
260
|
+
//# sourceMappingURL=global.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"global.js","sourceRoot":"","sources":["../../src/cache/global.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cache/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cache/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Query Cache Manager
|
|
3
|
+
* v1.0.0 - REQ-CACHE-001-01
|
|
4
|
+
*
|
|
5
|
+
* 検索・訪問クエリのキャッシュ管理
|
|
6
|
+
*/
|
|
7
|
+
import { FileCacheStore } from './store.js';
|
|
8
|
+
import { CacheConfig, CacheResult, CacheStats, CacheSource, CacheSetOptions } from './types.js';
|
|
9
|
+
/**
|
|
10
|
+
* 検索クエリのキャッシュキー生成パラメータ
|
|
11
|
+
*/
|
|
12
|
+
export interface SearchCacheKeyParams {
|
|
13
|
+
query: string;
|
|
14
|
+
engine?: string;
|
|
15
|
+
options?: Record<string, unknown>;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* 訪問クエリのキャッシュキー生成パラメータ
|
|
19
|
+
*/
|
|
20
|
+
export interface VisitCacheKeyParams {
|
|
21
|
+
url: string;
|
|
22
|
+
options?: {
|
|
23
|
+
extractImages?: boolean;
|
|
24
|
+
extractLinks?: boolean;
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* 埋め込みキャッシュキー生成パラメータ
|
|
29
|
+
*/
|
|
30
|
+
export interface EmbeddingCacheKeyParams {
|
|
31
|
+
text: string;
|
|
32
|
+
model?: string;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* キャッシュマネージャー設定
|
|
36
|
+
*/
|
|
37
|
+
export interface QueryCacheManagerConfig extends Partial<CacheConfig> {
|
|
38
|
+
/** 自動期限切れ削除の間隔 (秒) */
|
|
39
|
+
evictionIntervalSeconds?: number;
|
|
40
|
+
/** 統計保存の間隔 (秒) */
|
|
41
|
+
statsSaveIntervalSeconds?: number;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* クエリキャッシュマネージャー
|
|
45
|
+
* 検索、訪問、埋め込みなどのクエリ結果をキャッシュ
|
|
46
|
+
*/
|
|
47
|
+
export declare class QueryCacheManager {
|
|
48
|
+
private store;
|
|
49
|
+
private config;
|
|
50
|
+
private evictionTimer?;
|
|
51
|
+
private statsSaveTimer?;
|
|
52
|
+
constructor(config?: QueryCacheManagerConfig);
|
|
53
|
+
/**
|
|
54
|
+
* 定期的なメンテナンスタスクを開始
|
|
55
|
+
*/
|
|
56
|
+
startMaintenanceTasks(): void;
|
|
57
|
+
/**
|
|
58
|
+
* メンテナンスタスクを停止
|
|
59
|
+
*/
|
|
60
|
+
stopMaintenanceTasks(): void;
|
|
61
|
+
/**
|
|
62
|
+
* 検索クエリのキャッシュキーを生成
|
|
63
|
+
*/
|
|
64
|
+
static generateSearchKey(params: SearchCacheKeyParams): string;
|
|
65
|
+
/**
|
|
66
|
+
* 訪問クエリのキャッシュキーを生成
|
|
67
|
+
*/
|
|
68
|
+
static generateVisitKey(params: VisitCacheKeyParams): string;
|
|
69
|
+
/**
|
|
70
|
+
* 埋め込みキャッシュキーを生成
|
|
71
|
+
*/
|
|
72
|
+
static generateEmbeddingKey(params: EmbeddingCacheKeyParams): string;
|
|
73
|
+
/**
|
|
74
|
+
* 検索結果をキャッシュから取得
|
|
75
|
+
*/
|
|
76
|
+
getSearchResult<T = unknown>(params: SearchCacheKeyParams): Promise<CacheResult<T>>;
|
|
77
|
+
/**
|
|
78
|
+
* 検索結果をキャッシュに保存
|
|
79
|
+
*/
|
|
80
|
+
setSearchResult<T = unknown>(params: SearchCacheKeyParams, value: T, options?: Omit<CacheSetOptions, 'source'>): Promise<void>;
|
|
81
|
+
/**
|
|
82
|
+
* 訪問結果をキャッシュから取得
|
|
83
|
+
*/
|
|
84
|
+
getVisitResult<T = unknown>(params: VisitCacheKeyParams): Promise<CacheResult<T>>;
|
|
85
|
+
/**
|
|
86
|
+
* 訪問結果をキャッシュに保存
|
|
87
|
+
*/
|
|
88
|
+
setVisitResult<T = unknown>(params: VisitCacheKeyParams, value: T, options?: Omit<CacheSetOptions, 'source'>): Promise<void>;
|
|
89
|
+
/**
|
|
90
|
+
* 埋め込みベクトルをキャッシュから取得
|
|
91
|
+
*/
|
|
92
|
+
getEmbedding<T = unknown>(params: EmbeddingCacheKeyParams): Promise<CacheResult<T>>;
|
|
93
|
+
/**
|
|
94
|
+
* 埋め込みベクトルをキャッシュに保存
|
|
95
|
+
*/
|
|
96
|
+
setEmbedding<T = unknown>(params: EmbeddingCacheKeyParams, value: T, options?: Omit<CacheSetOptions, 'source'>): Promise<void>;
|
|
97
|
+
/**
|
|
98
|
+
* 汎用的なキャッシュ取得
|
|
99
|
+
*/
|
|
100
|
+
get<T = unknown>(key: string): Promise<CacheResult<T>>;
|
|
101
|
+
/**
|
|
102
|
+
* 汎用的なキャッシュ保存
|
|
103
|
+
*/
|
|
104
|
+
set<T = unknown>(key: string, value: T, options?: CacheSetOptions): Promise<void>;
|
|
105
|
+
/**
|
|
106
|
+
* キャッシュエントリを削除
|
|
107
|
+
*/
|
|
108
|
+
delete(key: string): Promise<boolean>;
|
|
109
|
+
/**
|
|
110
|
+
* URLに関連するキャッシュを削除
|
|
111
|
+
*/
|
|
112
|
+
invalidateUrl(url: string): Promise<number>;
|
|
113
|
+
/**
|
|
114
|
+
* 特定のソースのキャッシュをすべて削除
|
|
115
|
+
*/
|
|
116
|
+
invalidateBySource(source: CacheSource): Promise<number>;
|
|
117
|
+
/**
|
|
118
|
+
* すべてのキャッシュをクリア
|
|
119
|
+
*/
|
|
120
|
+
clear(): Promise<void>;
|
|
121
|
+
/**
|
|
122
|
+
* 統計情報を取得
|
|
123
|
+
*/
|
|
124
|
+
getStats(): Promise<CacheStats>;
|
|
125
|
+
/**
|
|
126
|
+
* 期限切れエントリを削除
|
|
127
|
+
*/
|
|
128
|
+
evictExpired(): Promise<number>;
|
|
129
|
+
/**
|
|
130
|
+
* キャッシュサマリーを取得(ログ用)
|
|
131
|
+
*/
|
|
132
|
+
getSummary(): Promise<string>;
|
|
133
|
+
/**
|
|
134
|
+
* ストアインスタンスを取得(テスト用)
|
|
135
|
+
*/
|
|
136
|
+
getStore(): FileCacheStore;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* デフォルトのキャッシュマネージャーを取得
|
|
140
|
+
*/
|
|
141
|
+
export declare function getDefaultCacheManager(config?: QueryCacheManagerConfig): QueryCacheManager;
|
|
142
|
+
/**
|
|
143
|
+
* キャッシュマネージャーを作成
|
|
144
|
+
*/
|
|
145
|
+
export declare function createCacheManager(config?: QueryCacheManagerConfig): QueryCacheManager;
|
|
146
|
+
//# sourceMappingURL=manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/cache/manager.ts"],"names":[],"mappings":"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"}
|