kiri-mcp-server 0.22.4 → 0.24.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/package.json +1 -1
- package/dist/src/client/connection-manager.d.ts +151 -0
- package/dist/src/client/connection-manager.d.ts.map +1 -0
- package/dist/src/client/connection-manager.js +375 -0
- package/dist/src/client/connection-manager.js.map +1 -0
- package/dist/src/client/proxy.d.ts +3 -0
- package/dist/src/client/proxy.d.ts.map +1 -1
- package/dist/src/client/proxy.js +237 -37
- package/dist/src/client/proxy.js.map +1 -1
- package/dist/src/client/request-queue.d.ts +103 -0
- package/dist/src/client/request-queue.d.ts.map +1 -0
- package/dist/src/client/request-queue.js +203 -0
- package/dist/src/client/request-queue.js.map +1 -0
- package/dist/src/client/start-daemon.d.ts +4 -1
- package/dist/src/client/start-daemon.d.ts.map +1 -1
- package/dist/src/client/start-daemon.js +5 -2
- package/dist/src/client/start-daemon.js.map +1 -1
- package/dist/src/shared/utils/retry.d.ts +16 -1
- package/dist/src/shared/utils/retry.d.ts.map +1 -1
- package/dist/src/shared/utils/retry.js +23 -3
- package/dist/src/shared/utils/retry.js.map +1 -1
- package/package.json +1 -1
package/dist/src/client/proxy.js
CHANGED
|
@@ -4,15 +4,38 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Transparently bridges stdio (MCP client) ↔ Unix socket (daemon).
|
|
6
6
|
* Auto-starts daemon if not running, handles retries and fallback.
|
|
7
|
+
* Supports automatic reconnection on daemon restart.
|
|
8
|
+
*
|
|
9
|
+
* @see Issue #156: MCP接続がデーモン再起動時に切断され、自動再接続しない問題への対応
|
|
7
10
|
*/
|
|
11
|
+
import { spawn } from "child_process";
|
|
8
12
|
import * as net from "net";
|
|
9
13
|
import * as path from "path";
|
|
10
14
|
import * as readline from "readline";
|
|
15
|
+
import { fileURLToPath } from "url";
|
|
11
16
|
import packageJson from "../../package.json" with { type: "json" };
|
|
12
17
|
import { defineCli } from "../shared/cli/args.js";
|
|
13
18
|
import { getSocketPath } from "../shared/utils/socket.js";
|
|
14
19
|
import { parsePositiveInt } from "../shared/utils/validation.js";
|
|
20
|
+
import { ConnectionManager, isRetriableError } from "./connection-manager.js";
|
|
15
21
|
import { startDaemon, isDaemonRunning, stopDaemon } from "./start-daemon.js";
|
|
22
|
+
/** Delay after stopping daemon before starting new processes */
|
|
23
|
+
const DAEMON_STOP_WAIT_MS = 1000;
|
|
24
|
+
/**
|
|
25
|
+
* Build daemon startup options from proxy options
|
|
26
|
+
*/
|
|
27
|
+
function buildDaemonOptions(options) {
|
|
28
|
+
return {
|
|
29
|
+
repoRoot: options.repoRoot,
|
|
30
|
+
databasePath: options.databasePath,
|
|
31
|
+
socketPath: options.socketPath,
|
|
32
|
+
watchMode: options.watchMode,
|
|
33
|
+
debounceMs: options.debounceMs,
|
|
34
|
+
allowDegrade: options.allowDegrade,
|
|
35
|
+
securityConfigPath: options.securityConfigPath,
|
|
36
|
+
securityLockPath: options.securityLockPath,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
16
39
|
/**
|
|
17
40
|
* CLI specification for kiri proxy
|
|
18
41
|
*/
|
|
@@ -92,6 +115,43 @@ const PROXY_CLI_SPEC = {
|
|
|
92
115
|
},
|
|
93
116
|
],
|
|
94
117
|
},
|
|
118
|
+
{
|
|
119
|
+
title: "Indexing",
|
|
120
|
+
options: [
|
|
121
|
+
{
|
|
122
|
+
flag: "full",
|
|
123
|
+
type: "boolean",
|
|
124
|
+
description: "Run full reindex and exit (stops daemon if running, restarts after indexing)",
|
|
125
|
+
default: false,
|
|
126
|
+
},
|
|
127
|
+
],
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
title: "Reconnection",
|
|
131
|
+
options: [
|
|
132
|
+
{
|
|
133
|
+
flag: "max-reconnect-attempts",
|
|
134
|
+
type: "string",
|
|
135
|
+
description: "Maximum number of reconnection attempts (default: 10)",
|
|
136
|
+
placeholder: "<count>",
|
|
137
|
+
default: "10",
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
flag: "reconnect-delay",
|
|
141
|
+
type: "string",
|
|
142
|
+
description: "Initial reconnection delay in milliseconds (default: 500)",
|
|
143
|
+
placeholder: "<ms>",
|
|
144
|
+
default: "500",
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
flag: "reconnect-max-delay",
|
|
148
|
+
type: "string",
|
|
149
|
+
description: "Maximum reconnection delay in milliseconds (default: 30000)",
|
|
150
|
+
placeholder: "<ms>",
|
|
151
|
+
default: "30000",
|
|
152
|
+
},
|
|
153
|
+
],
|
|
154
|
+
},
|
|
95
155
|
],
|
|
96
156
|
examples: [
|
|
97
157
|
"kiri --repo /path/to/repo --db /path/to/index.duckdb",
|
|
@@ -120,6 +180,10 @@ function parseProxyArgs() {
|
|
|
120
180
|
allowDegrade: values["allow-degrade"] || false,
|
|
121
181
|
securityConfigPath: values["security-config"],
|
|
122
182
|
securityLockPath: values["security-lock"],
|
|
183
|
+
fullIndex: values.full || false,
|
|
184
|
+
maxReconnectAttempts: parsePositiveInt(values["max-reconnect-attempts"], 10, "max reconnect attempts"),
|
|
185
|
+
reconnectInitialDelayMs: parsePositiveInt(values["reconnect-delay"], 500, "reconnect delay"),
|
|
186
|
+
reconnectMaxDelayMs: parsePositiveInt(values["reconnect-max-delay"], 30000, "reconnect max delay"),
|
|
123
187
|
};
|
|
124
188
|
}
|
|
125
189
|
/**
|
|
@@ -176,7 +240,7 @@ async function checkDaemonVersion(socket) {
|
|
|
176
240
|
/**
|
|
177
241
|
* デーモンに接続を試みる(リトライロジック付き)
|
|
178
242
|
*/
|
|
179
|
-
async function
|
|
243
|
+
async function _connectToDaemon(socketPath, maxRetries, retryDelayMs) {
|
|
180
244
|
for (let attempt = 1; attempt <= maxRetries; attempt++) {
|
|
181
245
|
try {
|
|
182
246
|
const socket = net.connect(socketPath);
|
|
@@ -197,12 +261,82 @@ async function connectToDaemon(socketPath, maxRetries, retryDelayMs) {
|
|
|
197
261
|
}
|
|
198
262
|
}
|
|
199
263
|
}
|
|
200
|
-
throw new Error("Unexpected error in
|
|
264
|
+
throw new Error("Unexpected error in _connectToDaemon");
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Stdio ↔ Socket ブリッジを確立(再接続対応版)
|
|
268
|
+
*
|
|
269
|
+
* ConnectionManagerを使用して、デーモン再起動時も自動的に再接続を試みる。
|
|
270
|
+
* 再接続中のリクエストはRequestQueueでバッファリングされ、再接続後に再送信される。
|
|
271
|
+
*
|
|
272
|
+
* @see Issue #156
|
|
273
|
+
*/
|
|
274
|
+
function createReconnectingBridge(connectionManager) {
|
|
275
|
+
const requestQueue = connectionManager.getRequestQueue();
|
|
276
|
+
// stdin → socket
|
|
277
|
+
const stdinReader = readline.createInterface({
|
|
278
|
+
input: process.stdin,
|
|
279
|
+
crlfDelay: Infinity,
|
|
280
|
+
});
|
|
281
|
+
stdinReader.on("line", async (line) => {
|
|
282
|
+
// リクエストをキューに追加
|
|
283
|
+
requestQueue.enqueue(line);
|
|
284
|
+
const socket = connectionManager.getSocket();
|
|
285
|
+
if (socket && connectionManager.getState().status === "connected") {
|
|
286
|
+
try {
|
|
287
|
+
socket.write(line + "\n");
|
|
288
|
+
}
|
|
289
|
+
catch (err) {
|
|
290
|
+
console.error(`[Proxy] Write error: ${err.message}`);
|
|
291
|
+
// 書き込みエラーは無視(再接続時に再送信される)
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
// 接続されていない場合、リクエストはキューに保持され、再接続後に再送信される
|
|
295
|
+
});
|
|
296
|
+
stdinReader.on("close", () => {
|
|
297
|
+
connectionManager.close();
|
|
298
|
+
process.exit(0);
|
|
299
|
+
});
|
|
300
|
+
// socket → stdout のイベントリスナーを設定
|
|
301
|
+
// Note: dequeue処理はConnectionManager.setupSocketListeners()で行われる
|
|
302
|
+
connectionManager.on("data", (data) => {
|
|
303
|
+
// 改行区切りでレスポンスを処理し、stdoutへ出力
|
|
304
|
+
const lines = data
|
|
305
|
+
.toString()
|
|
306
|
+
.split("\n")
|
|
307
|
+
.filter((line) => line.trim());
|
|
308
|
+
for (const line of lines) {
|
|
309
|
+
console.log(line);
|
|
310
|
+
}
|
|
311
|
+
});
|
|
312
|
+
// 再接続イベントのログ出力
|
|
313
|
+
connectionManager.on("reconnecting", (attempt, maxAttempts, delayMs) => {
|
|
314
|
+
console.error(`[Proxy] Reconnection attempt ${attempt}/${maxAttempts} (delay: ${Math.round(delayMs)}ms)`);
|
|
315
|
+
});
|
|
316
|
+
connectionManager.on("reconnected", () => {
|
|
317
|
+
console.error("[Proxy] Reconnected to daemon successfully");
|
|
318
|
+
});
|
|
319
|
+
connectionManager.on("disconnected", (reason) => {
|
|
320
|
+
console.error(`[Proxy] Connection lost: ${reason}. Attempting reconnection...`);
|
|
321
|
+
});
|
|
322
|
+
connectionManager.on("maxRetriesExceeded", () => {
|
|
323
|
+
console.error("[Proxy] Max reconnection attempts exceeded. Exiting.");
|
|
324
|
+
process.exit(1);
|
|
325
|
+
});
|
|
326
|
+
connectionManager.on("error", (err) => {
|
|
327
|
+
if (!isRetriableError(err)) {
|
|
328
|
+
console.error(`[Proxy] Fatal socket error: ${err.message}`);
|
|
329
|
+
process.exit(1);
|
|
330
|
+
}
|
|
331
|
+
// 再接続可能なエラーはConnectionManagerが自動的に処理
|
|
332
|
+
});
|
|
201
333
|
}
|
|
202
334
|
/**
|
|
203
|
-
* Stdio ↔ Socket
|
|
335
|
+
* Stdio ↔ Socket ブリッジを確立(レガシー版、後方互換性のために残す)
|
|
336
|
+
*
|
|
337
|
+
* @deprecated createReconnectingBridgeを使用してください
|
|
204
338
|
*/
|
|
205
|
-
function
|
|
339
|
+
function _bridgeStdioToSocket(socket) {
|
|
206
340
|
// stdin → socket
|
|
207
341
|
const stdinReader = readline.createInterface({
|
|
208
342
|
input: process.stdin,
|
|
@@ -231,31 +365,95 @@ function bridgeStdioToSocket(socket) {
|
|
|
231
365
|
process.exit(1);
|
|
232
366
|
});
|
|
233
367
|
}
|
|
368
|
+
/**
|
|
369
|
+
* Run indexer as a child process to ensure DuckDB file lock is released
|
|
370
|
+
*/
|
|
371
|
+
async function runIndexerProcess(repoRoot, databasePath) {
|
|
372
|
+
return new Promise((resolve, reject) => {
|
|
373
|
+
// Get the path to the indexer CLI
|
|
374
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
375
|
+
const __dirname = path.dirname(__filename);
|
|
376
|
+
const indexerPath = path.join(__dirname, "../indexer/cli.js");
|
|
377
|
+
const child = spawn(process.execPath, [indexerPath, "--repo", repoRoot, "--db", databasePath, "--full"], {
|
|
378
|
+
stdio: ["ignore", "inherit", "inherit"],
|
|
379
|
+
});
|
|
380
|
+
child.on("error", (err) => {
|
|
381
|
+
reject(new Error(`Failed to spawn indexer: ${err.message}`));
|
|
382
|
+
});
|
|
383
|
+
child.on("exit", (code) => {
|
|
384
|
+
if (code === 0) {
|
|
385
|
+
resolve();
|
|
386
|
+
}
|
|
387
|
+
else {
|
|
388
|
+
reject(new Error(`Indexer exited with code ${code}`));
|
|
389
|
+
}
|
|
390
|
+
});
|
|
391
|
+
});
|
|
392
|
+
}
|
|
393
|
+
/**
|
|
394
|
+
* Handle --full flag: stop daemon, run full index, restart daemon
|
|
395
|
+
*
|
|
396
|
+
* This function implements index-only mode where:
|
|
397
|
+
* 1. Existing daemon is stopped (if running)
|
|
398
|
+
* 2. Full reindex is performed (in child process to release DB lock)
|
|
399
|
+
* 3. Daemon is restarted
|
|
400
|
+
*/
|
|
401
|
+
async function handleFullIndex(options) {
|
|
402
|
+
try {
|
|
403
|
+
// Step 1: Stop existing daemon if running (use configured socket path)
|
|
404
|
+
const wasRunning = await isDaemonRunning(options.databasePath, options.socketPath);
|
|
405
|
+
if (wasRunning) {
|
|
406
|
+
console.error("[Full Index] Stopping existing daemon...");
|
|
407
|
+
await stopDaemon(options.databasePath);
|
|
408
|
+
await new Promise((resolve) => setTimeout(resolve, DAEMON_STOP_WAIT_MS));
|
|
409
|
+
console.error("[Full Index] Daemon stopped");
|
|
410
|
+
}
|
|
411
|
+
// Step 2: Run full index in child process (ensures DB lock is released on exit)
|
|
412
|
+
console.error(`[Full Index] Starting full reindex for ${options.repoRoot}...`);
|
|
413
|
+
await runIndexerProcess(options.repoRoot, options.databasePath);
|
|
414
|
+
console.error("[Full Index] Indexing complete");
|
|
415
|
+
// Step 3: Restart daemon
|
|
416
|
+
console.error("[Full Index] Starting daemon...");
|
|
417
|
+
await startDaemon(buildDaemonOptions(options));
|
|
418
|
+
console.error("[Full Index] Daemon started successfully");
|
|
419
|
+
}
|
|
420
|
+
catch (err) {
|
|
421
|
+
const error = err;
|
|
422
|
+
console.error(`[Full Index] Failed: ${error.message}`);
|
|
423
|
+
process.exit(1);
|
|
424
|
+
}
|
|
425
|
+
}
|
|
234
426
|
/**
|
|
235
427
|
* メイン関数:プロキシを起動
|
|
428
|
+
*
|
|
429
|
+
* ConnectionManagerを使用して、デーモン再起動時も自動的に再接続を試みる。
|
|
430
|
+
*
|
|
431
|
+
* @see Issue #156
|
|
236
432
|
*/
|
|
237
433
|
async function main() {
|
|
238
434
|
const options = parseProxyArgs();
|
|
435
|
+
// Handle --full flag: index-only mode
|
|
436
|
+
if (options.fullIndex) {
|
|
437
|
+
await handleFullIndex(options);
|
|
438
|
+
return; // Exit without starting MCP proxy
|
|
439
|
+
}
|
|
239
440
|
try {
|
|
240
|
-
//
|
|
241
|
-
const
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
}
|
|
257
|
-
// デーモンに接続
|
|
258
|
-
const socket = await connectToDaemon(options.socketPath, options.maxRetries, options.retryDelayMs);
|
|
441
|
+
// ConnectionManagerを作成
|
|
442
|
+
const connectionManager = new ConnectionManager({
|
|
443
|
+
socketPath: options.socketPath,
|
|
444
|
+
databasePath: options.databasePath,
|
|
445
|
+
repoRoot: options.repoRoot,
|
|
446
|
+
maxReconnectAttempts: options.maxReconnectAttempts,
|
|
447
|
+
reconnectInitialDelayMs: options.reconnectInitialDelayMs,
|
|
448
|
+
reconnectMaxDelayMs: options.reconnectMaxDelayMs,
|
|
449
|
+
watchMode: options.watchMode,
|
|
450
|
+
debounceMs: options.debounceMs,
|
|
451
|
+
allowDegrade: options.allowDegrade,
|
|
452
|
+
securityConfigPath: options.securityConfigPath,
|
|
453
|
+
securityLockPath: options.securityLockPath,
|
|
454
|
+
});
|
|
455
|
+
// 初回接続
|
|
456
|
+
const socket = await connectionManager.connect();
|
|
259
457
|
// バージョン互換性をチェック
|
|
260
458
|
try {
|
|
261
459
|
await checkDaemonVersion(socket);
|
|
@@ -266,37 +464,39 @@ async function main() {
|
|
|
266
464
|
if (versionErr.message.includes("Version mismatch")) {
|
|
267
465
|
console.error(`[Proxy] ${versionErr.message}`);
|
|
268
466
|
console.error("[Proxy] Automatically restarting daemon with current version...");
|
|
269
|
-
|
|
467
|
+
connectionManager.close();
|
|
270
468
|
// 古いデーモンを停止
|
|
271
469
|
await stopDaemon(options.databasePath);
|
|
272
470
|
// 少し待ってから新しいデーモンを起動
|
|
273
|
-
await new Promise((resolve) => setTimeout(resolve,
|
|
274
|
-
//
|
|
275
|
-
|
|
276
|
-
repoRoot: options.repoRoot,
|
|
277
|
-
databasePath: options.databasePath,
|
|
471
|
+
await new Promise((resolve) => setTimeout(resolve, DAEMON_STOP_WAIT_MS));
|
|
472
|
+
// 新しいConnectionManagerを作成して再接続
|
|
473
|
+
const newConnectionManager = new ConnectionManager({
|
|
278
474
|
socketPath: options.socketPath,
|
|
475
|
+
databasePath: options.databasePath,
|
|
476
|
+
repoRoot: options.repoRoot,
|
|
477
|
+
maxReconnectAttempts: options.maxReconnectAttempts,
|
|
478
|
+
reconnectInitialDelayMs: options.reconnectInitialDelayMs,
|
|
479
|
+
reconnectMaxDelayMs: options.reconnectMaxDelayMs,
|
|
279
480
|
watchMode: options.watchMode,
|
|
280
481
|
debounceMs: options.debounceMs,
|
|
281
482
|
allowDegrade: options.allowDegrade,
|
|
282
483
|
securityConfigPath: options.securityConfigPath,
|
|
283
484
|
securityLockPath: options.securityLockPath,
|
|
284
485
|
});
|
|
486
|
+
const newSocket = await newConnectionManager.connect();
|
|
285
487
|
console.error("[Proxy] Daemon restarted successfully, reconnecting...");
|
|
286
|
-
// 再接続を試みる
|
|
287
|
-
const newSocket = await connectToDaemon(options.socketPath, options.maxRetries, options.retryDelayMs);
|
|
288
488
|
// 再度バージョンチェック
|
|
289
489
|
await checkDaemonVersion(newSocket);
|
|
290
|
-
console.error("[Proxy] Connected to daemon. Bridging stdio ↔ socket...");
|
|
291
|
-
// Stdio ↔ Socket
|
|
292
|
-
|
|
490
|
+
console.error("[Proxy] Connected to daemon. Bridging stdio ↔ socket (with reconnection support)...");
|
|
491
|
+
// Stdio ↔ Socket ブリッジを確立(再接続対応版)
|
|
492
|
+
createReconnectingBridge(newConnectionManager);
|
|
293
493
|
return;
|
|
294
494
|
}
|
|
295
495
|
throw versionError;
|
|
296
496
|
}
|
|
297
|
-
console.error("[Proxy] Connected to daemon. Bridging stdio ↔ socket...");
|
|
298
|
-
// Stdio ↔ Socket
|
|
299
|
-
|
|
497
|
+
console.error("[Proxy] Connected to daemon. Bridging stdio ↔ socket (with reconnection support)...");
|
|
498
|
+
// Stdio ↔ Socket ブリッジを確立(再接続対応版)
|
|
499
|
+
createReconnectingBridge(connectionManager);
|
|
300
500
|
}
|
|
301
501
|
catch (err) {
|
|
302
502
|
const error = err;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../../src/client/proxy.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../../src/client/proxy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RequestQueue - 再接続中のリクエストをバッファリングし、再接続後に再送信する
|
|
3
|
+
*
|
|
4
|
+
* @see Issue #156: MCP接続がデーモン再起動時に切断され、自動再接続しない問題への対応
|
|
5
|
+
*/
|
|
6
|
+
import type * as net from "net";
|
|
7
|
+
/**
|
|
8
|
+
* 保留中のリクエスト情報
|
|
9
|
+
*/
|
|
10
|
+
export interface PendingRequest {
|
|
11
|
+
/** JSON-RPC リクエストID */
|
|
12
|
+
id: string | number;
|
|
13
|
+
/** JSON-RPC リクエスト文字列(送信用) */
|
|
14
|
+
data: string;
|
|
15
|
+
/** 送信時刻(タイムアウト計算用) */
|
|
16
|
+
timestamp: number;
|
|
17
|
+
/** タイムアウト時間(ミリ秒) */
|
|
18
|
+
timeoutMs: number;
|
|
19
|
+
/** リトライ回数 */
|
|
20
|
+
retryCount: number;
|
|
21
|
+
/** タイムアウトタイマーID */
|
|
22
|
+
timeoutTimer?: NodeJS.Timeout;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* RequestQueueのオプション
|
|
26
|
+
*/
|
|
27
|
+
export interface RequestQueueOptions {
|
|
28
|
+
/** リクエストタイムアウト時間(ミリ秒)。デフォルト: 30000 */
|
|
29
|
+
requestTimeoutMs?: number;
|
|
30
|
+
/** 最大保留リクエスト数。デフォルト: 100 */
|
|
31
|
+
maxPendingRequests?: number;
|
|
32
|
+
/** 最大リトライ回数。デフォルト: 3 */
|
|
33
|
+
maxRetryCount?: number;
|
|
34
|
+
/** タイムアウト時のコールバック */
|
|
35
|
+
onTimeout?: (request: PendingRequest) => void;
|
|
36
|
+
/** キュー満杯時のコールバック */
|
|
37
|
+
onQueueFull?: (request: PendingRequest) => void;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* JSON-RPCリクエストからIDを抽出するユーティリティ
|
|
41
|
+
*/
|
|
42
|
+
export declare function extractRequestId(data: string): string | number | null;
|
|
43
|
+
/**
|
|
44
|
+
* リクエストキュー
|
|
45
|
+
*
|
|
46
|
+
* 再接続中のリクエストをバッファリングし、再接続後に再送信する。
|
|
47
|
+
* タイムアウト管理とリトライ制限を提供する。
|
|
48
|
+
*/
|
|
49
|
+
export declare class RequestQueue {
|
|
50
|
+
private readonly queue;
|
|
51
|
+
private readonly requestTimeoutMs;
|
|
52
|
+
private readonly maxPendingRequests;
|
|
53
|
+
private readonly maxRetryCount;
|
|
54
|
+
private readonly onTimeout;
|
|
55
|
+
private readonly onQueueFull;
|
|
56
|
+
constructor(options?: RequestQueueOptions);
|
|
57
|
+
/**
|
|
58
|
+
* リクエストをキューに追加
|
|
59
|
+
*
|
|
60
|
+
* @param data - JSON-RPC リクエスト文字列
|
|
61
|
+
* @returns 追加されたリクエスト情報、またはnull(notificationの場合やキュー満杯の場合)
|
|
62
|
+
*/
|
|
63
|
+
enqueue(data: string): PendingRequest | null;
|
|
64
|
+
/**
|
|
65
|
+
* レスポンス受信時にキューからリクエストを削除
|
|
66
|
+
*
|
|
67
|
+
* @param id - JSON-RPC リクエストID
|
|
68
|
+
* @returns 削除されたリクエスト情報、またはundefined
|
|
69
|
+
*/
|
|
70
|
+
dequeue(id: string | number): PendingRequest | undefined;
|
|
71
|
+
/**
|
|
72
|
+
* 再接続後に保留中のリクエストを再送信
|
|
73
|
+
*
|
|
74
|
+
* @param socket - 再接続後のソケット
|
|
75
|
+
* @returns 再送信されたリクエスト数
|
|
76
|
+
*/
|
|
77
|
+
replayAll(socket: net.Socket): Promise<number>;
|
|
78
|
+
/**
|
|
79
|
+
* キュー内のリクエスト数を取得
|
|
80
|
+
*/
|
|
81
|
+
size(): number;
|
|
82
|
+
/**
|
|
83
|
+
* キューをクリア(全リクエストのタイムアウトタイマーも解除)
|
|
84
|
+
*/
|
|
85
|
+
clear(): void;
|
|
86
|
+
/**
|
|
87
|
+
* 全ての保留中リクエストを取得(デバッグ用)
|
|
88
|
+
*/
|
|
89
|
+
getAll(): PendingRequest[];
|
|
90
|
+
/**
|
|
91
|
+
* 特定のリクエストを取得
|
|
92
|
+
*/
|
|
93
|
+
get(id: string | number): PendingRequest | undefined;
|
|
94
|
+
/**
|
|
95
|
+
* タイムアウト処理
|
|
96
|
+
*/
|
|
97
|
+
private handleTimeout;
|
|
98
|
+
/**
|
|
99
|
+
* ソケットへの書き込み(Promise化)
|
|
100
|
+
*/
|
|
101
|
+
private writeToSocket;
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=request-queue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request-queue.d.ts","sourceRoot":"","sources":["../../../src/client/request-queue.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,KAAK,GAAG,MAAM,KAAK,CAAC;AAEhC;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,uBAAuB;IACvB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,sBAAsB;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,sCAAsC;IACtC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,4BAA4B;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,wBAAwB;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qBAAqB;IACrB,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;IAC9C,oBAAoB;IACpB,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;CACjD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAYrE;AAED;;;;;GAKG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmD;IACzE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAS;IAC5C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkD;IAC5E,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAkD;gBAElE,OAAO,GAAE,mBAAwB;IAQ7C;;;;;OAKG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IA4C5C;;;;;OAKG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,cAAc,GAAG,SAAS;IAWxD;;;;;OAKG;IACG,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA8CpD;;OAEG;IACH,IAAI,IAAI,MAAM;IAId;;OAEG;IACH,KAAK,IAAI,IAAI;IASb;;OAEG;IACH,MAAM,IAAI,cAAc,EAAE;IAI1B;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,cAAc,GAAG,SAAS;IAIpD;;OAEG;IACH,OAAO,CAAC,aAAa;IAQrB;;OAEG;IACH,OAAO,CAAC,aAAa;CAWtB"}
|