feat(cli): wire up undispatched commands and fix associated bugs master
Dispatch search-actors, search-typeahead, search-starter-packs, get-actor-status, get-feed-generators, get-suggested-follows-by-actor, age-assurance, and admin in main.c; add cli_admin.h include. cmd_list now dispatches create/update/delete/add-item/remove-item subcommands before falling through to the read path. cmd_list_create maps --purpose shorthand (modlist/curatelist/referencelist) to full app.bsky.graph.defs URIs. cmd_list_update rewritten as fetch-merge-put using wf_agent_get_record_typed / wf_agent_put_record_typed so existing fields ($type, createdAt, purpose) are preserved. Bug fixes: - cli_search.c: moderation report defaults reasonType to com.atproto.moderation.defs#reasonOther and always passes free_reason - cli_search.c: labels subscribe prints the real cursor (PRId64) instead of argv[2] (the service name) - cli_ozone.c: signature search-accounts arg order corrected to service/handle/password/did with argc < 7 gate (was off by one) - cli_prefs.c: upload-blob reads the file once via read_text_file, removing the bogus password-as-path read and leak - cli_chat.c: groups edit and add/remove-members gate raw JSON behind g_json and print human-readable success messages otherwise - create_record.c: remove redundant cJSON_Delete(record) on failure — the internal helper already frees record on every exit path