The AI model catalog can already refresh itself from iterm2.com, but the
only controls were a one-time consent modal and a hidden advanced-setting
URL. Add explicit UI in Settings > General > AI:
- New synced preference kPreferenceKeyAIModelUpdatesEnabled (BOOL, default
off): the "Automatically update available AI models" checkbox. Ticking it
records network consent so it doesn't also pop the consent modal; the
automatic (periodic) check is gated on this preference.
- "Update Now" button: an on-demand check via AIModelCatalogUpdater.checkNow,
which bypasses the daily rate limit and the enabled-preference (an explicit
click is its own opt-in) but still honors the one-time consent modal, and
reports the result (updated / up to date / failed / disabled / not enabled /
busy) in an alert. Works whether or not automatic updates are enabled.
- AIModelCatalogUpdater grew an AIModelCatalogUpdateOutcome enum; the download
pipeline now threads the outcome through to every terminal path so the
manual path can report it.
Both controls grey out with the other AI settings when AI is off.