eb4a90eb2a
Follow-up to #25532. Each handler now runs Effect-native end-to-end: - Drop the outer Effect.promise(async () => {...}) wraps in all 3 handlers - Replace each await Effect.runPromise(svc.X()) with yield* svc.X() (with Effect.orDie where the service has typed errors) - Wrap individual prompts.X() / fetch() / handlePluginAuth() awaits with yield* Effect.promise(() => ...) instead of one big body wrap - throw new UI.CancelledError() → yield* Effect.die(new UI.CancelledError()) - Drop unused top-level helpers getModels + refreshModels (handlers now yield ModelsDev.Service directly and call .get() / .refresh(true)) Net: 8 → 1 AppRuntime.runPromise call (only the put helper remains, used by handlePluginAuth which is still a plain Promise function). Same observable behavior. Just the right shape.