@sunub/obsidian-mcp-server 0.3.25 → 0.3.26
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/build/cli/App.d.ts +1 -1
- package/build/cli/App.js +150 -95
- package/build/cli/App.js.map +1 -1
- package/build/cli/AppContainer.d.ts +1 -1
- package/build/cli/constants.js +4 -0
- package/build/cli/constants.js.map +1 -1
- package/build/cli/context/KeypressContext.d.ts +1 -1
- package/build/cli/context/KeypressContext.js +3 -0
- package/build/cli/context/KeypressContext.js.map +1 -1
- package/build/cli/hooks/useDispatcher.js +3 -0
- package/build/cli/hooks/useDispatcher.js.map +1 -1
- package/build/cli/hooks/useLlmStream/compress.d.ts +16 -0
- package/build/cli/hooks/useLlmStream/compress.js +168 -0
- package/build/cli/hooks/useLlmStream/compress.js.map +1 -0
- package/build/cli/hooks/useLlmStream/llmService.js +12 -5
- package/build/cli/hooks/useLlmStream/llmService.js.map +1 -1
- package/build/cli/hooks/useLlmStream/markdownUtils.d.ts +6 -0
- package/build/cli/hooks/useLlmStream/markdownUtils.js +110 -0
- package/build/cli/hooks/useLlmStream/markdownUtils.js.map +1 -0
- package/build/cli/hooks/useLlmStream/types.d.ts +189 -0
- package/build/cli/hooks/useLlmStream/types.js +41 -1
- package/build/cli/hooks/useLlmStream/types.js.map +1 -1
- package/build/cli/hooks/useLlmStream/useLlmStream.d.ts +13 -1
- package/build/cli/hooks/useLlmStream/useLlmStream.js +75 -22
- package/build/cli/hooks/useLlmStream/useLlmStream.js.map +1 -1
- package/build/cli/hooks/useRagContext.js +0 -1
- package/build/cli/hooks/useRagContext.js.map +1 -1
- package/build/cli/hooks/useSlashCommand.d.ts +22 -0
- package/build/cli/hooks/useSlashCommand.js +61 -0
- package/build/cli/hooks/useSlashCommand.js.map +1 -0
- package/build/cli/hooks/useStateAndRef.d.ts +2 -0
- package/build/cli/hooks/useStateAndRef.js +18 -0
- package/build/cli/hooks/useStateAndRef.js.map +1 -0
- package/build/cli/index.js +3 -0
- package/build/cli/index.js.map +1 -1
- package/build/cli/services/InputOffloadService.d.ts +2 -0
- package/build/cli/services/InputOffloadService.js +15 -0
- package/build/cli/services/InputOffloadService.js.map +1 -1
- package/build/cli/types.d.ts +1 -1
- package/build/cli/ui/CLILogo.d.ts +1 -1
- package/build/cli/ui/HelpCommands.d.ts +1 -1
- package/build/cli/ui/HistoryItemDisplay.js +9 -3
- package/build/cli/ui/HistoryItemDisplay.js.map +1 -1
- package/build/cli/ui/InputPrompt.js +9 -7
- package/build/cli/ui/InputPrompt.js.map +1 -1
- package/build/cli/ui/LLMErrorComponent.d.ts +1 -1
- package/build/cli/ui/LLMHealthChecker.d.ts +1 -1
- package/build/cli/ui/LLMStatusLoader.d.ts +1 -1
- package/build/cli/ui/MarkdownDisplay.d.ts +1 -1
- package/build/cli/ui/SuggestionsDisplay.d.ts +1 -1
- package/build/cli/ui/SystemInfoSummaryBox.d.ts +1 -1
- package/build/cli/ui/ThinkingIndicator.d.ts +1 -1
- package/build/cli/utils/errors.d.ts +14 -0
- package/build/cli/utils/errors.js +64 -0
- package/build/cli/utils/errors.js.map +1 -0
- package/build/cli/utils/retry.d.ts +16 -0
- package/build/cli/utils/retry.js +135 -0
- package/build/cli/utils/retry.js.map +1 -0
- package/build/cli/utils/textUtil.js +0 -6
- package/build/cli/utils/textUtil.js.map +1 -1
- package/build/config.d.ts +3 -0
- package/build/config.js +4 -0
- package/build/config.js.map +1 -1
- package/build/index.js +1 -1
- package/build/index.js.map +1 -1
- package/build/tools/vault/params.js +1 -1
- package/build/tools/vault/params.js.map +1 -1
- package/build/tools/vault/utils/actions/collect_context.js +44 -18
- package/build/tools/vault/utils/actions/collect_context.js.map +1 -1
- package/build/tools/vault/utils/actions/read.js +39 -9
- package/build/tools/vault/utils/actions/read.js.map +1 -1
- package/build/utils/RAGIndexer.d.ts +6 -2
- package/build/utils/RAGIndexer.js +14 -85
- package/build/utils/RAGIndexer.js.map +1 -1
- package/build/utils/RerankerClient.d.ts +4 -4
- package/build/utils/VaultManger/VaultManager.d.ts +1 -0
- package/build/utils/VaultManger/VaultManager.js +68 -26
- package/build/utils/VaultManger/VaultManager.js.map +1 -1
- package/build/utils/VectorDB.d.ts +1 -0
- package/build/utils/VectorDB.js +128 -88
- package/build/utils/VectorDB.js.map +1 -1
- package/build/utils/worker/WorkerPool.d.ts +15 -0
- package/build/utils/worker/WorkerPool.js +89 -0
- package/build/utils/worker/WorkerPool.js.map +1 -0
- package/build/utils/worker/chunkingWorker.d.ts +11 -0
- package/build/utils/worker/chunkingWorker.js +92 -0
- package/build/utils/worker/chunkingWorker.js.map +1 -0
- package/package.json +1 -3
|
@@ -2,5 +2,5 @@ interface LLMErrorComponentProps {
|
|
|
2
2
|
apiUrl: string;
|
|
3
3
|
errorMessage: string;
|
|
4
4
|
}
|
|
5
|
-
export declare function LLMErrorComponent({ apiUrl, errorMessage, }: LLMErrorComponentProps): import("react
|
|
5
|
+
export declare function LLMErrorComponent({ apiUrl, errorMessage, }: LLMErrorComponentProps): import("react").JSX.Element;
|
|
6
6
|
export {};
|
|
@@ -4,5 +4,5 @@ interface LLMHealthCheckerProps {
|
|
|
4
4
|
setLLMStatus: (status: LLMHealthStatus) => void;
|
|
5
5
|
setErrorMessage: (message: string) => void;
|
|
6
6
|
}
|
|
7
|
-
export declare const LLMHealthChecker: ({ llmApi_URL, setLLMStatus, setErrorMessage, }: LLMHealthCheckerProps) => import("react
|
|
7
|
+
export declare const LLMHealthChecker: ({ llmApi_URL, setLLMStatus, setErrorMessage, }: LLMHealthCheckerProps) => import("react").JSX.Element;
|
|
8
8
|
export {};
|
|
@@ -6,5 +6,5 @@ interface LLMHealthCheckerProps {
|
|
|
6
6
|
mcp: UseMcpManagerReturn;
|
|
7
7
|
}
|
|
8
8
|
export declare function isNarrowWidth(width: number): boolean;
|
|
9
|
-
export declare function LLMStatusLoader({ setLLMStatus, mcp }: LLMHealthCheckerProps): import("react
|
|
9
|
+
export declare function LLMStatusLoader({ setLLMStatus, mcp }: LLMHealthCheckerProps): import("react").JSX.Element;
|
|
10
10
|
export {};
|
|
@@ -5,4 +5,4 @@ export interface MarkdownDisplayProps {
|
|
|
5
5
|
terminalWidth: number;
|
|
6
6
|
renderMarkdown?: boolean;
|
|
7
7
|
}
|
|
8
|
-
export declare function MarkdownDisplay(_props: MarkdownDisplayProps): import("react
|
|
8
|
+
export declare function MarkdownDisplay(_props: MarkdownDisplayProps): import("react").JSX.Element;
|
|
@@ -22,4 +22,4 @@ interface SuggestionsDisplayProps {
|
|
|
22
22
|
}
|
|
23
23
|
export declare const MAX_SUGGESTIONS_TO_SHOW = 8;
|
|
24
24
|
export { MAX_WIDTH };
|
|
25
|
-
export declare function SuggestionsDisplay({ suggestions, activeIndex, isLoading, width, scrollOffset, userInput, mode, expandedIndex, }: SuggestionsDisplayProps): import("react
|
|
25
|
+
export declare function SuggestionsDisplay({ suggestions, activeIndex, isLoading, width, scrollOffset, userInput, mode, expandedIndex, }: SuggestionsDisplayProps): import("react").JSX.Element | null;
|
|
@@ -2,5 +2,5 @@ import type React from "react";
|
|
|
2
2
|
interface SystemInfoSummaryBoxProps {
|
|
3
3
|
children: React.ReactNode;
|
|
4
4
|
}
|
|
5
|
-
export declare function SystemInfoSummaryBox({ children }: SystemInfoSummaryBoxProps):
|
|
5
|
+
export declare function SystemInfoSummaryBox({ children }: SystemInfoSummaryBoxProps): React.JSX.Element;
|
|
6
6
|
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface ApiErrorInfo {
|
|
2
|
+
message: string;
|
|
3
|
+
status: number;
|
|
4
|
+
}
|
|
5
|
+
export declare class ApiError extends Error {
|
|
6
|
+
status: number;
|
|
7
|
+
constructor(options: ApiErrorInfo);
|
|
8
|
+
}
|
|
9
|
+
export declare class ModelNotFoundError extends Error {
|
|
10
|
+
code: number;
|
|
11
|
+
constructor(message: string, code?: number);
|
|
12
|
+
}
|
|
13
|
+
export declare function getErrorStatus(error: unknown): number | undefined;
|
|
14
|
+
export declare function getNetworkErrorCode(error: unknown): string | undefined;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
export class ApiError extends Error {
|
|
2
|
+
status;
|
|
3
|
+
constructor(options) {
|
|
4
|
+
super(options.message);
|
|
5
|
+
this.status = options.status;
|
|
6
|
+
this.name = "ApiError";
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export class ModelNotFoundError extends Error {
|
|
10
|
+
code;
|
|
11
|
+
constructor(message, code) {
|
|
12
|
+
super(message);
|
|
13
|
+
this.name = "ModelNotFoundError";
|
|
14
|
+
this.code = code ? code : 404;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
export function getErrorStatus(error) {
|
|
18
|
+
if (typeof error === "object" && error !== null) {
|
|
19
|
+
if ("status" in error && typeof error.status === "number") {
|
|
20
|
+
return error.status;
|
|
21
|
+
}
|
|
22
|
+
// Check for error.response.status (common in axios errors)
|
|
23
|
+
if ("response" in error &&
|
|
24
|
+
typeof error.response === "object" &&
|
|
25
|
+
error.response !== null) {
|
|
26
|
+
const response = error.response;
|
|
27
|
+
if ("status" in response && typeof response.status === "number") {
|
|
28
|
+
return response.status;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return undefined;
|
|
33
|
+
}
|
|
34
|
+
export function getNetworkErrorCode(error) {
|
|
35
|
+
const getCode = (obj) => {
|
|
36
|
+
if (typeof obj !== "object" || obj === null) {
|
|
37
|
+
return undefined;
|
|
38
|
+
}
|
|
39
|
+
if ("code" in obj && typeof obj.code === "string") {
|
|
40
|
+
return obj.code;
|
|
41
|
+
}
|
|
42
|
+
return undefined;
|
|
43
|
+
};
|
|
44
|
+
const directCode = getCode(error);
|
|
45
|
+
if (directCode) {
|
|
46
|
+
return directCode;
|
|
47
|
+
}
|
|
48
|
+
let current = error;
|
|
49
|
+
const maxDepth = 5;
|
|
50
|
+
for (let depth = 0; depth < maxDepth; depth++) {
|
|
51
|
+
if (typeof current !== "object" ||
|
|
52
|
+
current === null ||
|
|
53
|
+
!("cause" in current)) {
|
|
54
|
+
break;
|
|
55
|
+
}
|
|
56
|
+
current = current.cause;
|
|
57
|
+
const code = getCode(current);
|
|
58
|
+
if (code) {
|
|
59
|
+
return code;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return undefined;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/cli/utils/errors.ts"],"names":[],"mappings":"AAKA,MAAM,OAAO,QAAS,SAAQ,KAAK;IAClC,MAAM,CAAS;IACf,YAAY,OAAqB;QAChC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;IACxB,CAAC;CACD;AAED,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAC5C,IAAI,CAAS;IACb,YAAY,OAAe,EAAE,IAAa;QACzC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;QACjC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;IAC/B,CAAC;CACD;AAED,MAAM,UAAU,cAAc,CAAC,KAAc;IAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACjD,IAAI,QAAQ,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC3D,OAAO,KAAK,CAAC,MAAM,CAAC;QACrB,CAAC;QACD,2DAA2D;QAC3D,IACC,UAAU,IAAI,KAAK;YACnB,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ;YAClC,KAAK,CAAC,QAAQ,KAAK,IAAI,EACtB,CAAC;YACF,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;YAChC,IAAI,QAAQ,IAAI,QAAQ,IAAI,OAAO,QAAQ,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACjE,OAAO,QAAQ,CAAC,MAAM,CAAC;YACxB,CAAC;QACF,CAAC;IACF,CAAC;IACD,OAAO,SAAS,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAc;IACjD,MAAM,OAAO,GAAG,CAAC,GAAY,EAAsB,EAAE;QACpD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YAC7C,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,IAAI,MAAM,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACnD,OAAO,GAAG,CAAC,IAAI,CAAC;QACjB,CAAC;QACD,OAAO,SAAS,CAAC;IAClB,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,UAAU,EAAE,CAAC;QAChB,OAAO,UAAU,CAAC;IACnB,CAAC;IAED,IAAI,OAAO,GAAY,KAAK,CAAC;IAC7B,MAAM,QAAQ,GAAG,CAAC,CAAC;IACnB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC;QAC/C,IACC,OAAO,OAAO,KAAK,QAAQ;YAC3B,OAAO,KAAK,IAAI;YAChB,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,EACpB,CAAC;YACF,MAAM;QACP,CAAC;QACD,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC;QACxB,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QAC9B,IAAI,IAAI,EAAE,CAAC;YACV,OAAO,IAAI,CAAC;QACb,CAAC;IACF,CAAC;IAED,OAAO,SAAS,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface RetryOptions {
|
|
2
|
+
maxAttempts: number;
|
|
3
|
+
initialDelayMs: number;
|
|
4
|
+
maxDelayMs: number;
|
|
5
|
+
shouldRetryOnError: (error: unknown, retryFetchErrors?: boolean) => boolean;
|
|
6
|
+
retryFetchErrors?: boolean;
|
|
7
|
+
signal?: AbortSignal;
|
|
8
|
+
onRetry?: (attempt: number, error: unknown, delayMs: number) => void;
|
|
9
|
+
}
|
|
10
|
+
export declare const DEFAULT_MAX_ATTEMPTS = 5;
|
|
11
|
+
export declare const FETCH_FAILED_MESSAGE = "fetch failed";
|
|
12
|
+
export declare const INCOMPLETE_JSON_MESSAGE = "incomplete json segment";
|
|
13
|
+
export declare function createAbortError(): Error;
|
|
14
|
+
export declare function delay(ms: number, signal?: AbortSignal): Promise<void>;
|
|
15
|
+
export declare function isRetryableError(error: Error | unknown, retryFetchErrors?: boolean): boolean;
|
|
16
|
+
export declare function retryWithBackoff<T>(fn: () => Promise<T>, options?: Partial<RetryOptions>): Promise<T>;
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { debugLogger } from "../../shared/index.js";
|
|
2
|
+
import { ApiError, getErrorStatus, getNetworkErrorCode } from "./errors.js";
|
|
3
|
+
export const DEFAULT_MAX_ATTEMPTS = 5; // 로컬의 경우 최대 재시도를 5회 정도로 기본 설정하는 것이 적합합니다.
|
|
4
|
+
export const FETCH_FAILED_MESSAGE = "fetch failed";
|
|
5
|
+
export const INCOMPLETE_JSON_MESSAGE = "incomplete json segment";
|
|
6
|
+
const LOCAL_RETRYABLE_NETWORK_CODES = [
|
|
7
|
+
"ECONNREFUSED", // 서버가 아직 켜지는 중일 수 있음
|
|
8
|
+
"ECONNRESET", // 서버가 크래시 후 재시작 중일 수 있음
|
|
9
|
+
"ETIMEDOUT", // 일시적인 연산 큐(Queue) 병목
|
|
10
|
+
"EPIPE", // 파이프 단절
|
|
11
|
+
];
|
|
12
|
+
const DEFAULT_RETRY_OPTIONS = {
|
|
13
|
+
maxAttempts: DEFAULT_MAX_ATTEMPTS,
|
|
14
|
+
initialDelayMs: 3000, // 로컬 LLM의 경우 초기 대기 3초가 적당합니다.
|
|
15
|
+
maxDelayMs: 15000, // 최대 지연 15초
|
|
16
|
+
shouldRetryOnError: isRetryableError,
|
|
17
|
+
};
|
|
18
|
+
export function createAbortError() {
|
|
19
|
+
const abortError = new Error("Aborted");
|
|
20
|
+
abortError.name = "AbortError";
|
|
21
|
+
return abortError;
|
|
22
|
+
}
|
|
23
|
+
export function delay(ms, signal) {
|
|
24
|
+
return new Promise((resolve, reject) => {
|
|
25
|
+
if (signal?.aborted) {
|
|
26
|
+
return reject(createAbortError());
|
|
27
|
+
}
|
|
28
|
+
const timer = setTimeout(() => {
|
|
29
|
+
if (signal) {
|
|
30
|
+
signal.removeEventListener("abort", onAbort);
|
|
31
|
+
}
|
|
32
|
+
resolve();
|
|
33
|
+
}, ms);
|
|
34
|
+
function onAbort() {
|
|
35
|
+
clearTimeout(timer);
|
|
36
|
+
reject(createAbortError());
|
|
37
|
+
}
|
|
38
|
+
if (signal) {
|
|
39
|
+
signal.addEventListener("abort", onAbort);
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
function logRetryAttempt(attempt, error, errorStatus) {
|
|
44
|
+
let message = `[Retry] 시도 ${attempt} 실패. 백오프 재시도 중...`;
|
|
45
|
+
if (errorStatus) {
|
|
46
|
+
message = `[Retry] 시도 ${attempt} 실패 (HTTP Status: ${errorStatus}). 백오프 재시도 중...`;
|
|
47
|
+
}
|
|
48
|
+
debugLogger.warn(message, error);
|
|
49
|
+
}
|
|
50
|
+
export function isRetryableError(error, retryFetchErrors) {
|
|
51
|
+
const errorCode = getNetworkErrorCode(error);
|
|
52
|
+
if (errorCode && LOCAL_RETRYABLE_NETWORK_CODES.includes(errorCode)) {
|
|
53
|
+
return true;
|
|
54
|
+
}
|
|
55
|
+
if (retryFetchErrors && error instanceof Error) {
|
|
56
|
+
const lowerMessage = error.message.toLowerCase();
|
|
57
|
+
if (lowerMessage.includes(FETCH_FAILED_MESSAGE) ||
|
|
58
|
+
lowerMessage.includes(INCOMPLETE_JSON_MESSAGE)) {
|
|
59
|
+
return true;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
if (error instanceof ApiError) {
|
|
63
|
+
if (error.status === 400)
|
|
64
|
+
return false; // 400 Bad Request는 즉시 중단
|
|
65
|
+
return (error.status === 429 ||
|
|
66
|
+
error.status === 499 ||
|
|
67
|
+
(error.status >= 500 && error.status < 600));
|
|
68
|
+
}
|
|
69
|
+
const status = getErrorStatus(error);
|
|
70
|
+
if (status !== undefined) {
|
|
71
|
+
return status === 429 || status === 499 || (status >= 500 && status < 600);
|
|
72
|
+
}
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
export async function retryWithBackoff(fn, options) {
|
|
76
|
+
if (options?.signal?.aborted) {
|
|
77
|
+
throw createAbortError();
|
|
78
|
+
}
|
|
79
|
+
if (options?.maxAttempts !== undefined && options.maxAttempts <= 0) {
|
|
80
|
+
throw new Error("maxAttempts must be a positive number.");
|
|
81
|
+
}
|
|
82
|
+
const cleanOptions = options
|
|
83
|
+
? Object.fromEntries(Object.entries(options).filter(([_, v]) => v != null))
|
|
84
|
+
: {};
|
|
85
|
+
const { maxAttempts, initialDelayMs, maxDelayMs, shouldRetryOnError, retryFetchErrors, signal, onRetry, } = {
|
|
86
|
+
...DEFAULT_RETRY_OPTIONS,
|
|
87
|
+
...cleanOptions,
|
|
88
|
+
};
|
|
89
|
+
let attempt = 0;
|
|
90
|
+
let currentDelay = initialDelayMs;
|
|
91
|
+
const throwIfAborted = () => {
|
|
92
|
+
if (signal?.aborted) {
|
|
93
|
+
throw createAbortError();
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
while (attempt < maxAttempts) {
|
|
97
|
+
throwIfAborted();
|
|
98
|
+
attempt++;
|
|
99
|
+
try {
|
|
100
|
+
const result = await fn();
|
|
101
|
+
return result;
|
|
102
|
+
}
|
|
103
|
+
catch (error) {
|
|
104
|
+
if (error instanceof Error && error.name === "AbortError") {
|
|
105
|
+
throw error;
|
|
106
|
+
}
|
|
107
|
+
throwIfAborted();
|
|
108
|
+
const errorStatus = getErrorStatus(error);
|
|
109
|
+
const is500 = errorStatus !== undefined && errorStatus >= 500 && errorStatus < 600;
|
|
110
|
+
const isRetryable = is500 || shouldRetryOnError(error, retryFetchErrors);
|
|
111
|
+
if (attempt >= maxAttempts || !isRetryable) {
|
|
112
|
+
throw error;
|
|
113
|
+
}
|
|
114
|
+
const jitter = currentDelay * 0.3 * (Math.random() * 2 - 1);
|
|
115
|
+
const delayWithJitter = Math.max(0, currentDelay + jitter);
|
|
116
|
+
if (onRetry) {
|
|
117
|
+
onRetry(attempt, error, delayWithJitter);
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
logRetryAttempt(attempt, error, errorStatus);
|
|
121
|
+
}
|
|
122
|
+
try {
|
|
123
|
+
await delay(delayWithJitter, signal);
|
|
124
|
+
}
|
|
125
|
+
catch (delayErr) {
|
|
126
|
+
if (delayErr instanceof Error && delayErr.name === "AbortError") {
|
|
127
|
+
throw delayErr;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
currentDelay = Math.min(maxDelayMs, currentDelay * 2);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
throw new Error("Retry attempts exhausted");
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=retry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retry.js","sourceRoot":"","sources":["../../../src/cli/utils/retry.ts"],"names":[],"mappings":"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"}
|
|
@@ -189,7 +189,6 @@ export function escapeAnsiCtrlCodes(obj) {
|
|
|
189
189
|
return obj; // No changes return original string
|
|
190
190
|
}
|
|
191
191
|
regex.lastIndex = 0; // needed for global regex
|
|
192
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
|
|
193
192
|
return obj.replace(regex, (match) => JSON.stringify(match).slice(1, -1));
|
|
194
193
|
}
|
|
195
194
|
if (obj === null || typeof obj !== "object") {
|
|
@@ -198,9 +197,7 @@ export function escapeAnsiCtrlCodes(obj) {
|
|
|
198
197
|
if (Array.isArray(obj)) {
|
|
199
198
|
let newArr = null;
|
|
200
199
|
for (let i = 0; i < obj.length; i++) {
|
|
201
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
202
200
|
const value = obj[i];
|
|
203
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
204
201
|
const escapedValue = escapeAnsiCtrlCodes(value);
|
|
205
202
|
if (escapedValue !== value) {
|
|
206
203
|
if (newArr === null) {
|
|
@@ -209,20 +206,17 @@ export function escapeAnsiCtrlCodes(obj) {
|
|
|
209
206
|
newArr[i] = escapedValue;
|
|
210
207
|
}
|
|
211
208
|
}
|
|
212
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
|
|
213
209
|
return (newArr !== null ? newArr : obj);
|
|
214
210
|
}
|
|
215
211
|
let newObj = null;
|
|
216
212
|
const keys = Object.keys(obj);
|
|
217
213
|
for (const key of keys) {
|
|
218
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
|
|
219
214
|
const value = obj[key];
|
|
220
215
|
const escapedValue = escapeAnsiCtrlCodes(value);
|
|
221
216
|
if (escapedValue !== value) {
|
|
222
217
|
if (newObj === null) {
|
|
223
218
|
newObj = { ...obj };
|
|
224
219
|
}
|
|
225
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
|
|
226
220
|
newObj[key] = escapedValue;
|
|
227
221
|
}
|
|
228
222
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"textUtil.js","sourceRoot":"","sources":["../../../src/cli/utils/textUtil.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"textUtil.js","sourceRoot":"","sources":["../../../src/cli/utils/textUtil.ts"],"names":[],"mappings":"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"}
|
package/build/config.d.ts
CHANGED
|
@@ -5,18 +5,21 @@ export declare const configSchema: z.ZodObject<{
|
|
|
5
5
|
llmApiUrl: z.ZodDefault<z.ZodString>;
|
|
6
6
|
llmChatModel: z.ZodDefault<z.ZodString>;
|
|
7
7
|
llmRerankerApiUrl: z.ZodDefault<z.ZodString>;
|
|
8
|
+
llmTimeoutMs: z.ZodDefault<z.ZodNumber>;
|
|
8
9
|
}, "strip", z.ZodTypeAny, {
|
|
9
10
|
vaultPath: string;
|
|
10
11
|
loggingLevel: "debug" | "info" | "warn" | "error";
|
|
11
12
|
llmApiUrl: string;
|
|
12
13
|
llmChatModel: string;
|
|
13
14
|
llmRerankerApiUrl: string;
|
|
15
|
+
llmTimeoutMs: number;
|
|
14
16
|
}, {
|
|
15
17
|
vaultPath: string;
|
|
16
18
|
loggingLevel?: "debug" | "info" | "warn" | "error" | undefined;
|
|
17
19
|
llmApiUrl?: string | undefined;
|
|
18
20
|
llmChatModel?: string | undefined;
|
|
19
21
|
llmRerankerApiUrl?: string | undefined;
|
|
22
|
+
llmTimeoutMs?: number | undefined;
|
|
20
23
|
}>;
|
|
21
24
|
export type ObsidianMcpConfig = z.infer<typeof configSchema>;
|
|
22
25
|
declare const state: ObsidianMcpConfig;
|
package/build/config.js
CHANGED
|
@@ -30,6 +30,7 @@ export const configSchema = z.object({
|
|
|
30
30
|
llmApiUrl: z.string().url().default("http://127.0.0.1:8080"),
|
|
31
31
|
llmChatModel: z.string().default("llama3"),
|
|
32
32
|
llmRerankerApiUrl: z.string().url().default("http://127.0.0.1:8082"),
|
|
33
|
+
llmTimeoutMs: z.coerce.number().default(120000),
|
|
33
34
|
});
|
|
34
35
|
const _rawConfig = {
|
|
35
36
|
vaultPath: process.env["VAULT_DIR_PATH"] || "",
|
|
@@ -37,6 +38,7 @@ const _rawConfig = {
|
|
|
37
38
|
llmApiUrl: process.env["LLM_API_URL"] || "http://127.0.0.1:8080",
|
|
38
39
|
llmChatModel: process.env["LLM_CHAT_MODEL"] || "llama3",
|
|
39
40
|
llmRerankerApiUrl: process.env["LLM_RERANKER_API_URL"] || "http://127.0.0.1:8082",
|
|
41
|
+
llmTimeoutMs: process.env["LLM_TIMEOUT_MS"] || "120000",
|
|
40
42
|
};
|
|
41
43
|
const _parseResult = configSchema.safeParse(_rawConfig);
|
|
42
44
|
const state = _parseResult.success
|
|
@@ -50,6 +52,7 @@ export function getOptions() {
|
|
|
50
52
|
.option("--logging-level <level>", "Logging level (debug, info, warn, error)", process.env["LOGGING_LEVEL"] ?? "info")
|
|
51
53
|
.option("--llm-api-url <url>", "LLM Chat API URL", process.env["LLM_API_URL"] ?? "http://127.0.0.1:8080")
|
|
52
54
|
.option("--llm-chat-model <model>", "LLM Chat Model", process.env["LLM_CHAT_MODEL"] ?? "llama3")
|
|
55
|
+
.option("--llm-timeout-ms <ms>", "LLM Timeout in Milliseconds", process.env["LLM_TIMEOUT_MS"] ?? "120000")
|
|
53
56
|
.allowUnknownOption()
|
|
54
57
|
.allowExcessArguments(true)
|
|
55
58
|
.parse(process.argv);
|
|
@@ -67,6 +70,7 @@ export function getOptions() {
|
|
|
67
70
|
state.loggingLevel = parseResult.data.loggingLevel;
|
|
68
71
|
state.llmApiUrl = parseResult.data.llmApiUrl;
|
|
69
72
|
state.llmChatModel = parseResult.data.llmChatModel;
|
|
73
|
+
state.llmTimeoutMs = parseResult.data.llmTimeoutMs;
|
|
70
74
|
return state;
|
|
71
75
|
}
|
|
72
76
|
export function setLocalLLMEnvSetting() {
|
package/build/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAE7C,MAAM,eAAe,GAAG,CAAC;KACvB,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,EAAE,2BAA2B,CAAC;KACnC,IAAI,EAAE;KACN,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,qBAAqB;KACtD,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;IACjC,OAAO,EAAE,2BAA2B;CACpC,CAAC;KACD,MAAM,CACN,CAAC,GAAG,EAAE,EAAE;IACP,IAAI,CAAC;QACJ,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,KAAK,CAAC;IACd,CAAC;AACF,CAAC,EACD;IACC,OAAO,EAAE,qBAAqB;CAC9B,CACD,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,SAAS,EAAE,eAAe;IAC1B,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACxE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,uBAAuB,CAAC;IAC5D,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC1C,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/build/index.js
CHANGED
|
@@ -3,10 +3,10 @@ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"
|
|
|
3
3
|
import chalk from "chalk";
|
|
4
4
|
import { getOptions, setLocalLLMEnvSetting } from "./config.js";
|
|
5
5
|
import createMcpServer from "./server.js";
|
|
6
|
+
import { ensureAppDataDirs } from "./utils/constants.js";
|
|
6
7
|
import { localEmbedder } from "./utils/Embedder.js";
|
|
7
8
|
import { localReranker } from "./utils/LocalReranker.js";
|
|
8
9
|
import { vaultWatcher } from "./utils/VaultWatcher.js";
|
|
9
|
-
import { ensureAppDataDirs } from "./utils/constants.js";
|
|
10
10
|
async function main() {
|
|
11
11
|
ensureAppDataDirs();
|
|
12
12
|
if (process.argv.slice(2).some((arg) => arg === "setup")) {
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,eAAe,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,7 +33,7 @@ export const obsidianContentKeyword = z
|
|
|
33
33
|
.describe("Keyword to search for in documents (required for search action)");
|
|
34
34
|
export const obsidianContentQuery = z
|
|
35
35
|
.string()
|
|
36
|
-
.describe("Natural language query for semantic search (required for search_vault_by_semantic
|
|
36
|
+
.describe("Natural language query for semantic search or filtering content paragraphs (required for search_vault_by_semantic, optional for read)");
|
|
37
37
|
export const obsidianContentFilename = z
|
|
38
38
|
.string()
|
|
39
39
|
.describe("Specific filename to read (required for read action)");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"params.js","sourceRoot":"","sources":["../../../src/tools/vault/params.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC;KACjC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;KAC7D,QAAQ,CAAC,oCAAoC,CAAC,CAAC;AAEjD,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC;KACpC,IAAI,CAAC,CAAC,YAAY,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;KACxC,OAAO,CAAC,UAAU,CAAC;KACnB,QAAQ,CACR,wIAAwI,CACxI,CAAC;AAEH,MAAM,oBAAoB,GAAG,CAAC;KAC5B,MAAM,EAAE;KACR,GAAG,CAAC,GAAG,CAAC;KACR,GAAG,CAAC,KAAK,CAAC;KACV,QAAQ,CACR,8FAA8F,CAC9F,CAAC;AAEH,MAAM,SAAS,GAAG,CAAC;KACjB,OAAO,EAAE;KACT,OAAO,CAAC,IAAI,CAAC;KACb,QAAQ,CAAC,kEAAkE,CAAC,CAAC;AAE/E,0BAA0B;AAC1B,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC;KACrC,IAAI,CAAC;IACL,QAAQ;IACR,MAAM;IACN,UAAU;IACV,OAAO;IACP,iBAAiB;IACjB,aAAa;IACb,0BAA0B;IAC1B,yBAAyB;CACzB,CAAC;KACD,QAAQ,CACR,uLAAuL,CACvL,CAAC;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC;KACrC,MAAM,EAAE;KACR,QAAQ,CAAC,iEAAiE,CAAC,CAAC;AAC9E,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC;KACnC,MAAM,EAAE;KACR,QAAQ,CACR,
|
|
1
|
+
{"version":3,"file":"params.js","sourceRoot":"","sources":["../../../src/tools/vault/params.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createHash } from "node:crypto";
|
|
2
2
|
import { debugLogger } from "../../../../shared/index.js";
|
|
3
3
|
import { createToolError } from "../../../../utils/createToolError.js";
|
|
4
|
-
import {
|
|
4
|
+
import { localReranker } from "../../../../utils/LocalReranker.js";
|
|
5
5
|
import { collectContextMemoryPacketSchema, collectContextPayloadSchema, collectContextResponseDataSchema, collectContextTokenV1Schema, } from "../../types/collect_context.js";
|
|
6
6
|
import { CONTEXT_MEMORY_SNAPSHOT_NOTE_PATH, CONTEXT_MEMORY_SNAPSHOT_SCHEMA_VERSION, } from "../constants.js";
|
|
7
7
|
import { ACTION_DEFAULT_MAX_OUTPUT_CHARS, finalizePayloadWithCompression, jsonCharLength, normalizeWhitespace, resolveCompressionMode, stripFrontmatterBlock, trimWithEllipsis, } from "../shared.js";
|
|
@@ -504,24 +504,50 @@ export async function collectContext(vaultManager, params) {
|
|
|
504
504
|
let orderedCandidates = [...matchedCandidates].sort((a, b) => a.filePath.localeCompare(b.filePath));
|
|
505
505
|
// Apply Reranking if topic is present and we have candidates
|
|
506
506
|
if (topic && orderedCandidates.length > 0) {
|
|
507
|
-
//
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
try {
|
|
511
|
-
// Fetch contents for these candidates to perform reranking
|
|
512
|
-
const candidateContents = await Promise.all(candidatesToRerank.map(async (c) => {
|
|
513
|
-
const doc = await vaultManager.getDocumentInfo(c.filePath, {
|
|
514
|
-
maxContentPreview: 1000, // Sufficient for reranking
|
|
515
|
-
});
|
|
516
|
-
return doc?.content || "";
|
|
517
|
-
}));
|
|
518
|
-
const rerankedResults = await rerankerClient.rerank(topic, candidateContents, maxDocs);
|
|
519
|
-
const reranked = rerankedResults.map((result) => candidatesToRerank[result.index]);
|
|
520
|
-
const remaining = orderedCandidates.filter((c) => !reranked.some((r) => r.filePath === c.filePath));
|
|
521
|
-
orderedCandidates = [...reranked, ...remaining];
|
|
507
|
+
// 1. 후보군이 2개 이하인 경우 리랭킹이 불필요하므로 건너뜀
|
|
508
|
+
if (orderedCandidates.length <= 2) {
|
|
509
|
+
debugLogger.debug(`[CollectContext] Candidates count is ${orderedCandidates.length}. Skipping rerank.`);
|
|
522
510
|
}
|
|
523
|
-
|
|
524
|
-
|
|
511
|
+
else {
|
|
512
|
+
// 2. 완벽한 제목 매칭(Exact Title Match)이 있는 경우 리랭커 호출 스킵
|
|
513
|
+
const exactMatchIndex = orderedCandidates.slice(0, 15).findIndex((c) => {
|
|
514
|
+
const filename = c.filePath.split("/").pop() || c.filePath;
|
|
515
|
+
const title = c.frontmatter?.title || filename.replace(/\.mdx?$/i, "");
|
|
516
|
+
return title.toLowerCase() === topic.toLowerCase();
|
|
517
|
+
});
|
|
518
|
+
if (exactMatchIndex !== -1) {
|
|
519
|
+
const exactMatchDoc = orderedCandidates[exactMatchIndex];
|
|
520
|
+
debugLogger.debug(`[CollectContext] Exact title match found: "${exactMatchDoc.filePath}". Skipping rerank.`);
|
|
521
|
+
const remaining = orderedCandidates.filter((c) => c.filePath !== exactMatchDoc.filePath);
|
|
522
|
+
orderedCandidates = [exactMatchDoc, ...remaining];
|
|
523
|
+
}
|
|
524
|
+
else {
|
|
525
|
+
// Only rerank a reasonable number of top candidates to preserve performance
|
|
526
|
+
const rerankCandidatesLimit = 30;
|
|
527
|
+
const candidatesToRerank = orderedCandidates.slice(0, rerankCandidatesLimit);
|
|
528
|
+
try {
|
|
529
|
+
// Fetch contents for these candidates to perform reranking
|
|
530
|
+
const candidateContents = await Promise.all(candidatesToRerank.map(async (c) => {
|
|
531
|
+
const doc = await vaultManager.getDocumentInfo(c.filePath, {
|
|
532
|
+
maxContentPreview: 1000, // Sufficient for reranking
|
|
533
|
+
});
|
|
534
|
+
return doc?.content || "";
|
|
535
|
+
}));
|
|
536
|
+
const rerankedResults = await localReranker.rerank(topic, candidateContents);
|
|
537
|
+
const reranked = rerankedResults
|
|
538
|
+
.slice(0, maxDocs)
|
|
539
|
+
.map((result) => {
|
|
540
|
+
const idx = candidateContents.indexOf(result.document);
|
|
541
|
+
return idx !== -1 ? candidatesToRerank[idx] : null;
|
|
542
|
+
})
|
|
543
|
+
.filter((c) => c !== null);
|
|
544
|
+
const remaining = orderedCandidates.filter((c) => !reranked.some((r) => r.filePath === c.filePath));
|
|
545
|
+
orderedCandidates = [...reranked, ...remaining];
|
|
546
|
+
}
|
|
547
|
+
catch (error) {
|
|
548
|
+
debugLogger.error("[CollectContext] Reranking failed:", error);
|
|
549
|
+
}
|
|
550
|
+
}
|
|
525
551
|
}
|
|
526
552
|
}
|
|
527
553
|
const emptyDocHash = buildCollectContextDocHash([]);
|