7 Commits

Author SHA1 Message Date
Deheng Huang 7b8611a6e1 fix: add Windows compatibility for npm commands
- Use npm.cmd instead of npm on Windows (os.name == 'nt')
- Add Windows shell names to IGNORED_PROCESS_NAMES (cmd, powershell, pwsh)
- Add Windows executable extensions (.exe, .cmd) to ignored list
- Apply fix to both run.py and setup_environment.py

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-26 15:09:34 +08:00
Deheng Huang 87ea9e09dd docs: rebrand to nblm with multi-agent support
- Complete README rewrite with new nblm identity
- Add npx add-skill installation via vercel-labs/add-skill
- Position as multi-agent skill (Claude Code, Cursor, OpenCode)
- Add tiered command docs (Quick Start + collapsible reference)
- Add acknowledgments for upstream projects
- Update package.json name to nblm
- Replace all "NotebookLM Skill" references across codebase
- Update .gitignore for .claude-plugin/ and docs/plans/

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-25 21:12:53 +08:00
Deheng Huang ba28792035 feat: complete agent-browser integration 2026-01-25 20:16:15 +08:00
Deheng Huang 0dcfef1805 refactor: use agent-browser CLI sessions 2026-01-25 20:16:14 +08:00
PleasePrompto 0942e849f5 feat: v1.3.0 - Modular Architecture, Timeout Fix, Thinking Detection
- Add modular architecture (config.py, browser_utils.py)
- Increase timeout from 30s to 120s (fixes #4)
- Add thinking message detection (div.thinking-message)
- Fix CSS selectors to match current NotebookLM UI
- Improve stability detection (3 polls instead of 1s wait)
2026-01-25 20:15:05 +08:00
PleasePrompto 79547a550f Major authentication reliability fix: Hybrid approach + Chrome + Anti-detection
Implements robust auth strategy based on MCP Server TypeScript implementation:

Auth Architecture Changes:
- Hybrid auth: persistent browser profile (user_data_dir) + manual cookie injection
- Fixes Playwright bug #36139: Session cookies now persist correctly
- Real Chrome via channel="chrome" instead of Chromium (cross-platform reliability)
- Remove automation detection: ignore_default_args=["--enable-automation"]
- Manual cookie injection from state.json for session cookie persistence

Technical Details:
- Python's launch_persistent_context doesn't support storage_state parameter (unlike TypeScript)
- Workaround: Launch with user_data_dir, then manually inject cookies via context.add_cookies()
- Browser profile stores: fingerprint + persistent cookies + cache
- state.json stores: ALL cookies including session cookies (expires=-1)
- This ensures both consistent fingerprinting AND reliable session cookie persistence

Files Changed:
- scripts/ask_question.py: Add hybrid auth + ignore_default_args
- scripts/auth_manager.py: Update setup_auth() and validate_auth() with new approach
- scripts/setup_environment.py: Install Chrome instead of Chromium
- requirements.txt: Add Chrome installation note
- README.md: Add Chrome installation section with rationale
- AUTHENTICATION.md: NEW - Complete auth architecture documentation

Why This Fixes Issue #2:
- Session cookies (without Expires) were lost on restart (Playwright bug)
- Chromium had cross-platform reliability issues
- Manual cookie injection ensures session cookies persist
- Real Chrome ensures consistent behavior across systems

References:
- Playwright Issue #36139: Session cookies not persisting
- Playwright Issue #14949: storage_state with persistent context
- Based on: notebooklm-mcp TypeScript implementation
2026-01-25 20:15:05 +08:00
PleasePrompto 3af8794786 Initial commit: NotebookLM Claude Code Skill
Add NotebookLM integration skill for Claude Code:
- Browser automation for querying NotebookLM
- Library management for notebook organization
- Persistent authentication with Google
- Zero-hallucination research directly in Claude Code

Based on notebooklm-mcp server, adapted for Claude Skills architecture.
2026-01-25 20:14:42 +08:00