@pan-sec/notebooklm-mcp 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +289 -0
- package/SECURITY.md +539 -0
- package/dist/auth/auth-manager.d.ts +137 -0
- package/dist/auth/auth-manager.d.ts.map +1 -0
- package/dist/auth/auth-manager.js +984 -0
- package/dist/auth/auth-manager.js.map +1 -0
- package/dist/auth/mcp-auth.d.ts +102 -0
- package/dist/auth/mcp-auth.d.ts.map +1 -0
- package/dist/auth/mcp-auth.js +286 -0
- package/dist/auth/mcp-auth.js.map +1 -0
- package/dist/config.d.ts +89 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +216 -0
- package/dist/config.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 +371 -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/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/session/browser-session.d.ts +108 -0
- package/dist/session/browser-session.d.ts.map +1 -0
- package/dist/session/browser-session.js +621 -0
- package/dist/session/browser-session.js.map +1 -0
- package/dist/session/session-manager.d.ts +77 -0
- package/dist/session/session-manager.d.ts.map +1 -0
- package/dist/session/session-manager.js +314 -0
- package/dist/session/session-manager.js.map +1 -0
- package/dist/session/session-timeout.d.ts +122 -0
- package/dist/session/session-timeout.d.ts.map +1 -0
- package/dist/session/session-timeout.js +281 -0
- package/dist/session/session-timeout.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/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 +213 -0
- package/dist/tools/handlers.d.ts.map +1 -0
- package/dist/tools/handlers.js +813 -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/audit-logger.d.ts +140 -0
- package/dist/utils/audit-logger.d.ts.map +1 -0
- package/dist/utils/audit-logger.js +361 -0
- package/dist/utils/audit-logger.js.map +1 -0
- package/dist/utils/cert-pinning.d.ts +97 -0
- package/dist/utils/cert-pinning.d.ts.map +1 -0
- package/dist/utils/cert-pinning.js +328 -0
- package/dist/utils/cert-pinning.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/crypto.d.ts +175 -0
- package/dist/utils/crypto.d.ts.map +1 -0
- package/dist/utils/crypto.js +612 -0
- package/dist/utils/crypto.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 +405 -0
- package/dist/utils/page-utils.js.map +1 -0
- package/dist/utils/response-validator.d.ts +98 -0
- package/dist/utils/response-validator.d.ts.map +1 -0
- package/dist/utils/response-validator.js +352 -0
- package/dist/utils/response-validator.js.map +1 -0
- package/dist/utils/secrets-scanner.d.ts +126 -0
- package/dist/utils/secrets-scanner.d.ts.map +1 -0
- package/dist/utils/secrets-scanner.js +443 -0
- package/dist/utils/secrets-scanner.js.map +1 -0
- package/dist/utils/secure-memory.d.ts +130 -0
- package/dist/utils/secure-memory.d.ts.map +1 -0
- package/dist/utils/secure-memory.js +279 -0
- package/dist/utils/secure-memory.js.map +1 -0
- package/dist/utils/security.d.ts +83 -0
- package/dist/utils/security.d.ts.map +1 -0
- package/dist/utils/security.js +272 -0
- package/dist/utils/security.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 +125 -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 +398 -0
- package/dist/utils/stealth-utils.js.map +1 -0
- package/dist/utils/tool-validation.d.ts +93 -0
- package/dist/utils/tool-validation.d.ts.map +1 -0
- package/dist/utils/tool-validation.js +277 -0
- package/dist/utils/tool-validation.js.map +1 -0
- package/docs/SECURITY_IMPLEMENTATION_PLAN.md +437 -0
- package/docs/configuration.md +94 -0
- package/docs/tools.md +34 -0
- package/docs/troubleshooting.md +59 -0
- package/docs/usage-guide.md +245 -0
- package/package.json +82 -0
|
@@ -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;AAGjE,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;IAoF3B;;;;;;;;;OASG;YACW,sBAAsB;IAgCpC,OAAO,CAAC,gBAAgB;IAexB;;OAEG;YACW,mBAAmB;IAwEjC,OAAO,CAAC,gBAAgB;IAQxB;;OAEG;YACW,qBAAqB;IA8DnC;;OAEG;IACG,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;IA6G7E;;;;;;;;OAQG;YACW,aAAa;IA+B3B;;;;;;;OAOG;YACW,oBAAoB;IAuFlC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAsC5B;;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"}
|