@roomi-fields/notebooklm-mcp 1.5.3 â 1.5.7
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 +22 -22
- package/README.md +219 -203
- package/deployment/INDEX.md +0 -0
- package/deployment/PACKAGE-FILES.txt +180 -180
- package/deployment/QUICK-START.md +0 -0
- package/deployment/docs/01-INSTALL.md +0 -0
- package/deployment/docs/02-CONFIGURATION.md +0 -0
- package/deployment/docs/03-API.md +99 -13
- package/deployment/docs/04-N8N-INTEGRATION.md +0 -0
- package/deployment/docs/05-TROUBLESHOOTING.md +0 -0
- package/deployment/docs/06-NOTEBOOK-LIBRARY.md +0 -0
- package/deployment/docs/07-AUTO-DISCOVERY.md +0 -0
- package/deployment/docs/08-DOCKER.md +125 -55
- package/deployment/docs/08-WSL-USAGE.md +0 -0
- package/deployment/docs/09-MULTI-INTERFACE.md +0 -0
- package/deployment/docs/10-CONTENT-MANAGEMENT.md +0 -0
- package/deployment/docs/11-MULTI-ACCOUNT.md +0 -0
- package/deployment/docs/README.md +9 -2
- package/deployment/scripts/README.md +0 -0
- package/deployment/scripts/install.ps1 +114 -114
- package/deployment/scripts/setup-auth.ps1 +217 -217
- package/deployment/scripts/start-server.ps1 +72 -72
- package/deployment/scripts/stop-server.ps1 +51 -51
- package/deployment/scripts/test-api.ps1 +651 -651
- package/deployment/scripts/test-auth.ps1 +0 -0
- package/deployment/scripts/test-auto-discovery.ps1 +295 -295
- package/deployment/scripts/test-cors.ps1 +398 -398
- package/deployment/scripts/test-errors.ps1 +581 -581
- package/deployment/scripts/test-server.ps1 +140 -140
- package/deployment/scripts/test-sessions.ps1 +426 -426
- package/deployment/scripts/test-validation.ps1 +299 -299
- package/dist/accounts/account-manager.d.ts +15 -0
- package/dist/accounts/account-manager.d.ts.map +1 -1
- package/dist/accounts/account-manager.js +104 -0
- package/dist/accounts/account-manager.js.map +1 -1
- package/dist/accounts/auto-login-manager.d.ts +0 -0
- package/dist/accounts/auto-login-manager.d.ts.map +1 -1
- package/dist/accounts/auto-login-manager.js +29 -25
- package/dist/accounts/auto-login-manager.js.map +1 -1
- package/dist/accounts/crypto.d.ts +0 -0
- package/dist/accounts/crypto.d.ts.map +0 -0
- package/dist/accounts/crypto.js +0 -0
- package/dist/accounts/crypto.js.map +0 -0
- package/dist/accounts/index.d.ts +0 -0
- package/dist/accounts/index.d.ts.map +0 -0
- package/dist/accounts/index.js +0 -0
- package/dist/accounts/index.js.map +0 -0
- package/dist/accounts/types.d.ts +0 -0
- package/dist/accounts/types.d.ts.map +0 -0
- package/dist/accounts/types.js +0 -0
- package/dist/accounts/types.js.map +0 -0
- package/dist/auth/auth-manager.d.ts +1 -1
- package/dist/auth/auth-manager.d.ts.map +1 -1
- package/dist/auth/auth-manager.js +14 -9
- package/dist/auth/auth-manager.js.map +1 -1
- package/dist/auto-discovery/auto-discovery.d.ts +0 -0
- package/dist/auto-discovery/auto-discovery.d.ts.map +0 -0
- package/dist/auto-discovery/auto-discovery.js +0 -0
- package/dist/auto-discovery/auto-discovery.js.map +0 -0
- package/dist/cli/accounts.d.ts +0 -0
- package/dist/cli/accounts.d.ts.map +0 -0
- package/dist/cli/accounts.js +0 -0
- package/dist/cli/accounts.js.map +0 -0
- package/dist/cli/de-auth.d.ts +0 -0
- package/dist/cli/de-auth.d.ts.map +0 -0
- package/dist/cli/de-auth.js +0 -0
- package/dist/cli/de-auth.js.map +0 -0
- package/dist/cli/help.d.ts +0 -0
- package/dist/cli/help.d.ts.map +0 -0
- package/dist/cli/help.js +0 -0
- package/dist/cli/help.js.map +0 -0
- package/dist/cli/setup-auth.d.ts +0 -0
- package/dist/cli/setup-auth.d.ts.map +0 -0
- package/dist/cli/setup-auth.js +18 -10
- package/dist/cli/setup-auth.js.map +1 -1
- package/dist/config.d.ts +0 -0
- package/dist/config.d.ts.map +0 -0
- package/dist/config.js +1 -1
- package/dist/config.js.map +1 -1
- package/dist/content/content-generator.d.ts +0 -0
- package/dist/content/content-generator.d.ts.map +0 -0
- package/dist/content/content-generator.js +0 -0
- package/dist/content/content-generator.js.map +0 -0
- package/dist/content/content-manager.d.ts +0 -0
- package/dist/content/content-manager.d.ts.map +0 -0
- package/dist/content/content-manager.js +0 -0
- package/dist/content/content-manager.js.map +0 -0
- package/dist/content/content-templates.d.ts +0 -0
- package/dist/content/content-templates.d.ts.map +0 -0
- package/dist/content/content-templates.js +0 -0
- package/dist/content/content-templates.js.map +0 -0
- package/dist/content/index.d.ts +0 -0
- package/dist/content/index.d.ts.map +0 -0
- package/dist/content/index.js +0 -0
- package/dist/content/index.js.map +0 -0
- package/dist/content/types.d.ts +0 -0
- package/dist/content/types.d.ts.map +0 -0
- package/dist/content/types.js +0 -0
- package/dist/content/types.js.map +0 -0
- package/dist/errors.d.ts +0 -0
- package/dist/errors.d.ts.map +0 -0
- package/dist/errors.js +0 -0
- package/dist/errors.js.map +0 -0
- package/dist/http-wrapper.d.ts +0 -0
- package/dist/http-wrapper.d.ts.map +1 -1
- package/dist/http-wrapper.js +245 -6
- package/dist/http-wrapper.js.map +1 -1
- package/dist/i18n/en.json +0 -0
- package/dist/i18n/fr.json +0 -0
- package/dist/i18n/index.d.ts +0 -0
- package/dist/i18n/index.d.ts.map +0 -0
- package/dist/i18n/index.js +0 -0
- package/dist/i18n/index.js.map +0 -0
- package/dist/index.d.ts +0 -0
- package/dist/index.d.ts.map +0 -0
- package/dist/index.js +0 -0
- package/dist/index.js.map +0 -0
- package/dist/library/notebook-library.d.ts +0 -0
- package/dist/library/notebook-library.d.ts.map +0 -0
- package/dist/library/notebook-library.js +0 -0
- package/dist/library/notebook-library.js.map +0 -0
- package/dist/library/types.d.ts +0 -0
- package/dist/library/types.d.ts.map +0 -0
- package/dist/library/types.js +0 -0
- package/dist/library/types.js.map +0 -0
- package/dist/session/browser-session.d.ts +0 -0
- package/dist/session/browser-session.d.ts.map +1 -1
- package/dist/session/browser-session.js +215 -91
- package/dist/session/browser-session.js.map +1 -1
- package/dist/session/session-manager.d.ts +0 -0
- package/dist/session/session-manager.d.ts.map +0 -0
- package/dist/session/session-manager.js +0 -0
- package/dist/session/session-manager.js.map +0 -0
- package/dist/session/shared-context-manager.d.ts +0 -0
- package/dist/session/shared-context-manager.d.ts.map +1 -1
- package/dist/session/shared-context-manager.js +22 -2
- package/dist/session/shared-context-manager.js.map +1 -1
- package/dist/startup/startup-manager.d.ts +8 -0
- package/dist/startup/startup-manager.d.ts.map +1 -1
- package/dist/startup/startup-manager.js +176 -28
- package/dist/startup/startup-manager.js.map +1 -1
- package/dist/stdio-http-proxy.d.ts +0 -0
- package/dist/stdio-http-proxy.d.ts.map +0 -0
- package/dist/stdio-http-proxy.js +91 -16
- package/dist/stdio-http-proxy.js.map +1 -1
- package/dist/tools/index.d.ts +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +52 -32
- package/dist/tools/index.js.map +1 -1
- package/dist/types.d.ts +0 -0
- package/dist/types.d.ts.map +0 -0
- package/dist/types.js +0 -0
- package/dist/types.js.map +0 -0
- package/dist/utils/citation-extractor.d.ts +6 -7
- package/dist/utils/citation-extractor.d.ts.map +1 -1
- package/dist/utils/citation-extractor.js +138 -303
- package/dist/utils/citation-extractor.js.map +1 -1
- package/dist/utils/cleanup-manager.d.ts +0 -0
- package/dist/utils/cleanup-manager.d.ts.map +0 -0
- package/dist/utils/cleanup-manager.js +0 -0
- package/dist/utils/cleanup-manager.js.map +0 -0
- package/dist/utils/logger.d.ts +0 -0
- package/dist/utils/logger.d.ts.map +0 -0
- package/dist/utils/logger.js +0 -0
- package/dist/utils/logger.js.map +0 -0
- package/dist/utils/page-utils.d.ts +0 -0
- package/dist/utils/page-utils.d.ts.map +1 -1
- package/dist/utils/page-utils.js +12 -13
- package/dist/utils/page-utils.js.map +1 -1
- package/dist/utils/stealth-utils.d.ts +0 -0
- package/dist/utils/stealth-utils.d.ts.map +0 -0
- package/dist/utils/stealth-utils.js +0 -0
- package/dist/utils/stealth-utils.js.map +0 -0
- package/docs/ADDING_A_LANGUAGE.md +0 -0
- package/docs/ARCHITECTURE_MIGRATION_STUDY.md +0 -0
- package/docs/CHROME_PROFILE_LIMITATION.md +0 -0
- package/docs/MULTI_ACCOUNT_SYSTEM.md +0 -0
- package/docs/archive/auto-discovery-complet.md +906 -0
- package/package.json +4 -2
- package/scripts/add-totp.ts +110 -0
- package/scripts/archive/add-and-activate-notebook.ps1 +0 -0
- package/scripts/archive/add-new-notebook.ps1 +0 -0
- package/scripts/archive/add-rom1pey.ps1 +0 -0
- package/scripts/archive/add-rpmonster.ps1 +0 -0
- package/scripts/archive/add-source-debug.ps1 +0 -0
- package/scripts/archive/add-source-e2e.ps1 +0 -0
- package/scripts/archive/add-source-visible.ps1 +0 -0
- package/scripts/archive/add-test-notebook.ps1 +0 -0
- package/scripts/archive/add-test-source.ps1 +0 -0
- package/scripts/archive/capture-screen.ps1 +0 -0
- package/scripts/archive/change-language.mjs +0 -0
- package/scripts/archive/change-language.ts +0 -0
- package/scripts/archive/check-account.ps1 +0 -0
- package/scripts/archive/check-notebook-2.ps1 +0 -0
- package/scripts/archive/check-test-notebook.ps1 +0 -0
- package/scripts/archive/create-notebook-auto.ps1 +0 -0
- package/scripts/archive/create-notebook.ps1 +0 -0
- package/scripts/archive/create-rom1pey-notebook.ps1 +0 -0
- package/scripts/archive/create-rom1pey.ps1 +0 -0
- package/scripts/archive/create-test-notebook-fresh.ps1 +0 -0
- package/scripts/archive/create-test-notebook.ps1 +0 -0
- package/scripts/archive/debug-add-source-auto.ps1 +0 -0
- package/scripts/archive/debug-add-source.ps1 +0 -0
- package/scripts/archive/debug-add-text-source.ps1 +0 -0
- package/scripts/archive/debug-home.ps1 +0 -0
- package/scripts/archive/debug-selectors.ps1 +0 -0
- package/scripts/archive/debug-sources-panel.ps1 +0 -0
- package/scripts/archive/debug-ui.ps1 +0 -0
- package/scripts/archive/discover-home.ps1 +0 -0
- package/scripts/archive/kill-automation-chrome.ps1 +0 -0
- package/scripts/archive/list-my-notebooks.ps1 +0 -0
- package/scripts/archive/navigate-home-visible.ps1 +0 -0
- package/scripts/archive/navigate-home.ps1 +0 -0
- package/scripts/archive/run-e2e-english.ps1 +0 -0
- package/scripts/archive/run-e2e-rom1pey-v2.ps1 +0 -0
- package/scripts/archive/run-e2e-rom1pey.ps1 +0 -0
- package/scripts/archive/setup-english-test.ps1 +0 -0
- package/scripts/archive/setup-test-notebook.ps1 +0 -0
- package/scripts/archive/simple-add-source.ps1 +0 -0
- package/scripts/archive/t10.ps1 +0 -0
- package/scripts/archive/t20.ps1 +0 -0
- package/scripts/archive/t30.ps1 +0 -0
- package/scripts/archive/t31.ps1 +0 -0
- package/scripts/archive/t32.ps1 +0 -0
- package/scripts/archive/t39.ps1 +0 -0
- package/scripts/archive/t40.ps1 +0 -0
- package/scripts/archive/t53.ps1 +0 -0
- package/scripts/archive/t54.ps1 +0 -0
- package/scripts/archive/t55.ps1 +0 -0
- package/scripts/archive/t9.ps1 +0 -0
- package/scripts/archive/test-access.ps1 +0 -0
- package/scripts/archive/test-add-delete-source.ps1 +0 -0
- package/scripts/archive/test-add-source-visible.ps1 +0 -0
- package/scripts/archive/test-add-source.ps1 +0 -0
- package/scripts/archive/test-add-text-debug.ps1 +0 -0
- package/scripts/archive/test-add-text-source.ps1 +0 -0
- package/scripts/archive/test-add-url-source.ps1 +0 -0
- package/scripts/archive/test-ask-ascii.ps1 +0 -0
- package/scripts/archive/test-ask-cnv.ps1 +0 -0
- package/scripts/archive/test-ask-headed.ps1 +0 -0
- package/scripts/archive/test-ask-ifs.ps1 +0 -0
- package/scripts/archive/test-ask-now.ps1 +0 -0
- package/scripts/archive/test-ask-real.ps1 +0 -0
- package/scripts/archive/test-ask-visible.ps1 +0 -0
- package/scripts/archive/test-create-notebook.ps1 +0 -0
- package/scripts/archive/test-create-then-add.ps1 +0 -0
- package/scripts/archive/test-delete-source.ps1 +0 -0
- package/scripts/archive/test-e2e-notebook.ps1 +0 -0
- package/scripts/archive/test-english-notebook.ps1 +0 -0
- package/scripts/archive/test-english.ps1 +0 -0
- package/scripts/archive/test-full-custom-instructions.ps1 +0 -0
- package/scripts/archive/test-full-infographic.ps1 +0 -0
- package/scripts/archive/test-full-language.ps1 +0 -0
- package/scripts/archive/test-full-presentation.ps1 +0 -0
- package/scripts/archive/test-full-report.ps1 +0 -0
- package/scripts/archive/test-full-source-selection.ps1 +0 -0
- package/scripts/archive/test-full-video-brief.ps1 +0 -0
- package/scripts/archive/test-full-video-explainer.ps1 +0 -0
- package/scripts/archive/test-full-video-styles.ps1 +0 -0
- package/scripts/archive/test-generate-report.ps1 +0 -0
- package/scripts/archive/test-generate-study-guide.ps1 +0 -0
- package/scripts/archive/test-headed-ask.ps1 +0 -0
- package/scripts/archive/test-headed-now.ps1 +0 -0
- package/scripts/archive/test-headed.ps1 +0 -0
- package/scripts/archive/test-hello.ps1 +0 -0
- package/scripts/archive/test-i18n-studio.ps1 +0 -0
- package/scripts/archive/test-i18n.ps1 +0 -0
- package/scripts/archive/test-manual-headed.ps1 +0 -0
- package/scripts/archive/test-mathieu-quota.ps1 +0 -0
- package/scripts/archive/test-notebook-1.ps1 +0 -0
- package/scripts/archive/test-notebook-2-sources.ps1 +0 -0
- package/scripts/archive/test-notebook1.ps1 +0 -0
- package/scripts/archive/test-personal-notebook.ps1 +0 -0
- package/scripts/archive/test-rate-limit.ps1 +0 -0
- package/scripts/archive/test-real-ask.ps1 +0 -0
- package/scripts/archive/test-real-ask2.ps1 +0 -0
- package/scripts/archive/test-rom1pey.ps1 +0 -0
- package/scripts/archive/test-rotation-complete.ps1 +0 -0
- package/scripts/archive/test-rotation.ps1 +0 -0
- package/scripts/archive/test-show-browser.ps1 +0 -0
- package/scripts/archive/test-update-notebook.ps1 +0 -0
- package/scripts/archive/verify-language-slow.ps1 +0 -0
- package/scripts/archive/verify-language.ps1 +0 -0
- package/scripts/check-server.ps1 +0 -0
- package/scripts/docker-entrypoint.sh +25 -29
- package/scripts/mcp-proxy-hidden.ps1 +31 -0
- package/scripts/mcp-wsl-helper.sh +146 -146
- package/scripts/start-server-hidden.vbs +13 -0
- package/scripts/start-server.ps1 +0 -0
- package/scripts/start-vnc.sh +0 -0
- package/scripts/stop-server.bat +5 -0
- package/scripts/stop-server.ps1 +0 -0
- package/scripts/switch-account-language.sh +0 -0
- package/scripts/test-account.ps1 +0 -0
|
File without changes
|
package/dist/cli/accounts.d.ts
CHANGED
|
File without changes
|
|
File without changes
|
package/dist/cli/accounts.js
CHANGED
|
File without changes
|
package/dist/cli/accounts.js.map
CHANGED
|
File without changes
|
package/dist/cli/de-auth.d.ts
CHANGED
|
File without changes
|
|
File without changes
|
package/dist/cli/de-auth.js
CHANGED
|
File without changes
|
package/dist/cli/de-auth.js.map
CHANGED
|
File without changes
|
package/dist/cli/help.d.ts
CHANGED
|
File without changes
|
package/dist/cli/help.d.ts.map
CHANGED
|
File without changes
|
package/dist/cli/help.js
CHANGED
|
File without changes
|
package/dist/cli/help.js.map
CHANGED
|
File without changes
|
package/dist/cli/setup-auth.d.ts
CHANGED
|
File without changes
|
|
File without changes
|
package/dist/cli/setup-auth.js
CHANGED
|
@@ -15,17 +15,25 @@ async function main() {
|
|
|
15
15
|
console.log(' NotebookLM MCP - Authentication Setup');
|
|
16
16
|
console.log('==========================================');
|
|
17
17
|
console.log('');
|
|
18
|
+
const args = process.argv.slice(2);
|
|
19
|
+
const forceReauth = args.includes('--force') || args.includes('-f');
|
|
18
20
|
const authManager = new AuthManager();
|
|
19
21
|
try {
|
|
20
|
-
// Check if already authenticated
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
22
|
+
// Check if already authenticated (skip check with --force)
|
|
23
|
+
if (!forceReauth) {
|
|
24
|
+
const existingAuth = await authManager.getValidStatePath();
|
|
25
|
+
if (existingAuth) {
|
|
26
|
+
log.success('Already authenticated!');
|
|
27
|
+
log.info('');
|
|
28
|
+
log.info('Your Google session is valid (locally).');
|
|
29
|
+
log.info('If Google expired your session server-side, use: npm run setup-auth -- --force');
|
|
30
|
+
log.info('');
|
|
31
|
+
process.exit(0);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
log.warning('Force mode: bypassing local cookie check');
|
|
27
36
|
log.info('');
|
|
28
|
-
process.exit(0);
|
|
29
37
|
}
|
|
30
38
|
log.info('Starting interactive authentication...');
|
|
31
39
|
log.info('');
|
|
@@ -44,8 +52,8 @@ async function main() {
|
|
|
44
52
|
else {
|
|
45
53
|
log.info(` ${message}`);
|
|
46
54
|
}
|
|
47
|
-
}, true // show_browser = true
|
|
48
|
-
);
|
|
55
|
+
}, true, // show_browser = true
|
|
56
|
+
forceReauth);
|
|
49
57
|
console.log('');
|
|
50
58
|
if (success) {
|
|
51
59
|
log.success('==========================================');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-auth.js","sourceRoot":"","sources":["../../src/cli/setup-auth.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAEzC,KAAK,UAAU,IAAI;IACjB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;IAEtC,IAAI,CAAC;QACH,
|
|
1
|
+
{"version":3,"file":"setup-auth.js","sourceRoot":"","sources":["../../src/cli/setup-auth.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
File without changes
|
package/dist/config.d.ts.map
CHANGED
|
File without changes
|
package/dist/config.js
CHANGED
|
@@ -30,7 +30,7 @@ const DEFAULTS = {
|
|
|
30
30
|
notebookUrl: '',
|
|
31
31
|
// Browser Settings
|
|
32
32
|
headless: true,
|
|
33
|
-
browserTimeout:
|
|
33
|
+
browserTimeout: 600000, // 10 minutes (NotebookLM can be slow)
|
|
34
34
|
viewport: { width: 1024, height: 768 },
|
|
35
35
|
// Session Management
|
|
36
36
|
maxSessions: 10,
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,QAAQ,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,6DAA6D;AAC7D,wCAAwC;AACxC,uDAAuD;AACvD,qCAAqC;AACrC,qFAAqF;AACrF,MAAM,KAAK,GAAG,QAAQ,CAAC,gBAAgB,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;AAEzD;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAC9B,gJAAgJ,CAAC;AA2DnJ;;GAEG;AACH,MAAM,QAAQ,GAAW;IACvB,aAAa;IACb,WAAW,EAAE,EAAE;IAEf,mBAAmB;IACnB,QAAQ,EAAE,IAAI;IACd,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/dist/content/index.d.ts
CHANGED
|
File without changes
|
|
File without changes
|
package/dist/content/index.js
CHANGED
|
File without changes
|
|
File without changes
|
package/dist/content/types.d.ts
CHANGED
|
File without changes
|
|
File without changes
|
package/dist/content/types.js
CHANGED
|
File without changes
|
|
File without changes
|
package/dist/errors.d.ts
CHANGED
|
File without changes
|
package/dist/errors.d.ts.map
CHANGED
|
File without changes
|
package/dist/errors.js
CHANGED
|
File without changes
|
package/dist/errors.js.map
CHANGED
|
File without changes
|
package/dist/http-wrapper.d.ts
CHANGED
|
File without changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-wrapper.d.ts","sourceRoot":"","sources":["../src/http-wrapper.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"http-wrapper.d.ts","sourceRoot":"","sources":["../src/http-wrapper.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAeH,OAAO,CAAC,MAAM,CAAC;IAEb,UAAU,OAAO,CAAC;QAChB,UAAU,OAAO;YACf,SAAS,EAAE,MAAM,CAAC;SACnB;KACF;CACF"}
|
package/dist/http-wrapper.js
CHANGED
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import express from 'express';
|
|
8
8
|
import { randomUUID } from 'crypto';
|
|
9
|
+
import net from 'net';
|
|
10
|
+
import { execSync } from 'child_process';
|
|
9
11
|
import { AuthManager } from './auth/auth-manager.js';
|
|
10
12
|
import { SessionManager } from './session/session-manager.js';
|
|
11
13
|
import { NotebookLibrary } from './library/notebook-library.js';
|
|
@@ -70,7 +72,7 @@ app.get('/health', async (_req, res) => {
|
|
|
70
72
|
app.post('/ask', async (req, res) => {
|
|
71
73
|
const reqId = req.requestId.substring(0, 8); // Short ID for logs
|
|
72
74
|
try {
|
|
73
|
-
const { question, session_id, notebook_id, notebook_url, show_browser } = req.body;
|
|
75
|
+
const { question, session_id, notebook_id, notebook_url, show_browser, source_format } = req.body;
|
|
74
76
|
if (!question) {
|
|
75
77
|
log.warning(`[${reqId}] /ask - Missing question`);
|
|
76
78
|
return res.status(400).json({
|
|
@@ -78,8 +80,7 @@ app.post('/ask', async (req, res) => {
|
|
|
78
80
|
error: 'Missing required field: question',
|
|
79
81
|
});
|
|
80
82
|
}
|
|
81
|
-
|
|
82
|
-
const result = await toolHandlers.handleAskQuestion({ question, session_id, notebook_id, notebook_url, show_browser }, async (message, progress, total) => {
|
|
83
|
+
const result = await toolHandlers.handleAskQuestion({ question, session_id, notebook_id, notebook_url, show_browser, source_format }, async (message, progress, total) => {
|
|
83
84
|
log.info(`[${reqId}] Progress: ${message} (${progress}/${total})`);
|
|
84
85
|
});
|
|
85
86
|
log.success(`[${reqId}] /ask - Completed`);
|
|
@@ -242,6 +243,100 @@ app.get('/notebooks/scrape', async (req, res) => {
|
|
|
242
243
|
});
|
|
243
244
|
}
|
|
244
245
|
});
|
|
246
|
+
// Import scraped notebooks into library (MUST be before /notebooks/:id)
|
|
247
|
+
app.post('/notebooks/import-from-scrape', async (req, res) => {
|
|
248
|
+
try {
|
|
249
|
+
const { notebook_ids, auto_discover, show_browser } = req.body;
|
|
250
|
+
// Step 1: Scrape notebooks from NotebookLM
|
|
251
|
+
log.info('đĨ [IMPORT] Starting import from scrape...');
|
|
252
|
+
const scrapeResult = await toolHandlers.handleListNotebooksFromNblm({ show_browser: show_browser === true }, async (message, progress, total) => {
|
|
253
|
+
log.info(`Progress: ${message} (${progress}/${total})`);
|
|
254
|
+
});
|
|
255
|
+
if (!scrapeResult.success || !scrapeResult.data) {
|
|
256
|
+
res.status(500).json({
|
|
257
|
+
success: false,
|
|
258
|
+
error: `Scrape failed: ${scrapeResult.error || 'Unknown error'}`,
|
|
259
|
+
});
|
|
260
|
+
return;
|
|
261
|
+
}
|
|
262
|
+
const scrapedNotebooks = scrapeResult.data.notebooks;
|
|
263
|
+
log.info(` đ Found ${scrapedNotebooks.length} notebooks from scrape`);
|
|
264
|
+
// Step 2: Filter notebooks if notebook_ids provided
|
|
265
|
+
let notebooksToImport = scrapedNotebooks;
|
|
266
|
+
if (notebook_ids && Array.isArray(notebook_ids) && notebook_ids.length > 0) {
|
|
267
|
+
notebooksToImport = scrapedNotebooks.filter((nb) => notebook_ids.includes(nb.id));
|
|
268
|
+
log.info(` đ Filtered to ${notebooksToImport.length} notebooks`);
|
|
269
|
+
}
|
|
270
|
+
// Step 3: Import each notebook
|
|
271
|
+
const imported = [];
|
|
272
|
+
const errors = [];
|
|
273
|
+
for (const notebook of notebooksToImport) {
|
|
274
|
+
try {
|
|
275
|
+
if (auto_discover === true) {
|
|
276
|
+
// Use auto-discovery to generate metadata
|
|
277
|
+
log.info(` đ¤ Auto-discovering: ${notebook.name}`);
|
|
278
|
+
const discoverResult = await toolHandlers.handleAutoDiscoverNotebook({
|
|
279
|
+
url: notebook.url,
|
|
280
|
+
});
|
|
281
|
+
if (discoverResult.success) {
|
|
282
|
+
imported.push({ id: notebook.id, name: notebook.name, status: 'auto-discovered' });
|
|
283
|
+
}
|
|
284
|
+
else {
|
|
285
|
+
errors.push({
|
|
286
|
+
id: notebook.id,
|
|
287
|
+
name: notebook.name,
|
|
288
|
+
error: discoverResult.error || 'Auto-discovery failed',
|
|
289
|
+
});
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
else {
|
|
293
|
+
// Add with minimal metadata
|
|
294
|
+
log.info(` đ Adding: ${notebook.name}`);
|
|
295
|
+
const addResult = await toolHandlers.handleAddNotebook({
|
|
296
|
+
url: notebook.url,
|
|
297
|
+
name: notebook.name,
|
|
298
|
+
description: `Imported from NotebookLM scrape`,
|
|
299
|
+
topics: [notebook.name.toLowerCase().replace(/\s+/g, '-')],
|
|
300
|
+
});
|
|
301
|
+
if (addResult.success) {
|
|
302
|
+
imported.push({ id: notebook.id, name: notebook.name, status: 'imported' });
|
|
303
|
+
}
|
|
304
|
+
else {
|
|
305
|
+
errors.push({
|
|
306
|
+
id: notebook.id,
|
|
307
|
+
name: notebook.name,
|
|
308
|
+
error: addResult.error || 'Add failed',
|
|
309
|
+
});
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
catch (error) {
|
|
314
|
+
errors.push({
|
|
315
|
+
id: notebook.id,
|
|
316
|
+
name: notebook.name,
|
|
317
|
+
error: error instanceof Error ? error.message : String(error),
|
|
318
|
+
});
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
log.success(`â
[IMPORT] Completed: ${imported.length} imported, ${errors.length} errors`);
|
|
322
|
+
res.json({
|
|
323
|
+
success: true,
|
|
324
|
+
data: {
|
|
325
|
+
imported,
|
|
326
|
+
errors,
|
|
327
|
+
total_scraped: scrapedNotebooks.length,
|
|
328
|
+
total_imported: imported.length,
|
|
329
|
+
total_errors: errors.length,
|
|
330
|
+
},
|
|
331
|
+
});
|
|
332
|
+
}
|
|
333
|
+
catch (error) {
|
|
334
|
+
res.status(500).json({
|
|
335
|
+
success: false,
|
|
336
|
+
error: error instanceof Error ? error.message : String(error),
|
|
337
|
+
});
|
|
338
|
+
}
|
|
339
|
+
});
|
|
245
340
|
// Bulk delete notebooks from NotebookLM (MUST be before /notebooks/:id)
|
|
246
341
|
app.delete('/notebooks/bulk-delete', async (req, res) => {
|
|
247
342
|
try {
|
|
@@ -810,9 +905,153 @@ app.use((err, req, res, _next) => {
|
|
|
810
905
|
// Start server with startup sequence
|
|
811
906
|
const PORT = Number(process.env.HTTP_PORT) || 3000;
|
|
812
907
|
const HOST = process.env.HTTP_HOST || '0.0.0.0';
|
|
813
|
-
const VERSION = '1.5.
|
|
908
|
+
const VERSION = '1.5.3';
|
|
814
909
|
const startupManager = new StartupManager(authManager);
|
|
815
|
-
|
|
910
|
+
// ============================================================================
|
|
911
|
+
// Port management: detect and free ghost processes
|
|
912
|
+
// ============================================================================
|
|
913
|
+
/**
|
|
914
|
+
* Check if a port is currently in use
|
|
915
|
+
*/
|
|
916
|
+
function checkPort(port, host) {
|
|
917
|
+
return new Promise((resolve) => {
|
|
918
|
+
const socket = new net.Socket();
|
|
919
|
+
socket.setTimeout(1000);
|
|
920
|
+
socket.once('connect', () => {
|
|
921
|
+
socket.destroy();
|
|
922
|
+
resolve(true); // port is in use
|
|
923
|
+
});
|
|
924
|
+
socket.once('timeout', () => {
|
|
925
|
+
socket.destroy();
|
|
926
|
+
resolve(false); // port is free
|
|
927
|
+
});
|
|
928
|
+
socket.once('error', () => {
|
|
929
|
+
socket.destroy();
|
|
930
|
+
resolve(false); // port is free
|
|
931
|
+
});
|
|
932
|
+
socket.connect(port, host === '0.0.0.0' ? '127.0.0.1' : host);
|
|
933
|
+
});
|
|
934
|
+
}
|
|
935
|
+
/**
|
|
936
|
+
* Try to determine if the process on the port is a ghost (not responding to /health)
|
|
937
|
+
*/
|
|
938
|
+
async function isGhostProcess(port) {
|
|
939
|
+
try {
|
|
940
|
+
const controller = new AbortController();
|
|
941
|
+
const timeout = setTimeout(() => controller.abort(), 2000);
|
|
942
|
+
const res = await fetch(`http://127.0.0.1:${port}/health`, { signal: controller.signal });
|
|
943
|
+
clearTimeout(timeout);
|
|
944
|
+
// If it responds, it's a live server â not a ghost
|
|
945
|
+
return !res.ok;
|
|
946
|
+
}
|
|
947
|
+
catch {
|
|
948
|
+
// No response = ghost process
|
|
949
|
+
return true;
|
|
950
|
+
}
|
|
951
|
+
}
|
|
952
|
+
/**
|
|
953
|
+
* Try to kill the process occupying a port
|
|
954
|
+
*/
|
|
955
|
+
function tryKillPort(port) {
|
|
956
|
+
const isWindows = process.platform === 'win32';
|
|
957
|
+
try {
|
|
958
|
+
if (isWindows) {
|
|
959
|
+
// On Windows, find PID and kill it
|
|
960
|
+
const output = execSync(`netstat -ano | findstr :${port} | findstr LISTENING`, {
|
|
961
|
+
encoding: 'utf-8',
|
|
962
|
+
timeout: 5000,
|
|
963
|
+
});
|
|
964
|
+
const lines = output.trim().split('\n');
|
|
965
|
+
const pids = new Set();
|
|
966
|
+
for (const line of lines) {
|
|
967
|
+
const parts = line.trim().split(/\s+/);
|
|
968
|
+
const pid = parts[parts.length - 1];
|
|
969
|
+
if (pid && pid !== '0')
|
|
970
|
+
pids.add(pid);
|
|
971
|
+
}
|
|
972
|
+
for (const pid of pids) {
|
|
973
|
+
try {
|
|
974
|
+
execSync(`taskkill /F /PID ${pid}`, { timeout: 5000 });
|
|
975
|
+
log.info(` Killed PID ${pid}`);
|
|
976
|
+
}
|
|
977
|
+
catch {
|
|
978
|
+
// PID may already be dead
|
|
979
|
+
}
|
|
980
|
+
}
|
|
981
|
+
return pids.size > 0;
|
|
982
|
+
}
|
|
983
|
+
else {
|
|
984
|
+
// On Linux/WSL, use fuser
|
|
985
|
+
execSync(`fuser -k ${port}/tcp`, { timeout: 5000 });
|
|
986
|
+
return true;
|
|
987
|
+
}
|
|
988
|
+
}
|
|
989
|
+
catch {
|
|
990
|
+
return false;
|
|
991
|
+
}
|
|
992
|
+
}
|
|
993
|
+
/**
|
|
994
|
+
* Start the HTTP server with port conflict detection
|
|
995
|
+
*/
|
|
996
|
+
async function startServer(port, host) {
|
|
997
|
+
const portBusy = await checkPort(port, host);
|
|
998
|
+
if (portBusy) {
|
|
999
|
+
log.warning(`Port ${port} is already in use, checking if it's a ghost process...`);
|
|
1000
|
+
const ghost = await isGhostProcess(port);
|
|
1001
|
+
if (ghost) {
|
|
1002
|
+
log.warning(`Ghost process detected on port ${port}, attempting to free it...`);
|
|
1003
|
+
const freed = tryKillPort(port);
|
|
1004
|
+
if (freed) {
|
|
1005
|
+
log.success(`Port ${port} freed successfully`);
|
|
1006
|
+
// Wait for OS to release the port
|
|
1007
|
+
await new Promise((resolve) => setTimeout(resolve, 1500));
|
|
1008
|
+
// Verify port is now free
|
|
1009
|
+
const stillBusy = await checkPort(port, host);
|
|
1010
|
+
if (stillBusy) {
|
|
1011
|
+
log.error(`Port ${port} is still in use after kill attempt.`);
|
|
1012
|
+
log.error(` Manual fix:`);
|
|
1013
|
+
log.error(` Linux/WSL: fuser -k ${port}/tcp`);
|
|
1014
|
+
log.error(` Windows: netstat -ano | findstr :${port}`);
|
|
1015
|
+
log.error(` taskkill /F /PID <PID>`);
|
|
1016
|
+
process.exit(1);
|
|
1017
|
+
}
|
|
1018
|
+
}
|
|
1019
|
+
else {
|
|
1020
|
+
log.error(`Could not free port ${port}.`);
|
|
1021
|
+
log.error(` Manual fix:`);
|
|
1022
|
+
log.error(` Linux/WSL: fuser -k ${port}/tcp`);
|
|
1023
|
+
log.error(` Windows PowerShell: wsl --shutdown (then retry)`);
|
|
1024
|
+
log.error(` Windows: netstat -ano | findstr :${port}`);
|
|
1025
|
+
log.error(` taskkill /F /PID <PID>`);
|
|
1026
|
+
process.exit(1);
|
|
1027
|
+
}
|
|
1028
|
+
}
|
|
1029
|
+
else {
|
|
1030
|
+
// Port is busy but it's a live server responding to /health
|
|
1031
|
+
log.error(`Port ${port} is already used by a running NotebookLM server.`);
|
|
1032
|
+
log.error(` Stop the other instance first, or use HTTP_PORT=<other_port>`);
|
|
1033
|
+
process.exit(1);
|
|
1034
|
+
}
|
|
1035
|
+
}
|
|
1036
|
+
// Start the server
|
|
1037
|
+
return new Promise((resolve, reject) => {
|
|
1038
|
+
const server = app.listen(port, host);
|
|
1039
|
+
server.once('error', (err) => {
|
|
1040
|
+
if (err.code === 'EADDRINUSE') {
|
|
1041
|
+
log.error(`Port ${port} became busy during startup (race condition).`);
|
|
1042
|
+
log.error(` Retry or use HTTP_PORT=<other_port>`);
|
|
1043
|
+
process.exit(1);
|
|
1044
|
+
}
|
|
1045
|
+
reject(err);
|
|
1046
|
+
});
|
|
1047
|
+
server.once('listening', () => {
|
|
1048
|
+
resolve();
|
|
1049
|
+
});
|
|
1050
|
+
});
|
|
1051
|
+
}
|
|
1052
|
+
// Main startup
|
|
1053
|
+
(async () => {
|
|
1054
|
+
await startServer(PORT, HOST);
|
|
816
1055
|
log.success(`đ NotebookLM MCP HTTP Server v${VERSION}`);
|
|
817
1056
|
log.success(` Listening on ${HOST}:${PORT}`);
|
|
818
1057
|
// Run startup sequence (account connection, auth verification)
|
|
@@ -876,7 +1115,7 @@ app.listen(PORT, HOST, async () => {
|
|
|
876
1115
|
log.info('');
|
|
877
1116
|
log.dim('đ Documentation: ./deployment/docs/');
|
|
878
1117
|
log.dim('âšī¸ Press Ctrl+C to stop');
|
|
879
|
-
});
|
|
1118
|
+
})();
|
|
880
1119
|
// Graceful shutdown with error handling
|
|
881
1120
|
process.on('SIGTERM', async () => {
|
|
882
1121
|
log.info('SIGTERM received, shutting down gracefully...');
|