notelm-mcp 1.2.1
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/LICENSE +21 -0
- package/README.md +456 -0
- package/dist/auth/auth-manager.d.ts +139 -0
- package/dist/auth/auth-manager.d.ts.map +1 -0
- package/dist/auth/auth-manager.js +960 -0
- package/dist/auth/auth-manager.js.map +1 -0
- package/dist/config.d.ts +92 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +219 -0
- package/dist/config.js.map +1 -0
- package/dist/constants.d.ts +58 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +133 -0
- package/dist/constants.js.map +1 -0
- package/dist/errors.d.ts +26 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +41 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +32 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +325 -0
- package/dist/index.js.map +1 -0
- package/dist/library/notebook-library.d.ts +70 -0
- package/dist/library/notebook-library.d.ts.map +1 -0
- package/dist/library/notebook-library.js +279 -0
- package/dist/library/notebook-library.js.map +1 -0
- package/dist/library/types.d.ts +67 -0
- package/dist/library/types.d.ts.map +1 -0
- package/dist/library/types.js +8 -0
- package/dist/library/types.js.map +1 -0
- package/dist/playwright.config.d.ts +3 -0
- package/dist/playwright.config.d.ts.map +1 -0
- package/dist/playwright.config.js +38 -0
- package/dist/playwright.config.js.map +1 -0
- package/dist/resources/resource-handlers.d.ts +22 -0
- package/dist/resources/resource-handlers.d.ts.map +1 -0
- package/dist/resources/resource-handlers.js +216 -0
- package/dist/resources/resource-handlers.js.map +1 -0
- package/dist/scripts/save-auth-state.d.ts +2 -0
- package/dist/scripts/save-auth-state.d.ts.map +1 -0
- package/dist/scripts/save-auth-state.js +91 -0
- package/dist/scripts/save-auth-state.js.map +1 -0
- package/dist/session/browser-session.d.ts +108 -0
- package/dist/session/browser-session.d.ts.map +1 -0
- package/dist/session/browser-session.js +636 -0
- package/dist/session/browser-session.js.map +1 -0
- package/dist/session/session-manager.d.ts +76 -0
- package/dist/session/session-manager.d.ts.map +1 -0
- package/dist/session/session-manager.js +273 -0
- package/dist/session/session-manager.js.map +1 -0
- package/dist/session/shared-context-manager.d.ts +107 -0
- package/dist/session/shared-context-manager.d.ts.map +1 -0
- package/dist/session/shared-context-manager.js +447 -0
- package/dist/session/shared-context-manager.js.map +1 -0
- package/dist/src/auth/auth-manager.d.ts +139 -0
- package/dist/src/auth/auth-manager.d.ts.map +1 -0
- package/dist/src/auth/auth-manager.js +960 -0
- package/dist/src/auth/auth-manager.js.map +1 -0
- package/dist/src/config.d.ts +92 -0
- package/dist/src/config.d.ts.map +1 -0
- package/dist/src/config.js +219 -0
- package/dist/src/config.js.map +1 -0
- package/dist/src/constants.d.ts +58 -0
- package/dist/src/constants.d.ts.map +1 -0
- package/dist/src/constants.js +133 -0
- package/dist/src/constants.js.map +1 -0
- package/dist/src/errors.d.ts +26 -0
- package/dist/src/errors.d.ts.map +1 -0
- package/dist/src/errors.js +41 -0
- package/dist/src/errors.js.map +1 -0
- package/dist/src/index.d.ts +32 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +325 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/library/notebook-library.d.ts +70 -0
- package/dist/src/library/notebook-library.d.ts.map +1 -0
- package/dist/src/library/notebook-library.js +279 -0
- package/dist/src/library/notebook-library.js.map +1 -0
- package/dist/src/library/types.d.ts +67 -0
- package/dist/src/library/types.d.ts.map +1 -0
- package/dist/src/library/types.js +8 -0
- package/dist/src/library/types.js.map +1 -0
- package/dist/src/resources/resource-handlers.d.ts +22 -0
- package/dist/src/resources/resource-handlers.d.ts.map +1 -0
- package/dist/src/resources/resource-handlers.js +216 -0
- package/dist/src/resources/resource-handlers.js.map +1 -0
- package/dist/src/scripts/health-check.d.ts +13 -0
- package/dist/src/scripts/health-check.d.ts.map +1 -0
- package/dist/src/scripts/health-check.js +100 -0
- package/dist/src/scripts/health-check.js.map +1 -0
- package/dist/src/session/browser-session.d.ts +108 -0
- package/dist/src/session/browser-session.d.ts.map +1 -0
- package/dist/src/session/browser-session.js +642 -0
- package/dist/src/session/browser-session.js.map +1 -0
- package/dist/src/session/session-manager.d.ts +76 -0
- package/dist/src/session/session-manager.d.ts.map +1 -0
- package/dist/src/session/session-manager.js +273 -0
- package/dist/src/session/session-manager.js.map +1 -0
- package/dist/src/session/shared-context-manager.d.ts +107 -0
- package/dist/src/session/shared-context-manager.d.ts.map +1 -0
- package/dist/src/session/shared-context-manager.js +447 -0
- package/dist/src/session/shared-context-manager.js.map +1 -0
- package/dist/src/tools/definitions/ask-question.d.ts +8 -0
- package/dist/src/tools/definitions/ask-question.d.ts.map +1 -0
- package/dist/src/tools/definitions/ask-question.js +211 -0
- package/dist/src/tools/definitions/ask-question.js.map +1 -0
- package/dist/src/tools/definitions/notebook-management.d.ts +3 -0
- package/dist/src/tools/definitions/notebook-management.d.ts.map +1 -0
- package/dist/src/tools/definitions/notebook-management.js +243 -0
- package/dist/src/tools/definitions/notebook-management.js.map +1 -0
- package/dist/src/tools/definitions/session-management.d.ts +3 -0
- package/dist/src/tools/definitions/session-management.d.ts.map +1 -0
- package/dist/src/tools/definitions/session-management.js +41 -0
- package/dist/src/tools/definitions/session-management.js.map +1 -0
- package/dist/src/tools/definitions/system.d.ts +3 -0
- package/dist/src/tools/definitions/system.d.ts.map +1 -0
- package/dist/src/tools/definitions/system.js +143 -0
- package/dist/src/tools/definitions/system.js.map +1 -0
- package/dist/src/tools/definitions.d.ts +12 -0
- package/dist/src/tools/definitions.d.ts.map +1 -0
- package/dist/src/tools/definitions.js +26 -0
- package/dist/src/tools/definitions.js.map +1 -0
- package/dist/src/tools/handlers.d.ts +212 -0
- package/dist/src/tools/handlers.d.ts.map +1 -0
- package/dist/src/tools/handlers.js +712 -0
- package/dist/src/tools/handlers.js.map +1 -0
- package/dist/src/tools/index.d.ts +8 -0
- package/dist/src/tools/index.d.ts.map +1 -0
- package/dist/src/tools/index.js +8 -0
- package/dist/src/tools/index.js.map +1 -0
- package/dist/src/types.d.ts +88 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.js +5 -0
- package/dist/src/types.js.map +1 -0
- package/dist/src/utils/auth-manager.d.ts +2 -0
- package/dist/src/utils/auth-manager.d.ts.map +1 -0
- package/dist/src/utils/auth-manager.js +25 -0
- package/dist/src/utils/auth-manager.js.map +1 -0
- package/dist/src/utils/cleanup-manager.d.ts +133 -0
- package/dist/src/utils/cleanup-manager.d.ts.map +1 -0
- package/dist/src/utils/cleanup-manager.js +673 -0
- package/dist/src/utils/cleanup-manager.js.map +1 -0
- package/dist/src/utils/cli-handler.d.ts +16 -0
- package/dist/src/utils/cli-handler.d.ts.map +1 -0
- package/dist/src/utils/cli-handler.js +102 -0
- package/dist/src/utils/cli-handler.js.map +1 -0
- package/dist/src/utils/logger.d.ts +61 -0
- package/dist/src/utils/logger.d.ts.map +1 -0
- package/dist/src/utils/logger.js +92 -0
- package/dist/src/utils/logger.js.map +1 -0
- package/dist/src/utils/page-utils.d.ts +54 -0
- package/dist/src/utils/page-utils.d.ts.map +1 -0
- package/dist/src/utils/page-utils.js +381 -0
- package/dist/src/utils/page-utils.js.map +1 -0
- package/dist/src/utils/rate-limit-handler.d.ts +42 -0
- package/dist/src/utils/rate-limit-handler.d.ts.map +1 -0
- package/dist/src/utils/rate-limit-handler.js +88 -0
- package/dist/src/utils/rate-limit-handler.js.map +1 -0
- package/dist/src/utils/rate-limit-handler.test.d.ts +7 -0
- package/dist/src/utils/rate-limit-handler.test.d.ts.map +1 -0
- package/dist/src/utils/rate-limit-handler.test.js +86 -0
- package/dist/src/utils/rate-limit-handler.test.js.map +1 -0
- package/dist/src/utils/settings-manager.d.ts +37 -0
- package/dist/src/utils/settings-manager.d.ts.map +1 -0
- package/dist/src/utils/settings-manager.js +121 -0
- package/dist/src/utils/settings-manager.js.map +1 -0
- package/dist/src/utils/stealth-utils.d.ts +135 -0
- package/dist/src/utils/stealth-utils.d.ts.map +1 -0
- package/dist/src/utils/stealth-utils.js +396 -0
- package/dist/src/utils/stealth-utils.js.map +1 -0
- package/dist/src/utils/stealth-utils.test.d.ts +7 -0
- package/dist/src/utils/stealth-utils.test.d.ts.map +1 -0
- package/dist/src/utils/stealth-utils.test.js +72 -0
- package/dist/src/utils/stealth-utils.test.js.map +1 -0
- package/dist/tests/e2e/authenticated.spec.d.ts +2 -0
- package/dist/tests/e2e/authenticated.spec.d.ts.map +1 -0
- package/dist/tests/e2e/authenticated.spec.js +41 -0
- package/dist/tests/e2e/authenticated.spec.js.map +1 -0
- package/dist/tests/e2e/mocked.spec.d.ts +2 -0
- package/dist/tests/e2e/mocked.spec.d.ts.map +1 -0
- package/dist/tests/e2e/mocked.spec.js +32 -0
- package/dist/tests/e2e/mocked.spec.js.map +1 -0
- package/dist/tests/mocks/handlers.d.ts +4 -0
- package/dist/tests/mocks/handlers.d.ts.map +1 -0
- package/dist/tests/mocks/handlers.js +55 -0
- package/dist/tests/mocks/handlers.js.map +1 -0
- package/dist/tests/mocks/setup.d.ts +3 -0
- package/dist/tests/mocks/setup.d.ts.map +1 -0
- package/dist/tests/mocks/setup.js +77 -0
- package/dist/tests/mocks/setup.js.map +1 -0
- package/dist/tools/definitions/ask-question.d.ts +8 -0
- package/dist/tools/definitions/ask-question.d.ts.map +1 -0
- package/dist/tools/definitions/ask-question.js +211 -0
- package/dist/tools/definitions/ask-question.js.map +1 -0
- package/dist/tools/definitions/notebook-management.d.ts +3 -0
- package/dist/tools/definitions/notebook-management.d.ts.map +1 -0
- package/dist/tools/definitions/notebook-management.js +243 -0
- package/dist/tools/definitions/notebook-management.js.map +1 -0
- package/dist/tools/definitions/session-management.d.ts +3 -0
- package/dist/tools/definitions/session-management.d.ts.map +1 -0
- package/dist/tools/definitions/session-management.js +41 -0
- package/dist/tools/definitions/session-management.js.map +1 -0
- package/dist/tools/definitions/system.d.ts +3 -0
- package/dist/tools/definitions/system.d.ts.map +1 -0
- package/dist/tools/definitions/system.js +143 -0
- package/dist/tools/definitions/system.js.map +1 -0
- package/dist/tools/definitions.d.ts +12 -0
- package/dist/tools/definitions.d.ts.map +1 -0
- package/dist/tools/definitions.js +26 -0
- package/dist/tools/definitions.js.map +1 -0
- package/dist/tools/handlers.d.ts +212 -0
- package/dist/tools/handlers.d.ts.map +1 -0
- package/dist/tools/handlers.js +712 -0
- package/dist/tools/handlers.js.map +1 -0
- package/dist/tools/index.d.ts +8 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +8 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/types.d.ts +82 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/cleanup-manager.d.ts +133 -0
- package/dist/utils/cleanup-manager.d.ts.map +1 -0
- package/dist/utils/cleanup-manager.js +673 -0
- package/dist/utils/cleanup-manager.js.map +1 -0
- package/dist/utils/cli-handler.d.ts +16 -0
- package/dist/utils/cli-handler.d.ts.map +1 -0
- package/dist/utils/cli-handler.js +102 -0
- package/dist/utils/cli-handler.js.map +1 -0
- package/dist/utils/logger.d.ts +61 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +92 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/page-utils.d.ts +54 -0
- package/dist/utils/page-utils.d.ts.map +1 -0
- package/dist/utils/page-utils.js +381 -0
- package/dist/utils/page-utils.js.map +1 -0
- package/dist/utils/rate-limit-handler.d.ts +42 -0
- package/dist/utils/rate-limit-handler.d.ts.map +1 -0
- package/dist/utils/rate-limit-handler.js +88 -0
- package/dist/utils/rate-limit-handler.js.map +1 -0
- package/dist/utils/rate-limit-handler.test.d.ts +7 -0
- package/dist/utils/rate-limit-handler.test.d.ts.map +1 -0
- package/dist/utils/rate-limit-handler.test.js +91 -0
- package/dist/utils/rate-limit-handler.test.js.map +1 -0
- package/dist/utils/settings-manager.d.ts +37 -0
- package/dist/utils/settings-manager.d.ts.map +1 -0
- package/dist/utils/settings-manager.js +121 -0
- package/dist/utils/settings-manager.js.map +1 -0
- package/dist/utils/stealth-utils.d.ts +135 -0
- package/dist/utils/stealth-utils.d.ts.map +1 -0
- package/dist/utils/stealth-utils.js +396 -0
- package/dist/utils/stealth-utils.js.map +1 -0
- package/dist/utils/stealth-utils.test.d.ts +7 -0
- package/dist/utils/stealth-utils.test.d.ts.map +1 -0
- package/dist/utils/stealth-utils.test.js +72 -0
- package/dist/utils/stealth-utils.test.js.map +1 -0
- package/docs/01_configuration.md +94 -0
- package/docs/02_tools.md +34 -0
- package/docs/03_troubleshooting.md +59 -0
- package/docs/04_usage-guide.md +245 -0
- package/docs/05_project-analysis.qmd +309 -0
- package/docs/06_integration-analysis.html +914 -0
- package/docs/06_integration-analysis.qmd +255 -0
- package/docs/06_integration-analysis_files/libs/bootstrap/bootstrap-4f0954b6b0dd6bf39f4bb9151ba984db.min.css +12 -0
- package/docs/06_integration-analysis_files/libs/bootstrap/bootstrap-icons.css +2106 -0
- package/docs/06_integration-analysis_files/libs/bootstrap/bootstrap-icons.woff +0 -0
- package/docs/06_integration-analysis_files/libs/bootstrap/bootstrap.min.js +7 -0
- package/docs/06_integration-analysis_files/libs/clipboard/clipboard.min.js +7 -0
- package/docs/06_integration-analysis_files/libs/quarto-html/anchor.min.js +9 -0
- package/docs/06_integration-analysis_files/libs/quarto-html/axe/axe-check.js +145 -0
- package/docs/06_integration-analysis_files/libs/quarto-html/popper.min.js +6 -0
- package/docs/06_integration-analysis_files/libs/quarto-html/quarto-syntax-highlighting-587c61ba64f3a5504c4d52d930310e48.css +236 -0
- package/docs/06_integration-analysis_files/libs/quarto-html/quarto.js +847 -0
- package/docs/06_integration-analysis_files/libs/quarto-html/tabsets/tabsets.js +95 -0
- package/docs/06_integration-analysis_files/libs/quarto-html/tippy.css +1 -0
- package/docs/06_integration-analysis_files/libs/quarto-html/tippy.umd.min.js +2 -0
- package/docs/07_e2e-testing-safety.qmd +754 -0
- package/docs/08_project-re-evaluation.html +609 -0
- package/docs/08_project-re-evaluation.qmd +86 -0
- package/docs/08_project-re-evaluation_files/libs/bootstrap/bootstrap-4f0954b6b0dd6bf39f4bb9151ba984db.min.css +12 -0
- package/docs/08_project-re-evaluation_files/libs/bootstrap/bootstrap-icons.css +2106 -0
- package/docs/08_project-re-evaluation_files/libs/bootstrap/bootstrap-icons.woff +0 -0
- package/docs/08_project-re-evaluation_files/libs/bootstrap/bootstrap.min.js +7 -0
- package/docs/08_project-re-evaluation_files/libs/clipboard/clipboard.min.js +7 -0
- package/docs/08_project-re-evaluation_files/libs/quarto-html/anchor.min.js +9 -0
- package/docs/08_project-re-evaluation_files/libs/quarto-html/axe/axe-check.js +145 -0
- package/docs/08_project-re-evaluation_files/libs/quarto-html/popper.min.js +6 -0
- package/docs/08_project-re-evaluation_files/libs/quarto-html/quarto-syntax-highlighting-587c61ba64f3a5504c4d52d930310e48.css +236 -0
- package/docs/08_project-re-evaluation_files/libs/quarto-html/quarto.js +847 -0
- package/docs/08_project-re-evaluation_files/libs/quarto-html/tabsets/tabsets.js +95 -0
- package/docs/08_project-re-evaluation_files/libs/quarto-html/tippy.css +1 -0
- package/docs/08_project-re-evaluation_files/libs/quarto-html/tippy.umd.min.js +2 -0
- package/docs/notebooklm-mcp-usage.html +704 -0
- package/docs/notebooklm-mcp-usage.qmd +119 -0
- package/docs/notebooklm-mcp-usage_files/libs/bootstrap/bootstrap-6b71f2156b6a5230c6677325978bcf08.min.css +12 -0
- package/docs/notebooklm-mcp-usage_files/libs/bootstrap/bootstrap-icons.css +2106 -0
- package/docs/notebooklm-mcp-usage_files/libs/bootstrap/bootstrap-icons.woff +0 -0
- package/docs/notebooklm-mcp-usage_files/libs/bootstrap/bootstrap.min.js +7 -0
- package/docs/notebooklm-mcp-usage_files/libs/clipboard/clipboard.min.js +7 -0
- package/docs/notebooklm-mcp-usage_files/libs/quarto-html/anchor.min.js +9 -0
- package/docs/notebooklm-mcp-usage_files/libs/quarto-html/axe/axe-check.js +145 -0
- package/docs/notebooklm-mcp-usage_files/libs/quarto-html/popper.min.js +6 -0
- package/docs/notebooklm-mcp-usage_files/libs/quarto-html/quarto-syntax-highlighting-587c61ba64f3a5504c4d52d930310e48.css +236 -0
- package/docs/notebooklm-mcp-usage_files/libs/quarto-html/quarto.js +847 -0
- package/docs/notebooklm-mcp-usage_files/libs/quarto-html/tabsets/tabsets.js +95 -0
- package/docs/notebooklm-mcp-usage_files/libs/quarto-html/tippy.css +1 -0
- package/docs/notebooklm-mcp-usage_files/libs/quarto-html/tippy.umd.min.js +2 -0
- package/docs/repomix-usage_files/libs/bootstrap/bootstrap-6b71f2156b6a5230c6677325978bcf08.min.css +12 -0
- package/docs/repomix-usage_files/libs/bootstrap/bootstrap-icons.css +2106 -0
- package/docs/repomix-usage_files/libs/bootstrap/bootstrap-icons.woff +0 -0
- package/docs/repomix-usage_files/libs/bootstrap/bootstrap.min.js +7 -0
- package/docs/repomix-usage_files/libs/clipboard/clipboard.min.js +7 -0
- package/docs/repomix-usage_files/libs/quarto-html/anchor.min.js +9 -0
- package/docs/repomix-usage_files/libs/quarto-html/axe/axe-check.js +145 -0
- package/docs/repomix-usage_files/libs/quarto-html/popper.min.js +6 -0
- package/docs/repomix-usage_files/libs/quarto-html/quarto-syntax-highlighting-587c61ba64f3a5504c4d52d930310e48.css +236 -0
- package/docs/repomix-usage_files/libs/quarto-html/quarto.js +847 -0
- package/docs/repomix-usage_files/libs/quarto-html/tabsets/tabsets.js +95 -0
- package/docs/repomix-usage_files/libs/quarto-html/tippy.css +1 -0
- package/docs/repomix-usage_files/libs/quarto-html/tippy.umd.min.js +2 -0
- package/package.json +62 -0
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Settings Manager
|
|
3
|
+
*
|
|
4
|
+
* Handles persistent configuration for the NotebookLM MCP Server.
|
|
5
|
+
* Manages profiles, disabled tools, and environment variable overrides.
|
|
6
|
+
*/
|
|
7
|
+
import { Tool } from "@modelcontextprotocol/sdk/types.js";
|
|
8
|
+
export type ProfileName = "minimal" | "standard" | "full";
|
|
9
|
+
export interface Settings {
|
|
10
|
+
profile: ProfileName;
|
|
11
|
+
disabledTools: string[];
|
|
12
|
+
customSettings?: Record<string, any>;
|
|
13
|
+
}
|
|
14
|
+
export declare class SettingsManager {
|
|
15
|
+
private settingsPath;
|
|
16
|
+
private settings;
|
|
17
|
+
constructor();
|
|
18
|
+
/**
|
|
19
|
+
* Load settings from file, falling back to defaults
|
|
20
|
+
*/
|
|
21
|
+
private loadSettings;
|
|
22
|
+
/**
|
|
23
|
+
* Save current settings to file
|
|
24
|
+
*/
|
|
25
|
+
saveSettings(newSettings: Partial<Settings>): Promise<void>;
|
|
26
|
+
/**
|
|
27
|
+
* Get effective configuration (merging File settings with Env Vars)
|
|
28
|
+
*/
|
|
29
|
+
getEffectiveSettings(): Settings;
|
|
30
|
+
/**
|
|
31
|
+
* Filter tools based on effective configuration
|
|
32
|
+
*/
|
|
33
|
+
filterTools(allTools: Tool[]): Tool[];
|
|
34
|
+
getSettingsPath(): string;
|
|
35
|
+
getProfiles(): Record<ProfileName, string[]>;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=settings-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings-manager.d.ts","sourceRoot":"","sources":["../../../src/utils/settings-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE1D,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;AAE1D,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,WAAW,CAAC;IACrB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACtC;AA8BD,qBAAa,eAAe;IAC1B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAW;;IAQ3B;;OAEG;IACH,OAAO,CAAC,YAAY;IAkBpB;;OAEG;IACG,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IASjE;;OAEG;IACH,oBAAoB,IAAI,QAAQ;IAmBhC;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE;IAmBrC,eAAe,IAAI,MAAM;IAIzB,WAAW,IAAI,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;CAG7C"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Settings Manager
|
|
3
|
+
*
|
|
4
|
+
* Handles persistent configuration for the NotebookLM MCP Server.
|
|
5
|
+
* Manages profiles, disabled tools, and environment variable overrides.
|
|
6
|
+
*/
|
|
7
|
+
import fs from "fs/promises";
|
|
8
|
+
import { existsSync, mkdirSync, readFileSync } from "fs";
|
|
9
|
+
import path from "path";
|
|
10
|
+
import { CONFIG } from "../config.js";
|
|
11
|
+
import { log } from "./logger.js";
|
|
12
|
+
const DEFAULT_SETTINGS = {
|
|
13
|
+
profile: "full",
|
|
14
|
+
disabledTools: [],
|
|
15
|
+
};
|
|
16
|
+
const PROFILES = {
|
|
17
|
+
minimal: [
|
|
18
|
+
"ask_question",
|
|
19
|
+
"get_health",
|
|
20
|
+
"list_notebooks",
|
|
21
|
+
"select_notebook",
|
|
22
|
+
"get_notebook" // Added as it is read-only and useful
|
|
23
|
+
],
|
|
24
|
+
standard: [
|
|
25
|
+
"ask_question",
|
|
26
|
+
"get_health",
|
|
27
|
+
"list_notebooks",
|
|
28
|
+
"select_notebook",
|
|
29
|
+
"get_notebook",
|
|
30
|
+
"setup_auth",
|
|
31
|
+
"list_sessions",
|
|
32
|
+
"add_notebook",
|
|
33
|
+
"update_notebook",
|
|
34
|
+
"search_notebooks"
|
|
35
|
+
],
|
|
36
|
+
full: ["*"] // All tools
|
|
37
|
+
};
|
|
38
|
+
export class SettingsManager {
|
|
39
|
+
settingsPath;
|
|
40
|
+
settings;
|
|
41
|
+
constructor() {
|
|
42
|
+
// Use the config directory from env-paths defined in config.ts
|
|
43
|
+
this.settingsPath = path.join(CONFIG.configDir, "settings.json");
|
|
44
|
+
this.settings = this.loadSettings();
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Load settings from file, falling back to defaults
|
|
48
|
+
*/
|
|
49
|
+
loadSettings() {
|
|
50
|
+
try {
|
|
51
|
+
// Ensure config dir exists
|
|
52
|
+
if (!existsSync(CONFIG.configDir)) {
|
|
53
|
+
mkdirSync(CONFIG.configDir, { recursive: true });
|
|
54
|
+
}
|
|
55
|
+
if (existsSync(this.settingsPath)) {
|
|
56
|
+
// Use the already imported readFileSync for synchronous file reading
|
|
57
|
+
const data = readFileSync(this.settingsPath, "utf-8");
|
|
58
|
+
return { ...DEFAULT_SETTINGS, ...JSON.parse(data) };
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
log.warning(`⚠️ Failed to load settings: ${error}. Using defaults.`);
|
|
63
|
+
}
|
|
64
|
+
return { ...DEFAULT_SETTINGS };
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Save current settings to file
|
|
68
|
+
*/
|
|
69
|
+
async saveSettings(newSettings) {
|
|
70
|
+
this.settings = { ...this.settings, ...newSettings };
|
|
71
|
+
try {
|
|
72
|
+
await fs.writeFile(this.settingsPath, JSON.stringify(this.settings, null, 2), "utf-8");
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
throw new Error(`Failed to save settings: ${error}`);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Get effective configuration (merging File settings with Env Vars)
|
|
80
|
+
*/
|
|
81
|
+
getEffectiveSettings() {
|
|
82
|
+
const envProfile = process.env.NOTEBOOKLM_PROFILE;
|
|
83
|
+
const envDisabled = process.env.NOTEBOOKLM_DISABLED_TOOLS;
|
|
84
|
+
const effectiveProfile = (envProfile && PROFILES[envProfile]) ? envProfile : this.settings.profile;
|
|
85
|
+
let effectiveDisabled = [...this.settings.disabledTools];
|
|
86
|
+
if (envDisabled) {
|
|
87
|
+
const envDisabledList = envDisabled.split(",").map(t => t.trim());
|
|
88
|
+
effectiveDisabled = [...new Set([...effectiveDisabled, ...envDisabledList])];
|
|
89
|
+
}
|
|
90
|
+
return {
|
|
91
|
+
profile: effectiveProfile,
|
|
92
|
+
disabledTools: effectiveDisabled,
|
|
93
|
+
customSettings: this.settings.customSettings
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Filter tools based on effective configuration
|
|
98
|
+
*/
|
|
99
|
+
filterTools(allTools) {
|
|
100
|
+
const { profile, disabledTools } = this.getEffectiveSettings();
|
|
101
|
+
const allowedTools = PROFILES[profile];
|
|
102
|
+
return allTools.filter(tool => {
|
|
103
|
+
// 1. Check if allowed by profile (unless profile is full/wildcard)
|
|
104
|
+
if (!allowedTools.includes("*") && !allowedTools.includes(tool.name)) {
|
|
105
|
+
return false;
|
|
106
|
+
}
|
|
107
|
+
// 2. Check if explicitly disabled
|
|
108
|
+
if (disabledTools.includes(tool.name)) {
|
|
109
|
+
return false;
|
|
110
|
+
}
|
|
111
|
+
return true;
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
getSettingsPath() {
|
|
115
|
+
return this.settingsPath;
|
|
116
|
+
}
|
|
117
|
+
getProfiles() {
|
|
118
|
+
return PROFILES;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=settings-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings-manager.js","sourceRoot":"","sources":["../../../src/utils/settings-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stealth utilities for human-like browser behavior
|
|
3
|
+
*
|
|
4
|
+
* This module provides functions to simulate realistic human interactions:
|
|
5
|
+
* - Human-like typing (speed configurable via CONFIG.typingWpmMin/Max)
|
|
6
|
+
* - Realistic mouse movements (Bezier curves with jitter)
|
|
7
|
+
* - Random delays (normal distribution)
|
|
8
|
+
* - Smooth scrolling
|
|
9
|
+
* - Reading pauses
|
|
10
|
+
*
|
|
11
|
+
* Based on the Python implementation from stealth_utils.py
|
|
12
|
+
*/
|
|
13
|
+
import type { Page } from "patchright";
|
|
14
|
+
/**
|
|
15
|
+
* Sleep for specified milliseconds
|
|
16
|
+
*/
|
|
17
|
+
export declare function sleep(ms: number): Promise<void>;
|
|
18
|
+
/**
|
|
19
|
+
* Generate random integer between min and max (inclusive)
|
|
20
|
+
*/
|
|
21
|
+
export declare function randomInt(min: number, max: number): number;
|
|
22
|
+
/**
|
|
23
|
+
* Generate random float between min and max
|
|
24
|
+
*/
|
|
25
|
+
export declare function randomFloat(min: number, max: number): number;
|
|
26
|
+
/**
|
|
27
|
+
* Generate random character (for typos)
|
|
28
|
+
*/
|
|
29
|
+
export declare function randomChar(): string;
|
|
30
|
+
/**
|
|
31
|
+
* Generate Gaussian (normal) distributed random number
|
|
32
|
+
* Uses Box-Muller transform
|
|
33
|
+
*/
|
|
34
|
+
export declare function gaussian(mean: number, stdDev: number): number;
|
|
35
|
+
/**
|
|
36
|
+
* Add a random delay to simulate human thinking/reaction time
|
|
37
|
+
* Uses normal distribution for more realistic delays
|
|
38
|
+
*
|
|
39
|
+
* @param minMs Minimum delay in milliseconds (default: from CONFIG)
|
|
40
|
+
* @param maxMs Maximum delay in milliseconds (default: from CONFIG)
|
|
41
|
+
*/
|
|
42
|
+
export declare function randomDelay(minMs?: number, maxMs?: number): Promise<void>;
|
|
43
|
+
/**
|
|
44
|
+
* Type text in a human-like manner with variable speed and optional typos
|
|
45
|
+
*
|
|
46
|
+
* Simulates realistic typing patterns:
|
|
47
|
+
* - Variable speed (45-65 WPM by default)
|
|
48
|
+
* - Occasional typos (2% chance)
|
|
49
|
+
* - Longer pauses after punctuation
|
|
50
|
+
* - Realistic character delays
|
|
51
|
+
*
|
|
52
|
+
* @param page Playwright page instance
|
|
53
|
+
* @param selector CSS selector of input element
|
|
54
|
+
* @param text Text to type
|
|
55
|
+
* @param options Typing options (wpm, withTypos)
|
|
56
|
+
*/
|
|
57
|
+
export declare function humanType(page: Page, selector: string, text: string, options?: {
|
|
58
|
+
wpm?: number;
|
|
59
|
+
withTypos?: boolean;
|
|
60
|
+
}): Promise<void>;
|
|
61
|
+
/**
|
|
62
|
+
* Move mouse in a realistic curved path to target coordinates
|
|
63
|
+
* Uses Bezier-like curves with jitter for natural movement
|
|
64
|
+
*
|
|
65
|
+
* @param page Playwright page instance
|
|
66
|
+
* @param targetX Target X coordinate (default: random)
|
|
67
|
+
* @param targetY Target Y coordinate (default: random)
|
|
68
|
+
* @param steps Number of steps in movement (default: random 10-25)
|
|
69
|
+
*/
|
|
70
|
+
export declare function randomMouseMovement(page: Page, targetX?: number, targetY?: number, steps?: number): Promise<void>;
|
|
71
|
+
/**
|
|
72
|
+
* Click an element with realistic human behavior
|
|
73
|
+
* Includes mouse movement, pause, and click
|
|
74
|
+
*
|
|
75
|
+
* @param page Playwright page instance
|
|
76
|
+
* @param selector CSS selector of element to click
|
|
77
|
+
* @param withMouseMovement Whether to move mouse first (default: true)
|
|
78
|
+
*/
|
|
79
|
+
export declare function realisticClick(page: Page, selector: string, withMouseMovement?: boolean): Promise<void>;
|
|
80
|
+
/**
|
|
81
|
+
* Scroll the page smoothly like a human
|
|
82
|
+
* Uses multiple small steps for smooth animation
|
|
83
|
+
*
|
|
84
|
+
* @param page Playwright page instance
|
|
85
|
+
* @param amount Scroll amount in pixels (default: random 100-400)
|
|
86
|
+
* @param direction Scroll direction ("down" or "up")
|
|
87
|
+
*/
|
|
88
|
+
export declare function smoothScroll(page: Page, amount?: number, direction?: "up" | "down"): Promise<void>;
|
|
89
|
+
/**
|
|
90
|
+
* Pause as if reading text, based on length
|
|
91
|
+
* Calculates realistic reading time based on text length and WPM
|
|
92
|
+
*
|
|
93
|
+
* @param textLength Number of characters to "read"
|
|
94
|
+
* @param wpm Reading speed in words per minute (default: random 200-250)
|
|
95
|
+
*/
|
|
96
|
+
export declare function readingPause(textLength: number, wpm?: number): Promise<void>;
|
|
97
|
+
/**
|
|
98
|
+
* Add small random mouse movements to simulate natural fidgeting
|
|
99
|
+
*
|
|
100
|
+
* @param page Playwright page instance
|
|
101
|
+
* @param iterations Number of small movements (default: 3)
|
|
102
|
+
*/
|
|
103
|
+
export declare function randomMouseJitter(page: Page, iterations?: number): Promise<void>;
|
|
104
|
+
/**
|
|
105
|
+
* Hover over an element with realistic mouse movement
|
|
106
|
+
*
|
|
107
|
+
* @param page Playwright page instance
|
|
108
|
+
* @param selector CSS selector of element to hover
|
|
109
|
+
*/
|
|
110
|
+
export declare function hoverElement(page: Page, selector: string): Promise<void>;
|
|
111
|
+
/**
|
|
112
|
+
* Simulate reading a page with scrolling and pauses
|
|
113
|
+
* Adds realistic behavior of scrolling and reading content
|
|
114
|
+
*
|
|
115
|
+
* @param page Playwright page instance
|
|
116
|
+
*/
|
|
117
|
+
export declare function simulateReadingPage(page: Page): Promise<void>;
|
|
118
|
+
declare const _default: {
|
|
119
|
+
sleep: typeof sleep;
|
|
120
|
+
randomInt: typeof randomInt;
|
|
121
|
+
randomFloat: typeof randomFloat;
|
|
122
|
+
randomChar: typeof randomChar;
|
|
123
|
+
gaussian: typeof gaussian;
|
|
124
|
+
randomDelay: typeof randomDelay;
|
|
125
|
+
humanType: typeof humanType;
|
|
126
|
+
randomMouseMovement: typeof randomMouseMovement;
|
|
127
|
+
realisticClick: typeof realisticClick;
|
|
128
|
+
smoothScroll: typeof smoothScroll;
|
|
129
|
+
readingPause: typeof readingPause;
|
|
130
|
+
randomMouseJitter: typeof randomMouseJitter;
|
|
131
|
+
hoverElement: typeof hoverElement;
|
|
132
|
+
simulateReadingPage: typeof simulateReadingPage;
|
|
133
|
+
};
|
|
134
|
+
export default _default;
|
|
135
|
+
//# sourceMappingURL=stealth-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stealth-utils.d.ts","sourceRoot":"","sources":["../../../src/utils/stealth-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAOvC;;GAEG;AACH,wBAAsB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAErD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAGnC;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAK7D;AAMD;;;;;;GAMG;AACH,wBAAsB,WAAW,CAC/B,KAAK,CAAC,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAsBf;AAMD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,SAAS,CAC7B,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;IACP,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,CAAC;CAChB,GACL,OAAO,CAAC,IAAI,CAAC,CAwEf;AAMD;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,IAAI,EACV,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAuCf;AAMD;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,MAAM,EAChB,iBAAiB,GAAE,OAAc,GAChC,OAAO,CAAC,IAAI,CAAC,CAgCf;AAMD;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,IAAI,EACV,MAAM,CAAC,EAAE,MAAM,EACf,SAAS,GAAE,IAAI,GAAG,MAAe,GAChC,OAAO,CAAC,IAAI,CAAC,CA2Bf;AAMD;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBlF;AAMD;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,IAAI,EACV,UAAU,GAAE,MAAU,GACrB,OAAO,CAAC,IAAI,CAAC,CAaf;AAMD;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmB9E;AAMD;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBnE;;;;;;;;;;;;;;;;;AAMD,wBAeE"}
|