@roomi-fields/notebooklm-mcp 1.3.6 → 1.5.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 +22 -22
- package/README.md +71 -34
- package/deployment/INDEX.md +292 -0
- package/deployment/PACKAGE-FILES.txt +180 -0
- package/deployment/QUICK-START.md +100 -0
- package/deployment/docs/01-INSTALL.md +611 -0
- package/deployment/docs/02-CONFIGURATION.md +404 -0
- package/deployment/docs/03-API.md +1691 -0
- package/deployment/docs/04-N8N-INTEGRATION.md +373 -0
- package/deployment/docs/05-TROUBLESHOOTING.md +429 -0
- package/deployment/docs/06-NOTEBOOK-LIBRARY.md +692 -0
- package/deployment/docs/07-AUTO-DISCOVERY.md +236 -0
- package/deployment/docs/08-WSL-USAGE.md +363 -0
- package/deployment/docs/09-MULTI-INTERFACE.md +293 -0
- package/deployment/docs/10-CONTENT-MANAGEMENT.md +421 -0
- package/deployment/docs/11-MULTI-ACCOUNT.md +295 -0
- package/deployment/docs/README.md +207 -0
- package/deployment/scripts/README.md +564 -0
- package/deployment/scripts/install.ps1 +114 -0
- package/deployment/scripts/setup-auth.ps1 +217 -0
- package/deployment/scripts/start-server.ps1 +72 -0
- package/deployment/scripts/stop-server.ps1 +51 -0
- package/deployment/scripts/test-api.ps1 +651 -0
- package/deployment/scripts/test-auth.ps1 +323 -0
- package/deployment/scripts/test-auto-discovery.ps1 +295 -0
- package/deployment/scripts/test-cors.ps1 +398 -0
- package/deployment/scripts/test-errors.ps1 +581 -0
- package/deployment/scripts/test-server.ps1 +140 -0
- package/deployment/scripts/test-sessions.ps1 +426 -0
- package/deployment/scripts/test-validation.ps1 +299 -0
- package/dist/accounts/account-manager.d.ts +163 -0
- package/dist/accounts/account-manager.d.ts.map +1 -0
- package/dist/accounts/account-manager.js +614 -0
- package/dist/accounts/account-manager.js.map +1 -0
- package/dist/accounts/auto-login-manager.d.ts +62 -0
- package/dist/accounts/auto-login-manager.d.ts.map +1 -0
- package/dist/accounts/auto-login-manager.js +537 -0
- package/dist/accounts/auto-login-manager.js.map +1 -0
- package/dist/accounts/crypto.d.ts +45 -0
- package/dist/accounts/crypto.d.ts.map +1 -0
- package/dist/accounts/crypto.js +138 -0
- package/dist/accounts/crypto.js.map +1 -0
- package/dist/accounts/index.d.ts +14 -0
- package/dist/accounts/index.d.ts.map +1 -0
- package/dist/accounts/index.js +14 -0
- package/dist/accounts/index.js.map +1 -0
- package/dist/accounts/types.d.ts +103 -0
- package/dist/accounts/types.d.ts.map +1 -0
- package/dist/accounts/types.js +7 -0
- package/dist/accounts/types.js.map +1 -0
- package/dist/auth/auth-manager.d.ts +9 -2
- package/dist/auth/auth-manager.d.ts.map +1 -1
- package/dist/auth/auth-manager.js +60 -6
- package/dist/auth/auth-manager.js.map +1 -1
- package/dist/auto-discovery/auto-discovery.d.ts.map +1 -1
- package/dist/auto-discovery/auto-discovery.js +2 -1
- package/dist/auto-discovery/auto-discovery.js.map +1 -1
- package/dist/cli/accounts.d.ts +13 -0
- package/dist/cli/accounts.d.ts.map +1 -0
- package/dist/cli/accounts.js +195 -0
- package/dist/cli/accounts.js.map +1 -0
- package/dist/config.d.ts +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +24 -0
- package/dist/config.js.map +1 -1
- package/dist/content/content-generator.d.ts +153 -0
- package/dist/content/content-generator.d.ts.map +1 -0
- package/dist/content/content-generator.js +637 -0
- package/dist/content/content-generator.js.map +1 -0
- package/dist/content/content-manager.d.ts +364 -0
- package/dist/content/content-manager.d.ts.map +1 -0
- package/dist/content/content-manager.js +3841 -0
- package/dist/content/content-manager.js.map +1 -0
- package/dist/content/content-templates.d.ts +183 -0
- package/dist/content/content-templates.d.ts.map +1 -0
- package/dist/content/content-templates.js +719 -0
- package/dist/content/content-templates.js.map +1 -0
- package/dist/content/index.d.ts +14 -0
- package/dist/content/index.d.ts.map +1 -0
- package/dist/content/index.js +14 -0
- package/dist/content/index.js.map +1 -0
- package/dist/content/types.d.ts +285 -0
- package/dist/content/types.d.ts.map +1 -0
- package/dist/content/types.js +10 -0
- package/dist/content/types.js.map +1 -0
- package/dist/errors.d.ts +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js.map +1 -1
- package/dist/http-wrapper.d.ts +7 -0
- package/dist/http-wrapper.d.ts.map +1 -1
- package/dist/http-wrapper.js +449 -29
- package/dist/http-wrapper.js.map +1 -1
- package/dist/i18n/en.json +120 -0
- package/dist/i18n/fr.json +120 -0
- package/dist/i18n/index.d.ts +168 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/index.js +213 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/index.js +26 -2
- package/dist/index.js.map +1 -1
- package/dist/library/notebook-library.d.ts +4 -0
- package/dist/library/notebook-library.d.ts.map +1 -1
- package/dist/library/notebook-library.js +20 -3
- package/dist/library/notebook-library.js.map +1 -1
- package/dist/session/browser-session.d.ts +35 -8
- package/dist/session/browser-session.d.ts.map +1 -1
- package/dist/session/browser-session.js +243 -28
- package/dist/session/browser-session.js.map +1 -1
- package/dist/session/session-manager.d.ts +6 -0
- package/dist/session/session-manager.d.ts.map +1 -1
- package/dist/session/session-manager.js +46 -14
- package/dist/session/session-manager.js.map +1 -1
- package/dist/session/shared-context-manager.d.ts +3 -3
- package/dist/session/shared-context-manager.d.ts.map +1 -1
- package/dist/session/shared-context-manager.js +10 -7
- package/dist/session/shared-context-manager.js.map +1 -1
- package/dist/stdio-http-proxy.d.ts +24 -0
- package/dist/stdio-http-proxy.d.ts.map +1 -0
- package/dist/stdio-http-proxy.js +592 -0
- package/dist/stdio-http-proxy.js.map +1 -0
- package/dist/tools/index.d.ts +106 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +1028 -7
- package/dist/tools/index.js.map +1 -1
- package/dist/types.d.ts +81 -17
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/citation-extractor.d.ts +66 -0
- package/dist/utils/citation-extractor.d.ts.map +1 -0
- package/dist/utils/citation-extractor.js +492 -0
- package/dist/utils/citation-extractor.js.map +1 -0
- package/dist/utils/page-utils.d.ts +8 -0
- package/dist/utils/page-utils.d.ts.map +1 -1
- package/dist/utils/page-utils.js +112 -8
- package/dist/utils/page-utils.js.map +1 -1
- package/docs/ADDING_A_LANGUAGE.md +209 -0
- package/docs/ARCHITECTURE_MIGRATION_STUDY.md +894 -0
- package/docs/CHROME_PROFILE_LIMITATION.md +15 -1
- package/docs/MULTI_ACCOUNT_SYSTEM.md +304 -0
- package/package.json +15 -12
- package/scripts/archive/add-and-activate-notebook.ps1 +31 -0
- package/scripts/archive/add-new-notebook.ps1 +25 -0
- package/scripts/archive/add-rom1pey.ps1 +2 -0
- package/scripts/archive/add-rpmonster.ps1 +2 -0
- package/scripts/archive/add-source-debug.ps1 +11 -0
- package/scripts/archive/add-source-e2e.ps1 +28 -0
- package/scripts/archive/add-source-visible.ps1 +11 -0
- package/scripts/archive/add-test-notebook.ps1 +13 -0
- package/scripts/archive/add-test-source.ps1 +50 -0
- package/scripts/archive/capture-screen.ps1 +11 -0
- package/scripts/archive/change-language.mjs +45 -0
- package/scripts/archive/change-language.ts +44 -0
- package/scripts/archive/check-account.ps1 +19 -0
- package/scripts/archive/check-notebook-2.ps1 +8 -0
- package/scripts/archive/check-test-notebook.ps1 +11 -0
- package/scripts/archive/create-notebook-auto.ps1 +31 -0
- package/scripts/archive/create-notebook.ps1 +8 -0
- package/scripts/archive/create-rom1pey-notebook.ps1 +19 -0
- package/scripts/archive/create-rom1pey.ps1 +8 -0
- package/scripts/archive/create-test-notebook-fresh.ps1 +21 -0
- package/scripts/archive/create-test-notebook.ps1 +16 -0
- package/scripts/archive/debug-add-source-auto.ps1 +29 -0
- package/scripts/archive/debug-add-source.ps1 +19 -0
- package/scripts/archive/debug-add-text-source.ps1 +47 -0
- package/scripts/archive/debug-home.ps1 +10 -0
- package/scripts/archive/debug-selectors.ps1 +55 -0
- package/scripts/archive/debug-sources-panel.ps1 +22 -0
- package/scripts/archive/debug-ui.ps1 +17 -0
- package/scripts/archive/discover-home.ps1 +26 -0
- package/scripts/archive/kill-automation-chrome.ps1 +37 -0
- package/scripts/archive/list-my-notebooks.ps1 +27 -0
- package/scripts/archive/navigate-home-visible.ps1 +23 -0
- package/scripts/archive/navigate-home.ps1 +15 -0
- package/scripts/archive/run-e2e-english.ps1 +111 -0
- package/scripts/archive/run-e2e-rom1pey-v2.ps1 +122 -0
- package/scripts/archive/run-e2e-rom1pey.ps1 +117 -0
- package/scripts/archive/setup-english-test.ps1 +36 -0
- package/scripts/archive/setup-test-notebook.ps1 +71 -0
- package/scripts/archive/simple-add-source.ps1 +14 -0
- package/scripts/archive/t10.ps1 +2 -0
- package/scripts/archive/t20.ps1 +4 -0
- package/scripts/archive/t30.ps1 +9 -0
- package/scripts/archive/t31.ps1 +11 -0
- package/scripts/archive/t32.ps1 +6 -0
- package/scripts/archive/t39.ps1 +5 -0
- package/scripts/archive/t40.ps1 +5 -0
- package/scripts/archive/t53.ps1 +12 -0
- package/scripts/archive/t54.ps1 +12 -0
- package/scripts/archive/t55.ps1 +11 -0
- package/scripts/archive/t9.ps1 +1 -0
- package/scripts/archive/test-access.ps1 +28 -0
- package/scripts/archive/test-add-delete-source.ps1 +64 -0
- package/scripts/archive/test-add-source-visible.ps1 +16 -0
- package/scripts/archive/test-add-source.ps1 +19 -0
- package/scripts/archive/test-add-text-debug.ps1 +28 -0
- package/scripts/archive/test-add-text-source.ps1 +8 -0
- package/scripts/archive/test-add-url-source.ps1 +7 -0
- package/scripts/archive/test-ask-ascii.ps1 +20 -0
- package/scripts/archive/test-ask-cnv.ps1 +20 -0
- package/scripts/archive/test-ask-headed.ps1 +51 -0
- package/scripts/archive/test-ask-ifs.ps1 +16 -0
- package/scripts/archive/test-ask-now.ps1 +24 -0
- package/scripts/archive/test-ask-real.ps1 +19 -0
- package/scripts/archive/test-ask-visible.ps1 +20 -0
- package/scripts/archive/test-create-notebook.ps1 +8 -0
- package/scripts/archive/test-create-then-add.ps1 +17 -0
- package/scripts/archive/test-delete-source.ps1 +41 -0
- package/scripts/archive/test-e2e-notebook.ps1 +21 -0
- package/scripts/archive/test-english-notebook.ps1 +20 -0
- package/scripts/archive/test-english.ps1 +7 -0
- package/scripts/archive/test-full-custom-instructions.ps1 +40 -0
- package/scripts/archive/test-full-infographic.ps1 +34 -0
- package/scripts/archive/test-full-language.ps1 +21 -0
- package/scripts/archive/test-full-presentation.ps1 +85 -0
- package/scripts/archive/test-full-report.ps1 +34 -0
- package/scripts/archive/test-full-source-selection.ps1 +35 -0
- package/scripts/archive/test-full-video-brief.ps1 +22 -0
- package/scripts/archive/test-full-video-explainer.ps1 +22 -0
- package/scripts/archive/test-full-video-styles.ps1 +37 -0
- package/scripts/archive/test-generate-report.ps1 +15 -0
- package/scripts/archive/test-generate-study-guide.ps1 +11 -0
- package/scripts/archive/test-headed-ask.ps1 +13 -0
- package/scripts/archive/test-headed-now.ps1 +9 -0
- package/scripts/archive/test-headed.ps1 +9 -0
- package/scripts/archive/test-hello.ps1 +7 -0
- package/scripts/archive/test-i18n-studio.ps1 +8 -0
- package/scripts/archive/test-i18n.ps1 +7 -0
- package/scripts/archive/test-manual-headed.ps1 +26 -0
- package/scripts/archive/test-mathieu-quota.ps1 +8 -0
- package/scripts/archive/test-notebook-1.ps1 +10 -0
- package/scripts/archive/test-notebook-2-sources.ps1 +12 -0
- package/scripts/archive/test-notebook1.ps1 +14 -0
- package/scripts/archive/test-personal-notebook.ps1 +14 -0
- package/scripts/archive/test-rate-limit.ps1 +19 -0
- package/scripts/archive/test-real-ask.ps1 +50 -0
- package/scripts/archive/test-real-ask2.ps1 +30 -0
- package/scripts/archive/test-rom1pey.ps1 +7 -0
- package/scripts/archive/test-rotation-complete.ps1 +14 -0
- package/scripts/archive/test-rotation.ps1 +8 -0
- package/scripts/archive/test-show-browser.ps1 +39 -0
- package/scripts/archive/test-update-notebook.ps1 +4 -0
- package/scripts/archive/verify-language-slow.ps1 +21 -0
- package/scripts/archive/verify-language.ps1 +15 -0
- package/scripts/check-server.ps1 +46 -0
- package/scripts/mcp-wsl-helper.sh +146 -0
- package/scripts/start-server.ps1 +94 -0
- package/scripts/stop-server.ps1 +30 -0
- package/scripts/switch-account-language.sh +191 -0
- package/scripts/test-account.ps1 +58 -0
- package/dist/__tests__/cleanup-manager.test.d.ts +0 -2
- package/dist/__tests__/cleanup-manager.test.d.ts.map +0 -1
- package/dist/__tests__/cleanup-manager.test.js +0 -341
- package/dist/__tests__/cleanup-manager.test.js.map +0 -1
- package/dist/__tests__/config-parsing.test.d.ts +0 -2
- package/dist/__tests__/config-parsing.test.d.ts.map +0 -1
- package/dist/__tests__/config-parsing.test.js +0 -338
- package/dist/__tests__/config-parsing.test.js.map +0 -1
- package/dist/__tests__/config.test.d.ts +0 -2
- package/dist/__tests__/config.test.d.ts.map +0 -1
- package/dist/__tests__/config.test.js +0 -267
- package/dist/__tests__/config.test.js.map +0 -1
- package/dist/__tests__/errors.test.d.ts +0 -2
- package/dist/__tests__/errors.test.d.ts.map +0 -1
- package/dist/__tests__/errors.test.js +0 -166
- package/dist/__tests__/errors.test.js.map +0 -1
- package/dist/__tests__/logger.test.d.ts +0 -2
- package/dist/__tests__/logger.test.d.ts.map +0 -1
- package/dist/__tests__/logger.test.js +0 -324
- package/dist/__tests__/logger.test.js.map +0 -1
- package/dist/__tests__/page-utils.test.d.ts +0 -2
- package/dist/__tests__/page-utils.test.d.ts.map +0 -1
- package/dist/__tests__/page-utils.test.js +0 -349
- package/dist/__tests__/page-utils.test.js.map +0 -1
- package/dist/__tests__/setup-verification.test.d.ts +0 -2
- package/dist/__tests__/setup-verification.test.d.ts.map +0 -1
- package/dist/__tests__/setup-verification.test.js +0 -15
- package/dist/__tests__/setup-verification.test.js.map +0 -1
- package/dist/__tests__/stealth-utils.test.d.ts +0 -2
- package/dist/__tests__/stealth-utils.test.d.ts.map +0 -1
- package/dist/__tests__/stealth-utils.test.js +0 -413
- package/dist/__tests__/stealth-utils.test.js.map +0 -1
- package/dist/__tests__/types.test.d.ts +0 -2
- package/dist/__tests__/types.test.d.ts.map +0 -1
- package/dist/__tests__/types.test.js +0 -461
- package/dist/__tests__/types.test.js.map +0 -1
|
@@ -0,0 +1,564 @@
|
|
|
1
|
+
# Test and Configuration Scripts
|
|
2
|
+
|
|
3
|
+
> PowerShell scripts to test and configure the NotebookLM MCP HTTP Server
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 📋 Available Scripts
|
|
8
|
+
|
|
9
|
+
| Script | Description | Duration |
|
|
10
|
+
| ----------------- | ----------------------------------------------- | -------- |
|
|
11
|
+
| `setup-auth.ps1` | Google authentication configuration | 2-3 min |
|
|
12
|
+
| `test-server.ps1` | Quick validation tests (3 basic tests) | ~30 sec |
|
|
13
|
+
| `test-api.ps1` | Complete tests of all endpoints (success cases) | 5-10 min |
|
|
14
|
+
| `test-errors.ps1` | Error case tests | 2-5 min |
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## 🔐 setup-auth.ps1
|
|
19
|
+
|
|
20
|
+
Configures Google authentication to access NotebookLM.
|
|
21
|
+
|
|
22
|
+
### Usage
|
|
23
|
+
|
|
24
|
+
```powershell
|
|
25
|
+
.\deployment\scripts\setup-auth.ps1
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
### What happens
|
|
29
|
+
|
|
30
|
+
1. Checks if authentication already exists
|
|
31
|
+
- If yes: asks for confirmation to reset
|
|
32
|
+
- If no: continues
|
|
33
|
+
2. Opens Chrome (visible)
|
|
34
|
+
3. You must log in to Google and go to notebooklm.google.com
|
|
35
|
+
4. Close Chrome when you see your notebooks
|
|
36
|
+
5. The script verifies that the files have been created
|
|
37
|
+
|
|
38
|
+
### Created files
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
%LOCALAPPDATA%\notebooklm-mcp\Data\
|
|
42
|
+
├── chrome_profile\Default\Network\Cookies (>10 KB)
|
|
43
|
+
└── browser_state\state.json (16 cookies)
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### Options
|
|
47
|
+
|
|
48
|
+
```powershell
|
|
49
|
+
# Interactive mode (default)
|
|
50
|
+
.\deployment\scripts\setup-auth.ps1
|
|
51
|
+
|
|
52
|
+
# Force reset without asking
|
|
53
|
+
.\deployment\scripts\setup-auth.ps1 -Force
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## ⚡ test-server.ps1
|
|
59
|
+
|
|
60
|
+
Quick validation tests to verify that the server is working correctly.
|
|
61
|
+
|
|
62
|
+
### Prerequisites
|
|
63
|
+
|
|
64
|
+
- The HTTP server must be started
|
|
65
|
+
|
|
66
|
+
### Usage
|
|
67
|
+
|
|
68
|
+
```powershell
|
|
69
|
+
# Start the server in a first terminal
|
|
70
|
+
npm run start:http
|
|
71
|
+
|
|
72
|
+
# In a second terminal, run the quick test
|
|
73
|
+
.\deployment\scripts\test-server.ps1
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### Tests performed (3)
|
|
77
|
+
|
|
78
|
+
1. ✅ GET /health - Server health
|
|
79
|
+
2. ✅ GET /notebooks - Notebook list
|
|
80
|
+
3. ⚠️ POST /ask - Ask a question (optional, requires auth + notebook)
|
|
81
|
+
|
|
82
|
+
### Options
|
|
83
|
+
|
|
84
|
+
```powershell
|
|
85
|
+
# Default server (localhost:3000)
|
|
86
|
+
.\deployment\scripts\test-server.ps1
|
|
87
|
+
|
|
88
|
+
# Server on a different port
|
|
89
|
+
.\deployment\scripts\test-server.ps1 -BaseUrl "http://localhost:8080"
|
|
90
|
+
|
|
91
|
+
# Remote server
|
|
92
|
+
.\deployment\scripts\test-server.ps1 -BaseUrl "http://192.168.1.100:3000"
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### Output
|
|
96
|
+
|
|
97
|
+
```
|
|
98
|
+
╔══════════════════════════════════════════════════════════╗
|
|
99
|
+
║ NotebookLM MCP - Quick Validation Tests ║
|
|
100
|
+
╚══════════════════════════════════════════════════════════╝
|
|
101
|
+
|
|
102
|
+
Server tested: http://localhost:3000
|
|
103
|
+
|
|
104
|
+
Test 1: Health Check
|
|
105
|
+
GET http://localhost:3000/health
|
|
106
|
+
✅ PASS - Server operational
|
|
107
|
+
Authenticated: True
|
|
108
|
+
Sessions: 0
|
|
109
|
+
Notebooks: 2
|
|
110
|
+
|
|
111
|
+
Test 2: List Notebooks
|
|
112
|
+
GET http://localhost:3000/notebooks
|
|
113
|
+
✅ PASS - Endpoint working
|
|
114
|
+
Notebooks found: 2
|
|
115
|
+
|
|
116
|
+
Test 3: Ask Question (authentication + notebook required)
|
|
117
|
+
POST http://localhost:3000/ask
|
|
118
|
+
Using notebook: my-notebook
|
|
119
|
+
✅ PASS - Question processed
|
|
120
|
+
Answer length: 42 chars
|
|
121
|
+
Session ID: abc123
|
|
122
|
+
|
|
123
|
+
════════════════════════════════════════════════════════════
|
|
124
|
+
|
|
125
|
+
✅ ALL TESTS PASSED!
|
|
126
|
+
|
|
127
|
+
📖 Next steps:
|
|
128
|
+
- Check API documentation: .\deployment\docs\03-API.md
|
|
129
|
+
- Integrate with n8n: .\deployment\docs\04-N8N-INTEGRATION.md
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### Duration
|
|
133
|
+
|
|
134
|
+
- **~30 seconds** if authenticated with notebooks
|
|
135
|
+
- **~5 seconds** if no notebooks (skip test 3)
|
|
136
|
+
|
|
137
|
+
### Use cases
|
|
138
|
+
|
|
139
|
+
**Quick check after installation:**
|
|
140
|
+
|
|
141
|
+
```powershell
|
|
142
|
+
npm run start:http
|
|
143
|
+
.\deployment\scripts\test-server.ps1
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
**CI/CD - Quick health check:**
|
|
147
|
+
|
|
148
|
+
```yaml
|
|
149
|
+
- name: Quick Health Check
|
|
150
|
+
run: |
|
|
151
|
+
npm run start:http &
|
|
152
|
+
sleep 5
|
|
153
|
+
pwsh -File deployment/scripts/test-server.ps1
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## ✅ test-api.ps1
|
|
159
|
+
|
|
160
|
+
Complete tests of all API endpoints (success cases).
|
|
161
|
+
|
|
162
|
+
### Prerequisites
|
|
163
|
+
|
|
164
|
+
- The HTTP server must be started
|
|
165
|
+
- At least 1 configured notebook (for complete tests)
|
|
166
|
+
|
|
167
|
+
### Usage
|
|
168
|
+
|
|
169
|
+
```powershell
|
|
170
|
+
# Start the server in a first terminal
|
|
171
|
+
npm run start:http
|
|
172
|
+
|
|
173
|
+
# In a second terminal, run the tests
|
|
174
|
+
.\deployment\scripts\test-api.ps1
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
### Tests performed (10)
|
|
178
|
+
|
|
179
|
+
1. ✅ GET /health - Server health
|
|
180
|
+
2. ✅ GET /notebooks - Notebook list
|
|
181
|
+
3. ✅ GET /notebooks/:id - Notebook details
|
|
182
|
+
4. ✅ PUT /notebooks/:id/activate - Activate a notebook
|
|
183
|
+
5. ✅ POST /ask (without notebook_id) - Uses active notebook
|
|
184
|
+
6. ✅ GET /sessions - Session list
|
|
185
|
+
7. ✅ POST /ask (with session_id) - Continue a conversation
|
|
186
|
+
8. ✅ DELETE /sessions/:id - Close a session
|
|
187
|
+
9. ✅ POST /ask (with notebook_url) - Direct URL
|
|
188
|
+
10. ✅ DELETE /notebooks/:id - Delete a notebook
|
|
189
|
+
|
|
190
|
+
### Options
|
|
191
|
+
|
|
192
|
+
```powershell
|
|
193
|
+
# Default server (localhost:3000)
|
|
194
|
+
.\deployment\scripts\test-api.ps1
|
|
195
|
+
|
|
196
|
+
# Server on a different port
|
|
197
|
+
.\deployment\scripts\test-api.ps1 -BaseUrl "http://localhost:8080"
|
|
198
|
+
|
|
199
|
+
# Remote server
|
|
200
|
+
.\deployment\scripts\test-api.ps1 -BaseUrl "http://192.168.1.100:3000"
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
### Output
|
|
204
|
+
|
|
205
|
+
```
|
|
206
|
+
╔════════════════════════════════════════════════════════╗
|
|
207
|
+
║ NOTEBOOKLM MCP HTTP SERVER API TESTS ║
|
|
208
|
+
╚════════════════════════════════════════════════════════╝
|
|
209
|
+
|
|
210
|
+
✓ Server accessible at http://localhost:3000
|
|
211
|
+
|
|
212
|
+
═══════════════════════════════════════════════════════
|
|
213
|
+
[1/10] GET /health - Server health check
|
|
214
|
+
═══════════════════════════════════════════════════════
|
|
215
|
+
✓ Server healthy
|
|
216
|
+
...
|
|
217
|
+
|
|
218
|
+
╔════════════════════════════════════════════════════════╗
|
|
219
|
+
║ TEST SUMMARY ║
|
|
220
|
+
╚════════════════════════════════════════════════════════╝
|
|
221
|
+
|
|
222
|
+
Total tests: 10
|
|
223
|
+
Passed tests: 10
|
|
224
|
+
Failed tests: 0
|
|
225
|
+
Success rate: 100%
|
|
226
|
+
|
|
227
|
+
════════════════════════════════════════════════════════
|
|
228
|
+
✓ ALL TESTS PASSED SUCCESSFULLY!
|
|
229
|
+
════════════════════════════════════════════════════════
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
### Duration
|
|
233
|
+
|
|
234
|
+
- **Without configured notebooks:** ~1 minute (partial tests)
|
|
235
|
+
- **With notebooks:** ~5-10 minutes (complete tests with NotebookLM questions)
|
|
236
|
+
|
|
237
|
+
### Special behaviors
|
|
238
|
+
|
|
239
|
+
- **Skips tests** if no notebook is configured
|
|
240
|
+
- **Does not delete** your only notebook
|
|
241
|
+
- **Prefers to delete** test notebooks (suffix -1, -2, etc.)
|
|
242
|
+
- **Reuses data** between tests (session_id, notebook_id)
|
|
243
|
+
|
|
244
|
+
---
|
|
245
|
+
|
|
246
|
+
## ❌ test-errors.ps1
|
|
247
|
+
|
|
248
|
+
Error case tests (validation of error messages).
|
|
249
|
+
|
|
250
|
+
### Prerequisites
|
|
251
|
+
|
|
252
|
+
- The HTTP server must be started
|
|
253
|
+
|
|
254
|
+
### Usage
|
|
255
|
+
|
|
256
|
+
```powershell
|
|
257
|
+
# Start the server
|
|
258
|
+
npm run start:http
|
|
259
|
+
|
|
260
|
+
# Run error tests
|
|
261
|
+
.\deployment\scripts\test-errors.ps1
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
### Tests performed (12)
|
|
265
|
+
|
|
266
|
+
1. ❌ POST /ask - Missing question
|
|
267
|
+
2. ❌ POST /ask - Non-existent notebook_id
|
|
268
|
+
3. ❌ POST /ask - No configured notebook
|
|
269
|
+
4. ❌ POST /notebooks - Missing URL
|
|
270
|
+
5. ❌ POST /notebooks - Missing name
|
|
271
|
+
6. ❌ POST /notebooks - Invalid URL format
|
|
272
|
+
7. ❌ POST /notebooks - Name already in use (duplicate)
|
|
273
|
+
8. ❌ POST /notebooks - Inaccessible notebook (live validation)
|
|
274
|
+
9. ❌ GET /notebooks/:id - Non-existent notebook
|
|
275
|
+
10. ❌ DELETE /notebooks/:id - Non-existent notebook
|
|
276
|
+
11. ❌ PUT /notebooks/:id/activate - Non-existent notebook
|
|
277
|
+
12. ❌ DELETE /sessions/:id - Non-existent session
|
|
278
|
+
|
|
279
|
+
### Options
|
|
280
|
+
|
|
281
|
+
```powershell
|
|
282
|
+
# Default server (localhost:3000)
|
|
283
|
+
.\deployment\scripts\test-errors.ps1
|
|
284
|
+
|
|
285
|
+
# Remote server
|
|
286
|
+
.\deployment\scripts\test-errors.ps1 -BaseUrl "http://192.168.1.100:3000"
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
### Output
|
|
290
|
+
|
|
291
|
+
```
|
|
292
|
+
╔════════════════════════════════════════════════════════╗
|
|
293
|
+
║ ERROR CASE TESTS - HTTP API ║
|
|
294
|
+
╚════════════════════════════════════════════════════════╝
|
|
295
|
+
|
|
296
|
+
✓ Server accessible at http://localhost:3000
|
|
297
|
+
|
|
298
|
+
═══════════════════════════════════════════════════════
|
|
299
|
+
[1/12] POST /ask - Error: missing question
|
|
300
|
+
═══════════════════════════════════════════════════════
|
|
301
|
+
✓ Expected error: Missing required field: question
|
|
302
|
+
✓ Correct error message (mentions 'question')
|
|
303
|
+
...
|
|
304
|
+
|
|
305
|
+
╔════════════════════════════════════════════════════════╗
|
|
306
|
+
║ ERROR TEST SUMMARY ║
|
|
307
|
+
╚════════════════════════════════════════════════════════╝
|
|
308
|
+
|
|
309
|
+
Total tests: 12
|
|
310
|
+
Passed tests: 10
|
|
311
|
+
Failed tests: 0
|
|
312
|
+
Skipped tests: 2
|
|
313
|
+
Success rate: 100%
|
|
314
|
+
|
|
315
|
+
════════════════════════════════════════════════════════
|
|
316
|
+
✓ ALL ERROR CASES ARE HANDLED CORRECTLY!
|
|
317
|
+
════════════════════════════════════════════════════════
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
### Duration
|
|
321
|
+
|
|
322
|
+
- **~2-5 minutes** (includes 1 live validation test that takes 15-30s)
|
|
323
|
+
|
|
324
|
+
### Skipped tests
|
|
325
|
+
|
|
326
|
+
Some tests may be skipped if conditions are not met:
|
|
327
|
+
|
|
328
|
+
- **Test 3** (no notebook): skipped if you have configured notebooks
|
|
329
|
+
- **Test 7** (duplicate): skipped if no notebook exists
|
|
330
|
+
|
|
331
|
+
---
|
|
332
|
+
|
|
333
|
+
## 🚀 Complete Test Workflow
|
|
334
|
+
|
|
335
|
+
### 1. Installation and Configuration
|
|
336
|
+
|
|
337
|
+
```powershell
|
|
338
|
+
# 1. Install dependencies
|
|
339
|
+
npm install
|
|
340
|
+
|
|
341
|
+
# 2. Compile TypeScript
|
|
342
|
+
npm run build
|
|
343
|
+
|
|
344
|
+
# 3. Configure authentication
|
|
345
|
+
.\deployment\scripts\setup-auth.ps1
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
### 2. Add a Notebook
|
|
349
|
+
|
|
350
|
+
```powershell
|
|
351
|
+
# Start the server
|
|
352
|
+
npm run start:http
|
|
353
|
+
|
|
354
|
+
# In another terminal
|
|
355
|
+
$body = @{
|
|
356
|
+
url = "https://notebooklm.google.com/notebook/YOUR-NOTEBOOK-ID"
|
|
357
|
+
name = "My Notebook"
|
|
358
|
+
description = "My notebook description"
|
|
359
|
+
topics = @("topic1", "topic2")
|
|
360
|
+
} | ConvertTo-Json
|
|
361
|
+
|
|
362
|
+
Invoke-RestMethod -Uri "http://localhost:3000/notebooks" `
|
|
363
|
+
-Method Post -Body $body -ContentType "application/json"
|
|
364
|
+
```
|
|
365
|
+
|
|
366
|
+
### 3. Run the Tests
|
|
367
|
+
|
|
368
|
+
```powershell
|
|
369
|
+
# Success tests (5-10 min)
|
|
370
|
+
.\deployment\scripts\test-api.ps1
|
|
371
|
+
|
|
372
|
+
# Error tests (2-5 min)
|
|
373
|
+
.\deployment\scripts\test-errors.ps1
|
|
374
|
+
```
|
|
375
|
+
|
|
376
|
+
### 4. Expected Results
|
|
377
|
+
|
|
378
|
+
✅ **test-api.ps1**: 100% success (10/10 tests)
|
|
379
|
+
✅ **test-errors.ps1**: 100% success (10-12/12 tests)
|
|
380
|
+
|
|
381
|
+
---
|
|
382
|
+
|
|
383
|
+
## 🐛 Troubleshooting
|
|
384
|
+
|
|
385
|
+
### Error: "Unable to connect to server"
|
|
386
|
+
|
|
387
|
+
**Cause:** The server is not started
|
|
388
|
+
|
|
389
|
+
**Solution:**
|
|
390
|
+
|
|
391
|
+
```powershell
|
|
392
|
+
# Check that the server is running
|
|
393
|
+
Get-Process node
|
|
394
|
+
|
|
395
|
+
# If not, start it
|
|
396
|
+
npm run start:http
|
|
397
|
+
```
|
|
398
|
+
|
|
399
|
+
### Error: "No configured notebook"
|
|
400
|
+
|
|
401
|
+
**Cause:** Empty library
|
|
402
|
+
|
|
403
|
+
**Solution:** Add at least one notebook (see section 2 above)
|
|
404
|
+
|
|
405
|
+
### Skipped tests in test-api.ps1
|
|
406
|
+
|
|
407
|
+
**Normal** if you don't have configured notebooks. Tests that require notebooks will be skipped with an informative message.
|
|
408
|
+
|
|
409
|
+
### Skipped tests in test-errors.ps1
|
|
410
|
+
|
|
411
|
+
**Normal** depending on your configuration:
|
|
412
|
+
|
|
413
|
+
- "No notebook" test skipped if you have notebooks
|
|
414
|
+
- "Duplicate" test skipped if you don't have notebooks
|
|
415
|
+
|
|
416
|
+
### Port already in use
|
|
417
|
+
|
|
418
|
+
**Error:** `EADDRINUSE: address already in use`
|
|
419
|
+
|
|
420
|
+
**Solution:**
|
|
421
|
+
|
|
422
|
+
```powershell
|
|
423
|
+
# Change the port
|
|
424
|
+
$env:HTTP_PORT="8080"
|
|
425
|
+
npm run start:http
|
|
426
|
+
|
|
427
|
+
# Then test
|
|
428
|
+
.\deployment\scripts\test-api.ps1 -BaseUrl "http://localhost:8080"
|
|
429
|
+
```
|
|
430
|
+
|
|
431
|
+
---
|
|
432
|
+
|
|
433
|
+
## 📊 Exit Codes
|
|
434
|
+
|
|
435
|
+
The scripts return standard exit codes:
|
|
436
|
+
|
|
437
|
+
| Code | Meaning |
|
|
438
|
+
| ---- | ------------------------ |
|
|
439
|
+
| `0` | All tests passed |
|
|
440
|
+
| `1` | At least one test failed |
|
|
441
|
+
|
|
442
|
+
**Usage in CI/CD:**
|
|
443
|
+
|
|
444
|
+
```powershell
|
|
445
|
+
# Run tests and capture exit code
|
|
446
|
+
.\deployment\scripts\test-api.ps1
|
|
447
|
+
if ($LASTEXITCODE -ne 0) {
|
|
448
|
+
Write-Error "Tests failed!"
|
|
449
|
+
exit 1
|
|
450
|
+
}
|
|
451
|
+
```
|
|
452
|
+
|
|
453
|
+
---
|
|
454
|
+
|
|
455
|
+
## 🎯 Best Practices
|
|
456
|
+
|
|
457
|
+
### Before Committing
|
|
458
|
+
|
|
459
|
+
```powershell
|
|
460
|
+
# 1. Build
|
|
461
|
+
npm run build
|
|
462
|
+
|
|
463
|
+
# 2. Test success
|
|
464
|
+
.\deployment\scripts\test-api.ps1
|
|
465
|
+
|
|
466
|
+
# 3. Test errors
|
|
467
|
+
.\deployment\scripts\test-errors.ps1
|
|
468
|
+
|
|
469
|
+
# 4. If everything is green, commit
|
|
470
|
+
git add .
|
|
471
|
+
git commit -m "your message"
|
|
472
|
+
```
|
|
473
|
+
|
|
474
|
+
### CI/CD Pipeline
|
|
475
|
+
|
|
476
|
+
```yaml
|
|
477
|
+
# GitHub Actions example
|
|
478
|
+
- name: Run API Tests
|
|
479
|
+
run: |
|
|
480
|
+
npm run start:http &
|
|
481
|
+
sleep 10
|
|
482
|
+
pwsh -File deployment/scripts/test-api.ps1
|
|
483
|
+
pwsh -File deployment/scripts/test-errors.ps1
|
|
484
|
+
```
|
|
485
|
+
|
|
486
|
+
### Production
|
|
487
|
+
|
|
488
|
+
**DO NOT run these tests in production**:
|
|
489
|
+
|
|
490
|
+
- Tests create/delete notebooks
|
|
491
|
+
- Tests create/close sessions
|
|
492
|
+
- Tests ask questions to NotebookLM
|
|
493
|
+
|
|
494
|
+
**To check health in production:**
|
|
495
|
+
|
|
496
|
+
```powershell
|
|
497
|
+
# Simple health check
|
|
498
|
+
Invoke-RestMethod -Uri "http://YOUR-SERVER:3000/health"
|
|
499
|
+
```
|
|
500
|
+
|
|
501
|
+
---
|
|
502
|
+
|
|
503
|
+
## 📝 Customization
|
|
504
|
+
|
|
505
|
+
### Modify Test Questions
|
|
506
|
+
|
|
507
|
+
In `test-api.ps1`, change the questions:
|
|
508
|
+
|
|
509
|
+
```powershell
|
|
510
|
+
# Line ~247
|
|
511
|
+
$body = @{
|
|
512
|
+
question = "Your custom question"
|
|
513
|
+
} | ConvertTo-Json
|
|
514
|
+
```
|
|
515
|
+
|
|
516
|
+
### Add Tests
|
|
517
|
+
|
|
518
|
+
Copy the existing pattern:
|
|
519
|
+
|
|
520
|
+
```powershell
|
|
521
|
+
Write-TestHeader "Your new test" X $TotalTests
|
|
522
|
+
|
|
523
|
+
try {
|
|
524
|
+
# Your test code
|
|
525
|
+
$result = Invoke-RestMethod -Uri "$BaseUrl/your-endpoint"
|
|
526
|
+
|
|
527
|
+
if ($result.success) {
|
|
528
|
+
Write-Success "Test passed"
|
|
529
|
+
$PassedTests++
|
|
530
|
+
} else {
|
|
531
|
+
Write-Error-Custom "Test failed"
|
|
532
|
+
$FailedTests++
|
|
533
|
+
}
|
|
534
|
+
} catch {
|
|
535
|
+
Write-Error-Custom "Error: $_"
|
|
536
|
+
$FailedTests++
|
|
537
|
+
}
|
|
538
|
+
```
|
|
539
|
+
|
|
540
|
+
### Custom Timeout
|
|
541
|
+
|
|
542
|
+
```powershell
|
|
543
|
+
# For long tests (NotebookLM questions)
|
|
544
|
+
$result = Invoke-RestMethod `
|
|
545
|
+
-Uri "$BaseUrl/ask" `
|
|
546
|
+
-Method Post `
|
|
547
|
+
-Body $body `
|
|
548
|
+
-ContentType "application/json" `
|
|
549
|
+
-TimeoutSec 120 # 2 minutes
|
|
550
|
+
```
|
|
551
|
+
|
|
552
|
+
---
|
|
553
|
+
|
|
554
|
+
## 📖 Complete Documentation
|
|
555
|
+
|
|
556
|
+
For more information, see:
|
|
557
|
+
|
|
558
|
+
- [01-INSTALL.md](../docs/01-INSTALL.md) - Installation guide
|
|
559
|
+
- [03-API.md](../docs/03-API.md) - Complete API reference
|
|
560
|
+
- [05-TROUBLESHOOTING.md](../docs/05-TROUBLESHOOTING.md) - Troubleshooting
|
|
561
|
+
|
|
562
|
+
---
|
|
563
|
+
|
|
564
|
+
**Scripts created for NotebookLM MCP HTTP Server v1.1.2**
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
# Automatic installation script - NotebookLM MCP HTTP Server
|
|
2
|
+
# Version: 1.3.0
|
|
3
|
+
# Description: Installs all dependencies and compiles the project
|
|
4
|
+
|
|
5
|
+
Write-Host "╔══════════════════════════════════════════════════════════╗" -ForegroundColor Cyan
|
|
6
|
+
Write-Host "║ NotebookLM MCP - Automatic Installation ║" -ForegroundColor Cyan
|
|
7
|
+
Write-Host "╚══════════════════════════════════════════════════════════╝" -ForegroundColor Cyan
|
|
8
|
+
Write-Host ""
|
|
9
|
+
|
|
10
|
+
# Check Node.js
|
|
11
|
+
Write-Host "🔍 Checking Node.js..." -ForegroundColor Yellow
|
|
12
|
+
try {
|
|
13
|
+
$nodeVersion = node --version
|
|
14
|
+
$npmVersion = npm --version
|
|
15
|
+
Write-Host "✅ Node.js $nodeVersion found" -ForegroundColor Green
|
|
16
|
+
Write-Host "✅ npm $npmVersion found" -ForegroundColor Green
|
|
17
|
+
} catch {
|
|
18
|
+
Write-Host "❌ Node.js is not installed!" -ForegroundColor Red
|
|
19
|
+
Write-Host ""
|
|
20
|
+
Write-Host "📥 Download Node.js from: https://nodejs.org/" -ForegroundColor Yellow
|
|
21
|
+
Write-Host " Install the LTS version and run this script again." -ForegroundColor Yellow
|
|
22
|
+
exit 1
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
Write-Host ""
|
|
26
|
+
|
|
27
|
+
# Check that we're in the right directory
|
|
28
|
+
Write-Host "🔍 Checking directory..." -ForegroundColor Yellow
|
|
29
|
+
if (-not (Test-Path "package.json")) {
|
|
30
|
+
Write-Host "❌ package.json file not found!" -ForegroundColor Red
|
|
31
|
+
Write-Host " Make sure you are in the project root directory." -ForegroundColor Yellow
|
|
32
|
+
exit 1
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
$projectName = (Get-Content "package.json" -Raw | ConvertFrom-Json).name
|
|
36
|
+
Write-Host "✅ Project detected: $projectName" -ForegroundColor Green
|
|
37
|
+
Write-Host ""
|
|
38
|
+
|
|
39
|
+
# Install dependencies
|
|
40
|
+
Write-Host "📦 Installing npm dependencies..." -ForegroundColor Yellow
|
|
41
|
+
Write-Host " (This may take 2-5 minutes)" -ForegroundColor Gray
|
|
42
|
+
Write-Host ""
|
|
43
|
+
|
|
44
|
+
npm install
|
|
45
|
+
|
|
46
|
+
if ($LASTEXITCODE -ne 0) {
|
|
47
|
+
Write-Host ""
|
|
48
|
+
Write-Host "❌ Error during dependency installation" -ForegroundColor Red
|
|
49
|
+
Write-Host " Check your Internet connection and try again." -ForegroundColor Yellow
|
|
50
|
+
exit 1
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
Write-Host ""
|
|
54
|
+
Write-Host "✅ Dependencies installed successfully!" -ForegroundColor Green
|
|
55
|
+
Write-Host ""
|
|
56
|
+
|
|
57
|
+
# TypeScript compilation
|
|
58
|
+
Write-Host "🔨 Compiling project..." -ForegroundColor Yellow
|
|
59
|
+
npm run build
|
|
60
|
+
|
|
61
|
+
if ($LASTEXITCODE -ne 0) {
|
|
62
|
+
Write-Host ""
|
|
63
|
+
Write-Host "❌ Error during compilation" -ForegroundColor Red
|
|
64
|
+
exit 1
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
Write-Host ""
|
|
68
|
+
Write-Host "✅ Compilation successful!" -ForegroundColor Green
|
|
69
|
+
Write-Host ""
|
|
70
|
+
|
|
71
|
+
# Final checks
|
|
72
|
+
Write-Host "🔍 Final checks..." -ForegroundColor Yellow
|
|
73
|
+
|
|
74
|
+
$checks = @(
|
|
75
|
+
@{File = "dist\http-wrapper.js"; Description = "HTTP Server"},
|
|
76
|
+
@{File = "dist\index.js"; Description = "MCP Server"},
|
|
77
|
+
@{File = "node_modules\express"; Description = "Express.js"}
|
|
78
|
+
)
|
|
79
|
+
|
|
80
|
+
$allOk = $true
|
|
81
|
+
foreach ($check in $checks) {
|
|
82
|
+
if (Test-Path $check.File) {
|
|
83
|
+
Write-Host " ✅ $($check.Description)" -ForegroundColor Green
|
|
84
|
+
} else {
|
|
85
|
+
Write-Host " ❌ $($check.Description) - $($check.File) not found" -ForegroundColor Red
|
|
86
|
+
$allOk = $false
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
Write-Host ""
|
|
91
|
+
|
|
92
|
+
if ($allOk) {
|
|
93
|
+
Write-Host "╔══════════════════════════════════════════════════════════╗" -ForegroundColor Green
|
|
94
|
+
Write-Host "║ ✅ INSTALLATION COMPLETED SUCCESSFULLY! ║" -ForegroundColor Green
|
|
95
|
+
Write-Host "╚══════════════════════════════════════════════════════════╝" -ForegroundColor Green
|
|
96
|
+
Write-Host ""
|
|
97
|
+
Write-Host "📋 Next steps:" -ForegroundColor Cyan
|
|
98
|
+
Write-Host ""
|
|
99
|
+
Write-Host "1️⃣ Configure Google authentication (one time only):" -ForegroundColor White
|
|
100
|
+
Write-Host " .\deployment\scripts\setup-auth.ps1" -ForegroundColor Gray
|
|
101
|
+
Write-Host ""
|
|
102
|
+
Write-Host "2️⃣ Start the server:" -ForegroundColor White
|
|
103
|
+
Write-Host " npm run start:http" -ForegroundColor Gray
|
|
104
|
+
Write-Host ""
|
|
105
|
+
Write-Host "3️⃣ Test the server:" -ForegroundColor White
|
|
106
|
+
Write-Host " curl http://localhost:3000/health" -ForegroundColor Gray
|
|
107
|
+
Write-Host ""
|
|
108
|
+
Write-Host "📖 Complete documentation: .\deployment\docs\" -ForegroundColor Cyan
|
|
109
|
+
Write-Host ""
|
|
110
|
+
} else {
|
|
111
|
+
Write-Host "❌ Installation encountered problems" -ForegroundColor Red
|
|
112
|
+
Write-Host " See: .\deployment\docs\05-TROUBLESHOOTING.md" -ForegroundColor Yellow
|
|
113
|
+
exit 1
|
|
114
|
+
}
|