checkpoint: extract committed contract to api/checkpoint
Commit

Move the committed-checkpoint contract — the persisted document types (CommittedMetadata, CheckpointSummary, Summary, InitialAttribution, ...), the operation option types (WriteCommittedOptions/UpdateCommittedOptions/ PrecomputedTranscriptBlobs), the reader/writer interfaces, and the Write request union — into a new github.com/entireio/cli/api/checkpoint package.
The contract is now agent-free (it depends only on leaf packages: agent/types, checkpoint/id, redact, and go-git plumbing), so a storage backend can implement it without pulling in the CLI's agent/TUI/git machinery. This is the pluggable surface from #1433.
The git implementation (GitStore, Open, the Stores facade, ref resolution, and the git-only temporary/shadow-branch types) stays in cmd/entire/cli/checkpoint, which imports api/checkpoint and re-exports every moved symbol via aliases (aliases.go). All 65 existing importers compile unchanged — no call-site churn.
Notes:
- PrecomputedTranscriptBlobs.isUsable is now exported (IsUsable) since the one caller is in the implementation package, across the new package boundary.
- The Write union is now sealed to api/checkpoint: an unhandled WriteRequest can only be introduced there, so Write's default branch is a forward-safety net for future request types (the unknown-request unit test was removed as it can no longer be expressed from the impl package).
- The api package imports the checkpoint/id leaf as-is; moving id under api/ can follow later if desired.
Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com Entire-Checkpoint: e8788a712424