repo mirror: add `detach` to convert a GitHub mirror into a native repo
Commit

entire repo mirror detach /gh/<owner>/<repo> --project <p> drives core's
POST /repos/{repoId}/detach, now generally available. Every run fetches the
dry-run plan first: the preconditions and who keeps or loses access. --dry-run
stops there, and an ineligible plan stops before the write with the failed
precondition slugs. A real detach is confirmed on the prompt's own writer
(--force/--yes skips it; without a terminal the command refuses before any
request), then waits on GET /repos/{repoId}/detach through a stall the server
resumes on its own (--no-wait, --timeout). The /gh/ ref answers "moved" once
the write happened, so every exit that leaves a detach unfinished prints the
entire api call that follows or resumes it.
Refresh the vendored core spec from us.console.entire.io for the two detach routes, and loosen the detach read-model enums (precondition slugs, access source and subject type, statuses), which core documents as growing. runPromptForm gains a preamble variant so the plan follows the prompt.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com Claude-Session: https://claude.ai/code/session_01KvM3bkziUHdcD3GQFSWubD Entire-Checkpoint: 01M48N3DFGHY6RJ59KZ3F7Q9ZV