@roomi-fields/notebooklm-mcp 1.5.4 → 1.5.8
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/README.md +2 -2
- package/deployment/docs/01-INSTALL.md +21 -1
- package/deployment/docs/03-API.md +16 -10
- package/deployment/docs/05-TROUBLESHOOTING.md +19 -1
- package/deployment/docs/06-NOTEBOOK-LIBRARY.md +9 -9
- package/deployment/docs/07-AUTO-DISCOVERY.md +6 -15
- package/deployment/docs/08-WSL-USAGE.md +7 -7
- package/deployment/docs/09-MULTI-INTERFACE.md +6 -6
- package/deployment/docs/11-MULTI-ACCOUNT.md +1 -1
- 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.map +1 -1
- package/dist/accounts/auto-login-manager.js +29 -25
- package/dist/accounts/auto-login-manager.js.map +1 -1
- 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/cli/help.js +5 -0
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/setup-auth.js +18 -10
- package/dist/cli/setup-auth.js.map +1 -1
- package/dist/content/content-manager.d.ts +8 -0
- package/dist/content/content-manager.d.ts.map +1 -1
- package/dist/content/content-manager.js +411 -67
- package/dist/content/content-manager.js.map +1 -1
- package/dist/http-wrapper.d.ts.map +1 -1
- package/dist/http-wrapper.js +148 -3
- package/dist/http-wrapper.js.map +1 -1
- package/dist/session/browser-session.d.ts +12 -0
- package/dist/session/browser-session.d.ts.map +1 -1
- package/dist/session/browser-session.js +313 -65
- package/dist/session/browser-session.js.map +1 -1
- 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.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/utils/citation-extractor.d.ts +6 -7
- package/dist/utils/citation-extractor.d.ts.map +1 -1
- package/dist/utils/citation-extractor.js +138 -329
- package/dist/utils/citation-extractor.js.map +1 -1
- package/dist/utils/page-utils.d.ts +5 -0
- package/dist/utils/page-utils.d.ts.map +1 -1
- package/dist/utils/page-utils.js +73 -16
- package/dist/utils/page-utils.js.map +1 -1
- package/package.json +6 -2
- package/scripts/archive/add-and-activate-notebook.ps1 +4 -4
- package/scripts/archive/add-new-notebook.ps1 +4 -4
- package/scripts/archive/add-rom1pey.ps1 +2 -2
- package/scripts/archive/add-rpmonster.ps1 +2 -2
- package/scripts/archive/add-source-debug.ps1 +1 -1
- package/scripts/archive/add-source-e2e.ps1 +1 -1
- package/scripts/archive/add-source-visible.ps1 +1 -1
- package/scripts/archive/add-test-notebook.ps1 +1 -1
- package/scripts/archive/add-test-source.ps1 +1 -1
- package/scripts/archive/capture-screen.ps1 +1 -1
- package/scripts/archive/change-language.mjs +4 -3
- package/scripts/archive/change-language.ts +5 -3
- package/scripts/archive/create-notebook.ps1 +2 -2
- package/scripts/archive/create-rom1pey-notebook.ps1 +2 -2
- package/scripts/archive/create-rom1pey.ps1 +2 -2
- package/scripts/archive/debug-add-text-source.ps1 +4 -4
- package/scripts/archive/debug-selectors.ps1 +1 -1
- package/scripts/archive/discover-home.ps1 +2 -2
- package/scripts/archive/navigate-home-visible.ps1 +1 -1
- package/scripts/archive/navigate-home.ps1 +1 -1
- package/scripts/archive/run-e2e-english.ps1 +3 -3
- package/scripts/archive/run-e2e-rom1pey-v2.ps1 +4 -4
- package/scripts/archive/run-e2e-rom1pey.ps1 +4 -4
- package/scripts/archive/setup-english-test.ps1 +6 -6
- package/scripts/archive/setup-test-notebook.ps1 +1 -1
- package/scripts/archive/simple-add-source.ps1 +1 -1
- package/scripts/archive/t10.ps1 +1 -1
- package/scripts/archive/t20.ps1 +1 -1
- package/scripts/archive/t30.ps1 +1 -1
- package/scripts/archive/t31.ps1 +1 -1
- package/scripts/archive/t32.ps1 +1 -1
- package/scripts/archive/t53.ps1 +1 -1
- package/scripts/archive/test-access.ps1 +1 -1
- package/scripts/archive/test-add-delete-source.ps1 +4 -4
- package/scripts/archive/test-add-source-visible.ps1 +1 -1
- package/scripts/archive/test-add-source.ps1 +1 -1
- package/scripts/archive/test-add-text-debug.ps1 +2 -2
- package/scripts/archive/test-ask-headed.ps1 +1 -1
- package/scripts/archive/test-delete-source.ps1 +4 -4
- package/scripts/archive/test-e2e-notebook.ps1 +2 -2
- package/scripts/archive/test-english-notebook.ps1 +4 -4
- package/scripts/archive/test-english.ps1 +1 -1
- package/scripts/archive/test-full-custom-instructions.ps1 +1 -1
- package/scripts/archive/test-full-infographic.ps1 +1 -1
- package/scripts/archive/test-full-language.ps1 +1 -1
- package/scripts/archive/test-full-presentation.ps1 +1 -1
- package/scripts/archive/test-full-report.ps1 +1 -1
- package/scripts/archive/test-full-source-selection.ps1 +1 -1
- package/scripts/archive/test-full-video-brief.ps1 +1 -1
- package/scripts/archive/test-full-video-explainer.ps1 +1 -1
- package/scripts/archive/test-full-video-styles.ps1 +1 -1
- package/scripts/archive/test-headed-ask.ps1 +1 -1
- package/scripts/archive/test-headed-now.ps1 +2 -2
- package/scripts/archive/test-headed.ps1 +2 -2
- package/scripts/archive/test-hello.ps1 +1 -1
- package/scripts/archive/test-manual-headed.ps1 +1 -1
- package/scripts/archive/test-mathieu-quota.ps1 +1 -1
- package/scripts/archive/test-personal-notebook.ps1 +1 -1
- package/scripts/archive/test-rate-limit.ps1 +1 -1
- package/scripts/archive/test-real-ask.ps1 +1 -1
- package/scripts/archive/test-real-ask2.ps1 +1 -1
- package/scripts/archive/test-rom1pey.ps1 +1 -1
- package/scripts/archive/test-rotation-complete.ps1 +1 -1
- package/scripts/archive/test-rotation.ps1 +2 -2
- package/scripts/archive/test-show-browser.ps1 +1 -1
- package/scripts/archive/test-update-notebook.ps1 +1 -1
- package/scripts/archive/verify-language-slow.ps1 +1 -1
- package/scripts/archive/verify-language.ps1 +1 -1
- package/scripts/docker-entrypoint.sh +3 -7
- package/scripts/doctor.mjs +257 -0
- package/scripts/mcp-proxy-hidden.ps1 +31 -0
- package/scripts/mcp-wsl-helper.sh +1 -1
- package/scripts/start-server-hidden.vbs +16 -0
- package/scripts/start-server.ps1 +1 -1
- package/scripts/stop-server.bat +5 -0
- package/scripts/switch-account-language.sh +87 -128
package/scripts/archive/t31.ps1
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
$types = @("faq", "study_guide", "briefing_doc", "timeline", "table_of_contents")
|
|
3
3
|
$allPass = $true
|
|
4
4
|
foreach ($t in $types) {
|
|
5
|
-
$body = @{ notebook_url = "https://notebooklm.google.com/notebook/
|
|
5
|
+
$body = @{ notebook_url = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000107"; content_type = $t } | ConvertTo-Json
|
|
6
6
|
try {
|
|
7
7
|
Invoke-RestMethod -Uri "http://localhost:3000/content/generate" -Method POST -ContentType "application/json" -Body $body -TimeoutSec 5 | Out-Null
|
|
8
8
|
$allPass = $false
|
package/scripts/archive/t32.ps1
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# Test 32: Reject video_style for non-video
|
|
2
|
-
$body = @{ notebook_url = "https://notebooklm.google.com/notebook/
|
|
2
|
+
$body = @{ notebook_url = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000107"; content_type = "report"; video_style = "classroom" } | ConvertTo-Json
|
|
3
3
|
try {
|
|
4
4
|
Invoke-RestMethod -Uri "http://localhost:3000/content/generate" -Method POST -ContentType "application/json" -Body $body -TimeoutSec 5 | Out-Null
|
|
5
5
|
Write-Host "FAIL"
|
package/scripts/archive/t53.ps1
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# Test 53: Missing question - should fail
|
|
2
|
-
$body = @{ notebook_id = "e2e-
|
|
2
|
+
$body = @{ notebook_id = "e2e-agent-tertiary-test" } | ConvertTo-Json
|
|
3
3
|
try {
|
|
4
4
|
$response = Invoke-RestMethod -Uri "http://localhost:3000/ask" -Method POST -ContentType "application/json" -Body $body -TimeoutSec 10
|
|
5
5
|
Write-Host "FAIL: Should have returned error"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# Test access to e2e-test-notebook (which should have been created by tests)
|
|
2
|
-
Write-Host "=== Testing notebook access with
|
|
2
|
+
Write-Host "=== Testing notebook access with agent-tertiary ===" -ForegroundColor Cyan
|
|
3
3
|
|
|
4
4
|
# First activate e2e-test-notebook
|
|
5
5
|
Write-Host "`nActivating e2e-test-notebook..."
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
# Complete test: Add source, verify, delete, verify
|
|
2
2
|
Write-Host "=== Complete Add/Delete Source Test ===" -ForegroundColor Cyan
|
|
3
|
-
Write-Host "Notebook:
|
|
3
|
+
Write-Host "Notebook: 00000000-0000-0000-0000-000000000109" -ForegroundColor Gray
|
|
4
4
|
|
|
5
5
|
# Step 1: Add a text source
|
|
6
6
|
Write-Host "`n--- Step 1: Adding text source ---" -ForegroundColor Yellow
|
|
7
7
|
$uniqueId = Get-Date -Format "HHmmss"
|
|
8
8
|
$body = @{
|
|
9
|
-
notebook_url = "https://notebooklm.google.com/notebook/
|
|
9
|
+
notebook_url = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000109"
|
|
10
10
|
source_type = "text"
|
|
11
11
|
text = "Test source for add/delete verification. Unique ID: $uniqueId. This is test content."
|
|
12
12
|
title = "TEST-DELETE-$uniqueId"
|
|
@@ -29,7 +29,7 @@ Write-Host "`nSource added with name: $sourceName" -ForegroundColor Green
|
|
|
29
29
|
Write-Host "`n--- Step 2: Waiting 5 seconds and verifying source exists ---" -ForegroundColor Yellow
|
|
30
30
|
Start-Sleep -Seconds 5
|
|
31
31
|
|
|
32
|
-
$listResult = Invoke-RestMethod -Uri "http://localhost:3000/content?notebook_url=https://notebooklm.google.com/notebook/
|
|
32
|
+
$listResult = Invoke-RestMethod -Uri "http://localhost:3000/content?notebook_url=https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000109" -Method GET
|
|
33
33
|
$sourceCount = $listResult.data.sources.Count
|
|
34
34
|
Write-Host "Total sources in notebook: $sourceCount" -ForegroundColor Gray
|
|
35
35
|
|
|
@@ -44,7 +44,7 @@ if ($foundSource) {
|
|
|
44
44
|
|
|
45
45
|
# Step 3: Delete the source
|
|
46
46
|
Write-Host "`n--- Step 3: Deleting source by name '$sourceName' ---" -ForegroundColor Yellow
|
|
47
|
-
$deleteUrl = "http://localhost:3000/content/sources?source_name=$([System.Web.HttpUtility]::UrlEncode($sourceName))¬ebook_url=https://notebooklm.google.com/notebook/
|
|
47
|
+
$deleteUrl = "http://localhost:3000/content/sources?source_name=$([System.Web.HttpUtility]::UrlEncode($sourceName))¬ebook_url=https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000109&show_browser=true"
|
|
48
48
|
Write-Host "DELETE URL: $deleteUrl" -ForegroundColor Gray
|
|
49
49
|
|
|
50
50
|
try {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Test add source with visible browser
|
|
2
2
|
Write-Host "=== Testing add source with VISIBLE browser ===" -ForegroundColor Cyan
|
|
3
3
|
$body = @{
|
|
4
|
-
notebook_url = "https://notebooklm.google.com/notebook/
|
|
4
|
+
notebook_url = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000109"
|
|
5
5
|
source_type = "text"
|
|
6
6
|
text = "Test content for debugging the text upload issue."
|
|
7
7
|
title = "DEBUG-TEST-SOURCE"
|
|
@@ -3,7 +3,7 @@ $body = @{
|
|
|
3
3
|
source_type = "text"
|
|
4
4
|
text = "Debug test content - testing selectors"
|
|
5
5
|
title = "Debug Test"
|
|
6
|
-
notebook_url = "https://notebooklm.google.com/notebook/
|
|
6
|
+
notebook_url = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000108"
|
|
7
7
|
show_browser = $true
|
|
8
8
|
} | ConvertTo-Json
|
|
9
9
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# Test adding a text source with debug logging
|
|
2
2
|
$uniqueId = (Get-Date).ToString("HHmmss")
|
|
3
|
-
$notebookUrl = "https://notebooklm.google.com/notebook/
|
|
3
|
+
$notebookUrl = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000109"
|
|
4
4
|
|
|
5
5
|
Write-Host "`n=== Testing add_source (text) with debug ===" -ForegroundColor Cyan
|
|
6
6
|
Write-Host "Notebook URL: $notebookUrl"
|
|
7
|
-
Write-Host "Expected UUID:
|
|
7
|
+
Write-Host "Expected UUID: 00000000-0000-0000-0000-000000000109`n"
|
|
8
8
|
|
|
9
9
|
$body = @{
|
|
10
10
|
notebook_url = $notebookUrl
|
|
@@ -14,7 +14,7 @@ Start-Sleep -Seconds 2
|
|
|
14
14
|
|
|
15
15
|
# Start server in background with headed mode
|
|
16
16
|
$env:HEADLESS = "false"
|
|
17
|
-
Start-Process -FilePath "cmd.exe" -ArgumentList "/c cd /d D:\
|
|
17
|
+
Start-Process -FilePath "cmd.exe" -ArgumentList "/c cd /d D:\path\to\notebooklm-mcp && set HEADLESS=false && node dist/http-wrapper.js" -WindowStyle Normal
|
|
18
18
|
|
|
19
19
|
Write-Host "Waiting for server to start..."
|
|
20
20
|
Start-Sleep -Seconds 5
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Test 1: Add a text source
|
|
2
2
|
Write-Host "=== STEP 1: Adding test source ===" -ForegroundColor Cyan
|
|
3
3
|
$addBody = @{
|
|
4
|
-
notebook_url = "https://notebooklm.google.com/notebook/
|
|
4
|
+
notebook_url = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000109"
|
|
5
5
|
source_type = "text"
|
|
6
6
|
text = "This is a test source for deletion testing. Created at $(Get-Date)"
|
|
7
7
|
title = "DELETE-ME-TEST-SOURCE"
|
|
@@ -17,21 +17,21 @@ Start-Sleep -Seconds 10
|
|
|
17
17
|
|
|
18
18
|
# List sources to verify it was added
|
|
19
19
|
Write-Host "`n=== STEP 3: Listing sources to verify ===" -ForegroundColor Cyan
|
|
20
|
-
$listResult = Invoke-RestMethod -Uri "http://localhost:3000/content?notebook_url=https://notebooklm.google.com/notebook/
|
|
20
|
+
$listResult = Invoke-RestMethod -Uri "http://localhost:3000/content?notebook_url=https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000109" -Method GET
|
|
21
21
|
$testSource = $listResult.data.sources | Where-Object { $_.name -like "*DELETE-ME*" }
|
|
22
22
|
Write-Host "Found test source:" -ForegroundColor Yellow
|
|
23
23
|
$testSource | ConvertTo-Json -Depth 3
|
|
24
24
|
|
|
25
25
|
# Delete the source
|
|
26
26
|
Write-Host "`n=== STEP 4: Deleting source by name ===" -ForegroundColor Cyan
|
|
27
|
-
$deleteResult = Invoke-RestMethod -Uri "http://localhost:3000/content/sources?source_name=DELETE-ME-TEST-SOURCE¬ebook_url=https://notebooklm.google.com/notebook/
|
|
27
|
+
$deleteResult = Invoke-RestMethod -Uri "http://localhost:3000/content/sources?source_name=DELETE-ME-TEST-SOURCE¬ebook_url=https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000109" -Method DELETE
|
|
28
28
|
Write-Host "Delete result:" -ForegroundColor Yellow
|
|
29
29
|
$deleteResult | ConvertTo-Json -Depth 5
|
|
30
30
|
|
|
31
31
|
# Verify deletion
|
|
32
32
|
Write-Host "`n=== STEP 5: Verifying deletion ===" -ForegroundColor Cyan
|
|
33
33
|
Start-Sleep -Seconds 3
|
|
34
|
-
$verifyResult = Invoke-RestMethod -Uri "http://localhost:3000/content?notebook_url=https://notebooklm.google.com/notebook/
|
|
34
|
+
$verifyResult = Invoke-RestMethod -Uri "http://localhost:3000/content?notebook_url=https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000109" -Method GET
|
|
35
35
|
$stillExists = $verifyResult.data.sources | Where-Object { $_.name -like "*DELETE-ME*" }
|
|
36
36
|
if ($stillExists) {
|
|
37
37
|
Write-Host "FAIL: Source still exists!" -ForegroundColor Red
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Test access to e2e-test-notebook with
|
|
1
|
+
# Test access to e2e-test-notebook with agent-tertiary
|
|
2
2
|
Write-Host "=== Testing e2e-test-notebook with visible browser ===" -ForegroundColor Cyan
|
|
3
3
|
|
|
4
4
|
# Activate it
|
|
@@ -17,5 +17,5 @@ try {
|
|
|
17
17
|
Write-Host "SUCCESS! Answer: $($response.data.answer.Substring(0, [Math]::Min(200, $response.data.answer.Length)))..." -ForegroundColor Green
|
|
18
18
|
} catch {
|
|
19
19
|
Write-Host "Error: $($_.Exception.Message)" -ForegroundColor Red
|
|
20
|
-
Write-Host "This notebook is probably not accessible to
|
|
20
|
+
Write-Host "This notebook is probably not accessible to agent-tertiary" -ForegroundColor Yellow
|
|
21
21
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Test with the newly created notebook (owned by
|
|
1
|
+
# Test with the newly created notebook (owned by agent-tertiary)
|
|
2
2
|
$body = @{
|
|
3
3
|
notebook_id = "english-test"
|
|
4
4
|
source_type = "url"
|
|
@@ -9,12 +9,12 @@ $body = @{
|
|
|
9
9
|
# First add the notebook
|
|
10
10
|
$addBody = @{
|
|
11
11
|
name = "english-test"
|
|
12
|
-
url = "https://notebooklm.google.com/notebook/
|
|
12
|
+
url = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000110"
|
|
13
13
|
} | ConvertTo-Json
|
|
14
14
|
|
|
15
|
-
Write-Host "Adding notebook owned by
|
|
15
|
+
Write-Host "Adding notebook owned by agent-tertiary..."
|
|
16
16
|
Invoke-RestMethod -Uri "http://localhost:3000/notebooks" -Method POST -ContentType "application/json" -Body $addBody -TimeoutSec 60
|
|
17
17
|
|
|
18
|
-
Write-Host "`nTesting URL source on
|
|
18
|
+
Write-Host "`nTesting URL source on agent-tertiary's notebook..."
|
|
19
19
|
$response = Invoke-RestMethod -Uri "http://localhost:3000/content/sources" -Method POST -ContentType "application/json" -Body $body -TimeoutSec 120
|
|
20
20
|
$response | ConvertTo-Json -Depth 5
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
$body = @{
|
|
2
2
|
question = "Hello, what is this notebook about?"
|
|
3
|
-
notebook_url = "https://notebooklm.google.com/notebook/
|
|
3
|
+
notebook_url = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000111"
|
|
4
4
|
} | ConvertTo-Json
|
|
5
5
|
|
|
6
6
|
$response = Invoke-RestMethod -Uri "http://localhost:3000/ask" -Method POST -ContentType "application/json" -Body $body -TimeoutSec 120
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# Test FULL: Infographic Formats (2 tests)
|
|
2
|
-
$notebookUrl = "https://notebooklm.google.com/notebook/
|
|
2
|
+
$notebookUrl = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000109"
|
|
3
3
|
$formats = @("horizontal", "vertical")
|
|
4
4
|
|
|
5
5
|
$passed = 0
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# Test FULL: Language option (1 test)
|
|
2
|
-
$notebookUrl = "https://notebooklm.google.com/notebook/
|
|
2
|
+
$notebookUrl = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000109"
|
|
3
3
|
|
|
4
4
|
Write-Host "`n=== Testing language = fr ===" -ForegroundColor Cyan
|
|
5
5
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# Test FULL: Report Formats (2 tests)
|
|
2
|
-
$notebookUrl = "https://notebooklm.google.com/notebook/
|
|
2
|
+
$notebookUrl = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000109"
|
|
3
3
|
$formats = @("summary", "detailed")
|
|
4
4
|
|
|
5
5
|
$passed = 0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Test FULL: Source Selection (1 test)
|
|
2
2
|
Add-Type -AssemblyName System.Web
|
|
3
|
-
$notebookUrl = "https://notebooklm.google.com/notebook/
|
|
3
|
+
$notebookUrl = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000109"
|
|
4
4
|
$encodedUrl = [System.Uri]::EscapeDataString($notebookUrl)
|
|
5
5
|
|
|
6
6
|
Write-Host "`n=== Testing source selection ===" -ForegroundColor Cyan
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# Test FULL: Video format = brief
|
|
2
|
-
$notebookUrl = "https://notebooklm.google.com/notebook/
|
|
2
|
+
$notebookUrl = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000109"
|
|
3
3
|
|
|
4
4
|
Write-Host "`n=== FULL TEST: Video Format = brief ===" -ForegroundColor Cyan
|
|
5
5
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# Test FULL: Video format = explainer
|
|
2
|
-
$notebookUrl = "https://notebooklm.google.com/notebook/
|
|
2
|
+
$notebookUrl = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000109"
|
|
3
3
|
|
|
4
4
|
Write-Host "`n=== FULL TEST: Video Format = explainer ===" -ForegroundColor Cyan
|
|
5
5
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# Test FULL: All Video Styles (6 tests)
|
|
2
|
-
$notebookUrl = "https://notebooklm.google.com/notebook/
|
|
2
|
+
$notebookUrl = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000109"
|
|
3
3
|
$styles = @("classroom", "documentary", "animated", "corporate", "cinematic", "minimalist")
|
|
4
4
|
|
|
5
5
|
$passed = 0
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Test /ask avec navigateur visible
|
|
2
2
|
$body = @{
|
|
3
3
|
question = "What is IFS therapy?"
|
|
4
|
-
notebook_url = "https://notebooklm.google.com/notebook/
|
|
4
|
+
notebook_url = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000109"
|
|
5
5
|
show_browser = $true
|
|
6
6
|
} | ConvertTo-Json
|
|
7
7
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
$body = @{
|
|
2
2
|
question = "Quel est le theme principal?"
|
|
3
|
-
notebook_url = "https://notebooklm.google.com/notebook/
|
|
3
|
+
notebook_url = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000109"
|
|
4
4
|
show_browser = $true
|
|
5
5
|
} | ConvertTo-Json
|
|
6
6
|
|
|
7
|
-
Write-Host "Lancement test HEADED avec
|
|
7
|
+
Write-Host "Lancement test HEADED avec agent-primary..."
|
|
8
8
|
$response = Invoke-RestMethod -Uri "http://localhost:3000/ask" -Method POST -ContentType "application/json" -Body $body -TimeoutSec 300
|
|
9
9
|
$response | ConvertTo-Json -Depth 3
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
$body = @{
|
|
2
2
|
question = "Quel est le theme principal?"
|
|
3
|
-
notebook_url = "https://notebooklm.google.com/notebook/
|
|
3
|
+
notebook_url = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000109"
|
|
4
4
|
headless = $false
|
|
5
5
|
} | ConvertTo-Json
|
|
6
6
|
|
|
7
|
-
Write-Host "Testing HEADED with
|
|
7
|
+
Write-Host "Testing HEADED with agent-primary..."
|
|
8
8
|
$response = Invoke-RestMethod -Uri "http://localhost:3000/ask" -Method POST -ContentType "application/json" -Body $body -TimeoutSec 180
|
|
9
9
|
$response | ConvertTo-Json -Depth 10
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
$body = @{
|
|
2
2
|
question = "Hello, what is this notebook about?"
|
|
3
|
-
notebook_url = "https://notebooklm.google.com/notebook/
|
|
3
|
+
notebook_url = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000112"
|
|
4
4
|
} | ConvertTo-Json
|
|
5
5
|
|
|
6
6
|
$response = Invoke-RestMethod -Uri "http://localhost:3000/ask" -Method POST -ContentType "application/json" -Body $body -TimeoutSec 120
|
|
@@ -6,7 +6,7 @@ Start-Sleep -Seconds 2
|
|
|
6
6
|
# Set headed mode and start server
|
|
7
7
|
$env:HEADLESS = "false"
|
|
8
8
|
Write-Host "Starting server in HEADED mode (you'll see the browser)..."
|
|
9
|
-
Start-Process -FilePath "cmd.exe" -ArgumentList "/c cd /d D:\
|
|
9
|
+
Start-Process -FilePath "cmd.exe" -ArgumentList "/c cd /d D:\path\to\notebooklm-mcp && set HEADLESS=false && node dist/http-wrapper.js" -NoNewWindow
|
|
10
10
|
|
|
11
11
|
Write-Host "Waiting for server..."
|
|
12
12
|
Start-Sleep -Seconds 6
|
|
@@ -3,6 +3,6 @@ $body = @{
|
|
|
3
3
|
show_browser = $true
|
|
4
4
|
} | ConvertTo-Json
|
|
5
5
|
|
|
6
|
-
Write-Host "Testing with
|
|
6
|
+
Write-Host "Testing with agent-primary (should hit rate limit)..."
|
|
7
7
|
$response = Invoke-RestMethod -Uri "http://localhost:3000/ask" -Method POST -ContentType "application/json" -Body $body -TimeoutSec 120
|
|
8
8
|
$response | ConvertTo-Json -Depth 10
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Test access to personal notebook on port 3001
|
|
2
2
|
$body = @{
|
|
3
|
-
url = "https://notebooklm.google.com/notebook/
|
|
3
|
+
url = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000113"
|
|
4
4
|
name = "Mon Notebook Perso"
|
|
5
5
|
description = "Test notebook personnel"
|
|
6
6
|
topics = @("test")
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
$body = @{
|
|
2
2
|
question = "What is IFS therapy?"
|
|
3
|
-
notebook_url = "https://notebooklm.google.com/notebook/
|
|
3
|
+
notebook_url = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000109"
|
|
4
4
|
show_browser = $true
|
|
5
5
|
} | ConvertTo-Json
|
|
6
6
|
|
|
@@ -6,7 +6,7 @@ Write-Host ""
|
|
|
6
6
|
|
|
7
7
|
# Add a test notebook
|
|
8
8
|
$notebook = @{
|
|
9
|
-
url = "https://notebooklm.google.com/notebook/
|
|
9
|
+
url = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000109"
|
|
10
10
|
name = "Test E2E"
|
|
11
11
|
description = "Notebook pour tests E2E"
|
|
12
12
|
topics = @("test", "e2e")
|
|
@@ -4,7 +4,7 @@ Write-Host ""
|
|
|
4
4
|
|
|
5
5
|
$body = @{
|
|
6
6
|
question = "What is this notebook about?"
|
|
7
|
-
notebook_url = "https://notebooklm.google.com/notebook/
|
|
7
|
+
notebook_url = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000109"
|
|
8
8
|
} | ConvertTo-Json
|
|
9
9
|
|
|
10
10
|
Write-Host "Asking question with direct notebook URL..."
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
$body = @{
|
|
2
2
|
question = "Hello"
|
|
3
|
-
notebook_url = "https://notebooklm.google.com/notebook/
|
|
3
|
+
notebook_url = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000107"
|
|
4
4
|
} | ConvertTo-Json
|
|
5
5
|
|
|
6
6
|
$response = Invoke-RestMethod -Uri "http://localhost:3000/ask" -Method POST -ContentType "application/json" -Body $body -TimeoutSec 120
|
|
@@ -4,7 +4,7 @@ $body = @{
|
|
|
4
4
|
} | ConvertTo-Json
|
|
5
5
|
|
|
6
6
|
Write-Host "=== TEST ROTATION COMPLETE ===" -ForegroundColor Cyan
|
|
7
|
-
Write-Host "1. Demarrage avec
|
|
7
|
+
Write-Host "1. Demarrage avec agent-primary (quota 50/50)"
|
|
8
8
|
Write-Host "2. Attend erreur 'Le systeme n'a pas pu repondre'"
|
|
9
9
|
Write-Host "3. Detection rate limit -> switch compte"
|
|
10
10
|
Write-Host "4. Retry avec nouveau compte"
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
$body = @{
|
|
2
2
|
question = "Bonjour, quel est le sujet principal de ce notebook?"
|
|
3
|
-
notebook_url = "https://notebooklm.google.com/notebook/
|
|
3
|
+
notebook_url = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000109"
|
|
4
4
|
} | ConvertTo-Json
|
|
5
5
|
|
|
6
|
-
Write-Host "Testing account rotation with rate-limited
|
|
6
|
+
Write-Host "Testing account rotation with rate-limited agent-primary..."
|
|
7
7
|
$response = Invoke-RestMethod -Uri "http://localhost:3000/ask" -Method POST -ContentType "application/json" -Body $body -TimeoutSec 120
|
|
8
8
|
$response | ConvertTo-Json -Depth 10
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# This tests whether show_browser=true makes the browser visible
|
|
3
3
|
|
|
4
4
|
$baseUrl = "http://localhost:3000"
|
|
5
|
-
$notebookUrl = "https://notebooklm.google.com/notebook/
|
|
5
|
+
$notebookUrl = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000108"
|
|
6
6
|
|
|
7
7
|
Write-Host "=== Testing show_browser parameter ===" -ForegroundColor Cyan
|
|
8
8
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
$body = @{
|
|
2
2
|
description = "Updated by E2E test at $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')"
|
|
3
3
|
} | ConvertTo-Json
|
|
4
|
-
Invoke-RestMethod -Uri "http://localhost:3000/notebooks/e2e-
|
|
4
|
+
Invoke-RestMethod -Uri "http://localhost:3000/notebooks/e2e-agent-tertiary-test" -Method PUT -ContentType "application/json" -Body $body
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# Opens browser and waits so you can check the UI language
|
|
3
3
|
|
|
4
4
|
$body = @{
|
|
5
|
-
notebook_url = "https://notebooklm.google.com/notebook/
|
|
5
|
+
notebook_url = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000107"
|
|
6
6
|
question = "Hello, what language is the UI in?"
|
|
7
7
|
show_browser = $true
|
|
8
8
|
browser_options = @{
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# Opens browser to check if UI is in English
|
|
3
3
|
|
|
4
4
|
$body = @{
|
|
5
|
-
notebook_url = "https://notebooklm.google.com/notebook/
|
|
5
|
+
notebook_url = "https://notebooklm.google.com/notebook/00000000-0000-0000-0000-000000000107"
|
|
6
6
|
question = "What is this notebook about?"
|
|
7
7
|
show_browser = $true
|
|
8
8
|
} | ConvertTo-Json
|
|
@@ -1,17 +1,13 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
2
|
# Docker entrypoint for NotebookLM MCP Server
|
|
3
3
|
# Starts VNC services (for visual auth) and Node.js HTTP server
|
|
4
|
-
|
|
5
4
|
set -e
|
|
6
|
-
|
|
7
5
|
echo "==========================================="
|
|
8
6
|
echo " NotebookLM MCP Server - Docker"
|
|
9
7
|
echo "==========================================="
|
|
10
8
|
echo ""
|
|
11
|
-
|
|
12
9
|
# Check if VNC should be started (default: yes in Docker)
|
|
13
10
|
ENABLE_VNC="${ENABLE_VNC:-true}"
|
|
14
|
-
|
|
15
11
|
if [ "$ENABLE_VNC" = "true" ]; then
|
|
16
12
|
echo "[Entrypoint] Starting VNC services..."
|
|
17
13
|
source /app/scripts/start-vnc.sh
|
|
@@ -21,9 +17,9 @@ if [ "$ENABLE_VNC" = "true" ]; then
|
|
|
21
17
|
else
|
|
22
18
|
echo "[Entrypoint] VNC disabled (ENABLE_VNC=false)"
|
|
23
19
|
fi
|
|
24
|
-
|
|
25
|
-
|
|
20
|
+
# Render injecte automatiquement PORT, on l'utilise en priorité
|
|
21
|
+
export HTTP_PORT=${PORT:-${HTTP_PORT:-3000}}
|
|
22
|
+
echo "[Entrypoint] Starting Node.js HTTP server on port ${HTTP_PORT}..."
|
|
26
23
|
echo ""
|
|
27
|
-
|
|
28
24
|
# Start the Node.js server (foreground)
|
|
29
25
|
exec node dist/http-wrapper.js
|