* feat(slides): add `slides add-slide` command for full-bleed image slides
Adds a new `gog slides add-slide <presentationId> <image>` command that
appends a slide with a full-bleed image and optional speaker notes using
the native Google Slides API (presentations.batchUpdate).
Workflow: create a deck with `gog slides create`, then add slides one at
a time with this command. Supports --notes for inline text and
--notes-file for multiline markdown speaker notes.
Also registers ServiceSlides in the auth layer with proper scopes and
readonly support.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* feat(slides): add list-slides and delete-slide commands
list-slides shows all slide object IDs in a presentation.
delete-slide removes a slide by its object ID.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* feat(slides): add --before flag to add-slide for insertion ordering
Allow inserting a slide before a specific existing slide ID instead of
always appending to the end of the presentation.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* feat(slides): add read-slide, update-notes, and replace-slide commands
Adds three new commands to support in-place editing of existing slides:
- `slides read-slide` — shows slide content including speaker notes,
text elements, and image references (supports --json output)
- `slides update-notes` — updates speaker notes on an existing slide
without deleting/re-adding (--notes or --notes-file)
- `slides replace-slide` — atomically swaps the image on an existing
slide using the ReplaceImage API, optionally updating notes in the
same batch operation
These eliminate the error-prone delete+add-before workflow when editing
slides in existing decks.
Closes chrismdp/gogcli#1
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix(slides): rebase PR 214, clear notes semantics, and hard-fail missing placeholders (#214) (thanks @chrismdp)
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>