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,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UI Health Check Script
|
|
3
|
+
*
|
|
4
|
+
* Verifies:
|
|
5
|
+
* 1. Authentication status (cookies)
|
|
6
|
+
* 2. NotebookLM connectivity (navigation)
|
|
7
|
+
* 3. Chat Input Selector validation (critical for operation)
|
|
8
|
+
*
|
|
9
|
+
* Usage:
|
|
10
|
+
* npx tsx src/scripts/health-check.ts
|
|
11
|
+
*/
|
|
12
|
+
import { AuthManager } from "../auth/auth-manager.js";
|
|
13
|
+
import { SessionManager } from "../session/session-manager.js";
|
|
14
|
+
import { CONFIG } from "../config.js";
|
|
15
|
+
import { log } from "../utils/logger.js";
|
|
16
|
+
import { NOTEBOOKLM_URL_PREFIX } from "../constants.js";
|
|
17
|
+
async function runHealthCheck() {
|
|
18
|
+
log.info("🏥 Starting NotebookLM MCP Health Check...");
|
|
19
|
+
log.info(` 📅 Date: ${new Date().toISOString()}`);
|
|
20
|
+
log.info(` 🔗 Notebook URL: ${CONFIG.notebookUrl || "Not set (will use default/random)"}`);
|
|
21
|
+
const authManager = new AuthManager();
|
|
22
|
+
const sessionManager = new SessionManager(authManager);
|
|
23
|
+
let success = false;
|
|
24
|
+
try {
|
|
25
|
+
// 1. Check Authentication State
|
|
26
|
+
log.info("\n🔍 1. Checking Authentication State...");
|
|
27
|
+
const statePath = await authManager.getValidStatePath();
|
|
28
|
+
if (!statePath) {
|
|
29
|
+
log.error(" ❌ No valid authentication state found.");
|
|
30
|
+
log.info(" 💡 Run 'setup_auth' to authenticate first.");
|
|
31
|
+
process.exit(1);
|
|
32
|
+
}
|
|
33
|
+
log.success(" ✅ Valid authentication state found");
|
|
34
|
+
// 2. Initialize Browser Session (Headless)
|
|
35
|
+
log.info("\n🔍 2. Initializing Browser Session...");
|
|
36
|
+
// Force specific notebook URL if set, or use default if available
|
|
37
|
+
const notebookUrl = CONFIG.notebookUrl;
|
|
38
|
+
if (!notebookUrl) {
|
|
39
|
+
log.error(" ❌ NOTEBOOK_URL env var is not set. Cannot run UI check without a target notebook.");
|
|
40
|
+
process.exit(1);
|
|
41
|
+
}
|
|
42
|
+
const session = await sessionManager.getOrCreateSession("health-check-session", notebookUrl, true // Force headless for health check
|
|
43
|
+
);
|
|
44
|
+
// 3. Verify Navigation
|
|
45
|
+
log.info("\n🔍 3. Verifying Navigation...");
|
|
46
|
+
await session.init();
|
|
47
|
+
const page = session.getPage();
|
|
48
|
+
if (!page) {
|
|
49
|
+
throw new Error("Page initialization failed");
|
|
50
|
+
}
|
|
51
|
+
const url = page.url();
|
|
52
|
+
if (url.startsWith(NOTEBOOKLM_URL_PREFIX)) {
|
|
53
|
+
log.success(` ✅ Navigated to NotebookLM: ${url.substring(0, 50)}...`);
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
log.error(` ❌ Navigation failed. Current URL: ${url}`);
|
|
57
|
+
throw new Error("Navigation failed");
|
|
58
|
+
}
|
|
59
|
+
// 4. Validate Selectors
|
|
60
|
+
log.info("\n🔍 4. Validating UI Selectors...");
|
|
61
|
+
// Access private findChatInput via any cast for testing, or use public method if available
|
|
62
|
+
// BrowserSession doesn't expose findChatInput publicly, but ask() uses it.
|
|
63
|
+
// We can manually check using the constants.
|
|
64
|
+
// Actually, let's use the session methods if possible, or just replicate the check
|
|
65
|
+
// Since we are inside the codebase, we can import CHAT_INPUT_SELECTORS
|
|
66
|
+
// We can't easily access private method, but we can verify if we can find the element
|
|
67
|
+
// Let's use internal page instance
|
|
68
|
+
const { CHAT_INPUT_SELECTORS } = await import("../constants.js");
|
|
69
|
+
let foundSelector = null;
|
|
70
|
+
for (const selector of CHAT_INPUT_SELECTORS) {
|
|
71
|
+
if (await page.isVisible(selector)) {
|
|
72
|
+
foundSelector = selector;
|
|
73
|
+
break;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
if (foundSelector) {
|
|
77
|
+
log.success(` ✅ Chat Input found using selector: "${foundSelector}"`);
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
log.error(" ❌ Chat Input NOT found with any known selector!");
|
|
81
|
+
log.error(` Tried: ${CHAT_INPUT_SELECTORS.join(", ")}`);
|
|
82
|
+
throw new Error("UI Selector Validation Failed");
|
|
83
|
+
}
|
|
84
|
+
// Success!
|
|
85
|
+
success = true;
|
|
86
|
+
log.success("\n✨ Health Check PASSED! System is fully operational.");
|
|
87
|
+
}
|
|
88
|
+
catch (error) {
|
|
89
|
+
log.error(`\n💥 Health Check FAILED: ${error}`);
|
|
90
|
+
success = false;
|
|
91
|
+
}
|
|
92
|
+
finally {
|
|
93
|
+
// Cleanup
|
|
94
|
+
log.info("\n🧹 Cleaning up...");
|
|
95
|
+
await sessionManager.closeAllSessions();
|
|
96
|
+
process.exit(success ? 0 : 1);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
runHealthCheck();
|
|
100
|
+
//# sourceMappingURL=health-check.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"health-check.js","sourceRoot":"","sources":["../../../src/scripts/health-check.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Browser Session
|
|
3
|
+
*
|
|
4
|
+
* Represents a single browser session for NotebookLM interactions.
|
|
5
|
+
*
|
|
6
|
+
* Features:
|
|
7
|
+
* - Human-like question typing
|
|
8
|
+
* - Streaming response detection
|
|
9
|
+
* - Auto-login on session expiry
|
|
10
|
+
* - Session activity tracking
|
|
11
|
+
* - Chat history reset
|
|
12
|
+
*
|
|
13
|
+
* Based on the Python implementation from browser_session.py
|
|
14
|
+
*/
|
|
15
|
+
import type { Page } from "patchright";
|
|
16
|
+
import { SharedContextManager } from "./shared-context-manager.js";
|
|
17
|
+
import { AuthManager } from "../auth/auth-manager.js";
|
|
18
|
+
import type { SessionInfo, ProgressCallback } from "../types.js";
|
|
19
|
+
export declare class BrowserSession {
|
|
20
|
+
readonly sessionId: string;
|
|
21
|
+
readonly notebookUrl: string;
|
|
22
|
+
readonly createdAt: number;
|
|
23
|
+
lastActivity: number;
|
|
24
|
+
messageCount: number;
|
|
25
|
+
private context;
|
|
26
|
+
private sharedContextManager;
|
|
27
|
+
private authManager;
|
|
28
|
+
private page;
|
|
29
|
+
private initialized;
|
|
30
|
+
constructor(sessionId: string, sharedContextManager: SharedContextManager, authManager: AuthManager, notebookUrl: string);
|
|
31
|
+
/**
|
|
32
|
+
* Initialize the session by creating a page and navigating to the notebook
|
|
33
|
+
*/
|
|
34
|
+
init(): Promise<void>;
|
|
35
|
+
/**
|
|
36
|
+
* Wait for NotebookLM interface to be ready
|
|
37
|
+
*
|
|
38
|
+
* IMPORTANT: Matches Python implementation EXACTLY!
|
|
39
|
+
* - Uses SPECIFIC selectors (textarea.query-box-input)
|
|
40
|
+
* - Checks ONLY for "visible" state (NOT disabled!)
|
|
41
|
+
* - NO placeholder checks (let NotebookLM handle that!)
|
|
42
|
+
*
|
|
43
|
+
* Based on Python _wait_for_ready() from browser_session.py:104-113
|
|
44
|
+
*/
|
|
45
|
+
private waitForNotebookLMReady;
|
|
46
|
+
private isPageClosedSafe;
|
|
47
|
+
/**
|
|
48
|
+
* Ensure the session is authenticated, perform auto-login if needed
|
|
49
|
+
*/
|
|
50
|
+
private ensureAuthenticated;
|
|
51
|
+
private getOriginFromUrl;
|
|
52
|
+
/**
|
|
53
|
+
* Safely restore sessionStorage when the page is on the expected origin
|
|
54
|
+
*/
|
|
55
|
+
private restoreSessionStorage;
|
|
56
|
+
/**
|
|
57
|
+
* Ask a question to NotebookLM
|
|
58
|
+
*/
|
|
59
|
+
ask(question: string, sendProgress?: ProgressCallback): Promise<string>;
|
|
60
|
+
/**
|
|
61
|
+
* Find the chat input element
|
|
62
|
+
*
|
|
63
|
+
* IMPORTANT: Matches Python implementation EXACTLY!
|
|
64
|
+
* - Uses SPECIFIC selectors from Python
|
|
65
|
+
* - Checks ONLY visibility (NOT disabled state!)
|
|
66
|
+
*
|
|
67
|
+
* Based on Python ask() method from browser_session.py:166-171
|
|
68
|
+
*/
|
|
69
|
+
private findChatInput;
|
|
70
|
+
/**
|
|
71
|
+
* Detect if a rate limit error occurred
|
|
72
|
+
*
|
|
73
|
+
* Searches the page for error messages indicating rate limit/quota exhaustion.
|
|
74
|
+
* Free NotebookLM accounts have 50 queries/day limit.
|
|
75
|
+
*
|
|
76
|
+
* @returns true if rate limit error detected, false otherwise
|
|
77
|
+
*/
|
|
78
|
+
private detectRateLimitError;
|
|
79
|
+
/**
|
|
80
|
+
* Reset the chat history (start a new conversation)
|
|
81
|
+
*/
|
|
82
|
+
reset(): Promise<void>;
|
|
83
|
+
/**
|
|
84
|
+
* Close the session
|
|
85
|
+
*/
|
|
86
|
+
close(): Promise<void>;
|
|
87
|
+
/**
|
|
88
|
+
* Update last activity timestamp
|
|
89
|
+
*/
|
|
90
|
+
updateActivity(): void;
|
|
91
|
+
/**
|
|
92
|
+
* Check if session has expired (inactive for too long)
|
|
93
|
+
*/
|
|
94
|
+
isExpired(timeoutSeconds: number): boolean;
|
|
95
|
+
/**
|
|
96
|
+
* Get session information
|
|
97
|
+
*/
|
|
98
|
+
getInfo(): SessionInfo;
|
|
99
|
+
/**
|
|
100
|
+
* Get the underlying page (for advanced operations)
|
|
101
|
+
*/
|
|
102
|
+
getPage(): Page | null;
|
|
103
|
+
/**
|
|
104
|
+
* Check if session is initialized
|
|
105
|
+
*/
|
|
106
|
+
isInitialized(): boolean;
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=browser-session.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser-session.d.ts","sourceRoot":"","sources":["../../../src/session/browser-session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAkB,IAAI,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAQtD,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAKjE,qBAAa,cAAc;IACzB,SAAgB,SAAS,EAAE,MAAM,CAAC;IAClC,SAAgB,WAAW,EAAE,MAAM,CAAC;IACpC,SAAgB,SAAS,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IAE5B,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,oBAAoB,CAAuB;IACnD,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,IAAI,CAAqB;IACjC,OAAO,CAAC,WAAW,CAAkB;gBAGnC,SAAS,EAAE,MAAM,EACjB,oBAAoB,EAAE,oBAAoB,EAC1C,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,MAAM;IAarB;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAqF3B;;;;;;;;;OASG;YACW,sBAAsB;IA4CpC,OAAO,CAAC,gBAAgB;IAexB;;OAEG;YACW,mBAAmB;IAwEjC,OAAO,CAAC,gBAAgB;IAQxB;;OAEG;YACW,qBAAqB;IA6DnC;;OAEG;IACG,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;IAiH7E;;;;;;;;OAQG;YACW,aAAa;IAoC3B;;;;;;;OAOG;YACW,oBAAoB;IAuFlC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAuC5B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAiB5B;;OAEG;IACH,cAAc,IAAI,IAAI;IAItB;;OAEG;IACH,SAAS,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO;IAK1C;;OAEG;IACH,OAAO,IAAI,WAAW;IAatB;;OAEG;IACH,OAAO,IAAI,IAAI,GAAG,IAAI;IAItB;;OAEG;IACH,aAAa,IAAI,OAAO;CAGzB"}
|