(deps commandDeps)
| 401 | } |
| 402 | |
| 403 | func newSessionApproveCommand(deps commandDeps) *cobra.Command { |
| 404 | var request SessionApprovalRequest |
| 405 | cmd := &cobra.Command{ |
| 406 | Use: "approve <id>", |
| 407 | Short: "Approve or reject a pending session permission request", |
| 408 | Args: exactOneNonBlankArg(), |
| 409 | RunE: func(cmd *cobra.Command, args []string) error { |
| 410 | request.RequestID = strings.TrimSpace(request.RequestID) |
| 411 | request.TurnID = strings.TrimSpace(request.TurnID) |
| 412 | request.Decision = strings.TrimSpace(request.Decision) |
| 413 | if request.RequestID == "" && request.TurnID == "" { |
| 414 | return errors.New("cli: --request-id or --turn-id is required") |
| 415 | } |
| 416 | if request.Decision == "" { |
| 417 | return errors.New("cli: --decision is required") |
| 418 | } |
| 419 | client, err := clientFromDeps(deps) |
| 420 | if err != nil { |
| 421 | return err |
| 422 | } |
| 423 | result, err := client.ApproveSession(cmd.Context(), args[0], request) |
| 424 | if err != nil { |
| 425 | return err |
| 426 | } |
| 427 | return writeCommandOutput(cmd, sessionApprovalBundle(args[0], result)) |
| 428 | }, |
| 429 | } |
| 430 | cmd.Flags().StringVar(&request.RequestID, "request-id", "", "Pending permission request id") |
| 431 | cmd.Flags().StringVar(&request.TurnID, "turn-id", "", "Pending permission turn id") |
| 432 | cmd.Flags(). |
| 433 | StringVar(&request.Decision, "decision", "", "Decision: allow-once, allow-always, reject-once, or reject-always") |
| 434 | mustMarkFlagRequired(cmd, "decision") |
| 435 | return cmd |
| 436 | } |
| 437 | |
| 438 | func newSessionWaitCommand(deps commandDeps) *cobra.Command { |
| 439 | return &cobra.Command{ |
no test coverage detected