These 25 commits are when the Protocol Buffers files have changed:
| Commit: | f077500 | |
|---|---|---|
| Author: | Travis Cline | |
| Committer: | Travis Cline | |
docs: refresh user and developer documentation Collapse the pre-public-push docs cleanup into one readable commit. Refresh the README quickstart and feature coverage, regenerate the command reference and examples, prune stale docs/dev planning material, repair live developer-doc navigation, and remove stale references to deleted capture-planning notes.
The documentation is generated from this commit.
| Commit: | 1637e1b | |
|---|---|---|
| Author: | Travis Cline | |
| Committer: | Travis Cline | |
proto: flesh out Fxmvse (UpsertArtifactUserState) from interactive-audio HAR Captured Fxmvse requests show the RPC fires during interactive audio-overview playback to persist the listener's position. Each request contains context, artifact ID, and a nested seconds/nanos playback tuple; the response echoes that state. Add PlaybackPosition and ArtifactUserState messages. UpsertArtifactUserState now carries context, artifact_id, and state, and both Upsert/Get artifact user state responses wrap a single ArtifactUserState. The standalone get request keeps only artifact_id until a dedicated read capture proves a richer shape. Add the Fxmvse arg_format for context, artifact_id, and state, and drop the placeholder comments for the upsert path. Lint, build, protoc parse, and go build/vet are clean; generated Go is intentionally left for a separate regeneration.
| Commit: | 4779837 | |
|---|---|---|
| Author: | Travis Cline | |
| Committer: | Travis Cline | |
proto, rpc: reconcile every JS-bundle binding to a Go-side wiring Make the JS bundle's RPC ID to method bindings, the RPC constants in rpc.go, and the rpc_id annotations in the proto files line up. Every bundle ID now has both a Go constant and a proto RPC method. Add constants and proto stubs for previously unwired bundle IDs, including label CRUD, artifact generation, source discovery, Drive export, model options, project user state, writing functions, expert content, access tokens, magic view, project copy, artifact user state, and access requests. Swap ReportContent to the bundle-canonical OmVMXc ID while preserving the stale ID as a legacy constant. Mark older artifact and draft/section IDs deprecated inline, annotate GenerateFreeFormStreamed with laWbsf, and surface the AHyHrd create-audio legacy path that the client still uses as a fallback. The proto layer is now the authoritative map; generated code can be refreshed from it in a follow-up.
| Commit: | 19acbe4 | |
|---|---|---|
| Author: | Travis Cline | |
| Committer: | Travis Cline | |
api, proto, gen: replace GenerateDocumentGuides with GenerateSourceGuide tr032e is the per-source guide RPC the web UI fires when a source is opened. Its wire shape is keyed by source_id with 4-level nesting [[[["source_id"]]]], and the response is positional JSON [[[null, [summary], [[topic, ...]], []]]] — not the proto-declared `repeated DocumentGuide guides`. The generated encoder used arg_format="[%project_id%]", so the old GenerateDocumentGuides method never succeeded on the wire; the only working call site was processFileSource, which bypasses the encoder with rpc.Do directly. Remove the broken surface: the GenerateDocumentGuides RPC declarations in both .proto files, the generated argument encoder, and the service- client binding. The RPC ID constant rpc.RPCGenerateDocumentGuides stays because processFileSource still uses it as a post-upload trigger. Add SourceGuide{Summary, KeyTopics} and GenerateSourceGuide(sourceID) in the api package. Parses the positional JSON directly; no proto round-trip. "KeyTopics" matches the keyTopicAsked event name in the NotebookLM JS bundle — the chips are topic tags, not keywords or suggested prompts.
| Commit: | 6149e4e | |
|---|---|---|
| Author: | Travis Cline | |
| Committer: | Travis Cline | |
api: fix GetConversationHistory wire format and response parsing Request format was [project_id, conversation_id] but the server expects [[], null, null, conversation_id, limit] with project_id conveyed only via the source-path URL parameter. Response parsing assumed [content, null, role] for all messages. The actual format differs by role: user messages have plain text at [3], assistant messages have nested content_segments at [4]. Also extracts message_id from position [0].
| Commit: | 45ce990 | |
|---|---|---|
| Author: | Travis Cline | |
| Committer: | Travis Cline | |
api, proto: fix report-suggestions to return all suggestions with structured data The GenerateReportSuggestions (ciyUvf) wire response contains structured arrays [[title, desc, null, source_refs, prompt, count], ...] but the proto only had repeated string, causing beprotojson to extract a single garbled suggestion. - Add ReportSuggestion proto message with title, description, prompt, source_ids, and count fields - Parse raw ciyUvf response directly in api.Client (bypasses beprotojson) - Handle double-wrapped response format [[ [sugg1], [sugg2], ... ]] - Update CLI to display structured suggestion output - Add generate-chat --conversation and --web flags - Regenerate proto and service client code via buf generate
| Commit: | a96764c | |
|---|---|---|
| Author: | Travis Cline | |
proto: update orchestration and notebooklm protos Add ChatbotConfig, Note, FeaturedProject with presentation metadata, chat protocol messages (citations, follow-ups, conversation state), interactive audio AgentCommsPayload sub-messages, and wrapper types for ProjectAnalytics counts. Update RPC IDs (ListFeaturedProjects, GenerateReportSuggestions, DeleteNotes) and arg formats. Service template now passes NotebookID to RPC calls.
| Commit: | 1f89fae | |
|---|---|---|
| Author: | Travis Cline | |
gen: revert proto fields that mismodel the wire format GenerateFreeFormStreamedRequest conversation state (history, conv_id, seq_num) is managed by ChatRequest/buildChatArgs, not the proto. GenerateFreeFormStreamedResponse reasoning/citations are embedded within the chunk JSON string, not separate proto fields. Add comments documenting the actual architecture.
| Commit: | 3bddeb1 | |
|---|---|---|
| Author: | Travis Cline | |
cmd/nlm: multi-conversation chat support, streaming everywhere - Refactor interactive chat into runInteractiveChat with session param - Add /new, /fork, /conversations commands for multi-conversation UX - Add one-shot chat: `nlm chat <id> "prompt"` streams response and exits - Resume specific conversation: `nlm chat <id> <conversation-id>` - chat-list <notebook-id> fetches server-side conversations via hPTbtc - Implement GetConversationHistory (khqZz) on API client - Fix generate-chat to stream chunks instead of returning first chunk - Expand ChatMessage with Thinking/Citations for transient stream data - Expand GenerateFreeFormStreamedResponse proto with thinking/citations - Add CitationRef message type for source excerpt mapping - Clean up gRPC-Web endpoint definition, remove dead BD RPC ID
| Commit: | 6ea451a | |
|---|---|---|
| Author: | Travis Cline | |
cmd/nlm: add conversation lifecycle and interactive audio proto types Add GetConversations (hPTbtc), GetConversationHistory (khqZz), and DeleteChatHistory (e3bVqc) RPCs with hand-written encoders matching HAR-verified wire formats. Add ChatMessage, AgentCommsUserMessage, and FetchInteractivityToken proto types reconstructed from JavaScript analysis. Include WebRTC implementation notes for deferred audio work.
| Commit: | b864c47 | |
|---|---|---|
| Author: | Travis Cline | |
gen: refresh-source notebookID, audio encoder rewrite, report suggestions workflow, share linkSettings RefreshSource: add project_id to proto and pass NotebookID in Call. CreateAudioOverview: rewrite encoder per HAR — type 1 (not 7), triple-nested source refs, capabilities [1,4,2,3,6,5], language en, null Tv[0]. GenerateReportSuggestions: use ciyUvf RPC with ProjectContext + source refs. generate-outline: rewire to use ciyUvf (report suggestions) workflow. generate-section: redirect to generate-outline (BeTrYd deprecated). ShareProject: fix linkSettings to [1, accessLevel] format (not [bool]).
| Commit: | 0c48f3f | |
|---|---|---|
| Author: | Travis Cline | |
gen: notes display, get-instructions, source type enum, share URL, actOnSources wire format - Rewrite listNotes to use raw JSON extraction matching actual Note wire format [note_id, [note_id, content, metadata, null, title]] - Fix get-instructions response unwrapping (GetProject wraps in extra array) - Reorder SourceType proto enum to match server (TEXT=4, WEB_PAGE=5) - Construct share URL from project ID when response is empty - Rewrite ActOnSources encoder to match HAR format - Add analytics raw JSON extraction for flexible field types
| Commit: | edc4da6 | |
|---|---|---|
| Author: | Travis Cline | |
| Committer: | Travis Cline | |
proto: add video overview and enhanced audio/artifact support - Add VideoOverview message with video-specific fields (video_id, video_url, style) - Add CreateVideoOverviewRequest and VideoStyle enum - Add QueryArtifactsRequest/Response for artifact queries - Enhance AudioOverview with audio_id, audio_url, and title fields - Add AudioType, AudioLength, and GuideType enums for better type safety - Update CreateAudioOverviewRequest to use new structured fields - Reorder ArtifactType enum values to match API (video=3, report=4, app=5) These changes align the proto definitions with the actual NotebookLM API including support for video overviews and more granular control over audio generation.
| Commit: | 98a958c | |
|---|---|---|
| Author: | Travis Cline | |
| Committer: | Travis Cline | |
cmd: add httprr to txtar export utility and enhance audio creation capture Add new export-httprr command-line utility for converting HTTP request/response recordings to human-readable txtar format, and enhance audio creation API with improved parameter handling. Key additions: - Add cmd/export-httprr/main.go with httprr to txtar conversion utility supporting optional output file and secret inclusion via environment variable - Add internal/api/audio_create_capture_test.go for capturing HTTP requests during audio overview creation - Add test data files TestCaptureAudioCreateRequest.httprr and .txtar with captured audio creation request/response - Update CreateAudioOverview RPC argument format to include audio_type parameter: [%project_id%, %audio_type%, %instructions%] - Update generated protobuf and service client code to reflect audio creation parameter changes The export utility enables easy conversion of httprr recordings to txtar format for inspection, comparison, and sharing of HTTP traces, while the enhanced audio creation capture provides better debugging capabilities for audio overview generation workflows.
| Commit: | 35074ed | |
|---|---|---|
| Author: | Travis Cline | |
| Committer: | Travis Cline | |
gen: simplify RPC encoders and implement RenameArtifact functionality Streamline RPC argument encoding and add missing RenameArtifact implementation with proper argument formatting. This improves code maintainability and completes the artifact management functionality. Key changes: - Simplify GenerateFreeFormStreamed encoder by removing complex source handling logic in favor of generalized argument encoder - Implement RenameArtifact encoder with manual nested array formatting: [[artifactID, newTitle], [["title"]]] - Fix ListRecentlyViewedProjects response handling by removing unnecessary response wrapping - Reorganize import statements in generated protobuf files for consistency - Add comprehensive documentation for RenameArtifact argument format in proto file The RenameArtifact implementation uses manual encoding due to its complex nested structure with string literals, while the GenerateFreeFormStreamed encoder is simplified to use the standard argument builder pattern for better maintainability.
| Commit: | 0488537 | |
|---|---|---|
| Author: | Travis Cline | |
| Committer: | Travis Cline | |
cmd/nlm: add interactive chat and content transformation commands Add interactive chat command with terminal UI supporting multiline mode, clear screen, and help commands. Integrate with GenerateFreeFormStreamed API for real-time response streaming. Add 15 content transformation commands: rephrase, expand, summarize, critique, brainstorm, verify, explain, outline, study-guide, faq, briefing-doc, mindmap, timeline, toc, and generate-chat for free-form chat generation. Connect interactive chat to NotebookLM API using GenerateFreeFormStreamed RPC with streaming response handling and fallback display for non-streaming responses. Add comprehensive test coverage with content_transformation_commands.txt test suite validating all commands for argument validation, authentication requirements, special characters, multiple source IDs, and debug flags. All commands properly validate arguments, require authentication, and integrate with existing NotebookLM API infrastructure.
| Commit: | bec8381 | |
|---|---|---|
| Author: | Travis Cline | |
| Committer: | Travis Cline | |
cmd/nlm: complete video overview creation and httprr test cleanup
| Commit: | e70c0de | |
|---|---|---|
| Author: | Travis Cline | |
| Committer: | Travis Cline | |
internal/rpc: add gRPC endpoint support for modern API integration
| Commit: | 46f26bf | |
|---|---|---|
| Author: | Travis Cline | |
| Committer: | Travis Cline | |
cmd/nlm: complete GenerateMagicView implementation and comprehensive RPC integration - Add GenerateMagicView RPC method with generated service client support - Update proto definitions with magic view request/response messages - Implement dual pathway architecture for gradual migration testing - Generate comprehensive encoder methods for all service operations - Add CLI command 'generate-magic' with argument validation - Enhance batchexecute response parsing for variable data positions - Update test coverage with generated client validation - Maintain backward compatibility with legacy manual RPC pathways
| Commit: | 48283ef | |
|---|---|---|
| Author: | Travis Cline | |
| Committer: | Travis Cline | |
proto: update protobuf definitions and build configuration
| Commit: | 441266e | |
|---|---|---|
| Author: | Travis Cline | |
| Committer: | Travis Cline | |
cmd/nlm: add notebook sharing commands and proto definitions
| Commit: | 09a6bfd | |
|---|---|---|
| Author: | Travis Cline | |
| Committer: | Travis Cline | |
proto: add arg_format annotations to orchestration service methods - Add arg_format options to CreateArtifact, GetArtifact, UpdateArtifact - Add arg_format options to DeleteArtifact, ListArtifacts - Add arg_format options to CheckSourceFreshness, DiscoverSources - Add arg_format option to ListFeaturedProjects - Regenerate encoder implementations with proper arg formats This resolves TODO comments in generated encoder files and enables proper argument encoding for the orchestration service RPC methods.
| Commit: | aa93738 | |
|---|---|---|
| Author: | Travis Cline | |
| Committer: | Travis Cline | |
proto/notebooklm: add orchestration and sharing service definitions - Add comprehensive protocol definitions for orchestration service - Add comprehensive protocol definitions for sharing service - Add new RPC constants for artifact operations - Add new RPC constants for discovery and generation operations - Update existing proto files with go_package option - Support free-form streaming generation and report suggestions - Support guidebook operations and sharing functionality This change expands the NotebookLM API client with comprehensive definitions for orchestration and sharing services, enabling more advanced interactions with the NotebookLM platform.
| Commit: | cfb4d8d | |
|---|---|---|
| Author: | Travis Cline | |
nlm: add audio and generation features
| Commit: | 98e3132 | |
|---|---|---|
| Author: | Travis Cline | |
| Committer: | Travis Cline | |
nlm: add NotebookLM CLI client