CLI app for developers prototyping atproto functionality
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

feat(oauth-client): wire CLI interactive arm to run_pipeline with WaitForExternalClient

Updates ClientCmd::run to properly wire the interactive subcommand. When
ClientMode::Interactive(args) is matched, creates an InteractiveOptions with
drive_mode: InteractiveDriveMode::WaitForExternalClient, and passes it to
run_pipeline via OauthClientOptions. Removes the Phase 6-8 placeholder
println. Static mode also updated to pass interactive: None.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>

+9 -5
+9 -5
src/commands/test/oauth/client.rs
··· 97 97 http: &http, 98 98 jwks: &jwks_fetcher, 99 99 verbose: self.verbose, 100 + interactive: None, 100 101 }; 101 102 102 103 let report = pipeline::run_pipeline(target, opts).await; ··· 116 117 let exit_code = report.exit_code(); 117 118 Ok(ExitCode::from(exit_code as u8)) 118 119 } 119 - Some(ClientMode::Interactive(_args)) => { 120 - // For now, print a placeholder and proceed as static mode. 121 - println!( 122 - "interactive mode: static stages run, interactive stage not yet implemented (Phase 6-8)" 123 - ); 120 + Some(ClientMode::Interactive(args)) => { 121 + // Interactive mode. 122 + let interactive_opts = pipeline::InteractiveOptions { 123 + bind_port: args.port, 124 + public_base_url: args.public_base_url, 125 + drive_mode: pipeline::InteractiveDriveMode::WaitForExternalClient, 126 + }; 124 127 125 128 let opts = pipeline::OauthClientOptions { 126 129 http: &http, 127 130 jwks: &jwks_fetcher, 128 131 verbose: self.verbose, 132 + interactive: Some(&interactive_opts), 129 133 }; 130 134 131 135 let report = pipeline::run_pipeline(target, opts).await;